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ını korur. Android'in kalitesini korumak amacıyla Google, 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ın pazara sunulması için gereken tüm diğer rollere katkıda bulunmuştur.
Buna göre, Android'in mevcut kararlı sürümünü dengesiz deneysel çalışmalardan açıkça ayırmak için bir dizi kod satırı sürdürüyoruz. Android kod satırlarının açık kaynak yönetimini ve bakımını daha geniş ürün geliştirme döngüsüne aktarıyoruz.
AOSP kod yönetimi
Aşağıdaki grafik, AOSP kod yönetimi ve sürümlerinin ardındaki kavramları göstermektedir.
- Herhangi bir anda, Android platformunun güncel bir son sürümü vardır. Bu genellikle ağaçtaki bir dal şeklini alır.
- Cihaz oluşturucular ve katkıda bulunanlar, hataları düzelterek, yeni cihazları piyasaya sürerek, yeni özellikleri deneyerek vb. mevcut en son sürümle çalışır.
- Buna paralel olarak Google, ürünün ihtiyaçlarına 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 itecek şekilde seçilen amiral gemisi bir cihaz üzerinde bir cihaz ortağıyla birlikte çalışarak geliştiriyoruz.
- n+1. 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
- Sürüm, Android platformunun 1.5 veya 8.1 gibi resmi bir sürümüne karşılık gelir. Platformun bir sürümü,
AndroidManifest.xml
dosyalarınınSdkVersion
alanındaki sürüme karşılık gelir ve kaynak ağaçtakiframeworks/base/api
içinde tanımlanır. - Yukarı akış projesi, Android yığınının kodu ç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ı özerk Android projelerini yukarı akış projeleri olarak çalışacak şekilde taşımaya devam ediyoruz. Genellikle bu projeler tamamen genel ağaçta geliştirilir. Bazı üretime yönelik projelerde, geliştiriciler doğrudan üretime yönelik projeye katkıda bulunur. Ayrıntılar için bkz. Yukarı Akış projeleri . Her iki durumda da anlık görüntüler periyodik olarak sürümlere alınır.
- Her zaman, bir sürüm kod satırı (git'te birden fazla daldan oluşabilir), belirli bir Android platformu sürümü için tek kanonik kaynak kodu olarak kabul edilir. OEM'ler ve cihaz üreten diğer gruplar yalnızca bir sürüm dalından çekmelidir.
- Topluluktan gelen değişiklikleri yakalamak ve böylece istikrara yönelik bir bakış açısıyla yinelenebilmeleri için deneysel kod çizgileri oluşturulmuştur.
- Kararlı olduğu kanıtlanan 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çeve 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 satırları .
- Değişiklikler gerektiği şekilde yukarı akış, sürüm ve deneysel şubelerden Google'ın özel şubesine çekilir.
- Bir sonraki sürüm için platform API'leri stabilize edildiğinde ve tamamen test edildiğinde Google, bir sonraki platform sürümünün (özellikle yeni bir
SdkVersion
) sürümünü yayından kaldırır. Bu, dahili kod satırının halka açık bir yayın dalı haline getirilmesine ve yeni mevcut platform kod satırına karşılık gelir. - Yeni bir platform sürümü kesildiğinde, aynı anda buna karşılık gelen bir deneysel kod çizgisi de oluşturulur.
Özel kod hatları
Yukarıdaki kaynak yönetimi stratejisi, dikkatleri Android'in mevcut herkese açık sürümüne odaklamak için Google'ın gizli tuttuğu bir kod satırı içerir.
OEM'ler ve diğer cihaz üreticileri doğal olarak cihazları Android'in en son sürümüne sahip olarak göndermek istiyor. Benzer şekilde uygulama geliştiricileri de gereğinden fazla platform sürümüyle uğraşmak istemiyor. 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ülkiyet haklarının korunmasını güvence altına alırken özellikleri artırmak için az sayıda amiral gemisi cihaza odaklanmaktadır.
Sonuç olarak, Google sıklıkla üçüncü tarafların gizli bilgilerine sahiptir ve uygun koruma sağlanana kadar hassas özellikleri açıklamaktan kaçınmalıdır. Ayrıca, aynı anda çok fazla platform sürümünün mevcut olması halinde platform için gerçek riskler söz konusudur. Bu nedenlerden dolayı, açık kaynak projesini (üçüncü taraf katkıları dahil) Android'in şu anda herkese açık kararlı sürümüne odaklanacak şekilde yapılandırdık. Platformun bir sonraki sürümündeki derin geliştirme, resmi sürüm olmaya hazır olana kadar özel olarak gerçekleştirilir.
Katkıda bulunanların çoğunun bu yaklaşıma katılmadığının farkındayız ve onların bakış açılarına saygı duyuyoruz. Ancak bu, en iyi yaklaşım olduğunu düşündüğümüz ve Android için uygulamayı seçtiğimiz yaklaşımdır.