Bu belge, Android Açık Kaynak Platformu (AOSP) hakkındaki genel soruların yanıtlarını içerir.
Açık kaynak soruları
Google neden Android kaynak kodunu açtı?
Google, mobil uygulamaları başlatırken edindiğimiz deneyimlere yanıt olarak AOSP'yi başlattı. Taşıyıcıların, OEM'lerin ve geliştiricilerin yenilikçi fikirlerini gerçeğe dönüştürmek için kullanabilecekleri açık bir platformun her zaman mevcut olacağından emin olmak istedik. Aynı zamanda herhangi bir merkezi başarısızlık noktasından kaçınmak istedik, böylece hiçbir sektör oyuncusu diğerinin yeniliklerini kısıtlayamaz veya kontrol edemez. AOSP ile en önemli hedefimiz, açık kaynaklı Android yazılımının herkesin yararına olacak şekilde mümkün olduğunca yaygın ve uyumlu bir şekilde uygulanmasını sağlamaktır.
Android nasıl bir açık kaynak projesidir?
Google, temel AOSP'nin gelişimini denetler ve güçlü geliştirici ve kullanıcı toplulukları oluşturmak için çalışır. Çoğunlukla, Android kaynak kodu copyleft lisansı yerine izin veren Apache Lisansı 2.0 kapsamında lisanslanmıştır. Apache 2.0 lisansını seçtik çünkü bunun Android yazılımının yaygın olarak benimsenmesini teşvik ettiğine inanıyoruz. Ayrıntılar için Lisanslar bölümüne bakın.
Google neden Android'den sorumlu?
Bir yazılım platformunun başlatılması karmaşıktır. Açıklık, bir platformun uzun vadeli başarısı için hayati öneme sahiptir çünkü açıklık, geliştiricilerin yatırımını çeker ve eşit bir oyun alanı sağlar. 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ı ayırmıştır. Google, Android projesini tam ölçekli bir ürün geliştirme operasyonu olarak ele alıyor ve Android çalıştıran harika cihazların pazara sunulmasını sağlamak için gerekli iş anlaşmalarını yapıyor.
Android'in kullanıcılar nezdinde başarılı olmasını sağlayarak Android'in bir platform ve açık kaynaklı bir proje olarak canlılığının sağlanmasına yardımcı oluyoruz. Sonuçta, başarısız bir ürünün kaynak kodunu kim ister?
Amacımız Android çevresinde başarılı bir ekosistem oluşturmaktır. Herkesin yazılımı kendi ihtiyaçlarını karşılayacak şekilde değiştirebilmesi ve dağıtabilmesi için Android kaynak kodunu açtık.
Google'ın Android ürün geliştirmeye yönelik genel stratejisi nedir?
Harika cihazları rekabetçi bir pazara sunuyoruz. Daha sonra yaptığımız yenilikleri ve geliştirmeleri bir sonraki versiyon olarak çekirdek platforma dahil ediyoruz.
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 çoğunu karşılıyor ve yeni özelliklerden yararlanan daha fazla cihazı takip eden geniş OEM topluluğu için bir çığır açıyor. 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 (1.5 veya 8.1 gibi) açık kaynak ağacında karşılık gelen bir dalı vardır. En yeni şube, mevcut kararlı şube sürümü olarak kabul edilir. Üreticilerin cihazlarına port ettiği daldır. Bu dal her zaman serbest bırakılmaya uygun halde tutulur.
Eş zamanlı olarak, yeni nesil büyük özellikler gibi spekülatif katkıların geliştirildiği güncel bir deneysel dal da bulunmaktadır. Hata düzeltmeleri ve diğer katkılar uygun şekilde deneysel daldan mevcut kararlı dalına dahil edilebilir.
Son olarak Google, amiral gemisi cihazının geliştirilmesiyle birlikte Android platformunun bir sonraki sürümü üzerinde çalışıyor. Bu dal, değişiklikleri deneysel ve kararlı dallardan uygun şekilde alır.
Kod hatları, dallar ve sürümler hakkında ayrıntılar için bkz. Android yazılım yönetimi .
Android'in bazı bölümleri neden gizli olarak geliştiriliyor?
Bir cihazın pazara sürülmesi genellikle bir yıldan fazla sürer. Ve tabii ki cihaz üreticileri ellerinden geldiğince en yeni yazılımı sunmak istiyor. Bu arada geliştiriciler, uygulama yazarken platformun yeni sürümlerini sürekli takip etmek istemiyor. Her iki grup da ürünleri nakliye etmek ve geride kalmak istememek arasında bir gerilim yaşıyor.
Bu sorunu çözmek için, çekirdek platform API'leri de dahil olmak üzere Android'in bir sonraki sürümünün bazı bölümleri özel bir dalda geliştirildi. Bu API'ler Android'in bir sonraki sürümünü oluşturur. Amacımız, platformun bir sonraki sürümünü oluştururken dikkatleri Android kaynak kodunun mevcut kararlı sürümüne odaklamak. Bu, geliştiricilerin ve OEM'lerin, yalnızca yetişmek için gelecekteki tamamlanmamış işleri takip etmeden tek bir sürümü kullanmalarına olanak tanır. Android sisteminin uygulama uyumluluğuyla ilgili olmayan diğer kısımları açıkta geliştirilir. Zaman içerisinde bu parçaların daha fazlasını açık geliştirmeye taşımayı planlıyoruz.
Kaynak kodu yayınları ne zaman yapılır?
Hazır olduklarında. Kaynak kodunun yayınlanması oldukça karmaşık bir süreçtir. Android'in bazı bölümleri açık olarak geliştirilir ve bu kaynak kodu her zaman mevcuttur. Diğer parçalar ilk önce özel bir ağaçta geliştirilir ve bir sonraki platform sürümü hazır olduğunda bu kaynak kodu yayınlanır.
Bazı sürümlerde, çekirdek platform API'leri, cihazın piyasaya sürülmesinden önce kaynak kodunu erken bir inceleme için yayınlayabilmemiz için yeterince önceden hazırdır. Diğer sürümlerde bu mümkün değildir. Her durumda, sürümün kararlı olduğunu hissettiğimizde ve geliştirme süreci izin verdiğinde platform kaynağını yayınlıyoruz.
Yeni bir Android sürümünün kaynak kodunu yayınlamanın kapsamı nedir?
Android platformunun yeni sürümünün kaynak kodunun yayınlanması önemli bir süreç. İlk olarak yazılım, bir cihazın sistem görüntüsüne yerleştiriliyor ve telefonların konuşlandırılacağı bölgeler için resmi düzenleyici sertifikasyon da dahil olmak üzere çeşitli sertifikasyon formlarından geçiyor. Kod ayrıca operatör testinden de geçer. Bu sürecin önemli bir aşamasıdır çünkü yazılım hatalarının tespit edilmesine yardımcı olur.
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.
Seri üretimle eş zamanlı olarak Google ekibi, açık kaynak sürümünü hazırlamak için çeşitli çalışmalar başlattı. Bu çabalar arasında son API değişikliklerinin yapılması, belgelerin güncellenmesi (örneğin, yeterlilik testi sırasında yapılan değişiklikleri yansıtacak şekilde), yeni sürüm için bir SDK hazırlanması ve platform uyumluluk bilgilerinin başlatılması yer alıyor.
Hukuk ekibimiz, kodu açık kaynağa yayınlamak için son bir onay işlemini gerçekleştirir. Açık kaynak katkıda bulunanların, katkılarının fikri mülkiyet haklarını doğrulayan bir Katkıda Bulunanlar Lisans Sözleşmesini imzalamaları gerektiği gibi, Google'ın da kaynağın katkı yapma iznine sahip olduğunu doğrulaması gerekir.
Seri üretimin başladığı andan itibaren, yazılım sürüm süreci genellikle yaklaşık bir ay sürer, bu nedenle kaynak kodu sürümleri genellikle cihazların kullanıcılara ulaşmasıyla hemen hemen aynı anda gerçekleşir.
AOSP'nin Android Uyumluluk Programı ile ilişkisi nedir?
AOSP, Android yazılımının bakımını yapar ve yeni sürümler geliştirir. Açık kaynak olduğundan bu yazılım, aynı kaynağa dayalı diğer cihazlarla uyumlu olmayan cihazların geliştirilmesi de dahil olmak üzere her türlü amaç için kullanılabilir.
Android Uyumluluk Programının işlevi, geliştiriciler tarafından yazılan üçüncü taraf uygulamalarla uyumlu bir temel Android uygulamasını tanımlamaktır. Android uyumlu cihazlar, Google Play dahil Android ekosistemine katılmaya uygundur; Uyumluluk gereksinimlerini karşılamayan cihazlar bu ekosistemin dışında mevcuttur.
Başka bir deyişle, Android Uyumluluk Programı, Android uyumlu cihazları yalnızca kaynak kodu türevlerini çalıştıran cihazlardan nasıl ayırdığımızdır. Android kaynak kodunun tüm kullanımlarını memnuniyetle karşılıyoruz ancak Android ekosistemine katılmak için bir cihazın program tarafından Android uyumlu olarak tanımlanması gerekir.
Android'e nasıl katkıda bulunabilirim?
Hataları bildirebilir, Android için uygulamalar yazabilir veya AOSP'ye kaynak koduyla katkıda bulunabilirsiniz.
Kabul ettiğimiz kod katkılarının türleri sınırlıdır. Örneğin birisi tam C++ tabanlı ortam gibi alternatif bir uygulama API'sine 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, GPL veya LGPL kitaplıkları gibi lisanslama hedeflerimizle uyumlu olmayan katkıları da kabul etmeyeceğiz.
Kaynak koduna katkıda bulunmak isteyenlerin, herhangi bir çalışmaya başlamadan önce Android Topluluğu'nda listelenen kanallar aracılığıyla bizimle iletişime geçmelerini öneririz. Ayrıntılar için bkz. Katkıda Bulunma.
Nasıl Android işleyicisi olurum?
AOSP'nin gerçekte bir taahhütçü kavramı yoktur. Tüm katkılar (Google çalışanları tarafından yazılanlar dahil), Android mühendislik sürecinin bir parçası olan ve Gerrit olarak bilinen web tabanlı bir sistemden geçer. Bu sistem, kaynak kodu katkılarını temiz bir şekilde yönetmek için Git kaynak kodu yönetim sistemiyle birlikte çalışır.
Atanmış bir onaylayıcının gönderilen tüm değişiklikleri kabul etmesi gerekir. Onaylayanlar genellikle Google çalışanlarıdır ancak menşei ne olursa olsun tüm gönderimlerden aynı onaylayanlar sorumludur.
Ayrıntılar için bkz . Yamaların gönderilmesi .