Aplikasi Android ditulis dalam bahasa pemrograman Java. Android SDK Tools mengompilasi kode Anda—bersama data dan file sumber daya—menjadi sebuah APK: sebuah paket Android, yang berupa file arsip dengan akhiran .apk. Satu file APK berisi semua materi aplikasi Android dan merupakan file yang digunakan perangkat Android untuk memasang aplikasi.
Setelah dipasang di perangkat, setiap aplikasi Android tinggal di kotak pasir keamanannya sendiri:
- Sistem operasi Android merupakan sistem Linux multi-pengguna yang di dalamnya setiap aplikasi adalah pengguna berbeda.
- Secara default, sistem menetapkan ID pengguna Linux unik kepada setiap aplikasi (ID ini hanya digunakan oleh sistem dan tidak diketahui aplikasi). Sistem menetapkan izin bagi semua file dalam aplikasi sehingga hanya ID pengguna yang diizinkan yang bisa mengaksesnya.
- Setiap proses memiliki mesin virtual (VM) sendiri, sehingga kode aplikasi yang berjalan secara terisolasi dari aplikasi lainnya.
- Secara default, setiap aplikasi berjalan dalam proses Linux-nya sendiri. Android memulai proses bila ada komponen aplikasi yang perlu dijalankan, kemudian mematikan proses bila tidak lagi diperlukan atau bila sistem harus memulihkan memori untuk digunakan aplikasi lain.
Dengan cara ini, sistem Android mengimplementasikan prinsip privilese minim. Ini berarti, secara default aplikasi hanya memiliki akses ke komponen yang diperlukannya untuk melakukan pekerjaannya dan tidak lebih dari itu. Hal ini menghasilkan lingkungan yang sangat aman sehingga aplikasi tidak bisa mengakses bagian sistem bila tidak diberi izin.
Akan tetapi, ada beberapa cara bagi aplikasi untuk berbagi data dengan aplikasi lain dan bagi aplikasi untuk mengakses layanan sistem:
- Dua aplikasi bisa diatur untuk menggunakan ID pengguna Linux yang sama, dalam hal ini keduanya bisa saling mengakses file masing-masing. Untuk menghemat sumber daya sistem, aplikasi dengan ID pengguna yang sama juga bisa diatur agar berjalan dalam proses Linux yang sama dan menggunakan VM yang sama ( aplikasi juga harus ditandatangani dengan sertifikat yang sama).
- Aplikasi bisa meminta izin akses ke data perangkat seperti kontak pengguna, pesan SMS, storage lepas-pasang (kartu SD), kamera, Bluetooth, dan lainnya. Pengguna secara eksplisit harus memberikan izin ini. Untuk informasi selengkapnya, lihat bekerja dengan izin system.
Hal tersebut mencakup dasar-dasar tentang cara aplikasi Android berada di dalam sistem. Bagian dokumen selanjutnya memperkenalkan Anda pada:
- Komponen kerangka kerja inti yang mendefinisikan aplikasi.
- File manifes tempat Anda mendeklarasikan komponen dan fitur yang diperlukan perangkat untuk aplikasi.
- Sumber daya yang terpisah dari kode aplikasi dan memungkinkan aplikasi mengoptimalkan perilakunya untuk beragam konfigurasi perangkat.