11

Click here to load reader

Android Architecture

Embed Size (px)

DESCRIPTION

Author Doc : Herwin AnggerianaArchitecture of Android

Citation preview

Page 1: Android Architecture

1 | P a g e

Android

By : Herwin Anggeriana

Email : [email protected]

Page 2: Android Architecture

2 | P a g e

Daftar Isi

Arsitektur .………………………………………………………………………………………………………………… 3

Target Arsitektur ………………………………………………………………………………………………………… 5

Modifikasi Kernel ………………………………………………………………………………………………………… 6

Mesin Virtual Android …………………………………………………………………………………………………. 6

File System Android …………………………………………………………………………………………………….. 7

Power Manajemen Android …………………………………………………………………………………….…. 10

Reference

Page 3: Android Architecture

3 | P a g e

Arsitektur

Android adalah sistem operasi berbasis open source yang dikembangkan oleh google

dengan dasar pengembangan dari Linux pada kernel 2.6.

Linux kernel terpilih menjadi dasar dari pengembangan sistem operasi karena beberapa

alasan yaitu :

Kelengkapan library driver

Skema pemodelan library driver yang berbentuk class – class

Open Source sehingga mudah untuk dimodifikasi

Dukungan solusi terhadap setiap masalah pengembangan dari komunitas yang

luas tersebar di internet

Linux kernel bersifat symmetric multiprogramming, multitasking dan realtime

Page 4: Android Architecture

4 | P a g e

Gambar 1 -> Arsitektur Linux kernel 2.6 yang menjadi dasar dari pengembangan sistem

operasi Android.

Kita dapat melihat pada gambar 1, dimana pada Linux kernel 2.6 terdapat beberapa

kelengkapan driver yang memang memenuhi visi utama dari sistem operasi android.

Visi utama dari sistem operasi android adalah sebagai sistem operasi utama

untuk perangkat mobile. Untuk memposisikan dirinya ( android ) sebagai sistem operasi

utama mobile, maka beberapa features / point harus terpenuhi : kamera, Bluetooth,

power manajemen, USB untuk sinkronisasi, keypad, WiFi, layar mini untuk handhone /

perangkat mobile, fungsi telepon, fungsi networking dan browser.

Pada gambar 1, secara arsitektur Linux kernel 2.6 pengembangan android lebih difokus

kepada runtime library-nya dan pengembangan J2ME ( Java 2 Micro Edition ).

Team developer android mengembangkan runtime library linux kernel 2.6

sehingga menghasilkan library baru dengan platform C library. Mereka juga

mengembangkan J2ME atau Java Virtual Mechine milik linux kernel 2.6 menjadi virtual

mesin baru yang disebut dengan Dalvik Virtual Mechine.

Untuk memberikan kemampuan pengembangan android di masa depan dan

kemampuan android dalam mensupport setiap aplikasi mobile, team developer android

menyediakan beberapa system library yang nantinya akan menjadi framework bagi

aplikasi tersebut. System librarynya sendiri dapat dilihat pada gambar 1 pada kolom

application framework.

Atas beberapa perbedaan dan persamaan arsitektur seperti ini, maka team developer

android respect terhadap Linux.

Page 5: Android Architecture

5 | P a g e

Target Arsitektur

Seperti yang kita ketahui bahwa Linux kernel mendukung untuk di-implementasikan

dalam berbagai arsitektur. Untuk saat ini sistem operasi Android lebih difokuskan

kepada x86 dan ARM arsitektur.

Pengembangan android pada arsitektur x86 pada dasarnya mengejar target sebagai

sistem operasi yang dapat berjalan pada arsitektur MID ( Mobile Internet Devices )

dimana ARM merupakan platform utama dari microprocessor.

Industri Smartphone sendiri terpecah-pecah dan tidak memiliki pionir dalam

penguasaan market mobile. Katakan beberapa vendor seperti Nokia, Research in

Motion ( RIM ), HTC, Apple, dan Samsung walaupun mereka kategori vendor besar

dalam hal penjualan market smartphone tetapi tidak ada satupun dari mereka yang

menjadi pionir dalam penciptaan arsitektur baru bagi industry mobile / industry

smartphone, semuanya tetap mengacu kepada satu arsitektur yaitu platform ARM.

Tahun 1996, hampir 98% arsitektur pada perangkat mobile / perangkat

smartphone menggunakan ARM microprocessor, focus utama dan alasan utama para

vendor mobile / smartphone menggunakan ARM platform karena iritnya konsumsi

power ( batterai ) berbeda dengan sistem arsitektur desktop komputer yang beroperasi

tidak tergantung pada batterai.

Memory yang di-embeded atau diimplementasikan dalam arsitektur ARM

microprocessor terfokus pada ukuran daya simpannya, biaya produksinya dan konsumsi

listriknya. ARM microprocessor sendiri terfokus pada instruksi 16 bit yang diistilahkan

dengan thumb yang akhirnya dalam pengembangan terakhir fungsi thumb ini menjadi

landasan bagi instruksi 32 bit pada ARM microprocessor.

Kesimpulan :

ARM microprocessor berhasil menjadi pemimpin / pionir bagi industry mobile dengan

focus kemampuannya mengkombinasikan menjalankan kode-kode program berukuran

kecil dengan irit batterai. Dengan alasan utama inilah Android menargetkan

Page 6: Android Architecture

6 | P a g e

arsitekturnya pada ARM. Dimana dasar pengembangan android sendiri adalah Linux

kernel yang berjalan pada arsitektur x86.

Modifikasi Kernel

Dasar pengembangan android adalah linux kernel, tetapi tidak berarti Android adalah

linux kernel. Hal ini dikarenakan perubahan significan pada linux kernel 2.6 dalam

pengembangan android. Modifikasi tersebut terjadi pada : alarm driver, ashmem (

android shared memory driver ), binder driver ( Inter-Process communication interface

), power manajemen, low memory killer, kernel debugger, dan logger.

Dalam menghargai atas hak cipta linux kernel yang berbasis GNU, team developer

android memberikan hasil pengembangan tersebut sebagai kontribusi terhadap

komunitas open source ( GNU ).

Modifikasi yang terjadi adalah :

Alarm driver : menyediakan fungsi timer untuk mengaktifkan kembali device dari

posisi sleep.

Ashmem : pengaturan dan menjadi jembatan bagi aplikasi untuk mengakses

memory yang akan digunakan bersama-sama dengan aplikasi lain, termasuk

penggunaan level process kernel.

Binder driver : memfasilitasi komunikasi data yang digunakan oleh berbagai

aplikasi secara bersama-sama, dan penggunaan memory secara bersama-sama.

Fungsi ini di-implementasikan agar IPC service tidak perlu terlalu sibuk dalam

melayani berbagai thread yang terjadi, memonitor thread, dan mengatur

berbagai thread yang ada. Binder juga bertanggung jawab terhadapa process

synchronization ke process.

Power manajemen : tidak banyak perubahan seperti milik linux power

management ( Linux PM ) hanya menambahkan fungsi untuk mengelola

penggunaan power dan menyimpannya.

Mesin Virtual Android

Banyak vendor mobile / smartphone seperti nokia, Samsung, dan Motorola

mengoptimasikan device mobile mereka dengan java virtual mechine ( JVM ) yang

Page 7: Android Architecture

7 | P a g e

dikenal dengan J2ME ( Java 2 Micro Edition ). Sedangkan pada Android, mereka

menciptakan sendiri mesin virtual android yaitu Dalvik Virtual Machine.

Pengembangan Dalvik Virtual Machine itu sendiri berdasarkan platform standar java,

code – code aplikasinya dibuat dari java dan di compile menjadi file – file java class.

File – file java class ini sendiri dapat berjalan pada environment J2ME virtual machine,

dan kumpulan code – code hasil kompilenya disebut dengan dex file.

Dex file inilah yang dapat berjalan pada Dalvik Virtual Machine. Suatu aplikasi

penunjang yaitu dex, akan melakukan konversi dari dex file – file dan repack kembali

beberapa file java class ( .jar ) menjadi satu file dex untuk penghematan memory.

Dengan optimasi virtual machine ini, memberikan beberapa benefit atau keuntungan

bagi perangkat mobile yaitu :

Slow CPU

Penggunaan Memory lebih sedikit

Tidak ada kemampuan sistem operasi untuk melakukan teknik swap space

Irit baterai

File System Android

Android menggunakan file sistem yang disebut dengan YAFFS file system. Linux pertama

kali menggunakan NAND sebagai file system ini untuk flash file system. Bagi perangkat

mobile / smartphone penggunaan harddisk terlalu besar daya tampungnya, dan terlalu

berat dan rentan untuk di-implementasi sehingga untuk penyimpanan file – file system

bagi perangkat mobile / smartphone ditentukan yang flash memory yang memiliki

kemampuan cepat diakses, dan tahan terhadap tekanan kinetic.

Ada dua teknologi dalam industry teknologi flash memory yang dapat digunakan

yaitu : NOR dan NAND. NOR memiliki kemampuan low density, lambat dalam penulisan

data, tetapi cepat dalam pengaksesan.

Sedangkan NAND memiliki kemampuan biaya murah dalam produksi, high density,

lambat dalam pengaksesan dan cepat dalam penulisan

Page 8: Android Architecture

8 | P a g e

Keterbatasan yang paling penting dalam memory NAND adalah block erasure, dan

memory wear. Block erasure adalah ketika terjadi penghapusan memory, seluruh block

data akan dihapus.

Jika dilihat dari teknik pemograman, NAND secara random dapat mengakses page tetapi

tidak memiliki kemampuan teknik random terhadap situasi tertentu seperti access

rewrite atau penghapusan selama operasi normal. Yang hasilnya segmentasi memory

jadi jorok.

Memory wear adalah keterbatasan sector dalam penghapusan memory, yang akhirnya

memberikan dampak terburuk terhadap umur kelangsungan data dalam penyimpanan.

YAFFS ( Yet Another Flash File System ) dibuat oleh Toby Churchill Ltd (TCL) sebagai file

system yang dapat diandalkan dengan kemampuan cepat dalam melakukan booting

terhadap perangkat flash system. YAFFS mencoba melakukan kombinasi fungsi terbaik

dari dua teknologi flash system yang ada, seperti meng-implementasikan fungsi JFFS dari

teknologi NOR flash system ke dalam environment NAND.

Seperti yang telah kita ketahui, NOR dan NAND memiliki perbedaan cukup besar dari

aspek arsitektur, seperti waktu penghapus di memory milik NOR lebih menyita waktu

lebih lama dari NAND, fungsi sampah ( garbage collection ) milik NOR tidak dapat

diimplementasikan dalam environment NAND.

YAFFS adalah flash system yang pertama dibuat dengan dasar arstektur dari NAND flash

system. Arsitektur NAND flash system bersifat portable dan sudah di-implementasikan

oleh Linux, WinCe, pSOS, ThreadX dan beberapa sistem operasi lainnya.

Perangkat mobile / perangkat smartphone yang sistem operasinya berbasis YAFFS

biasanya memiliki tingkat toleransi yang cukup tinggi terhadap error pada file

systemnya, hal ini karena YAFFS memiliki fungsi bad block management dan error

correction untuk menjaga integritas data.

Page 9: Android Architecture

9 | P a g e

Gambar 2 -> Struktur dari YAFFS

YAFFS memiliki feature – feature yaitu :

Journaling : merupakan struktur file system bagi log file, memiliki kemampuan

untuk kesigap ketika terjadi kegagalan dalam power ( listrik baterai ).

Garbage collection : memiliki kemampuan optimal yang cukup tinggi. Ketika

YAFFS mendeteksi adanya bad block memory, YAFFS akan mengirimkan ke block

memory lain, dan menandakan sebagai block sampah. Sehingga processor akan

menghapusnya karena sebagai block sampah.

Lower memory requirement : merupakan footprint dari memory. Sama seperti

journaling, fungsi ini dapat dikembangkan ukurannya sesuai keinginan.

Flexibility : menggunakan definisi umum yang terdapat pada NAND flash system.

Portability : file – file dibuat dalam bentuk modular sehingga bersifat portable

untuk diimplementasikan ke dalam berbagai sistem operasi.

Robustness : penanganan bad block, dan error collection

POSIX support

Page 10: Android Architecture

10 | P a g e

Power Manajemen Android

Sistem operasi terkadang menggunakan power secara berlebihan karena adanya

berbagai pemrosesan dari berbagai perangkat. Oleh karena itu diperlukan suatu system

yang dapat menanganinya. System tersebut dikenal dengan power manajemen.

Power manajemen android cukup sederhana seperti yang terdapat pada tabel 1.

Flag value CPU Screen Keyboard

Partial wake lock On Off Off

Screen dim wake lock On Dim Off

Screen bright wake lock On Bright Off

Full wake lock On Bright Bright

Page 11: Android Architecture

11 | P a g e

Reference

[1] Materi Training Android di Singapore Nov 2009

[2] Dalvik VM Internals, Google I/O Developer Conference 2008

[3] YAFFS di Wikipedia http://e.wikipedia.org/wiki/YAFFS

[4] Dalvik overview http://dalvrikvm.com

[5] YAFFS structure http://www.yaffs.net/yaffs-overview