Dokumen ini berisi jawaban atas pertanyaan umum tentang Android Open Source Platform (AOSP).
Pertanyaan sumber terbuka
Mengapa Google membuka kode sumber Android?
Google memulai AOSP sebagai tanggapan atas pengalaman kami meluncurkan aplikasi seluler. Kami ingin memastikan akan selalu ada platform terbuka yang tersedia bagi operator, OEM, dan pengembang untuk digunakan dalam mewujudkan ide inovatif mereka. Kami juga ingin menghindari titik pusat kegagalan, sehingga tidak ada satu pun pelaku industri yang dapat membatasi atau mengendalikan inovasi pihak lain. Tujuan terpenting kami dengan AOSP adalah memastikan perangkat lunak Android sumber terbuka diimplementasikan seluas dan sekompatibel mungkin, demi keuntungan semua orang.
Jenis proyek sumber terbuka apa itu Android?
Google mengawasi pengembangan AOSP inti dan berupaya menciptakan komunitas pengembang dan pengguna yang kuat. Untuk sebagian besar, kode sumber Android dilisensikan di bawah Lisensi Apache 2.0 yang permisif, bukan lisensi copyleft . Kami memilih lisensi Apache 2.0 karena kami yakin lisensi ini mendorong adopsi perangkat lunak Android secara luas. Untuk detailnya, lihat Lisensi .
Mengapa Google bertanggung jawab atas Android?
Meluncurkan platform perangkat lunak itu rumit. Keterbukaan sangat penting bagi keberhasilan jangka panjang suatu platform, karena keterbukaan menarik investasi dari pengembang dan memastikan persaingan yang setara. Platform juga harus menjadi produk yang menarik bagi pengguna.
Google telah memberikan sumber daya teknik profesional yang diperlukan untuk memastikan bahwa Android adalah platform perangkat lunak yang sepenuhnya kompetitif. Google memperlakukan proyek Android sebagai operasi pengembangan produk skala penuh dan mencapai kesepakatan bisnis yang diperlukan untuk memastikan perangkat hebat yang menjalankan Android dapat memasuki pasar.
Dengan memastikan Android sukses di mata pengguna, kami membantu memastikan vitalitas Android sebagai platform dan proyek sumber terbuka. Lagi pula, siapa yang menginginkan kode sumber untuk produk yang gagal?
Tujuan kami adalah memastikan ekosistem yang sukses di sekitar Android. Kami membuka kode sumber Android sehingga siapa pun dapat memodifikasi dan mendistribusikan perangkat lunak untuk memenuhi kebutuhan mereka sendiri.
Apa strategi keseluruhan Google untuk pengembangan produk Android?
Kami merilis perangkat hebat ke pasar yang kompetitif. Kami kemudian menggabungkan inovasi dan peningkatan yang kami buat ke dalam platform inti sebagai versi berikutnya.
Dalam praktiknya, hal ini berarti tim teknik Android berfokus pada sejumlah kecil perangkat "unggulan" dan mengembangkan versi perangkat lunak Android berikutnya untuk mendukung peluncuran produk tersebut. Perangkat andalan ini menyerap sebagian besar risiko produk dan membuka jalan bagi komunitas OEM secara luas, yang menindaklanjuti dengan lebih banyak perangkat yang memanfaatkan fitur-fitur baru. Dengan cara ini, kami memastikan bahwa platform Android berkembang sesuai dengan kebutuhan perangkat di dunia nyata.
Bagaimana perangkat lunak Android dikembangkan?
Setiap versi platform Android (seperti 1.5 atau 8.1) memiliki cabang terkait di pohon sumber terbuka. Cabang terbaru dianggap sebagai versi cabang stabil saat ini . Ini adalah cabang yang di-porting oleh produsen ke perangkat mereka. Cabang ini tetap cocok untuk dirilis setiap saat.
Pada saat yang sama, ada cabang eksperimental saat ini , yang merupakan tempat pengembangan kontribusi spekulatif, seperti fitur-fitur besar generasi berikutnya. Perbaikan bug dan kontribusi lainnya dapat dimasukkan dalam cabang stabil saat ini dari cabang eksperimental jika diperlukan.
Terakhir, Google sedang mengerjakan platform Android versi berikutnya bersamaan dengan pengembangan perangkat andalan. Cabang ini mengambil perubahan dari cabang eksperimental dan stabil jika diperlukan.
Untuk detail tentang codeline, cabang, dan rilis, lihat Pengelolaan perangkat lunak Android .
Mengapa sebagian Android dikembangkan secara pribadi?
Biasanya diperlukan waktu lebih dari satu tahun untuk membawa perangkat ke pasar. Dan, tentu saja, produsen perangkat ingin mengirimkan perangkat lunak terbaru yang mereka bisa. Sementara itu, pengembang tidak ingin terus-menerus melacak versi platform baru saat menulis aplikasi. Kedua kelompok mengalami ketegangan antara pengiriman produk dan tidak ingin ketinggalan.
Untuk mengatasi hal ini, beberapa bagian dari versi Android berikutnya termasuk API platform inti dikembangkan di cabang swasta. API ini merupakan versi Android berikutnya. Tujuan kami adalah memusatkan perhatian pada versi stabil kode sumber Android saat ini sementara kami membuat versi platform berikutnya. Hal ini memungkinkan pengembang dan OEM untuk menggunakan satu versi tanpa melacak pekerjaan yang belum selesai di masa depan hanya untuk mengimbanginya. Bagian lain dari sistem Android yang tidak terkait dengan kompatibilitas aplikasi dikembangkan secara terbuka. Kami bermaksud untuk memindahkan lebih banyak bagian ini untuk membuka pengembangan seiring berjalannya waktu.
Kapan rilis kode sumber dilakukan?
Saat mereka siap. Melepaskan kode sumber adalah proses yang cukup rumit. Beberapa bagian Android dikembangkan secara terbuka, dan kode sumbernya selalu tersedia. Bagian lain dikembangkan terlebih dahulu di pohon pribadi, dan kode sumber tersebut dirilis ketika versi platform berikutnya sudah siap.
Dalam beberapa rilis, API platform inti sudah siap jauh sebelumnya sehingga kami dapat mengeluarkan kode sumber untuk tampilan awal sebelum perangkat dirilis. Dalam rilis lain, hal ini tidak mungkin dilakukan. Dalam semua kasus, kami merilis sumber platform ketika kami merasa bahwa versinya stabil, dan ketika proses pengembangan memungkinkan.
Apa saja yang terlibat dalam merilis kode sumber untuk versi Android baru?
Merilis kode sumber untuk platform Android versi baru adalah proses yang signifikan. Pertama, perangkat lunak tersebut dibangun ke dalam citra sistem suatu perangkat dan melalui berbagai bentuk sertifikasi, termasuk sertifikasi peraturan pemerintah di wilayah di mana ponsel tersebut akan digunakan. Kode ini juga melalui pengujian operator. Ini adalah fase proses yang penting, karena membantu mendeteksi bug perangkat lunak.
Ketika rilis tersebut disetujui oleh regulator dan operator, pabrikan mulai memproduksi perangkat secara massal, dan kami mulai merilis kode sumbernya.
Bersamaan dengan produksi massal, tim Google memulai beberapa upaya untuk mempersiapkan rilis sumber terbuka. Upaya ini termasuk melakukan perubahan API final, memperbarui dokumentasi (misalnya, untuk mencerminkan modifikasi apa pun yang dilakukan selama pengujian kualifikasi), menyiapkan SDK untuk versi baru, dan meluncurkan informasi kompatibilitas platform.
Tim hukum kami melakukan persetujuan akhir untuk merilis kode tersebut ke sumber terbuka. Sama seperti kontributor sumber terbuka yang diwajibkan menandatangani Perjanjian Lisensi Kontributor yang membuktikan kepemilikan kekayaan intelektual atas kontribusinya, Google harus memverifikasi bahwa sumber tersebut memiliki izin untuk memberikan kontribusi.
Sejak produksi massal dimulai, proses rilis perangkat lunak biasanya memakan waktu sekitar satu bulan, sehingga rilis kode sumber sering kali terjadi pada waktu yang hampir bersamaan saat perangkat menjangkau pengguna.
Apa hubungan AOSP dengan Program Kompatibilitas Android?
AOSP memelihara perangkat lunak Android, dan mengembangkan versi baru. Karena bersifat open-source, software ini dapat digunakan untuk tujuan apa pun, termasuk mengembangkan perangkat yang tidak kompatibel dengan perangkat lain berdasarkan sumber yang sama.
Fungsi Program Kompatibilitas Android adalah untuk menentukan implementasi dasar Android yang kompatibel dengan aplikasi pihak ketiga yang ditulis oleh pengembang. Perangkat yang kompatibel dengan Android berhak berpartisipasi dalam ekosistem Android, termasuk Google Play; perangkat yang tidak memenuhi persyaratan kompatibilitas ada di luar ekosistem tersebut.
Dengan kata lain, Program Kompatibilitas Android adalah cara kami memisahkan perangkat yang kompatibel dengan Android dari perangkat yang hanya menjalankan turunan kode sumbernya. Kami menyambut baik semua penggunaan kode sumber Android, namun untuk berpartisipasi dalam ekosistem Android, perangkat harus diidentifikasi kompatibel dengan Android oleh program.
Bagaimana saya bisa berkontribusi ke Android?
Anda dapat melaporkan bug, menulis aplikasi untuk Android, atau menyumbangkan kode sumber ke AOSP.
Ada batasan pada jenis kontribusi kode yang kami terima. Misalnya, seseorang mungkin ingin menyumbangkan API aplikasi alternatif, seperti lingkungan berbasis C++ lengkap. Kami akan menolak kontribusi tersebut, karena Android mendorong aplikasi untuk dijalankan dalam runtime ART. Demikian pula, kami tidak akan menerima kontribusi seperti perpustakaan GPL atau LGPL yang tidak sesuai dengan tujuan lisensi kami.
Kami mendorong mereka yang tertarik untuk menyumbangkan kode sumber untuk menghubungi kami melalui saluran yang terdaftar di Komunitas Android sebelum memulai pekerjaan apa pun. Untuk detailnya, lihat Berkontribusi .
Bagaimana cara menjadi pelaku Android?
AOSP tidak benar-benar memiliki gagasan tentang committer. Semua kontribusi (termasuk yang dibuat oleh karyawan Google) melalui sistem berbasis web yang dikenal sebagai Gerrit yang merupakan bagian dari proses rekayasa Android. Sistem ini bekerja sama dengan sistem manajemen kode sumber Git untuk mengelola kontribusi kode sumber dengan rapi.
Pemberi persetujuan yang ditunjuk harus menerima semua perubahan yang diajukan. Pemberi persetujuan biasanya adalah karyawan Google, namun pemberi persetujuan yang sama bertanggung jawab atas semua pengajuan, terlepas dari asal usulnya.
Untuk detailnya, lihat Mengirimkan patch .