Android Yazılım Yönetimi

Android Açık Kaynak Projesi (AOSP), OEM'ler ve diğer cihaz uygulayıcıları tarafından taşınacak ve kendi donanımlarında çalıştırılacak eksiksiz bir yazılım yığını sağlar. Google, Android'in kalitesini korumak için tam zamanlı mühendislere, ürün yöneticilerine, kullanıcı arayüzü tasarımcılarına, kalite güvence test uzmanlarına ve modern cihazları pazara sunmak için gereken diğer tüm rollere katkıda bulunmuştur.

Buna göre, Android'in mevcut kararlı sürümünü kararsız deneysel çalışmalardan net bir şekilde ayırmak için bir dizi kod satırı bulunduruyoruz. Android kod hatlarının açık kaynak yönetimi ve bakımını daha geniş ürün geliştirme döngüsüne taşıyoruz.

AOSP kod yönetimi

Aşağıdaki grafik, AOSP kod yönetimi ve sürümlerinin arkasındaki kavramları göstermektedir.

kod hattı diyagramı
Şekil 1. AOSP kodu ve sürümleri
  1. Herhangi bir anda, Android platformunun güncel bir son sürümü vardır. Bu genellikle ağaçta bir dal şeklini alır.
  2. Cihaz üreticileri ve katkıda bulunanlar, mevcut en son sürümle çalışır, hataları giderir, yeni cihazları başlatır, yeni özellikleri dener vb.
  3. Buna paralel olarak Google, ürünün ihtiyaçları ve hedeflerine göre Android platformunun ve çerçevesinin bir sonraki sürümü üzerinde dahili olarak çalışır. Android'in bir sonraki sürümünü, özellikleri Android'i gitmesi gerektiğine inandığımız yöne itmek için seçilen amiral gemisi bir cihazda bir cihaz ortağıyla birlikte çalışarak geliştiriyoruz.
  4. N + 1'inci sürüm hazır olduğunda, genel kaynak ağacında yayınlanır ve yeni en son sürüm olur.

Şartlar ve uyarılar

  • Bir serbest bırakma, Android platformunun resmi bir sürümüne gibi 1.5 veya 8.1 gelir. Platformun bir sürümü, AndroidManifest.xml dosyalarının SdkVersion alanındaki sürüme karşılık gelir ve kaynak ağacında frameworks/base/api içinde tanımlanır.
  • Bir yukarı akış projesi, Android yığınının kod çektiği açık kaynaklı bir projedir. Linux çekirdeği ve WebKit gibi projelere ek olarak, ART, Android SDK araçları ve Bionic gibi bazı yarı otonom Android projelerini yukarı akış projeleri olarak çalışmak üzere taşımaya devam ediyoruz. Genellikle bu projeler tamamen halka açık ağaçta geliştirilir. Bazı yukarı akış projeleri için, geliştiriciler doğrudan yukarı akış projesine katkıda bulunur. Ayrıntılar için bkz. Yukarı akış projeleri . Her iki durumda da anlık görüntüler periyodik olarak yayınlara alınır.
  • Her zaman, bir sürüm kod çizgisi (git'te birden fazla daldan oluşabilir), belirli bir Android platform sürümü için tek kanonik kaynak kodu olarak kabul edilir. OEM'ler ve diğer grup oluşturma aygıtları yalnızca bir sürüm şubesinden çekmelidir.
  • Topluluktaki değişiklikleri yakalamak için deneysel kod hatları oluşturuldu, böylece kararlılık sağlamak için tekrarlanabilirler.
  • Kararlı olduğunu kanıtlayan değişiklikler sonunda bir sürüm dalına çekilir. Bu yalnızca hata düzeltmeleri, uygulama iyileştirmeleri ve platformun API'lerini etkilemeyen diğer değişiklikler için geçerlidir.
  • Değişiklikler, gerektiği şekilde yukarı akış projelerinden (Android yukarı akış projeleri dahil) sürüm dallarına çekilir.
  • N + 1'inci sürümü (çerçevenin ve platform API'lerinin bir sonraki ana sürümü) Google tarafından dahili olarak geliştirilmiştir. Ayrıntılar için bkz. Özel kod hatları .
  • Değişiklikler, yukarı akış, yayın ve deneysel dallardan gerektiği şekilde Google'ın özel şubesine alınır.
  • Bir sonraki sürüm için platform API'leri stabilize edildiğinde ve tam olarak test edildiğinde, Google bir sonraki platform sürümünün (özellikle yeni bir SdkVersion ) sürümünü keser. Bu, bir genel yayın dalı yapılan dahili kod hattına ve yeni mevcut platform kod hattına karşılık gelir.
  • Yeni bir platform sürümü kesildiğinde, aynı zamanda karşılık gelen bir deneysel kod hattı oluşturulur.

Özel kod hatları

Yukarıdaki kaynak yönetimi stratejisi, Google'ın dikkatini Android'in mevcut herkese açık sürümüne odaklamak için gizli tuttuğu bir kod çizgisi içerir.

OEM'ler ve diğer cihaz üreticileri doğal olarak cihazları en son Android sürümüyle birlikte göndermek istiyor. Benzer şekilde, uygulama geliştiricileri gerekenden daha fazla platform sürümüyle uğraşmak istemezler. Bu arada Google, bir platform ve ürün olarak Android'in stratejik yönünün sorumluluğunu elinde tutuyor. Yaklaşımımız, Android ile ilgili fikri mülkiyetin korunmasını sağlarken özellikleri sürmek için az sayıda amiral gemisi cihazına odaklanmaktadır.

Sonuç olarak, Google sık sık üçüncü şahıslardan gizli bilgilere sahiptir ve uygun korumaları sağlayana kadar hassas özellikleri ifşa etmekten kaçınmalıdır. Ek olarak, bir seferde çok fazla platform sürümü mevcutsa, platform için gerçek riskler vardır. Bu nedenlerle, açık kaynak projesini (üçüncü taraf katkıları dahil) Android'in şu anda herkese açık olan kararlı sürümüne odaklanacak şekilde yapılandırdık. Platformun bir sonraki sürümündeki derin geliştirme, resmi bir sürüm olmaya hazır olana kadar özel olarak gerçekleşir.

Katkıda bulunan birçok kişinin bu yaklaşıma katılmadığının farkındayız ve onların bakış açılarına saygı duyuyoruz. Ancak bu, en iyi olduğunu düşündüğümüz ve Android için uygulamayı seçtiğimiz yaklaşımdır.