BAB II LANDASAN TEORI
2.7 Android
2.7.1 Sejarah Android
Awalnya, Google Inc. membeli Android Inc. yang merupakan pendatang baru dalam pembuatan peranti lunak untuk smartphone. Kemudian untuk mengembangkan android, dibentuklah Open Handset Alliance, konsorsium dari tiga puluh empat perusahaan piranti lunak, dan telekomunikasi, termasuk Google, HTC, Intel, Motorola, Qualcomm, T-Mobile, dan Nvidia (Safaat, 2011).
Pada saat perilisan perdana Android, 5 November 2007, Android bersama Open Handset Alliance menyatakan mendukung pengembangan open source pada perangkat mobile. Di lain pihak, Google merilis kode-kode android dibawah lisensi Apache, sebuah lisensi perangkat lunak dan open platform perangkat seluler. Pada masa ini kebanyakan vendor-vendor telah memproduksi smartphone dan tablet
berbasis android, vendor-vendor itu antara lain HTC, Samsung, LG, Sony Ericsson, Nexian dan masih banyak lagi vendor di dunia yang memproduksi smartphone maupun perangkat tablet berbasis Android. Hal ini dikarenakan Android adalah sistem operasi yang open source
sehingga bebas didistribusikan dan dipakai oleh vendor manapun (Safaat, 2011).
19
2.7.2 Versi Android
Berikut versi android sejak diluncurkan pertama kali : Tabel 2.6 Tabel Versi Android (Suprianto, 2012) Versi Android Diluncurkan Nama Kode
Beta 5 November 2007 1.0 23 September 2008 1.1 9 Februari 2009 1.5 30 April 2009 Cupcake 1.6 15 September 2009 Donut 2.0/2.1 26 Oktober 2009 Eclair 2.2 20 Mei 2010 Froyo 2.3 6 Desember 2010 Gingerbeard 3.0 22 Februari 2011 Honeycomb
4.0.1 19 Oktober 2011 Ice Cream Sandwich Sekitar Pertengahan 2012 Jelly Bean
20
2.7.3 Fitur-fitur Android
Sistem operasi android memiliki fitur-fitur sebagai berikut (Safaat,2011) :
a. Kerangka Kerja Aplikasi (application framework)
Digunakan untuk menulis aplikasi di android sehingga memungkinkan penggunaan kembali dan penggantian komponen. Kerangka kerja ini didukung oleh berbagai open source libraries seperti openssl, sqlite, dan libc serta didukung oleh libraries utama android. Kerangka kerja sistem operasi android didasarkan pada UNIX file system permission yang menjamin bahwa aplikasi-aplikasi tersebut hanya memiliki kemampuan yang diberikan oleh pemilik ponsel pada waktu penginstalan.
b. Dalvik Virtual Machine (DVM)
Dalvik Virtual Machine (DVM) adalah sebuah mesin virtual yang menggunakan memori yang sangat rendah dan secara khusus dirancang untuk android untuk dijalankan pada
embedded system. DVM bekerja dengan baik pada situasi dengan tenaga yang rendah dan mengoptimalkan perangkat
mobile. DVM juga mengatur atribut dari Central Processing Unit (CPU) serta membuat sebuah format file yang spesial (.dex) yang dibuat selama build time post processing. DVM mengambil file yang dihasilkan oleh class java dan
21
menggabungkannya ke dalam satu atau lebih Dalvik Executable
(.dex). DVM dapat menggunakan kembali salinan informasi dari beberapa class file dan secara efektif mengurangi kebutuhan penyimpanan oleh setengah dari Java Archive (.jar)
file tradisional. Konversi antara kelas java dan format (.dex)
dilakukan dengan memasukan “dx tool”.
DVM menggunakan assembly-code yang berbeda dimana DVM menggunakan register sebagai unit utama dari penyimpanan data daripada menggunakan stack. Hasil akhir dari
executable-code pada android, merupakan hasil dari DVM yang didasarkan
bukan pada java byte-code melainkan pada file (.dex). Hal ini berarti pada java byte-code tidak dieksekusi secara langsung melainkan dimulai dari java class file terlebih dahulu dan kemudian mengkonversikannya kedalam file (.dex) yang berhubungan.
c. Browser yang terintegrasi
Didasarkan pada open source WebKit engine yang memiliki dua
layout dan pengelompokan frame. Layout menampilkan
halaman tanpa menunggu untuk melakukan pemblokan element seperti eksternal Cascade Style Sheet (CSS) atau eksternal
JavaScript. Beberapa saat kemudian dilakukan penghalusan dengan semua sumber sudah diunduh kedalam sebuah perangkat. Frame yang ada digabungkan menjadi satu frame
22
tunggal dan memasukannya ke dalam browser. Fitur-fitur inilah yang meningkatkan kecepatan dan penggunaan browsing
internet melalui ponsel. d. Grafik yang teroptimasi
Didukung oleh library grafis 2D dan grafis 3D yang berdasarkan spesifikasi OpenGI ES 1.0 (akselerasi perangkat keras bersifat opsional).
e. Sqlite
Sqlite merupakan relational database management system yang kecil (sekitar 500kb) yang diintegrasikan pada sistem operasi android. Sqlite didasarkan pada function calls dan single file,
dimana semua defenisi, tabel, dan data disimpan.
f. Dukungan media untuk suara, video dan format gambar seperti
Moving Picture Experts Group 4 (MPEG4), MPEG-1 or
MPEG-2 Audio Layer 3 (MP3), Advanced Audio Coding
(ACC), Adaptive Multi-Rate (AMR) audio codec, Joint Photographic Expert Group (JPG), Portable Network Graphics
(PNG), Graphics Interchange Format (GIF).
g. GSM Telephony (bergantung dari perangkat keras yang
digunakan).
h. Bluetooth, Enhanced Data rates for GSM Evolution (EDGE), 3rd Generation (3G), dan WiFiTM (bergantung dari perangkat
23
i. Kamera, Global Postioning System (GPS), kompas dan accelerometer (bergantung dari perangkat keras yang digunakan).
j. Lingkungan pengembangan yang lengkap, seperti emulator, peralatan untuk debugging, memori dan performance profiling,
serta plug-in untuk Eclipse IDE. 2.7.4 Sistem Arsitektur Operasi Android
Berikut adalah gambar arsitektur dari sistem Android :
Gambar 2.1 Arsitektur Sistem Android (Safaat, 2011)
Menurut Safaat (2011), Setiap lapisan menggunakan layanan yang dihasilkan oleh lapisan dibawahnya. Berikut ini penjelasan dari setiap lapisan pada arsitektur Android dimulai dari lapisan paling bawah :
24
1. Linux Kernel
Android menggunakan sistem operasi Linux kernel. Linux kernel menangani berbagai layanan yang utama pada Android (termasuk
hardware drivers, manajemen proses dan memori, security, network,
power management, dan berbagai layanan sistem operasi lainnnya). 2. Libraries (Native Libraries)
Lapisan di atas Linux kernel adalah lapisan native libraries. Native libraries merupakan libraries yang ditulis dalam bahasa C / C++,
di-compile untuk arsitektur perangkat keras tertentu yang digunakan oleh telepon, dan di-install oleh phone vendor.
Beberapa contoh native libraries yang penting :
Surface Manager digunakan untuk mengatur akses pada subsistem
tampilan dan dengan mulus menggabungkan lapisan grafis 2D dan 3D dari beberapa aplikasi.
Graphics libraries mencakup SGL dan OpenGL untuk grafik 2D
dan 3D.
Media library digunakan untuk pemutaran dan perekaman media
audio dan video.
Sqlitedatabase engine untuk pengelolaan database.
WebKit digunakan untuk web browser dan SSL untuk keamanan
25
3. Android Runtime
Android runtime adalah engine yang mendayai aplikasi dan bersama dengan libraries, membentuk dasar dari kerangka kerja aplikasi. Android runtime mencakup Dalvik virtual machine dan core libraries.
Dalvik virtual machine
Dalvik adalah mesin virtual berbasis register yang telah dioptimalkan sehingga perangkat dapat menjalankan beberapa aplikasi secara efisien.
Core libraries
Core libraries pada Android menyediakan sebagian besar fungsi yang ada pada core Java libraries dan libraries khusus Android lainnya.
4. Application Framework
Application framework mencakup kelas-kelas yang digunakan untuk menciptakan aplikasi Android. Application framework ini membantu dalam pengaksesan perangkat keras dan mengelola sumber daya user interface dan aplikasi.
5. Application dan Widgets
Application atau aplikasi adalah program yang bisa mengambil alih seluruh layar dan berinteraksi dengan pengguna. Sementara, widgets