Manajemen perangkat lunak Android

Proyek Sumber Terbuka Android (AOSP) mengelola 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 menyumbangkan insinyur penuh waktu, manajer produk, perancang antarmuka pengguna, penguji jaminan kualitas, dan semua peran lain yang diperlukan untuk menghadirkan perangkat modern ke pasar.

Oleh karena itu, kami mempertahankan sejumlah baris kode untuk secara jelas memisahkan versi stabil Android saat ini dari pekerjaan eksperimental yang tidak stabil. Kami memasukkan 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 berbentuk cabang di pohon.
  2. Pembuat perangkat dan kontributor bekerja dengan rilis terbaru, 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 sasaran produk. Kami mengembangkan versi Android berikutnya dengan bekerja sama dengan mitra perangkat pada perangkat andalan yang spesifikasinya dipilih untuk mendorong Android ke arah yang kami yakini harus dituju.
  4. Ketika versi n+1 sudah siap, versi tersebut dipublikasikan ke pohon sumber publik dan menjadi rilis terbaru.

Syarat dan peringatan

  • Rilis sesuai dengan versi formal platform Android, seperti 1.5 atau 8.1. Rilis platform sesuai dengan versi di kolom SdkVersion pada file AndroidManifest.xml dan ditentukan dalam frameworks/base/api di pohon sumber.
  • Proyek upstream adalah proyek sumber terbuka tempat tumpukan Android mengambil kodenya. 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 upstream. Umumnya, proyek-proyek ini dikembangkan seluruhnya di pohon publik. Untuk beberapa proyek hulu, pengembang berkontribusi langsung pada proyek hulu. Untuk detailnya, lihat Proyek hulu . Dalam kedua kasus tersebut, snapshot secara berkala ditarik ke dalam rilis.
  • Setiap saat, codeline 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 perubahan tersebut dapat diulangi dengan tujuan menuju stabilitas.
  • Perubahan yang terbukti stabil pada akhirnya ditarik ke dalam cabang rilis. Hal 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 n+1 (versi utama berikutnya dari kerangka kerja dan API platform) dikembangkan oleh Google secara internal. Untuk detailnya, lihat Kode pribadi .
  • Perubahan ditarik dari cabang upstream, rilis, dan eksperimental ke cabang pribadi Google jika diperlukan.
  • Ketika API platform untuk versi berikutnya sudah stabil dan diuji sepenuhnya, Google menghentikan rilis versi platform berikutnya (khususnya, SdkVersion baru). Hal ini sesuai dengan codeline internal yang dijadikan cabang rilis publik dan codeline platform baru saat ini.
  • Ketika versi platform baru dipotong, baris kode eksperimental yang sesuai dibuat pada saat yang bersamaan.

Codeline pribadi

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

OEM dan pembuat perangkat lainnya tentu saja ingin mengirimkan perangkat dengan Android versi terbaru. Demikian pula, pengembang aplikasi tidak ingin berurusan dengan versi platform yang lebih banyak dari yang diperlukan. Sementara itu, Google tetap bertanggung jawab atas arahan strategis Android sebagai platform dan produk. Pendekatan kami berfokus pada sejumlah kecil perangkat andalan 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 mendapatkan perlindungan yang sesuai. Selain itu, terdapat risiko nyata terhadap platform jika terlalu banyak versi platform yang ada pada satu waktu. Karena alasan ini, kami telah menyusun proyek sumber terbuka (termasuk kontribusi pihak ketiga) untuk fokus pada versi Android stabil publik saat ini. Pengembangan mendalam pada versi platform berikutnya dilakukan secara pribadi hingga siap menjadi rilis resmi.

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