BAB 2
LANDASAN TEORI
2.1 Pengertian Smartphone
Telepon pintar (smartphone) adalah telepon genggam yang mempunyai kemampuan tingkat tinggi, kadang-kadang dengan fungsi yang menyerupai komputer. Belum ada standar pabrik yang menentukan arti telepon pintar. (Elcom, 2011)
Bagi beberapa orang, telepon pintar merupakan telepon yang bekerja menggunakan seluruh perangkat lunak sistem operasi yang menyediakan hubungan standar dan mendasar bagi pengembang aplikasi. Bagi yang lainnya, telepon cerdas hanyalah merupakan sebuah telepon yang menyajikan fitur canggih seperti surel (surat elektronik), internet dan kemampuan membaca buku elektronik (e-book) atau terdapat papan ketik (baik sebagaimana jadi maupun dihubung keluar) dan penyambung VGA. Dengan kata lain, telepon cerdas merupakan komputer kecil yang mempunyai kemampuan sebuah telepon.
2.2 Pengertian Sistem Operasi
tidak dapat menjalankan program aplikasi pada komputer mereka, kecuali program aplikasi booting. (Wahana Komputer, 2011)
Sistem operasi mempunyai penjadwalan yang sistematis mencakup perhitungan penggunaan memori, pemrosesan data, penyimpanan data, dan sumber daya lainnya. Untuk fungsi-fungsi perangkat keras seperti sebagai masukan dan keluaran dan alokasi memori, sistem operasi bertindak sebagai perantara antara program aplikasi dan perangkat keras komputer, meskipun kode aplikasi biasanya dieksekusi langsung oleh perangkat keras. Sistem operasi dapat ditemukan pada hampir semua perangkat yang berisi komputer seperti ponsel dan konsol permainan video untuk superkomputer dan server web.
Contoh sistem operasi modern adalah Linux, Android, iOS, Mac OS X, dan Microsoft Windows.
2.3 Pengertian Sistem Operasi Android
Sistem operasi Android sendiri merupakan sebuah sistem operasi open source yang dikembangkan dan diluncurkan oleh Google inc, yang dikhususkan untuk diaplikasikan pada teknologi smartphone. Akan tetapi dengan perannya sebagai sebuah open source maka Android sendiri telah banyak berkembang pesat hingga merambah ke penggunaan pada sebuah komputer.
Sistem Android adalah sebuah sistem operasi berbasis linux yang ditulis menggunakan bahasa pemrograman java. Sehingga dapat dikatakan bahwa komponen dasar penyusun sistem android tidak jauh berbeda dengan komponen dasar penyusun sistem operasi linux. (Nazruddin Safaat, 2011)
menggunakan masukan sentuh yang serupa dengan tindakan di dunia nyata, misalnya menggesek (swiping), mengetuk (tapping), dan mencubit (pinching), untuk memanipulasi obyek di layar. Masukan pengguna direspon dengan cepat dan juga tersedia antarmuka sentuh layaknya permukaan air, seringkali menggunakan kemampuan getaran perangkat untuk memberikan umpan balik haptik kepada pengguna.
Perangkat keras internal seperti akselerometer, giroskop, dan sensor proksimitas digunakan oleh beberapa aplikasi untuk merespon tindakan pengguna, misalnya untuk menyesuaikan posisi layar dari potret ke lanskap, tergantung pada bagaimana perangkat diposisikan, atau memungkinkan pengguna untuk mengarahkan kendaraan saat bermain balapan dengan memutar perangkat sebagai simulasi kendali setir.
Ketika dihidupkan, perangkat Android akan boot pada layar depan (homescreen), yakni navigasi utama dan pusat informasi pada perangkat, serupa dengan desktop pada komputer pribadi. Layar depan Android biasanya terdiri dari ikon aplikasi dan widget; ikon aplikasi berfungsi untuk menjalankan aplikasi terkait, sedangkan widget menampilkan konten secara langsung dan terbarui otomatis, misalnya prakiraan cuaca, kotak masuk email pengguna, atau menampilkan kutipan berita secara langsung dari layar depan. Layar depan bisa terdiri dari beberapa halaman, pengguna dapat menggeser bolak balik antara satu halaman ke halaman lainnya, yang memungkinkan pengguna Android untuk mengatur tampilan perangkat sesuai dengan selera mereka.
Android, dan bahkan bisa meniru tampilan sistem operasi lain, misalnya Windows Phone. Kebanyakan produsen telepon seluler dan operator nirkabel menyesuaikan tampilan perangkat Android buatan mereka untuk membedakannya dari pesaing mereka.
Di bagian atas layar terdapat status bar, yang menampilkan informasi tentang perangkat dan konektivitasnya. Status bar ini bisa “ditarik” ke bawah
untuk membuka layar notifikasi yang menampilkan informasi penting atau pembaruan aplikasi, misalnya surel diterima atau SMS masuk, dengan cara tidak mengganggu kegiatan pengguna pada perangkat. Pada versi awal Android, layar notifikasi ini bisa digunakan untuk membuka aplikasi yang relevan, namun setelah diperbarui, fungsi ini semakin disempurnakan, misalnya kemampuan untuk memanggil kembali nomor telepon dari notifikasi panggilan tak terjawab tanpa harus membuka aplikasi utama. Notifikasi ini akan tetap ada sampai pengguna melihatnya, atau dihapus dan di nonaktifkan oleh pengguna.
2.4 Sejarah Android
Android, Inc. didirikan di Palo Alto, California, pada bulan Oktober 2003 oleh Andy Rubin (pendiri Danger), Rich Miner (pendiri Wildfire Communications, Inc.), Nick Sears (mantan VP T-Mobile), dan Chris White (kepala desain dan pengembangan antarmuka WebTV) untuk mengembangkan "perangkat seluler pintar yang lebih sadar akan lokasi dan preferensi penggunanya". (Elcom, 2010)
Tujuan awal pengembangan Android adalah untuk mengembangkan sebuah sistem operasi canggih yang diperuntukkan bagi kamera digital, namun kemudian disadari bahwa pasar untuk perangkat tersebut tidak cukup besar, dan pengembangan Android lalu dialihkan bagi pasar telepon pintar (smartphone) untuk menyaingi Symbian dan Windows Mobile (iPhone Apple belum dirilis pada saat itu).
Meskipun para pengembang Android adalah pakar-pakar teknologi yang berpengalaman, Android Inc. dioperasikan secara diam-diam, hanya diungkapkan bahwa para pengembang sedang menciptakan sebuah perangkat lunak yang diperuntukkan bagi telepon seluler. Masih pada tahun yang sama, Rubin kehabisan uang. Steve Perlman, seorang teman dekat Rubin, meminjaminya $10.000 tunai dan menolak tawaran saham di perusahaan.
Di Google, tim yang dipimpin oleh Rubin mulai mengembangkan platform perangkat seluler dengan menggunakan kernel Linux. Google memasarkan platform tersebut kepada produsen perangkat seluler dan operator nirkabel, dengan janji bahwa mereka menyediakan sistem yang fleksibel dan bisa diperbarui. Google telah memilih beberapa mitra perusahaan perangkat lunak dan perangkat keras, serta mengisyaratkan kepada operator seluler bahwa kerjasama ini terbuka bagi siapapun yang ingin berpartisi.
Spekulasi tentang niat Google untuk memasuki pasar komunikasi seluler terus berkembang hingga bulan Desember 2006. BBC dan Wall Street Journal melaporkan bahwa Google sedang bekerja keras untuk menyertakan aplikasi dan mesin pencarinya di perangkat seluler. Berbagai media cetak dan media daring mengabarkan bahwa Google sedang mengembangkan perangkat seluler dengan merek Google.
Beberapa di antaranya berspekulasi bahwa Google telah menentukan spesifikasi teknisnya, termasuk produsen telepon seluler dan operator jaringan. Pada bulan Desember 2007, InformationWeek melaporkan bahwa Google telah mengajukan beberapa aplikasi paten di bidang telepon seluler.
Telepon seluler komersial pertama yang menggunakan sistem operasi Android adalah HTC Dream, yang diluncurkan pada 22 Oktober 2008.
Pada tahun 2010, Google merilis seri Nexus; perangkat telepon pintar dan tablet dengan sistem operasi Android yang diproduksi oleh mitra produsen telepon seluler seperti HTC, LG, dan Samsung. HTC bekerjasama dengan Google dalam merilis produk telepon pintar Nexus pertama, yakni Nexus One. Seri ini telah diperbarui dengan perangkat yang lebih baru, misalnya telepon pintar Nexus 4 dan tablet Nexus 10 yang diproduksi oleh LG dan Samsung.
Pada 13 Maret 2013, Larry Page mengumumkan dalam postingan blognya bahwa Andy Rubin telah pindah dari divisi Android untuk mengerjakan proyek-proyek baru di Google. Ia digantikan oleh Sundar Pichai, yang sebelumnya menjabat sebagai kepala divisi Google Chrome, yang mengembangkan Chrome OS.
Sejak tahun 2008, Android secara bertahap telah melakukan sejumlah pembaruan untuk meningkatkan kinerja sistem operasi, menambahkan fitur baru, dan memperbaiki bug yang terdapat pada versi sebelumnya. Setiap versi utama yang dirilis dinamakan secara alfabetis berdasarkan nama-nama makanan pencuci mulut atau cemilan bergula; misalnya, versi 1.5 bernama Cupcake, yang kemudian diikuti oleh versi 1.6 Donut. Versi terbaru adalah 4.4 KitKat, yang dirilis pada 31 Oktober 2013. (Nazruddin Safaat, 2011)
2.4.1 Versi Android
1. Android versi 1.1
Dirilis bersama perangkat mobile Google Nexus yang telah dilengkapi dengn aplikasi, jam,alarm, voice search (pencarian suara), pengiriman pesan dengan Gmail, dan pemberitahuan email.
2. Android versi 1.5 (Cupcake)
Dirilis pada pertengahan Mei 2009, yang berisi pembaruan terhadap versi sebelumnya dan penambahan fitur seperti merekam dan menonton video dari modus kamera, mengupload video secara langsung ke youtube, dukungan Bluetooth A2DP, animasi layar dan keyboard pada layar yang dapat disesuaikan dengan sistem.
3. Android versi 1.6 (Donut)
Donut (versi 1.6) dirilis pada September dengan menampilkan proses pencarian yang lebih baik dibanding sebelumnya, penggunaan baterei indikator dan kontrol applet VPN.
4. Android versi 2.0/2.1 (Eclair)
Dirilis pada 3 Desember 2009, perubahan yang dilakukan adalah pengoptimalan hardware, peningkatan Google Maps 3.1.2, perubahan UI(User Interface) dengan browser baru dan dukungan HTML5, daftar kontak yang baru, dukungan flash untuk kamera 3,2 MP, digital Zoom, dan Bluetooth 2.1.
5. Android versi 2.2 (Froyo : Frozen Yogurt)
mobile, penambahan SQLite sebagai media penyimpanan data, dan penyempurnaan grafik 2D maupun 3D berdasarkan libraries OpenGL. 6. Android versi 2.3 (Gingerbred)
Diluncurkan pada Desember 2010 merupakan pengembangan lebih lanjut dari versi sebelumnya dengan berbagai revisi SIP-based VoIP, Near Field
Communications(NFC), Gyroscope dan sensor, serta Multiple cameras effect.
7. Android versi 3.0 (Honeycomb) dirilis februari 2011 sebagai ndroid 3.0 revisi 1 serta android versi 3.0 revision 2 telh dirilis pada juli 2011, namun versi ini hanya diluncurkan dan dikhususkan bagi perangkat tablet.
8. Android versi 4.0 (Ice Cream Sandwich) dirilis pada November 2011 , pada versi ini terdapat berbagai kemjuan dan pengembangan yang lebih signifikan diantaranya face unlock, kecepatan pembacaan data internal serta integrasi komponen smartphone yang jauh lebih baik.
9. Android versi 4.1 (Jelly Bean), dirilis pada 9 Juli 2012 dengan penambahan dan perbaikan terhadap bug yang terdapat pada versi 4.0 10.Android versi 4.2 (Jelly Bean)
Merupakan lanjutan pengembangan dari versi 4.1 11.Android versi 4.3 (Jelly Bean)
Dirilis pada 27 Juli 2013, merupakan versi lanjutan dari 4.2 12.Android versi 4.3 (Kit Kat)
2.5 Linux
Linux adalah nama yang diberikan kepada sistem operasi komputer bertipe Unix. Linux merupakan salah satu contoh hasil pengembangan perangkat lunak bebas dan sumber terbuka utama. Seperti perangkat lunak bebas dan sumber terbuka lainnya pada umumnya, kode sumber Linux dapat dimodifikasi, digunakan dan didistribusikan kembali secara bebas oleh siapa saja. (It Works, 2011)
Nama "Linux" berasal dari nama pembuatnya, yang diperkenalkan tahun 1991 oleh Linus Torvalds. Sistemnya, peralatan sistem dan pustakanya umumnya berasal dari sistem operasi GNU, yang diumumkan tahun 1983 oleh Richard Stallman. Kontribusi GNU adalah dasar dari munculnya nama alternatif GNU/Linux.
2.5.1 Antarmuka pengguna
Linux dapat dikendalikan oleh satu atau lebih antarmuka baris perintah (command line interface atau CLI) berbasis teks, antarmuka pengguna grafis (graphical user interface atau GUI, yang umumnya merupakan konfigurasi bawaan untuk versi desktop).
Pada komputer, GNOME, KDE dan Xfce merupakan antarmuka pengguna yang paling populer, walaupun terdapat sejumlah varian antarmuka pengguna. Antarmuka pengguna yang paling populer berjalan di atas X Window System (X), yang menyediakan transparansi jaringan yang memperolehkan sebuah aplikasi grafis berjalan di atas satu mesin tetapi ditampilkan dan dikontrol di mesin yang lain.
GUI yang lain memiliki X window manager seperti FVWM, Enlightenment, Fluxbox, Icewm dan Window Maker. Manajer jendela menyediakan kontrol untuk penempatan dan penampilan dari jendela-jendela aplikasi individual serta interaksi dengan sistem jendela X.
Sebuah sistem Linux umumnya menyediakan sebuah antarmuka baris perintah lewat sebuah shell, yang merupakan cara tradisional untuk berinteraksi dengan sebuah sistem Unix. Sebuah distro Linux yang dikhususkan untuk lingkungan peladen mungkin hanya memiliki CLI sebagai satu-satunya antarmuka. Sebuah sistem yang tidak memiliki monitor hanya dapat dikontrol melalui baris perintah lewat protokol seperti SSH atau telnet.
inter-proses yang sangat sederhana. Sebuah program emulator terminal grafis sering digunakan untuk mengakses CLI dari sebuah Linux desktop.
2.5.2 Pemrograman di Linux
Sebagian besar distribusi Linux mendukung banyak bahasa pemrograman. Koleksi peralatan untuk membangun aplikasi dan program-program sistem operasi yang umum terdapat di dalam GNU toolchain, yang terdiri atas GNU Compiler Collection (GCC) dan GNU build system. GCC menyediakan kompilator untuk Ada, C, C++, Java, dan Fortran. Kernel Linux sendiri ditulis untuk dapat dikompilasi oleh GCC. Kompilator tak bebas (proprietary) untuk Linux antara lain adalah Intel C++ Compiler dan IBM XL C/C++ Compiler.(Athailah, 2011)
Kebanyakan distribusi juga memiliki dukungan untuk Perl, Ruby, Python dan bahasa pemrograman dinamis lainnya. Contoh bahasa pemrograman yang tidak umum tetapi tetap mendapat dukungan di Linux antara lain adalah C# dengan proyek Mono yang disponsori oleh Novell, dan Scheme. Sejumlah Java Virtual Machine dan peralatan pengembang jalan di Linux termasuk Sun Microsystems JVM (HotSpot), dan J2SE RE IBM, serta proyek-proyek sumber terbuka lainnya seperti Kaffe. Dua kerangka kerja utama untuk pengembangan aplikasi grafis di Linux adalah GNOME dan KDE. Proyek-proyek ini berbasiskan GTK+ dan Qt. Keduanya mendukung beragam bahasa pemrograman. Untuk
2.5.3 Hak cipta dan merek dagang
Linux kernel dan sebagian besar perangkat lunak GNU menggunakan GNU General Public License (GPL) sebagai basis lisensinya. GPL mengharuskan siapapun yang mendistribusikan kernel linux harus membuat kode sumber (dan semua modifikasi atas itu) tersedia bagi pengguna dengan kriteria yang sama.(It Works, 2011)
Tahun 1997, Linus Torvald menyatakan, “Menjadikan Linux berbasis GPL sungguh merupakan hal terbaik yang pernah saya lakukan.”. Komponen penting
lain dalam sistem Linux diijinkan menggunakan lisensi selain dari GPL. Banyak pustaka menggunakan GNU Lesser General Public License (LGPL), varian GPL yang lebih moderat, dan sistem X Window System menggunakan MIT License.
Linus Torvald telah menyatakan ke khayalak umum bahwa ia tidak akan memindahkan lisensi kernel Linux yang saat ini menggunakan GPL versi 2 ke GPL versi 3, yang dikembangkan pada pertengahan tahun 2007, dengan alasan beberapa ketentuan yang terdapat pada lisensi baru tersebut melarang penggunaan perangkat lunak dalam manajemen hak digital.
dikembangkan di Amerika Serikat.
Sebagian besar kode (71%) ditulis dengan menggunakan bahasa pemrograman C, namun banyak bahasa lainnya juga ikut terlibat seperti C++, Assembly, Perl, Python, Fortran, dan berbagai bahasa skrip lain. Lebih dari separuh dari seluruh kode dilisensikan di bawah naungan GPL. Kernel linux itu sendiri terdiri atas 2,4 juta baris kode, atau sekitar 8% dari total keseluruhan.
Penelitian lainnya menghasilkan analisis yang sama terhadap distro Debian GNU/Linux versi 4.0. Distro tersebut terdiri atas lebih dari 283 juta baris kode, dan penelitian tersebut memperkirakan biaya pengembangan yang dibutuhkan sebesar 5,4 miliar euro jika dikembangkan sebagai perangkat linak tertutup.
Di Amerika Serikat, Linux merupakan merek dagang (SN: 1916230) yang dimiliki oleh Linus Torvalds. Linux terdaftar sebagai "Program sistem operasi komputer bagi penggunaan komputer dan operasi". Merek dagang ini didaftarkan setelah ada suatu kejadian di mana seorang pemalsu bernama William R Della Croce Jr mulai mengirim surat kepada para distributor Linux dan megklaim trademark Linux adalah hak miliknya serta meminta royalti sebanyak 10% dari mereka.
2.5.4 Distribusi Linux
Terdapat banyak distribusi Linux (lebih dikenali sebagai distro) yang dibuat oleh individu, grup, atau lembaga lain. Masing-masing disertakan dengan program sistem dan program aplikasi tambahan, di samping menyertakan suatu program yang memasang keseluruhan sistem di komputer (installer program).
Inti di setiap distribusi Linux adalah kernel, koleksi program dari proyek GNU (atau proyek lain), cangkang (shell), dan atur cara utilitas seperti pustaka (libraries), kompilator, dan penyunting (editor). Kebanyakan sistem juga menyertakan atur cara dan utilitas yang bukan GNU. Bagaimanapun, utilitas tersebut dapat dipisahkan dan sistem berbasis UNIX masih tersedia. Beberapa contoh adalah atur cara dan utiliti dari BSD dan sistem grafik-X (X-Window System). X menyediakan antarmuka grafis (GUI) yang umum untuk Linux. (Glyn Moody. 2002)
Contoh-contoh distribusi Linux :
 Ubuntu dan derivatifnya : Sabily (Ubuntu Muslim Edition), Kubuntu,
Xubuntu, Edubuntu, GoBuntu, Gnewsense, ubuntuCE
 OpenSUSE
 Fedora
 BackTrack
 Mandriva
 Slackware
 Debian
 PCLinuxOS
 Xandros
 Sabayon
 CentOS
 Red Hat
 ClearOS
 Chromeos
 Gentoo Linux
2.5.5 Konfigurasi dan instalasi
Proses instalasi Linux yang sukar seringkali menjadi penghalang bagi pengguna baru, namun proses ini sekarang sudah menjadi lebih mudah. Dengan penerimaan Linux oleh beberapa pabrikan komputer pribadi besar, komputer terpasang (built up) dengan distribusi Linux siap pakai saat ini banyak tersedia.
Selain itu, terdapat juga distribusi Linux yang dapat dijalankan (boot) secara langsung dari cakram optik (CD) tanpa perlu diinstalasi ke cakram keras (hard disk); hal ini dikenal dengan istilah Live CD. Contoh distribusi dalam bentuk Live CD adalah Knoppix/Gnoppix, Kubuntu/Ubuntu dan Gentoo. Saat ini hampir semua distribusi Linux menyediakan versi Live CD untuk produknya. ISO
Instalasi Linux juga merupakan instalasi berupa suite, yaitu dimana penginstalasian tersebut secara otomatis menginstalasi program-program standar, seperti pemutar MP3, Office Suite, dan pengolah gambar.
Konfigurasi setelan Linux dan aplikasi di atasnya banyak yang dilakukan lewat berkas teks di direktori /etc. Pada perkembangan selanjutnya, utilitas seperti Linuxconf dan GNOME System Tools memudahkan pekerjaan ini lewat antarmuka grafik. Akan tetapi, baris perintah (command line) tetap merupakan cara yang paling umum digunakan.
2.5.6 GNU/Linux
GNU adalah singkatan dari GNU's Not Unix. Disebabkan utiliti-utiliti dari proyek sistem operasi bebas GNU. Tanpa ini sistem Linux tidak akan menyerupai sistem Unix dalam perspektif pengguna. Richard Stallman dari GNU/FSF memohon agar kombinasi sistem (proyek GNU dan kernel Linux), disebut sebagai "GNU/Linux". Pengguna distribusi Linux dari proyek Debian lebih cenderung menggunakan nama tersebut. Kebanyakan pengguna lebih mudah menggunakan istilah "Linux".
2.6 Pengertian Kernel
Dalam ilmu komputer, kernel adalah suatu perangkat lunak yang menjadi bagian utama dari sebuah sistem operasi. Tugasnya melayani bermacam program aplikasi untuk mengakses perangkat keras komputer secara aman. (S. Brahler, 2010)
menggunakan satu bagian perangkat keras tersebut. Hal tersebut dinamakan sebagai multiplexing.
Akses kepada perangkat keras secara langsung merupakan masalah yang kompleks, oleh karena itu kernel biasanya mengimplementasikan sekumpulan abstraksi hardware. Abstraksi-abstraksi tersebut merupakan sebuah cara untuk menyembunyikan kompleksitas, dan memungkinkan akses kepada perangkat keras menjadi mudah dan seragam. Sehingga abstraksi pada akhirnya memudahkan pekerjaan programer.
Untuk menjalankan sebuah komputer kita tidak harus menggunakan kernel sistem operasi. Sebuah program dapat saja langsung diload dan dijalankan di atas mesin 'telanjang' komputer, yaitu bilamana pembuat program ingin melakukan pekerjaannya tanpa bantuan abstraksi perangkat keras atau bantuan sistem operasi. Teknik ini digunakan oleh komputer generasi awal, sehingga bila kita ingin berpindah dari satu program ke program lain, kita harus mereset dan meload kembali program-program tersebut.
program tersebut membuat beberapa komponen program yang sengaja ditinggalkan di dalam komputer, seperti halnya loader atau debugger, atau dimuat dari dalam ROM (Read-Only Memory).
Seiring dengan perkembangan zaman komputer yang mengalami akselerasi yang signifikan, metode ini selanjutnya membentuk apa yang disebut dengan kernel sistem operasi.
Selanjutnya, para arsitek sistem operasi mengembangkan kernel sistem operasi yang pada akhirnya terbagi menjadi empat bagian yang secara desain berbeda, sebagai berikut:
 Kernel monolitik. Kernel monolitik mengintegrasikan banyak fungsi di
dalam kernel dan menyediakan lapisan abstraksi perangkat keras secara penuh terhadap perangkat keras yang berada di bawah sistem operasi.
 Mikrokernel. Mikrokernel menyediakan sedikit saja dari abstraksi
perangkat keras dan menggunakan aplikasi yang berjalan di atasnya yang disebut dengan server untuk melakukan beberapa fungsionalitas lainnya.
 Kernel hibrida. Kernel hibrida adalah pendekatan desain microkernel yang
dimodifikasi. Pada hybrid kernel, terdapat beberapa tambahan kode di dalam ruangan kernel untuk meningkatkan performanya.
 Exokernel. Exokernel menyediakan hardware abstraction secara minimal,
2.7 Kernel pada Android
Sistem Operasi Android mengunakan kernel linux versi 2.6.x pada versi Android 4.0(Ice Cream Sandwich) ke bawah dan menggunakan kernel linux versi 3.x.x pada versi Android 4.1 (Jelly Bean) ke atas. (Nazruddin Safaat, 2012)
Arsitektur kernel Linux pada Android telah diubah oleh Google, berbeda dengan siklus pengembangan kernel Linux biasa. Secara standar, Android tidak memiliki X Window System asli ataupun dukungan set lengkap dari perpustakaan GNU standar. Oleh sebab itu, sulit untuk memporting perpustakaan atau aplikasi Linux pada Android. Dukungan untuk aplikasi simpel C dan SDL bisa dilakukan dengan cara menginjeksi shim Java dan menggunakan JNI, misalnya pada port Jagged Alliance 2 untuk Android.
Pada dasarnya kernel pada Android merupakan sebuah kernel monolitik
yang didasarkan pada pengembangan kernel linux. Sehingga, seluruh proses manajemen sumber daya hardware pada sebuah smartphone Android merupakan tanggung jawab dari kernel itu sendiri.
2.8 Governor pada kernel Android
Governor pada kernel android merupakan sebuah profil tentang bagaimana suatu CPU/processor pada smartphone Android bekerja. Governor akan menginstruksikan kepada processor apa yang harus dilakukan dengan tepat pada saat berbagai situasi. (Governor. 2011. xda-university.com/as-a-developer/adding-features-to-your-kernel)
Pada kernel bawaan pabrikan sendiri hanya terdapat beberapa governor standar bawaan yang memiliki kemampuan terbatas menangani berbagai situasi smartphone. Sehingga, kinerja dari cpu smartphone itu sendiri menjadi tidak optimal. Untuk itulah diperlukan governor tambahan yang umumnya di buat oleh pihak ketiga yang memiliki kinerja yang lebih baik daripada governor standar pabrikan tersebut.
Berikut ini adalah beberapa governor yang ada saat ini : 1. Ondemand
frekuensi CPU berikutnya secara langsung bukan melakukan intervcal tertentu.. Perubahan frekuensi secara langsung memang sangat membantu dalam penanganan banyaknya prose yang dapat ditangani, akan tetapi tidaklah efektif diterapkan dalam pengunaan jangka panjang yang akan mengakibatkan turunnya frekuensi tinggi dan rendah secara drastis
.
2. Ondemandx:
Pada dasarnya merupakan governor Ondemand dengan penambahan
wake/suspend mode. Governor ini dapat dikatakan sebagai governor Ondemand yang hemat daya. Ketika layar dalam keadaan mati, frekuensi maksimum pada CPU di set pada 500 mhz. Walaupun Ondemand adalah governor bawaan di banyak kernel dan dipertimbangkan karena aman/stabil, akan tetapi untuk mendukung Ondemand/Ondemandx tergantung dari kemampuan CPU untuk melakukan penggantian frekuensi secara cepat dan memiliki transisi latensi frekuensi yang sangat rendah.. Tidak semua I/O scheduler cocok dengan governor Ondemand/Ondemandx, hanya I/O SIO yang sepertinya dapat dikatakan cocok sebagai pasangan Ondemand/Ondemandx.
3. Conservative
menaikkan dan menurunkan kecepatan CPU secara lebih bertahap daripada Ondemand. Dengan kata lain, governor ini menaikkan frekueni secara bertahap ketika CPU digunakan dan langsung melakukan lompatan ke frekuensi terendah ketika dalam keadaan idle.. Target governor Conservative adalah untuk mengatur frekuensi CPU secara dinamis, tanpa melompat langsung ke frekuensi tertinggi.
4. Interactive
Interactive dianggap sebagai governor yang lebih efisien dari Ondemand. Jadi dapat dikatakan lebih cepat, dan hemat baterei. Interactive di rancang untuk sensitif-latency, beban kerja yang interaktif. Alih-alih pengambilan sampel pada setiap interval seperti ondemand, Interactive menentukan bagaimana skala ketika CPU keluar dari status idle. Governor ini memiliki keuntungan sebagai berikut :
1) Lebih responsif, karena governor yang ada melakukan sampel beban CPU dalam konteks penjadwalan kerja, tapi governor Interactive melakukan hal ini dalam konteks waktu, yang memberikan sampel beban CPU yang lebih konsisten.
CPU untuk X ms. 5. Interactivex:
Merupakan governor interactive dengan profile yang lebih hemat baterei daripada governor Interactive.
6. Lulzactive:
merupakan governor campuran antara Interactive dan Smartass dan merupakan salah satu governor pilihan para pengembang pihak ketiga. Versi lama : Ketika beban kerja lebih besar atau sama dengan 60%, governor langsung menaikkan skala prosesor ketingkat yang lebih tinggi. Ketika beban kerja kurang dari 60% governor menurunkan skala prosesor ketingkat yang lebih rendah. Ketika layar dalam posisi mati, frekuensi di kunci ke dalam skala frekuensi minimum yang bersifat global. Tiga parameter yang di tentukan user adalah inc_cpu_load, pump_up_step, pump_down_step. Tidak eperti versi lamanya, versi yang baru memberikan kontrol yang lebih baik untuk pengguna. Pengguna dapat menentukan ambang batas untuk governor dalam menaikkan/menurunkan skala prosesor. Pengguna juga dapat menentukan angka frekuensi yang dapat dilewatkan ketika menaikkan dan menurunkan frekuensi. Ketika beban kerja lebih besar atau sama dengan inc_cpu_load, governor menaikkan skala CPU pump_up_step secara bertahap. Ketika beban kerja lebih kecil dari inc_cpu_load, governor meurunkan skala pump_down_step.
7. Lulzactiveq:
oleh anggota XDA bernama Robertosc. Lulzactiveq mengarah kepada pengoptimalan versi kedua Luzactive yaitu dengan menyediakan sebuah parameter tambahan (dec_cpu_load) untuk membuat penentukan skala bawah lebih sensitif dan menggabungkan logika hotplug dengan governor. Luzactiveq adalah sebuah governor pertama yang menggunakan logika hotplug bawaan. Ketika CPU keluar dari posisi idle kemudian saat itu pula dibuat penskalaan CPU, jika load >= inc_cpu_load skala CPU naik and jika load <dec_cpu_load, skala CPU turun. Hanya prosessor dengan inti banyak yang dapat menerapkan governor ini.
8. Smartass:
Merupakan sebuah hasil penyempurnaan governor Interactive yang dilakukan oleh Erasmux. Tujuan utamanya adalah untuk menghemat pemakaian baterei tanpa mengurangi performa.
9. SmartassV2:
jangkauan frekuensi dapat digunakan oleh governor baik itu dalam posisi layar mati (idle) atau layar hidup (awake).
10. Intellidemand:
Intellidemand alias Intelligent Ondemand yang di tulis oleh Faux yang merupakan pengembangan dari governor Ondemand. Perilaku gover ini didsarkan pada penggunaan GPU (Graphic processing Unit). Ketika GPU dalam keadaan sangat sibuk (main game, melihat maps, dan lainnya) governor ini berperilaku seperti Ondemand. Ketika GPU sibuk, intellidemand membatasi frekuensi maksimum secara bertahap tergantung dari frekuensi yang tersedia pada perangkat/kernel untuk menghemat baterei. Proses ini disebut dengan “Browsing mode”.
11. Lazy:
Governor ini berasal dari Ezekeel yang dibuat berdasarkan Ondemand dengan tambahan paramater min_time_state yang bertujuan menentukan waktu minimum CPU untuk tetap pada frekuensi yang ada sebelum skala naik/turun. Ide ini bertujuan menghilangkan ketidakstabilan yang disebabkan oleh penggantian frekuensi secara cepat yang dilakukan Ondemand. Governor ini hanya menetukan frekuensi selanjutnya setelah melewati waktu yang ditetapkan pada min_time_state. Lazy juga mempunyai screenoff_maxfreq yang ketika digunkan akan menyebabkan governor ini memilih frekuensi maksimum ketika layar dalam keadaan mati.
12.Lagfree:
pada governor ini dikembangkan untuk penggunaan baterei yang lebih hemat. Frekuensi secara “anggun” diturunkan dan dinaikkan, tidak seperti Ondeman yang terlalu sering dinaikkan ke posisi 100%. Lagfree tidak melewatkan frekueniapapun ketika skalanya dinaikkn ataupun diturunkan. 13. Lionheart:
Lionheart sangat bagus dipasangkan dengan deadline i/o scheduler. 14.LionheartX
LionheartX merupakan pengembangan dari governor LionheartX akan tetapi terdapat penambahan beberapa fitur governor Smartass.
15. Brazilianwax:
Hampir sama dengan smartassV2. Akan tetapi lebih ringan, sehingga memiliki performa yang lebih baik dan lebih hemat dalam penggunaan baterei.
16.SavagedZen:
Salah satu pengembangan governor smartassV2. Yang bertujuan mendapatkan performa dan ketahanan baterei yang seimbang.
17. Userspace:
Disamping menentukan frekuensi secara otomatis, pengguna dijiinkan dengan bebas dapat menentukan frekuensi.
18.Powersave:
Mengunci frekuensi maksimum ke frekuensi minimum. Biasanya menyebabkan lag yang luar biasa.
19.Performance:
2.9 I/O Scheduler
I/O Scheduler adalah suatu kemampuan kernel dalam mengontrol pengaksesan terhadap penyimpanan data. Tujuan utamanya adalah mengecilkan latensi pencarian data pada media penyimpanan, prioritas permintaan I/O dari proses yang berjalan, mengalokasikan jumlah ruang penyimpanan untuk setiap proses yang berjalan, dan menjamin setiap permintaan penggunaan media penyimpanan data terpenuhi secara keseluruhan sebelum batas waktunya habis. (Governor, Tweaks. 2012. forum.xda-developers.com/showthread.php?t=1369817)
Terdapat beberapa I/O scheduler yang digunakan beberapa pihak pengembang, yaitu :
1. Noop 2. Deadline 3. CFQ 4. DFQ 5. SIO 6. VR/V(R) 7. Anticipatory
2.9.1 Noop Scheduler
Memasukkan semua permintaan I/O yang datang dan mengaturnya sesuai dengan logika “First In First Out” dan menerapkan permintaan yang digabungkan
Keuntungan yang didapat adalah flash drive tidak membutuhkan penyortiran terhadap beberapa permintaan I/O seperti pada hardisk.
Keuntungan:
 Melayani permintaan I/O dengan nomor cpu cycles yang lebih sedikit.
 Sangat bagus untuk penyimpanan kilat.
 Baik digunakan untuk pusat data sistem.
Kekurangan:
 Pengurangan nomor cpucycles mengakibatkan penurunan kinerja.
2.9.2 Deadline Scheduler
Tujuan utamanya adalah mengecilkan jarak pelayanan terhadap permintaan I/O. Hal ini sama dengan aturan Round Robin yang sangat cocok digunakan untuk melayani permintaan I/O yang banyak. Five queues sangat agresif dalam mengatur ulang urutan permintaan I/O yang akan dilayani.
Keuntungan:
 Mendekati penjadwalan yang real time.
 Baik untuk mengurangi latensi setiap permintaan I/O tunggal yang
diberikan.
 Scheduler terbaik untuk pemakaian pada basis data.
 Jumlah ruang yang diperlukan oleh proses dapat dengan mudah dihitung.
 Sangat baik digunakan pada memori kilat.
Kekurangan:
 Ketika sistem kelebihan beban kerja, tidak dapat diprediksi banyaknya
2.9.3 CFQ (Completely Fair Queuing)
CFQ scheduler mengatur skala antrian I/O setiap per-proses dan mendistribusikan ruang I/O yang tersedia secara rata kepada setiap permintaan I/O. Setiap per-proses mengandung permintaan sinkronisasi dari per-proses. setiap jarak waktu dialokasikan untuk setiap antrian tergantung priritas dari proses utama. Versi kedua dari CFQ mempunyai beberapa penyempurnaan terhadap penanganan proses I/O starvation dan beberapa backward seeks yang kecil dengan harapan lebih responif.
Keuntungan:
 Mengatur keseimbangan terhadap kemampuan I/O.
 Lebih mudah untuk disesuaikan.
 Baik untuk sistem yang menggunakan lebih dari satu prosesor atau
prosesor berinti banyak.
 Kemampuan basis data sistem yang baik.
Kekurangan:
 Beberapa pengguna melaporkan sistem membutuhkan waktu yang lebih
lama melakukan pengenalan media penyimpanan.
2.9.4 BFQ
sebagai suatu fungsi. Keuntungan:
 Sangat baik untuk transfer data menggunakan.
 Diyakini sebagai scheduler terbaik untuk media penyimpanan rekaman
video HD dan video langsung (streaming).
 Beberapa pengembang menetapkan sebagai I/O scheduler terbaik..
Kekurangan:
 Sangat tidak cocok digunakan pada saat mencari nilai benchmark.
 Semakin tinggi kapasitas yang menangani proses dapat menyebabkan
meningkatnya latensi pada disk.
2.9.5 SIO
Sebuah I/O scheduler sederhana yang bertujuan untuk menjaga latensi pada kondisi paling minimum ketika melayani berbagai permintaan I/O. Tidak ada konsep prioritas antrian, hanya sebuah penggabungan dasar. Sio merupakan sebuah campuran I/O antara noop dan deadline. Tidak ada pengaturan ulang permintaan ataupun pemilihan permintaan proses.
Keuntungan:
 Sederhana.
 Mengecilkan kemungkinan adanya permintaan yang tertunda.
Kekurangan:
 Sangat lambat dalam kecepatan pembacaan memori kilat, dibandingkan
 Kecepatan pembacaan segmen pada memori kilat juga tidak begitu bagus.
2.9.6 V(R)
Tidak seperti scheduler lainnya, penyelerasan dan pemisahan permintaan tidak dilayani terpisah, melainkan digabungkan untuk mendapatkan sebuah kondisi yang adil bagi setiap proses. Permintaan selanjutnya dilayani berdasarkan jarak dari permintaan terakhir.
Keuntungan:
 Mungkin merupakan sebuah scheduler terbaik untuk mendapatkan nilai
benchmark yang tinggi. Kekurangan:
 Tidak stabilnya kinerja I/O.
2.9.7 Anticipatory
Didasarkan pada 2 fakta yaitu : i) Disk terlihat bekerja sangat lambat.
ii) Operasi penulisan dapat terjadi kapan saja, tetapi selalu terdapat beberapa proses yang menunggu untuk proses pembacaan.
Jadi, untuk mengantisipasi adanya sebuah proses overwrite maka dibuat suatu penyelarasan operasi pembacaan.
Keuntungan:
 Permintaan proses pembacaan tidak pernah menunggu terlalu lama.
 Memiliki kemampuan pembacaan memori kilat yang baik seperti halnya
Kekurangan:
 Mengurangi kemampuan penulisan pada media penyimpanan yang
memiliki kecepatan tinggi.
(Governor, Tweaks. 2012.forum.xda-developers.com/showthread.php?t=1369817)
2.10 Overclock
Overclock adalah istilah teknologi informasi yang mengacu kepada cara untuk membuat suatu perangkat untuk berjalan di kecepatan yang lebih tinggi daripada ketentuan pembuat perangkat tersebut. Prinsipnya adalah membuat kinerja lebih tinggi. Tetapi perlakuan ini beresiko menyebabkan kestabilan sistem yang berkurang sampai rusaknya periferal yang di overclock. (Ciu Bun Seng. 2011)
Overclock memiliki batasan tertentu tergantung dari jenis hardware yang digunkan. Bahkan, walaupun memiliki vendor yang sama akan tetapi batasan overclock dari suatu smartphone berbeda.
Pada kondisi yang tidak stabil, overclock dapat menyebabkan sistem menjadi tidak stabil, mulai dari hardware hingga software, jika pada hardware dapat menyebabkan adanya efek kenaikan suhu dan pemborosan sumber daya, sementara pada software , dapat menyebabkan jalur data menjadi tidak lancar.
2.11 Clockworkmod Recovery
ClockworkMod Recovery (CWM) adalah sebuah recovery pengganti pilihan untuk sebuah perangkat android, dibuat oleh Koushik “Koush” Dutta. CWM
merupakan pengembangan dari recovery bawaan android versi 2.1 (Eclair). Kmemapuannya meliputi Nandroid backup, adb shell, advanced update.zip dan file browser untuk pilihan paket zip. (Google. 2013. developer.android.com/guide/index.html)
Aplikasi bernama ROM manager dapat digunakan untuk pemasangan CWM, melakukan penggantian langsung terhadap recovery bawaan. Seperti recovery bawaan CWM bisa digunakan untuk melakukan pembaharuan perangkat lunak perangkat. Tidak seperti recovery bawaan, CWM mempunya kemampuan untuk mengganti seluruh sitem operasi android termasuk ROM pengembang pihak ketiga.