Manajemen Perangkat Lunak Android

Android Open Source Project (AOSP) memelihara tumpukan perangkat lunak lengkap untuk di-porting oleh OEM dan pelaksana perangkat lain dan dijalankan pada perangkat keras mereka sendiri. Untuk menjaga kualitas Android, Google telah memberikan kontribusi penuh waktu insinyur, manajer produk, desainer antarmuka pengguna, penguji jaminan kualitas, dan semua peran lain yang diperlukan untuk membawa perangkat modern ke pasar.

Oleh karena itu, kami mempertahankan sejumlah codeline untuk memisahkan dengan jelas versi stabil Android saat ini dari pekerjaan eksperimental yang tidak stabil. Kami meluncurkan administrasi open source dan pemeliharaan codeline Android ke dalam siklus pengembangan produk yang lebih besar.

Manajemen kode AOSP

Bagan di bawah ini menggambarkan konsep di balik manajemen dan rilis kode AOSP.

diagram garis kode
Gambar 1. Kode dan rilis AOSP
  1. Pada saat tertentu, ada rilis terbaru dari platform Android. Ini biasanya mengambil bentuk cabang di pohon.
  2. Pembuat perangkat dan kontributor bekerja dengan rilis terbaru saat ini, memperbaiki bug, meluncurkan perangkat baru, bereksperimen dengan fitur baru, dan sebagainya.
  3. Secara paralel, Google bekerja secara internal pada platform dan kerangka kerja Android versi berikutnya sesuai dengan kebutuhan dan tujuan produk. Kami mengembangkan versi Android berikutnya dengan bekerja sama dengan mitra perangkat pada perangkat unggulan yang spesifikasinya dipilih untuk mendorong Android ke arah yang kami yakini harus dituju.
  4. Ketika versi ke-n+1 sudah siap, itu dipublikasikan ke pohon sumber publik dan menjadi rilis terbaru yang baru.

Persyaratan dan peringatan

  • Rilis sesuai dengan versi formal platform Android, seperti 1.5 atau 8.1. Rilis platform sesuai dengan versi di bidang SdkVersion dari file AndroidManifest.xml dan didefinisikan dalam frameworks/base/api di pohon sumber.
  • Proyek upstream adalah proyek sumber terbuka tempat tumpukan Android mengambil kode. Selain proyek seperti kernel Linux dan WebKit, kami terus memigrasikan beberapa proyek Android semi-otonom seperti ART, alat Android SDK, dan Bionic agar berfungsi sebagai proyek hulu. Umumnya, proyek-proyek ini dikembangkan sepenuhnya di pohon publik. Untuk beberapa proyek hulu, pengembang berkontribusi langsung ke proyek hulu. Untuk detailnya, lihat Proyek hulu . Dalam kedua kasus, snapshot secara berkala ditarik ke dalam rilis.
  • Setiap saat, baris kode rilis (yang mungkin terdiri dari lebih dari satu cabang di git) dianggap sebagai satu-satunya kode sumber kanonik untuk versi platform Android tertentu. OEM dan perangkat pembuat grup lainnya harus menarik hanya dari cabang rilis.
  • Codeline eksperimental dibuat untuk menangkap perubahan dari komunitas sehingga dapat diulang dengan memperhatikan stabilitas.
  • Perubahan yang terbukti stabil akhirnya ditarik ke cabang rilis. Ini hanya berlaku untuk perbaikan bug, peningkatan aplikasi, dan perubahan lain yang tidak memengaruhi API platform.
  • Perubahan ditarik ke cabang rilis dari proyek upstream (termasuk proyek upstream Android) jika diperlukan.
  • Versi ke-n+1 (versi utama berikutnya dari kerangka kerja dan platform API) dikembangkan oleh Google secara internal. Untuk detailnya, lihat Kode baris pribadi .
  • Perubahan ditarik dari cabang hulu, rilis, dan eksperimental ke cabang pribadi Google jika diperlukan.
  • Ketika API platform untuk versi berikutnya distabilkan dan diuji sepenuhnya, Google menghentikan rilis versi platform berikutnya (khususnya, SdkVersion baru). Ini sesuai dengan codeline internal yang dibuat sebagai cabang rilis publik dan codeline platform baru saat ini.
  • Ketika versi platform baru dipotong, codeline eksperimental yang sesuai dibuat pada saat yang sama.

Codeline pribadi

Strategi pengelolaan sumber di atas mencakup codeline yang dirahasiakan oleh Google untuk memusatkan perhatian pada Android versi publik saat ini.

OEM dan pembuat perangkat lainnya tentu ingin mengirimkan perangkat dengan versi Android terbaru. Demikian pula, pengembang aplikasi tidak ingin berurusan dengan lebih banyak versi platform daripada yang diperlukan. Sementara itu, Google tetap bertanggung jawab atas arah strategis Android sebagai platform dan produk. Pendekatan kami berfokus pada sejumlah kecil perangkat unggulan untuk mendorong fitur sekaligus mengamankan perlindungan kekayaan intelektual terkait Android.

Akibatnya, Google sering kali memiliki informasi rahasia dari pihak ketiga dan harus menahan diri untuk tidak mengungkapkan fitur sensitif hingga mengamankan perlindungan yang sesuai. Selain itu, ada risiko nyata pada platform jika terlalu banyak versi platform yang ada pada satu waktu. Untuk alasan ini, kami telah menyusun proyek sumber terbuka (termasuk kontribusi pihak ketiga) untuk fokus pada versi stabil publik Android saat ini. Pengembangan mendalam pada versi platform berikutnya terjadi secara pribadi hingga siap untuk menjadi rilis resmi.

Kami menyadari bahwa banyak kontributor tidak setuju dengan pendekatan ini dan kami menghormati sudut pandang mereka. Namun, ini adalah pendekatan yang kami rasa terbaik dan yang kami pilih untuk diterapkan di Android.