File system
Android bersandar pada kernel Linux, jadi struktur file yang digunakan juga sama persis dengan apa yang ada 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 adalah beberapa filesystem yang umumnya dimiliki
dalam sistem operasi ini:
- Root
- System
- Data
- Boot
- SDCard
- SD-Ext
- Dev, Tmp, Proc
Root
Mount Point: /
Device: Linux Kernel,
RAM
Layaknya linux, semua filesystem akan berada di dalam Root. Tidak seperti Windows yang memilah-milahnya ke dalam drive. Dalam linux semua device dapat 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 dapat diubah isinya kecuali telah dilakukan rooting. Berikut adalah beberapa file-file yang berada pada partisi ini:
- /system/app - Dalam direktori ini
terdapat file-file .apk untuk aplikasi system, seperti
Phone Dialer, Launcher, IME/Keyboard, Mail, SMS, Settings, dsb.
- /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 memiliki ekstensi .so. Android juga mendukung
pembangunan aplikasi dengan menggunakan bahasa C (Native) dengan
menggunakan Android NDK (Native Development Kit), dan mendukung
library-library C seperti layaknya linux. hanya saja dukungannya lebih
minimalis, dimana libc yang digunakan adalah libc bionic yang telah
dimodifikasi agar lebih minimalis. Tapi sebenarnya kita masih bisa
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 langsung di
atas kernel linux. Linux pada Android mendukung perintah-perintah dasar
yang biasa digunakan pada shell di linux, seperti 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 bernama busybox.
- /system/etc - Direktori ini berisi
file-file konfigurasi system dan konfigurasi driver, mulai dari setting
gps, wifi networking, database apn, sampai pengaturan volume untuk audio.
- /system/customize, /system/fonts, /system/media,
/system/usr - Semua direktori ini berisi file-file untuk
kustomisasi sistem, seperti gambar animasi boot, huruf 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 melakukanwipe data ( reset to factory ), partisi ini akan dibabad habis (di format), sehingga
data-data aplikasi yang diinstall, kontak, data sms, dan sebagainya akan
hilang. Tapi sistem masih tetap bisa berjalan dikarenakan wipe data tidak akan
menghapus partisi system.
Berikut adalah 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 berbagai macam data yang disimpan oleh aplikasi,
seperti 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 tempat penyimpanan
file-file .dex untuk dijalankan secara langsung oleh dalvik virtual
machine.
Boot
Mount Point: /boot
Device: Internal Memory
Partisi ini memuat Kernel Linux dan merupakan partisi awal yang akan menerima sinyal booting dari device. Kernel inilah yang secara
langsung mengakses hardware pada device kita.
SDCard
Mount Point: /sdcard, /mnt/sdcard
Device: MMC / External Storage
Layout: FAT32
Berbeda dengan partisi-partisi lainnya.
Partisi ini adalah area bebas, dimana kita dapat melakukan perubahan sesuai
dengan keiinginan. Kita dapat menyimpan lagu, foto, dan video di dalamnya, kita
juga dapat menggunakannya untuk penyimpanan backup data, dan dapat juga
digunakan 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 memiliki umur yang
tua yang tidak dapat lagi memuat sistem Android yang semakin hari semakin
berukuran besar dan tidak dapat dimuat di dalam Internal Memory yang memiliki
keterbatasan ukuran, dapat tetap mengikuti
perkembangan zaman .
SD-EXT ini memanfaatkan fasilitas Symlink yang didukung oleh
Linux, dimana kita dapat melakukan symbolic link ( memetakan ) suatu file atau
direktori dari satu partisi menuju partisi lainnya. Contohnya, kita memiliki
direktori /sd-ext/app_s pada SD-EXT, dan
lazimnya semua aplikasi sistem disimpan dalam/system/app, maka kita dapat
melakukan symlink dari /sd-ext/app_s menuju /system/app, sehingga ketika sistem mengakses file/direktori dari
/system/app sistem akan membaca file/direktori itu
dari /sd-ext/app_s.Cerdik kan?. Beberapa pengembangan SD-EXT ini telah dilakukan oleh beberapa developer
dan custom-ROM chef, seperti app2sd, data2sd, dan Modifikasi yang saya buat sendiri AD2SDX ( Lihat di XDA-Developers ). Dimana mod-mod
tersebut memiliki fungsinya masing-masing yang sebenarnya memiliki tujuan yang
sama, yaitu memanipulasi filesystem yang terbatas agar dapat memanfaatkan
penyimpanan data system di dalam External
Memory.
0 komentar:
Posting Komentar