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ı tutar. 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ışmadan açıkça ayırmak için bir dizi kod çizgisi tutuyoruz. Android kod satırlarının açık kaynak yönetimini ve bakımını daha büyük ürün geliştirme döngüsüne aktarıyoruz.
AOSP kod yönetimi
Aşağıdaki tablo, AOSP kod yönetimi ve sürümlerinin ardındaki kavramları göstermektedir.
![kod çizgisi diyagramı](https://source.android.google.cn/static/images/code-lines.png?hl=tr)
- Herhangi bir anda, Android platformunun güncel bir son sürümü vardır. Bu genellikle ağaçta bir dal şeklini alır.
- Cihaz üreticileri ve katkıda bulunanlar, mevcut en son sürümle çalışır, hataları düzeltir, yeni cihazlar başlatır, yeni özelliklerle denemeler yapar, vb.
- 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ü, bir cihaz ortağıyla birlikte çalışarak, özellikleri Android'i gitmesi gerektiğine inandığımız yöne itmek için seçilen bir amiral gemisi cihazda 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 ve kaynak ağaçtaframeworks/base/api
içinde tanımlanan sürüme karşılık gelir. - Yukarı akış projesi, Android yığınının kod aldığı 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ışmaya devam ediyoruz. Genellikle, bu projeler tamamen kamu ağacında geliştirilir. Bazı yukarı akış projeleri için geliştiriciler doğrudan yukarı akış projesine katkıda bulunur. Ayrıntılar için, yukarı akış projeleri bölümüne bakın. Her iki durumda da anlık görüntüler periyodik olarak yayınlara alınır.
- Her zaman, bir sürüm kod satırı (git'te birden fazla daldan oluşabilir), belirli bir Android platform sürümü için tek kurallı kaynak kodu olarak kabul edilir. OEM'ler ve diğer gruplar oluşturan aygıtlar yalnızca bir yayın dalından çekmelidir.
- Topluluktan gelen değişiklikleri yakalamak için deneysel kod çizgileri oluşturulur, böylece kararlılık göz önünde bulundurularak yinelenebilirler.
- Kararlı olduğunu kanıtlayan değişiklikler sonunda bir yayın 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 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 dallardan Google'ın özel şubesine alınır.
- Bir sonraki sürüm için platform API'leri kararlı hale getirildiğinde ve tam olarak test edildiğinde, Google bir sonraki platform sürümünün (özellikle yeni bir
SdkVersion
) yayınını keser. Bu, dahili kod çizgisinin halka açık bir şube haline getirilmesine ve yeni mevcut platform kod çizgisine karşılık gelir. - Yeni bir platform versiyonu kesildiğinde, aynı anda karşılık gelen bir deneysel kod çizgisi oluşturulur.
Özel kod hatları
Yukarıdaki kaynak yönetimi stratejisi, dikkati Android'in mevcut genel 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 Android'in en son sürümüne sahip cihazları göndermek ister. Benzer şekilde, uygulama geliştiricileri gereğinden 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ı güvence altına alırken özellikleri yönlendirmek için az sayıda amiral gemisi cihaza odaklanır.
Sonuç olarak, Google sıklıkla üçüncü taraflardan gizli bilgilere sahiptir ve uygun korumaları sağlayana kadar hassas özellikleri ifşa etmekten kaçınmalıdır. Ayrıca, aynı anda ç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 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ı biliyoruz ve onların bakış açılarına saygı duyuyoruz. Ancak, en iyi olduğunu düşündüğümüz ve Android için uygulamayı seçtiğimiz yaklaşım budur.