Mengenal System Pada Android

Pada artikel sebelumnya tips droid telah mengembangkan bersama "Cara kerja dan arsitektur android", pada artikel ini tips droid kembali mengembangkan kepada anda untuk mengenal system pada android secara lebih spesifik. Ketika anda melaksanakan modifikasi pada perangkat android, system sering kali menjadi tujuan utama kita. Pada artikel ini mari kita mulai mengembangkan bersama.

Pendahuluan
Seperti yang telah dibahas pada artikel sebelumnya, pengertian android merupakan Sistem Operasi hasil pengembangan Google yang ditujukan untuk perangkat mobile menyerupai ponsel atau tablet. Android berjalan pada prosesor dengan arsitektur ARM, MIPS dan pada versi terbaru 4.0 dan 4.1 (Ice Cream Sandwitch dan Jelly Bean), android juga telah mendukung arsitektur x86 dari Intel.

Android berjalan pada kernel Linux dengan menggunakan banyak sekali macam library. Android ditulis dengan menggunakan bahasa C, Aplikasinya berjalan pada application framework yang dibangun dengan menggunakan Java dengan memanfaatkan Apache Harmony sebagai compatible dari java library. Semua aplikasi android berjalan pada virtual machine yang berjulukan Dalvik, dimana dalvik inilah yang bertugas untuk melaksanakan penterjemahan Java Bytecode menjadi Dalvik Dex Code (Dalvik-executable).


Mengenal dalvik

Pengertian dalvik
Dalvik merupakan virtual machine yang menjadi layer/lapisan antara aplikasi dan sistem operasi. Dimana di dalam file aplikasi yang mempunyai ekstensi .apk terdapat beberapa tipe file, diantaranya resource, assets, xml dan dex. Nah file dex ini lah yang asalnya diprogram dengan menggunakan bahasa Java. File dex ini akan dijalankan oleh Dalvik Virtual Machine untuk melaksanakan banyak sekali macam aktifitas, mulai dari menampilkan User Interface, saluran Internet, menjalankan audio, memanggil kamera, dan sebagainya. 
Semua saluran yang dilakukan oleh aplikasi tersebut harus melalui Dalvik Virtual Machine terlebih dahulu. Jadi boleh kita katakan jika file dengan ekstensi .dex tersebut yakni file executable untuk Android, yang bila kita berbicara perihal sistem operasi windows, maka file .dex sama menyerupai file .exe pada windows. Dapat ditarik kesimpulan bahwa:
1.Dalvik VM inilah yang menjadi kawasan berjalannya aplikasi-aplikasi dari Android. 
2.Core Libraries yang berada pada sistem Android sebagian besar merupakan core libraries yang terdapat pada bahasa pemrograman java. 
 
3.Setiap aplikasi yang kita jalankan di android, mempunyai proses tersendiri dan mempunyai instance masing-masing pada Dalvik Virtual Machine.  
 
4.Dengan Dalvik inilah, proses jalannya aplikasi menjadi efisien. Dalvik mengeksekusi file berekstensi dex yang disimpan dan dioptimalkan sehingga penggunaan memory di Android OS menjadi minimal. 
5.Dalvik VM bergantung pada kernel Linux (android menggunakan Linux kernel versi 2.6 untuk core sistemnya yang terdiri dari security, memory management, process management, network stack dan driver model) untuk fungsionalitas dasar menyerupai threading dan low-level memory management 
Dalvik Cache
File .apk bergotong-royong merupakan file arsip yang terkompresi menyerupai dengan format zip namun berbeda ekstensi dan cara kerja. Seperti Kita ketahui, untuk mengakses kontent/file yang berada pada file zip, Kita harus melaksanakan unzip terlebih dahulu, Hal ini akan mengakibatkan waktu untuk mengakses data di dalamnya menjadi lama, alasannya yakni itu Dalvik mempunyai kemudahan untuk melaksanakan cache, dimana file .dex yang berada dalam .apk tersebut akan di-unzip dan disimpan dalam direktori dalvik-cache yang biasanya berlokasi di "/data/dalvik-cache".

Proses unzip file .dex tersebut akan dilakukan dikala user melaksanakan instalasi aplikasi yang dimaksud. Sehingga dikala user membuka aplikasi tersebut, sistem tidak akan mengakses data .dex pada file .apk, tapi akan pribadi mengaksesnya di dalam dalvik-cache.

Filesystem
System android bersandar pada kernel Linux, sehingga struktur file yang dipakai sama menyerupai pada linux, tapi mungkin para pengguna Android tidak menyadarinya. Seperti halnya linux, root directory berada pada "/", semua filesystem/partisi di mount pada sebuah direktori. Berikut yakni beberapa filesystem yang umumnya dimiliki dalam sistem operasi ini:

  • Root
  • System
  • Data
  • Boot
  • SDCard
  • SD-Ext
  • Dev, Tmp, Proc
  • etc

Root
Mount Point: /
Device: Linux Kernel, RAM


Layaknya linux, semua filesystem akan berada di dalam Root. Tidak menyerupai Windows yang memilah-milahnya ke dalam drive. Dalam linux semua device sanggup diakses melalui filesystem dan menggunakan sistem stream, baik itu penyimpanan, display, ataupun input dan output device.

System
Mount Point: /system
Device: Internal Memory

Partisi ini berisi file-file system, dimana file-file sistem operasi Android dan aplikasi-aplikasi bawaannya disimpan. Partisi system ini selalu disimpan dalam Internal Storage ( storage pada ponsel ), dan tidak sanggup diubah isinya kecuali telah dilakukan rooting. Berikut yakni beberapa file-file yang berada pada partisi ini:
/system/app - Dalam direktori ini terdapat file-file .apk untuk aplikasi system, menyerupai Phone Dialer, Launcher, IME/Keyboard, Mail, SMS, Settings, etc. 
/system/frameworks - Dalam direktori ini terdapat file-file frameworks dengan ekstensi .jar yang menyimpan fungsi-fungsi java yang diakses oleh aplikasi android, baik itu aplikasi system atau aplikasi yang diinstall oleh user. 
/system/libs - Direktori ini berisi library-library dan library kernel yang ditulis dengan menggunakan bahasa C (Native), dan mempunyai ekstensi .so. Android juga mendukung pembangunan aplikasi dengan menggunakan bahasa C (Native) dengan menggunakan Android NDK (Native Development Kit), dan mendukung library-library C menyerupai layaknya linux. hanya saja dukungannya lebih minimalis, dimana libc yang dipakai yakni libc bionic yang telah dimodifikasi semoga lebih minimalis. Tapi bergotong-royong kita masih sanggup memanfaatkan Glibc untuk berjalan pada Linux ini, hanya harus dilakukan compile sendiri. 
/system/bin, /system/xbin - Merupakan direktori yang berisi file-file executable berbasis linux, bila .dex akan berjalan pada dalvik-cache, file-file di dalam direktori ini akan berjalan pribadi di atas kernel linux. Linux pada Android mendukung perintah-perintah dasar yang biasa dipakai pada shell di linux, menyerupai ls, mv, cp, cat, df, dsb. Perbedaanya, bila di linux semua perintah tersebut merupakan satu executable tersendiri, sedangkan pada linux semua perintah tersebut dikerjakan oleh satu executable yang berjulukan busybox. 
/system/etc - Direktori ini berisi file-file konfigurasi system dan konfigurasi driver, mulai dari setting gps, wifi networking, database apn, hingga pengaturan volume untuk audio. 
/system/customize, /system/fonts, /system/media, /system/usr - Semua direktori ini berisi file-file untuk kustomisasi sistem, menyerupai gambar animasi boot, abjad untuk tampilan, wallpaper, ringtone dan audio bawaan, juga beberapa layout keyboard dan lokalisasi bahasa.
Data
Mount Point: /data
Device: Internal Memory

Berbeda dengan system. Partisi data ini merupakan partisi untuk menyimpan data-data yang selalu berubah-ubah. Semua aplikasi yang diinstal oleh user akan disimpan pada partisi ini. Ketika pengguna melaksanakan wipe data ( reset to factory ), partisi ini akan bersihkan (di format), sehingga data-data aplikasi yang diinstall, kontak, data sms, dan sebagainya akan hilang. Tapi sistem masih tetap sanggup berjalan dikarenakan wipe data tidak akan menghapus partisi system.

Berikut yakni beberapa direktori yang berada pada partisi data ini:
/data/app - Berisi file-file .apk dari aplikasi-aplikasi yang diinstall, baik itu dari market atau dari aplikasi yang diinstall secara manual. 
/data/data - Berisi file-file data aplikasi, baik itu aplikasi system ataupun yang diinstall oleh user. Isi direktori ini memuat banyak sekali macam data yang disimpan oleh aplikasi, menyerupai save game, database (sqlite), juga file-file assets dan resource dari aplikasi tersebut. Direktori inilah yang biasanya membesar dan bila Kita menginstall banyak aplikasi, maka Low Disk Space biasanya muncul dikarenakan isi direktori ini sudah terlalu besar. 
/data/dalvik-cache - Merupakan kawasan penyimpanan file-file .dex untuk dijalankan secara pribadi oleh dalvik virtual machine.
Boot
Mount Point: /boot
Device: Internal Memory

Partisi ini memuat Kernel Linux dan merupakan partisi awal yang akan mendapatkan sinyal booting dari device. Kernel inilah yang secara pribadi mengakses hardware pada device kita.

SDCard
Mount Point: /sdcard, /mnt/sdcard
Device: MMC / External Storage
Layout: FAT32

Berbeda dengan partisi-partisi lainnya. Partisi ini yakni area bebas, dimana kita sanggup melaksanakan perubahan sesuai dengan keiinginan. Kita sanggup menyimpan lagu, foto, dan video di dalamnya, kita juga sanggup menggunakannya untuk penyimpanan backup data, dan sanggup juga dipakai sebagai USB drive.

SD-EXT
Mount Point: /sd-ext
Device: MMC / External Storage
Layout: EXT2, EXT3, EXT4

Merupakan modifikasi yang bisanya dilakukan pada Custom ROM, dimana bila Internal Memory tidak mencukupi untuk memuat data-data penting sistem, maka dilakukanlah pem-partisi-an pada memory card kita. Dimana memory card kita akan dibagi menjadi 2 partisi, partisi pertama berformat FAT32 yang akan dijadikan sebagai /sdcard, dan partisi kedua berformat EXT(x).

Inilah hebatnya Linux dan Android, dimana device yang mempunyai umur yang bau tanah yang tidak sanggup lagi memuat sistem Android yang semakin hari semakin berukuran besar dan tidak sanggup dimuat di dalam Internal Memory yang mempunyai keterbatasan ukuran, sanggup tetap mengikuti perkembangan zaman.
SD-EXT ini memanfaatkan kemudahan Symlink yang didukung oleh Linux, dimana kita sanggup melaksanakan symbolic link ( melaksanakan pemetaan ) suatu file atau direktori dari satu partisi menuju partisi lainnya. Contohnya, kita mempunyai direktori /sd-ext/app_s pada SD-EXT, dan lazimnya semua aplikasi sistem disimpan dalam /system/app, maka kita sanggup melaksanakan symlink dari /sd-ext/app_s menuju /system/app, sehingga dikala sistem mengakses file/direktori dari /system/app sistem akan membaca file/direktori itu dari /sd-ext/app_s. Beberapa pengembangan SD-EXT ini telah dilakukan oleh beberapa developer dan custom-ROM chef, menyerupai app2sd, data2sd. Dimana mod-mod tersebut mempunyai fungsinya masing-masing yang bergotong-royong mempunyai tujuan yang sama, yaitu memanipulasi filesystem yang terbatas semoga sanggup memanfaatkan penyimpanan data system di dalam External Memory.

Dev, Tmp, Proc
Mount Point: /dev, /tmp, /proc
Device: Linux Kernel, RAM

Direktori-direktori tersebut bukanlah merupakan Storage, tapi merupakan virtual. dimana /dev merupakan direktori yang memuat semua stream hardware, /tmp merupakan penyimpanan temporary pada ram, dan /proc merupakan direktori untuk menyimpan isu proses yang berjalan.

Seperti halnya linux pada PC, semua saluran aplikasi menuju hardware sanggup dilakukan dengan mengakses stream pada /dev, menyerupai halnya kita mengakses file biasa. Kita sanggup mengakses framebuffer display secara pribadi pada file /dev/graphics/fb0, atau mengakses input device secara pribadi pada /dev/input. Sistem Android mengakses hardware melalui /dev ini, dimana /dev ini lah yang diatur oleh Kernel Linux.

Kita juga sanggup mengetahui ID suatu proses dan proses apa saja yang sedang berjalan pada direktori /proc. dan sanggup juga menyimpan file temporary pada direktori /tmp untuk dilakukan proses selanjutnya.

Catatan:
1.Hanya saja direktori-direktori ini hanya sanggup diakses bila anda mempunyai permission root.

2.Artikel ini bersumber dari beberapa artikel di internet diantaranya: wikipediacode googleunikom, dan beberapa acuan dari buku.

0 Response to "Mengenal System Pada Android"

Post a Comment

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel