Bu belgede, Android Açık Kaynak Platformu (AOSP) ile ilgili genel soruların yanıtları yer almaktadır.
About android-latest-release
Neden aosp-main'e gönderemiyorum?
aosp-main
artık salt okunur olduğundan bu dala gönderim yapamazsınız.
AOSP'de değişiklik önermek için nereye başvurmalıyım?
android-latest-release
(Repo kullanılırken) veya android-latest-release
manifest dosyasında belirtilen en son yayın dalında (doğrudan Git kullanılırken) yeni değişiklikler önermelisiniz. Diğer dallardaki mevcut önerilen değişikliklerin (ör. aosp-main
) taşınması gerekmez.
Hangi şubeyle senkronize etmeliyim?
Repo'yu kullanırken aşağıdaki komutu kullanarak
android-latest-release
ile senkronize edin:repo init --partial-clone --no-use-superproject -b android-latest-release -u https://android.googlesource.com/platform/manifest
Git'i doğrudan kullanırken
android-latest-release
manifest dosyasında belirtilen varsayılan düzeltme dalıyla senkronize edin.
Dalları senkronize etme hakkında daha fazla bilgi için Repo istemcisini başlatma başlıklı makaleyi inceleyin.
android-latest-release'teki kod, aosp-main ile birleştirilecek mi?
Hayır, kod 27 Mart 2025 itibarıyla salt okunur bir dal olan aosp-main
ile birleştirilmez.
Bir sonraki sürümün kodu nereye gönderilir?
Google, bir sonraki sürümün kodunu en son herkese açık sürüm dalına gönderir
ve android-latest-release
manifest dosyasını bu dala yönlendirecek şekilde günceller.
Değişiklik isteğim, android-latest-release dalından dahili Gerrit'e seçilerek mi alınacak?
Önerilen bir değişikliği yükledikten sonra Google bu değişikliği inceler ve kabul ederse dahili Gerrit'e ekler.
Değişiklik isteğimin kabul edilip edilmediğini nasıl anlarım?
Kabul edilen ve özenle seçilen değişiklikler, Android ana makinesindeki bir yayın dalına gelecekteki bir göndermede görünür ve android-latest-release
kullanılarak repo ile senkronize edilebilir.
Önerilen bir değişiklik kabul edildiğinde veya reddedildiğinde bildirim gönderilmez.
Harici bir katkıda bulunan tarafından değişiklik önerildiğinde başlayan ve bu değişikliğin en son sürüm dalıyla birleştirildiği zamana kadar devam eden genel iş akışı nasıldır?
Harici bir katkıda bulunan,
android-latest-release
(Repo kullanılırken) veyaandroid-latest-release
manifest dosyasında belirtilen en son yayın dalında (doğrudan Git kullanılırken) değişiklik önerir.Google, değişikliği inceler. Değişiklik:
Kabul edilen değişiklikler, Google tarafından seçilerek dahili geliştirme dalıyla birleştirilir.
Kabul edilmedi. Google, değişikliği seçerek kabul etmez.
Harici katkıda bulunan, değişikliğinin
android-latest-release
içinde olup olmadığını kontrol eder.
Önerdiğim değişikliğe artık ihtiyacım yoksa ne olur?
Önerdiğiniz değişikliğe artık ihtiyacınız yoksa, değişikliğin birleştirilmesini istemiyorsanız veya Google'ın değişikliği zaten incelediğini biliyorsanız değişikliği iptal edin. Böylece değişiklik, Android ana makinesindeki önerilen değişiklik geçmişinde kalır.
Açık kaynakla ilgili sorular
Google, Android kaynak kodunu neden açtı?
Google, mobil uygulamaları kullanıma sunma deneyimlerimizden yola çıkarak AOSP'yi başlattı. Operatörlerin, OEM'lerin ve geliştiricilerin yenilikçi fikirlerini hayata geçirmek için kullanabileceği açık bir platformun her zaman olmasını istedik. Ayrıca, tek bir sektör oyuncusunun diğerlerinin yeniliklerini kısıtlayamayacağı veya kontrol edemeyeceği şekilde merkezi bir hata noktasını önlemek istedik. AOSP ile ilgili en önemli hedefimiz, açık kaynaklı Android yazılımının herkesin yararına olacak şekilde mümkün olduğunca geniş ve uyumlu bir şekilde uygulanmasını sağlamaktır.
Android nasıl bir açık kaynak projesidir?
Google, temel AOSP'nin geliştirilmesini denetler ve güçlü geliştirici ve kullanıcı toplulukları oluşturmak için çalışır. Android kaynak kodu, büyük ölçüde copyleft lisansı yerine izin verici Apache Lisansı 2.0 ile lisanslanmıştır. Apache 2.0 lisansını, Android yazılımının yaygın olarak kullanılmasını teşvik ettiğine inandığımız için seçtik. Ayrıntılar için Lisanslar başlıklı makaleyi inceleyin.
Android'in sorumluluğu neden Google'a ait?
Yazılım platformu başlatmak karmaşık bir süreçtir. Açıklık, bir platformun uzun vadeli başarısı için hayati öneme sahiptir. Çünkü açıklık, geliştiricilerden yatırım çekerek eşit şartlarda rekabet ortamı sağlar. Platform, kullanıcılar için de ilgi çekici bir ürün olmalıdır.
Google, Android'in tamamen rekabetçi bir yazılım platformu olmasını sağlamak için gerekli profesyonel mühendislik kaynaklarını kullanmayı taahhüt etmiştir. Google, Android projesini tam ölçekli bir ürün geliştirme operasyonu olarak ele alır ve Android'in çalıştığı harika cihazların piyasaya sürülmesini sağlamak için gerekli iş anlaşmalarını yapar.
Android'in kullanıcılar arasında başarılı olmasını sağlayarak Android'in hem platform hem de açık kaynaklı proje olarak canlılığını korumasına yardımcı oluyoruz. Sonuçta, başarısız bir ürünün kaynak kodunu kim ister ki?
Amacımız, Android etrafında başarılı bir ekosistem oluşturmaktır. Android kaynak kodunu, herkesin yazılımı kendi ihtiyaçlarına göre değiştirebilmesi ve dağıtabilmesi için açtık.
Google'ın Android ürün geliştirme konusundaki genel stratejisi nedir?
Rekabetçi bir pazarda harika cihazlar piyasaya sürüyoruz. Ardından, yaptığımız yenilikleri ve geliştirmeleri bir sonraki sürüm olarak temel platforma dahil ederiz.
Bu durum, Android mühendislik ekibinin uygulamada az sayıda "amiral gemisi" cihaza odaklandığı ve bu ürün lansmanlarını desteklemek için Android yazılımının sonraki sürümünü geliştirdiği anlamına gelir. Bu amiral gemisi cihazlar, ürün riskinin büyük bir kısmını üstlenir ve yeni özelliklerden yararlanan daha fazla cihazla takip eden geniş OEM topluluğu için yol gösterici olur. Bu sayede, Android platformunun gerçek dünyadaki cihazların ihtiyaçlarına göre gelişmesini sağlıyoruz.
Android yazılımı nasıl geliştirilir?
Android'in her platform sürümünün (ör. 1.5 veya 8.1) açık kaynak ağacında karşılık gelen bir dalı vardır. En son dal, android-latest-release
manifest dosyasının işaret ettiği mevcut kararlı dal sürümü olarak kabul edilir.
Bu, üreticilerin cihazlarına taşıdığı daldır. Bu dal, her zaman yayınlanmaya uygun tutulur.
Son olarak, Google, amiral gemisi bir cihaz geliştirmenin yanı sıra Android platformunun bir sonraki sürümü üzerinde de çalışır.
Android'in bazı bölümleri neden özel olarak geliştiriliyor?
Bir cihazın piyasaya sürülmesi genellikle bir yıldan uzun sürer. Elbette cihaz üreticileri de mümkün olan en yeni yazılımı göndermek ister. Ayrıca geliştiriciler, uygulama yazarken platformun yeni sürümlerini sürekli olarak takip etmek istemez. Her iki grup da ürün gönderme ve geride kalmama arasında bir gerilim yaşıyor.
Bu sorunu çözmek için temel platform API'leri de dahil olmak üzere Android'in sonraki sürümünün bazı bölümleri özel bir dalda geliştiriliyor. Bu API'ler, Android'in sonraki sürümünü oluşturur. Amacımız, platformun bir sonraki sürümünü oluştururken Android kaynak kodunun mevcut kararlı sürümüne dikkat çekmektir. Bu sayede geliştiriciler ve OEM'ler, yalnızca güncel kalmak için gelecekteki bitmemiş çalışmaları takip etmek zorunda kalmadan tek bir sürümü kullanabilir.
Kaynak kodu yayınları ne zaman yapılır?
Hazır olduğunda. Kaynak kodun yayınlanması oldukça karmaşık bir süreçtir. Android'in çekirdek gibi bazı bölümleri açık olarak geliştirilir ve kaynak kodu her zaman kullanılabilir. Diğer bölümler önce özel bir ağaçta geliştirilir ve bu kaynak kodu, bir sonraki platform sürümü hazır olduğunda yayınlanır.
Bazı sürümlerde, temel platform API'leri yeterince önceden hazır olur. Böylece, cihazın piyasaya sürülmesinden önce kaynak kodunu erken inceleme için gönderebiliriz. Diğer sürümlerde bu mümkün değildir. Her durumda, sürümün kararlı olduğunu düşündüğümüzde ve geliştirme süreci izin verdiğinde platform kaynağını yayınlarız.
Yeni bir Android sürümünün kaynak kodunu yayınlama süreci nasıldır?
Android platformunun yeni bir sürümünün kaynak kodunu yayınlamak önemli bir süreçtir. Öncelikle yazılım, cihaz için bir sistem görüntüsüne yerleştirilir ve telefonların dağıtılacağı bölgelerdeki devlet düzenleyici sertifikası da dahil olmak üzere çeşitli sertifikasyonlardan geçirilir. Kod, operatör testinden de geçer. Bu, yazılım hatalarının tespit edilmesine yardımcı olduğu için sürecin önemli bir aşamasıdır.
Sürüm, düzenleyiciler ve operatörler tarafından onaylandığında üretici, cihazların seri üretimine başlar ve biz de kaynak kodunu yayınlamaya başlarız.
Google ekibi, seri üretimle eş zamanlı olarak açık kaynaklı sürümü hazırlamak için çeşitli çalışmalar başlatır. Bu çalışmalar arasında son API değişikliklerini yapma, dokümanları güncelleme (örneğin, yeterlilik testi sırasında yapılan değişiklikleri yansıtacak şekilde), yeni sürüm için SDK hazırlama ve platform uyumluluğu bilgilerini kullanıma sunma yer alır.
Yasal ekibimiz, kodu açık kaynakta yayınlamak için son onayı verir. Açık kaynak katkıda bulunanların, katkılarının fikri mülkiyet sahipliğini onaylayan bir Katkıda Bulunanlar Lisans Sözleşmesi imzalaması gerektiği gibi Google da kaynağın katkıda bulunmaya uygun olduğunu doğrulamalıdır.
Toplu üretim başladıktan sonra yazılım yayınlama süreci genellikle yaklaşık bir ay sürer. Bu nedenle, kaynak kodu yayınları genellikle cihazların kullanıcılara ulaştığı zamanlarda gerçekleşir.
AOSP ile Android Uyumluluk Programı arasındaki ilişki nedir?
AOSP, Android yazılımını korur ve yeni sürümler geliştirir. Açık kaynaklı olduğundan bu yazılım, aynı kaynağa dayalı diğer cihazlarla uyumlu olmayan cihazlar geliştirmek de dahil olmak üzere her amaç için kullanılabilir.
Android Uyumluluk Programı'nın işlevi, geliştiriciler tarafından yazılan üçüncü taraf uygulamalarıyla uyumlu olan Android'in temel bir uygulamasını tanımlamaktır. Android ile uyumlu cihazlar, Google Play dahil olmak üzere Android ekosistemine katılabilir. Uyumluluk koşullarını karşılamayan cihazlar ise bu ekosistemin dışında kalır.
Başka bir deyişle, Android Uyumluluk Programı, Android ile uyumlu cihazları kaynak kodun türevlerini çalıştıran cihazlardan ayırmamızı sağlar. Android kaynak kodunun tüm kullanımlarını memnuniyetle karşılıyoruz. Ancak bir cihazın Android ekosistemine katılabilmesi için program tarafından Android ile uyumlu olarak tanımlanması gerekir.
Android'e nasıl katkıda bulunabilirim?
Hataları bildirebilir, Android için uygulamalar yazabilir veya AOSP'ye kaynak kodu katkısında bulunabilirsiniz.
Kabul ettiğimiz kod katkılarıyla ilgili sınırlamalar vardır. Örneğin, bir kullanıcı alternatif bir uygulama API'si (ör. C++ tabanlı tam bir ortam) katkısında bulunmak isteyebilir. Android, uygulamaların ART çalışma zamanında çalıştırılmasını teşvik ettiğinden bu katkıyı reddederiz. Aynı şekilde, lisanslama hedeflerimizle uyumlu olmayan GPL veya LGPL kitaplıkları gibi katkılar da kabul edilmez.
Kaynak kodu katkısında bulunmak isteyenlerin, çalışmaya başlamadan önce Android Topluluğu'nda listelenen kanallar aracılığıyla bizimle iletişime geçmesini öneririz. Ayrıntılar için Katkıda bulunma başlıklı makaleyi inceleyin.
Nasıl Android committer'ı olurum?
AOSP'de aslında bir committer kavramı yoktur. Tüm katkılar (Google çalışanları tarafından yazılanlar dahil), Android mühendislik sürecinin bir parçası olan Gerrit adlı web tabanlı bir sistemden geçer. Bu sistem, kaynak kodu katkılarını sorunsuz bir şekilde yönetmek için Git kaynak kodu yönetim sistemiyle birlikte çalışır.
Belirlenen bir onaylayanın, önerilen tüm değişiklikleri inceleyip kabul etmesi gerekir. Onaylayanlar genellikle Google çalışanlarıdır ancak kaynağına bakılmaksızın tüm gönderimlerden aynı onaylayanlar sorumludur.
Ayrıntılar için Yama gönderme başlıklı makaleyi inceleyin.