Android
dibangun dengan menggunakan asas object oriented, dimana elemen-elemen
penyusun sistem operasinya berupa objek yang dapat kita gunakan
kembali/reusable. Agar bisa membuat aplikasi dengan baik, tentunya kita harus
mengetahui arsitektur OS Android beserta elemen elemennya. Google sebagai
pencipta Android yang kemudian diasuh oleh Open Handset Alliance mengibaratkan
Android sebagai sebuah tumpukan software. Setiap lapisan dari tumpukan ini
menghimpun beberapa program yang mendukung fungsi-fungsi spesifik dari sistem
operasi. . Secara garis besar arsitektur android terdiri dari beberapa
layer komponen, yaitu:
- Linux Kernel. Android dibangun di atas kernel Linux 2.6. Namun secara keseluruhan android bukanlah linux, karena dalam android tidak terdapat paket standar yang dimiliki oleh linux lainnya. Linux merupakan sistem operasi terbuka yang handal dalam manajemen memori dan proses. Oleh karenanya pada android hanya terdapat beberapa servis yang diperlukan seperti keamanan, manajemen memori, manajemen proses, jaringan dan driver. Kernel linux menyediakan driver layar, kamera, keypad, WiFi, Flash Memory, audio, dan IPC (Interprocess Communication) untuk mengatur aplikasi dan lubang keamanan.
- Libraries. Android menggunakan beberapa paket pustaka yang terdapat pada C/C++ dengan standar Berkeley Software Distribution (BSD) hanya setengah dari yang aslinya untuk tertanam pada kernel Linux. Beberapa pustaka diantaranya : Media Library untuk memutar dan merekam berbagai macam format audio dan video, Surface Manager untuk mengatur hak akses layer dari berbagai aplikasi, Graphic Library termasuk didalamnya SGL dan OpenGL, untuk tampilan 2D dan 3D, SQLite untuk mengatur relasi database yang digunakan pada aplikasi, SSl dan WebKit untuk browser dan keamanan internet.
- Android Runtime. Pada android tertanam paket pustaka inti yang menyediakan sebagian besar fungsi android. Inilah yang membedakan Android dibandingkan dengan sistem operasi lain yang juga mengimplementasikan Linux. Android Runtime merupakan mesin virtual yang membuat aplikasi android menjadi lebih tangguh dengan paket pustaka yang telah ada. Dalam Android Runtime terdapat 2 bagian utama, diantaranya : Application Framework. Kerangka aplikasi menyediakan kelas-kelas yang dapat digunakan untuk mengembangkan aplikasi android. Selain itu, juga menyediakan abstraksi generik untuk mengakses perangkat, serta mengatur tampilan user interface dan sumber daya aplikasi. Bagian terpenting dalam kerangka aplikasi android adalah sebagai berikut [Hello Android 2nd Edition] Activity Manager, berfungsi untuk mengontrol siklus hidup aplikasi dan menjaga keadaan ”Backstack“ untuk navigasi penggunaan, Content Providers, berfungsi untuk merangkum data yang memungkinkan digunakan oleh aplikasi lainnya, seperti daftar nama. Resuource Manager, untuk mengatur sumber daya yang ada dalam program. Serta menyediakan akses sumber daya diluar kode program, seperti karakter, grafik, dan file layout. Location Manager, berfungsi untuk memberikan informasi detail mengenai lokasi perangkat android berada. Notification Manager, mencakup berbagai macam peringatan seperti, pesan masuk, janji, dan lain sebagainya yang akan ditampilkan pada status bar.
- Application Layer. Puncak dari diagram arsitektur android adalah lapisan aplikasi dan widget. Lapisan aplikasi merupakan lapisan yang paling tampak pada pengguna ketika menjalankan program. Pengguna hanya akan melihat program ketika digunakan tanpa mengetahui proses yang terjadi dibalik lapisan aplikasi. Lapisan ini berjalan dalam Android runtime dengan menggunakan kelas dan service yang tersedia pada framework aplikasi.
Lapisan
aplikasi android sangat berbeda dibandingkan dengan sistem operasi lainnya.
Pada android semua aplikasi, baik aplikasi inti (native) maupun aplikasi pihak
ketiga berjalan diatas lapisan aplikasi dengan menggunakan pustaka API
(Application Programming Interface) yang sama.
berarti android itu based on linux ya OS nya andrian? klo semisal kayak Mac OS itu setau gw jg based on linux OS nya. bener nggak?
BalasHapuskomeng balik ya di rzdraco.wordpress.com :D
nice info bro, trims
BalasHapus(eggaismee.blogspot.com)
info yang sangat menarik.. terima kasih mas andrian
BalasHapus