Arsitektur Android
Diagram berikut menunjukkan komponen-komponen utama dari sistem operasi Android.
Google mengibaratkan Android sebagai sebuah tumpukan software. Setiap lapisan dari tumpukan ini menghimpun beberapa program yang mendukung fungsi-fungsi spesifik dari sistem operasi. Berikut ini susunan dari lapisan – lapisan tersebut jika di lihat dari lapisan dasar hingga lapisan teratas:
sumber
Diagram berikut menunjukkan komponen-komponen utama dari sistem operasi Android.
Google mengibaratkan Android sebagai sebuah tumpukan software. Setiap lapisan dari tumpukan ini menghimpun beberapa program yang mendukung fungsi-fungsi spesifik dari sistem operasi. Berikut ini susunan dari lapisan – lapisan tersebut jika di lihat dari lapisan dasar hingga lapisan teratas:
- Linux Kernel
Tumpukan paling bawah pada arsitektur Android ini adalah kernel. Google menggunakan kernel Linux versi 2.6 untuk membangun sistem Android, yang mencakup memory management, security setting, power management, dan beberapa driver hardware.
Kernel berperan sebaagai abstraction layer antara hardware dan keseluruhan software.
Sebagai contoh, HTC GI dilengkapi dengan kamera. Kernel Android terdapat driver kamera yang memungkinkan pengguna mengirimkan perintah kepada hardware kamera. - Android Runtime
Lapisan setelah Kernel Linux adalah Android Runtime. Android Runtime ini berisi Core Libraries dan Dalvik Virtual Machine.
Core Libraries mencakup serangkaian inti library Java, artinya Android menyertakan satu set library-library dasar yang menyediakan sebagian besar fungsi-fungsi yang ada pada library-library dasar bahasa pemrograman Java.
Dalvik adalah Java Virtual Machine yang memberi kekuatan pada sistem Android. Dalvik VM ini di optimalkan untuk telepon seluler.
Setiap aplikasi yang berjalan pada Android berjalan pada processnya sendiri, dengan instance dari Dalvik Virtual Machine. Dalvik telah dibuat sehingga sebuah piranti yang memakainya dapat menjalankan multi Virtual Machine dengan efisien. Dalvik VM dapat mengeksekusi file dengan format Dalvik Executable (.dex) yang telah dioptimasi untuk menggunakan minimal memory footprint. Virtual Machine ini register-based, dan menjalankan class-class yang dicompile menggunakan compiler Java yang kemudian ditransformasi menjadi format .dex menggunakan "dx" tool yang telah disertakan.
Dalvik Virtual Machine (VM) menggunakan kernel Linux untuk menjalankan fungsi-fungsi seperti threading dan low-level memory management. - Libraries
Bertempat di level yang sama dengan Android Runtime adalah Libraries. Android menyertakan satu set library-library dalam bahasa C/C++ yang digunakan oleh berbagai komponen yang ada pada sistem Android. Kemampuan ini dapat diakses oleh programmer melewati Android application framework. Sebagai contoh Android mendukung pemutaran format audio, video, dan gambar.
Berikut ini beberapa core library tersebut :
- System C library
diturunkan dari implementasi standard C system library (libc) milik BSD, dioptimasi untuk piranti embedded berbasis Linux - Media Libraries
berdasarkan PacketVideo's OpenCORE; library-library ini mendukun playback dan recording dari berbadai format audio and video populer, meliputi MPEG4, H.264, MP3, AAC, AMR, JPG, and PNG - Surface Manager
mengatur akses pada display dan lapisan composites 2D and 3D graphic dari berbagai aplikasi - LibWebCore
web browser engine modern yang mensupport Android browser maupun embeddable web view - SGL
the underlying 2D graphics engine - 3D libraries
implementasi berdasarkan OpenGL ES 1.0 APIs; library ini menggunakan hardware 3D acceleration dan highly optimized 3D software rasterizer - FreeType
bitmap dan vector font rendering - SQLite
relational database engine yang powerful dan ringan tersedia untuk semua aplikasi
- System C library
- Application Framework
Lapisan selanjutnya adalah application framework, yang mencakup program untuk mengatur fungsi-fungsi dasar smartphone. Application Framework merupakan serangkaian tool dasar seperti alokasi resource smartphone, aplikasi telepon, pergantian antar - proses atau program, dan pelacakan lokasi fisik telepon. Para pengembang aplikasi memiliki aplikasi penuh kepada tool-tool dasar tersebut, dan memanfaatkannya untuk menciptakan aplikasi yang lebih kompleks.
http://www.blogger.com/img/blank.gif
Programmer mendapatkan akses penuh untuk memanfaatkan API-API (Android Protocol Interface) yang juga digunakan core applications. Arsitektur aplikasi didesain untuk menyederhanakan pemakaian kembali komponen-komponen, setiap aplikasi dapat menunjukkan kemampuannya dan aplikasi lain dapat memakai kemampuan tersebut. Mekanisme yang sama memungkinkan pengguna mengganti komponen-komponen yang dikehendaki.
Di dalam semua aplikasi terdapat servis dan sistem yang meliputi :- Satu set Views yang dapat digunakan untuk membangun aplikasi meliputi lists, grids, text boxes, buttons, dan embeddable web browser
- Content Providers yang memungkinkan aplikasi untuk mengakses data dari aplikasi lain (misalnya Contacts), atau untuk membagi data yang dimilikinya.
- Resource Manager, menyediakan akses ke non-code resources misalnya localized strings, graphics, dan layout files
- Notification Manager yang memungkinkan semua aplikasi untuk menampilkan custom alerts pada the status bar
- Activity Manager yang memanage life cycle of dari aplikasi dan menyediakan common navigation backstack
- Application
Di lapisan teratas bercokol aplikasi itu sendiri. Di lapisan inilah anda menemukan fungsi-fungsi dasar smartphone seperti menelepon dan mengirim pesan singkat, menjalankan web browser, mengakses daftar kontak, dan lain-lain. Bagi rata-rata pengguna, lapisan inilah yang paling sering mereka akses. Mereka mengakses fungsi-fungsi dasar tersebut melalui user interface. - Activities
yaitu ketika sebuah aplikasi memunculkan screen di layar. Sebagai contoh, sebuah aplikasi GPS mempunyai screen peta dasar, screen rencana perjalanan, dan screen rute di atasnya. Ketiga penampakan screen ini disebut activities. - Intents
yaitu mekanisme perpindahan dari suatu activity ke activity lainnya. Sebagai contoh ketika merencanakan perjalanan pada aplikasi GPS, intent akan menginterpretasi input dan mengaktifkan screen rute di atas screen peta. - Services
yaitu serupa dengan service di PC dan server, program yang berjalan di belakang layar, tanpa interferensi dari pengguna. - Content Provider
yaitu mekanisme yang memungkinkan sebuah aplikasi berbagi informasi dengan aplikasi lainnya. - Application framework
mendukung pemakaian komponen-komponen yang mudah diganti dan digunakan kembali. - Dalvik virtual machine
dioptimasi untuk piranti mobile - Integrated browser
dibangun dari engine browser open source WebKit - Optimized graphics
didukung oleh custom 2D graphics library; 3D graphics dibangun berdasarkan OpenGL ES 1.0 specification (dukungan hardware acceleration optional) - SQLite
untuk penyimpanan database terstruktur - Media support
untuk mendukung berbagai audio, video, dan still image formats (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF) - GSM Telephony
- Bluetooth, EDGE, 3G, and WiFi
- Camera, GPS, compass, and accelerometer
- Rich development environment
meliputi device emulator, tools untuk debugging, memory dan performance profiling, dan plugin untuk Eclipse IDE - Keterbukaan
Android menyediakan akses ke fungsi dasar perangkat mobile menggunakan standar panggilan ke API. - Penghancuran perbatasan
Anda dapat menggabungkan informasi dari Internet ke dalam telepon, seperti informasi kontak, atau data pada lokasi geografis untuk mendapatkan kesempatan baru - Kesamaan aplikasi
untuk Android ada perbedaan antara telepon utama aplikasi dan perangkat lunak lain.anda bahkan dapat mengubah program untuk memutar nomor, atau screen saver. - Cepat dan mudah perkembangan
dalam SDK memiliki semua yang anda butuhkan untuk membuat dan menjalankan aplikasi Android, termasuk simulator ini instrumen, dan alat debugging maju.
Aplikasi Android
Untuk membangun aplikasi Android, seorang programmer dituntut telah akrab dengan bahasa pemrograman Java. Bila syarat pertama ini telah dipenuhi, langkah selanjutnya adalah men-download software development kit (SDK) yang disediakan Android. SDK ini membukakan jalan bagi programmer untuk mengakses application programming interface (API) Android.
SDK yang diinstall di PC ini mencakup beberapa tool, termasuk aplikasi contoh dan emulator Android. Emulator Android adalah program yang menduplikasi fungsi-fungsi smartphone yang berjalan di atas platform Android. Emulator juga berfungsi sebagai ajang pengujian aplikasi di PC,sebelum disematkan ke dalam smartphone Android.
Google menjabarkan aplikasi Android ke dalam empat blok bangunan dasar (tidak semua aplikasi mempunyai keempatnya) yaitu :
Fitur-fitur Android
Keunggulan Android
Beberapa keunggulan Android adalah :
sumber