2.3 Android Smartphone
Android adalah salah satu sistem operasi untuk perangkat mobile berbasis linux yang mencakup sistem operasi middleware
dan aplikasi. Android menyediakan platform yang terbuka bagi para pengembang untuk menciptakan aplikasi mereka Safaat,
2011.
2.3.1 Arsitektur Android
Gambar 2.1 Android Architecture .Nazruddin Safaat, 2010
Dalam bukunya “Android Pemrograman Aplikasi Mobile Smartphone dan Tablet PC Berbasis Android” Nazruddin Safaat
menjelaskan tentang gambar 2.1 di atas yang menunjukkan komponen utama dari sistem operasi Android. Setiap bagiannya
akan dijelaskan secara lebih rinci berikut ini:
Aplikasi
Android dihadirkan dengan serangkaian aplikasi inti termasuk klien email, program SMS, kalender, peta, browser,
kontak, dan lain-lain. Semua aplikasi ditulis menggunakan bahasa pemrograman Java.
Aplikasi Framework
Dengan menyediakan sebuah platform pengembangan yang terbuka, pengembang android menawarkan kemampuan untuk
membangun aplikasi yang sangat kaya dan inovatif. Pengembang bebas untuk mengambil keuntungan dari perangkat keras, akses
informasi lokasi, menjalankan layanan latar belakang, mengatur alarm, tambahkan pemberitahuan ke status bar, dan masih banyak
lagi. Pengembang memiliki akses penuh ke API kerangka kerja sama yang digunakan oleh aplikasi inti. Arsitektur aplikasi ini
dirancang untuk
menyederhanakan penggunaan
kembali komponen, aplikasi apapun dapat mempublikasikan kemampuan
dan aplikasi lain maka dapat menggunakan kemampuan mereka tunduk pada batasan keamanan ditegakkan oleh framework.
Mekanisme yang sama memungkinkan komponen yang akan diganti oleh pengguna. Menyediakan semua aplikasi untuk
seperangkat layanan dan sistem, termasuk: -
Satu set Tampilan yang kaya dan extensible yang dapat digunakan untuk membangun aplikasi, termasuk lists, grids,
text boxes, buttons dan bahkan sebuah browser web yang embeddable.
- Penyedia Konten yang memungkinkan aplikasi untuk
mengakses data dari aplikasi lain seperti Kontak, atau untuk berbagi data mereka sendiri.
- Sebuah Resource Manager, menyediakan akses ke sumber
daya non-kode seperti string lokal, grafik, dan file layout.
- Sebuah Notification Manager yang memungkinkan semua
aplikasi untuk menampilkan alert custom dalam status bar. -
Sebuah Activity Manager yang mengelola kelangsungan aplikasi dan menyediakan navigasi umum backstack.
Library
Android sudah memasukkan satu set CC++ library yang digunakan oleh berbagai komponen sistem android. Kemampuan
ini dimasukkan oleh pengembang melalui kerangka aplikasi
android. Beberapa library inti tercantum di bawah ini:
- Sistem C library - implementasi BSD-berasal dari sistem C
library standar libc untuk perangkat berbasis Linux embedded.
- Media Libraries - berdasarkan PacketVideos OpenCORE;
dukungan library playback dan rekaman audio populer dan format video, serta file gambar statis, termasuk MPEG4,
H.264, MP3, AAC, AMR, JPG, dan PNG. -
Surface Manager - mengelola akses ke subsistem menampilkan dan menampilkan lapisan grafis 2D dan 3D
secara mulus dari beberapa aplikasi. -
LibWebCore - mesin modern web browser yang kekuatan baik browser android dan embeddable web view
- SGL - dasar mesin grafis 2D.
- 3D library - implementasi berdasarkan OpenGL ES 1.0 API,
library yang menggunakan akselerasi 3D hardware jika tersedia atau disertakan, software 3D rasterizer yang
sangat optimal.
- FreeType - font rendering bitmap dan vector.
- SQLite - mesin database relasional yang powerfull dan
ringan tersedia untuk semua aplikasi.
Android Runtime
Android sudah termasuk satu set library inti yang menyediakan sebagian besar fungsi yang tersedia di library inti
dari bahasa pemrograman Java. Setiap aplikasi android berjalan dalam prosesnya sendiri, Dalvik virtual machine. Dalvik telah
ditulis sehingga perangkat dapat menjalankan beberapa VMs secara efisien. VM Dalvik mengeksekusi file dalam format file
Dalvik executable .dex yang dioptimalkan untuk footprint memori minimal. VM adalah register-based, dan menjalankan
class yang dikompilasi oleh compiler Java yang telah ditransformasikan ke dalam format .dex oleh dx tool yang
sudah termasuk di dalamnya. VM Dalvik bergantung pada Linux kernel untuk fungsionalitas dasar seperti threading dan
manajemen tingkat rendah memori.
Linux Kernel
Android mengandalkan Linux versi 2.6 untuk layanan sistem inti seperti keamanan, manajemen memori, manajemen
proses, network stack, dan driver model. Kernel juga bertindak sebagai lapisan abstraksi antara hardware dan seluruh software
stack.
2.4 Physics Game