Bu belgede, Android Open Source Platform (AOSP) ile ilgili genel soruların yanıtları yer almaktadır.
Açık kaynak sorular
Google, Android kaynak kodunu neden herkese açtı?
Google, mobil uygulama yayınlama deneyimlerimizden yola çıkarak AOSP'yi başlattı. Operatörlerin, OEM'lerin ve geliştiricilerin yenilikçi fikirlerini hayata geçirmek için kullanabilecekleri her zaman açık bir platform olmasını istedik. Ayrıca, tek bir sektör oyuncusunun diğerlerinin yeniliklerini kısıtlayamayacağı veya kontrol edemeyeceği şekilde merkezi bir arıza noktasından kaçınmak istedik. AOSP ile ilgili en önemli hedefimiz, açık kaynaklı Android yazılımının herkesin yararına olacak şekilde olabildiğince geniş kapsamlı ve uyumlu bir şekilde uygulanmasını sağlamaktır.
Android ne tür bir açık kaynak projesidir?
Google, temel AOSP'nin geliştirilmesini denetler ve sağlam geliştirici ve kullanıcı toplulukları oluşturmak için çalışır. Android kaynak kodu, çoğunlukla 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 şekilde benimsenmesini teşvik ettiğini düşündüğümüz için seçtik. Ayrıntılar için Lisanslar başlıklı makaleyi inceleyin.
Neden Android'den Google sorumlu?
Yazılım platformu başlatmak karmaşık bir süreçtir. Açıklık, geliştiricilerin yatırımlarını çekmesi ve eşit şartlarda rekabet ortamı sağlaması nedeniyle bir platformun uzun vadeli başarısı için hayati önem taşır. Platform, aynı zamanda kullanıcılar için 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ı sağlamıştır. Google, Android projesini tam ölçekli bir ürün geliştirme operasyonu olarak ele alır ve Android çalıştıran 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 kaynak projesi olarak canlılığını korumasına yardımcı oluruz. Sonuçta, başarısız bir ürünün kaynak kodunu kim ister?
Hedefimiz, Android'in etrafında başarılı bir ekosistem oluşturmaktır. Android kaynak kodunu, herkesin kendi ihtiyaçlarına göre yazılımı değiştirip dağıtabilmesi için açık kaynak haline getirdik.
Google'ın Android ürün geliştirme konusundaki genel stratejisi nedir?
Rekabetçi bir pazara harika cihazlar sunuyoruz. Ardından, yaptığımız yenilikleri ve geliştirmeleri bir sonraki sürümü olarak temel platforma uygularız.
Pratikte bu, Android mühendislik ekibinin az sayıda "amiral gemisi" cihaza odaklandığı ve bu ürün lansmanlarını desteklemek için Android yazılımının bir 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 bir yol açar. Bu sayede Android platformunun gerçek dünyadaki cihazların ihtiyaçlarına göre geliştiğinden emin oluruz.
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 yeni dal, mevcut kararlı dal sürümü olarak kabul edilir. Bu, üreticilerin cihazlarına taşıdıkları daldır. Bu dal, her zaman yayına uygun olacak şekilde tutulur.
Aynı zamanda, büyük yeni nesil özellikler gibi spekülatif katkıların geliştirildiği mevcut deneysel bir dal da vardır. Hata düzeltmeleri ve diğer katkılar, deneme şubesinden uygun olduğu şekilde mevcut kararlı şubeye dahil edilebilir.
Son olarak Google, bir amiral gemisi cihaz geliştirirken Android platformunun sonraki sürümünü de geliştirir. Bu dal, deneysel ve kararlı dallardaki değişiklikleri uygun şekilde alır.
Dallar ve sürümler hakkında ayrıntılı bilgi için Sürüm yaşam döngüsü bölümünü inceleyin.
Android'in bazı bölümleri neden gizli olarak geliştirilir?
Bir cihazın piyasaya sürülmesi genellikle bir yıldan uzun sürer. Elbette cihaz üreticileri de mümkün olan en güncel yazılımı sunmak ister. Geliştiriciler ise uygulama yazarken platformun yeni sürümlerini sürekli olarak takip etmek istemez. Her iki grup da ürünleri gönderme ve geride kalmamak arasında bir gerginlik yaşıyor.
Bu sorunu gidermek 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ştirilir. 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 odaklanmaktır. Bu sayede geliştiriciler ve OEM'ler, güncel kalmak için henüz tamamlanmamış gelecekteki çalışmaları takip etmek zorunda kalmadan tek bir sürümü kullanabilir. Android sisteminin uygulama uyumluluğuyla ilgili olmayan diğer bölümleri herkese açık olarak geliştirilir. Zaman içinde bu bölümlerin daha fazlasını açık geliştirmeye taşımayı planlıyoruz.
Kaynak kodları ne zaman yayınlanır?
Hazır olduklarında. Kaynak kodunu yayınlamak oldukça karmaşık bir süreçtir. Android'in bazı bölümleri açık olarak geliştirilir ve bu kaynak kodları her zaman kullanılabilir. Diğer parçalar önce özel bir ağaçta geliştirilir ve sonraki platform sürümü hazır olduğunda bu kaynak kod yayınlanır.
Bazı sürümlerde, cihazın yayınlanmasından önce kaynak kodunu yayınlayabilmemiz için temel platform API'leri çok daha önceden hazır olur. Diğer sürümlerde bu mümkün değildir. Platform kaynağını, sürümün kararlı olduğunu düşündüğümüzde ve geliştirme süreci izin verdiğinde her durumda yayınlarız.
Yeni bir Android sürümünün kaynak kodunu yayınlamak ne anlama gelir?
Android platformunun yeni bir sürümünün kaynak kodunu yayınlamak önemli bir süreçtir. Öncelikle yazılım, bir cihazın sistem resmine yerleştirilir ve telefonların dağıtılacağı bölgeler için resmi yasal sertifika da dahil olmak üzere çeşitli sertifika türlerinden geçer. Kod ayrıca operatör testlerinden de geçer. Bu, yazılım hatalarını tespit etmeye 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ı seri olarak üretmeye başlar ve biz de kaynak kodunu yayınlamaya başlarız.
Google ekibi, eş zamanlı olarak seri üretime geçişle birlikte açık kaynak sürümü hazırlamak için çeşitli çalışmalar yapar. Bu çalışmalar arasında, nihai API değişikliklerinin yapılması, belgelerin güncellenmesi (örneğin, yeterlilik testi sırasında yapılan değişiklikleri yansıtması), yeni sürüm için bir SDK hazırlama ve platform uyumluluk bilgilerinin kullanıma sunulması yer alır.
Yasal ekibimiz, kodu açık kaynak olarak yayınlamak için son onayı verir. Açık kaynak katkıda bulunanların, katkılarının fikri mülkiyet sahibi olduklarını onaylayan bir Katkıda Bulunanlar Lisans Sözleşmesi imzalaması gerektiği gibi Google'ın da kaynağın katkıda bulunmaya uygun olduğunu doğrulaması gerekir.
Seri üretimin başladığı andan itibaren yazılım yayınlama süreci genellikle yaklaşık bir ay sürer. Dolayısıyla, kaynak kodu sürümleri de genelde cihazların kullanıcılara ulaştığı neredeyse aynı anda gerçekleşir.
AOSP, Android Uyumluluk Programı ile nasıl ilişkilidir?
AOSP, Android yazılımını korur ve yeni sürümler geliştirir. Açık kaynak olduğundan bu yazılım, aynı kaynağa dayanan diğer cihazlarla uyumlu olmayan cihazlar geliştirmek de dahil olmak üzere herhangi bir amaçla kullanılabilir.
Android Uyumluluk Programı'nın işlevi, Android'in geliştiriciler tarafından yazılmış üçüncü taraf uygulamalarıyla uyumlu olan temel bir Android uygulamasını tanımlamaktır. Android uyumlu cihazlar Google Play dahil olmak üzere Android ekosistemine katılmaya uygundur. Uyumluluk koşullarını karşılamayan cihazlar bu ekosistemin dışındadır.
Diğer bir deyişle, Android Uyumluluk Programı, Android uyumlu cihazları yalnızca kaynak kodun türevlerini çalıştıran cihazlardan ayırma yöntemimizdir. Android kaynak kodunun tüm kullanımlarını memnuniyetle karşılıyoruz ancak Android ekosistemine katılmak için cihazın program tarafından Android uyumlu olarak tanımlanması gerekir.
Android'e nasıl katkıda bulunabilirim?
AOSP'ye hataları bildirebilir, Android için uygulamalar yazabilir veya kaynak koduna katkıda bulunabilirsiniz.
Kabul ettiğimiz kod katkısı türleri sınırlıdır. Örneğin, bir kullanıcı alternatif bir uygulama API'si (ör. tam C++ tabanlı bir ortam) katkıda bulunmak isteyebilir. Android, uygulamaların ART çalışma zamanında çalıştırılmasını teşvik ettiğinden bu katkıyı reddederiz. Benzer şekilde, lisanslama hedeflerimizle uyumlu olmayan GPL veya LGPL kitaplıkları gibi katkıları kabul etmeyeceğiz.
Kaynak kodu katkısında bulunmak isteyenlerin, herhangi bir çalışmaya başlamadan önce Android Topluluğu'nda listelenen kanallar üzerinden bizimle iletişime geçmelerini öneririz. Ayrıntılı bilgi için Katkıda bulunma bölümünü inceleyin.
How do I become an Android committer?
AOSP'de commit yapan kullanıcı kavramı yoktur. Tüm katkılar (Google çalışanları tarafından yazılanlar da dahil), Gerrit olarak bilinen ve Android mühendislik sürecinin bir parçası olan web tabanlı bir sistemden geçer. Bu sistem, kaynak kod katkılarını düzgün bir şekilde yönetmek için Git kaynak kodu yönetim sistemiyle birlikte çalışır.
Belirtilen onaylayan kullanıcının, gönderilen tüm değişiklikleri kabul etmesi gerekir. Onaylayanlar genellikle Google çalışanlarıdır ancak aynı onaylayanlar, kaynağına bakılmaksızın tüm gönderimler için sorumludur.
Ayrıntılar için Yama gönderme başlıklı makaleyi inceleyin.