malam ini ehh sudah hampir menjelang subuh hehe ... saya akan memposting tentang cara kerja android,... langsung aja look down ya sobat insomnia....
Sebagai
contoh, device android anda yang dilengkapi dengan kamera. Kernel Android
terdapat driver kamera yang memungkinkan pengguna mengirimkan perintah kepada
hardware kamera. Level berikutnya dari tumpukan ini adalah library, yakni
serangkaian instruksi kepada smartphone yang berisi cara menangani data-data
yang berbeda. Sebagai contoh, media framework library pada Android mendukung
pemutaran dan perekaman berbagai format audio, video, dan gambar.
Bertempat
di level yang sama dengan library adalah lapisan runtime yang mencakup
serangkaian inti library Java. Dengannya, para programmer dapat mengembangkan
aplikasi untuk Android menggunakan bahasa pemrograman Java. Lapisan selanjutnya
adalah application framework, yang mencakup program untuk mengatur fungs i-
fungsi dasar smartphone.
Application
framework merupakan serangkaian tool dasar seperti alokasi resource smartphone,
aplikasi telepon, pergantian antar-proses atau program, dan pelacakan lokasi
fisik telepon. Para pengembang aplikasi memiliki akses penuh kepada tool-tool
dasar tersebut, dan memanfaatkannya untuk menciptakan aplikasi yang lebih
kompleks.
Dilapisan
teratas bercokol aplikasi itu sendiri. Dilapisan inilah Anda menemukan fungsi -
fungsi dasar smartphone, seperti menelepon dan mengirim pesan singkat,
menjalankan web browser, mengakses daftar kontak, dan lain-lain. Bagi rata-rata
pengguna, lapisan inilah yang paling sering mereka akses. Mereka mengakses
fungsi-fungsi dasar tersebut melalui user interface.
Ada
4 hal yang harus dipahami dalam membangun aplikasi berbasis Android :
Activity
adalah tampilan grafis yang kita lihat ketika menjalankan sebuah aplikasi.
Sebuah aplikasi dapat mempunyai lebih dari satu activity.
Intent
adalah serangkaian value yang menunjukan apa yang harus dilakukan ketika
terjadi perpindahan layar.
Service
adalah layanan yang bekerja di Backend
Content
provider memungkinkan sebuah aplikasi untuk dapat menyimpan dan menerima data
dari database.
Sistem
Operasi Google Android di Ponsel memang terbilang masih baru, tetapi Sistem
Operasi Android telah mengalami perkembangan yang cukup pesat. Diciptakan
sebagai tandingan iOS, Android menunjukan grafik perkembangan yang signifikan,
tentunya hal itu juga tidak lepas dari dukungan para pabrikan ponsel besar yang
juga ikut andil menghadirkan ponsel-ponsel bersistem operasi Android.
Penjelasan:
Dalam
paket sistem operasi android tediri dari beberapa unsur seperti tampak pada
gambar di bawah. Secara sederhana arsitektur android merupakan sebuah kernel
Linux dan sekumpulan pustaka C / C++ dalam suatu framework yang menyediakan dan
mengatur alur proses aplikasi.[Google IO, Android Anatomy and Physiology].
1.
Linux Kernel
Android
dibangun di atas kernel Linux 2.6. Namun secara keseluruhan android bukanlah
linux, karena dalam android tidak terdapat paket standar yang dimiliki oleh
linux lainnya. Linux merupakan sistem operasi terbuka yang handal dalam
manajemen memori dan proses. Oleh karenanya pada android hanya terdapat
beberapa servis yang diperlukan seperti keamanan, manajemen memori, manajemen
proses, jaringan dan driver. Kernel linux menyediakan driver layar, kamera,
keypad, WiFi, Flash Memory, audio, dan IPC (Interprocess Communication) untuk
mengatur aplikasi dan lubang keamanan.
2.
Libraries
Android
menggunakan beberapa paket pustaka yang terdapat pada C/C++ dengan standar
Berkeley Software Distribution (BSD) hanya setengah dari yang aslinya untuk
tertanam pada kernel Linux. Beberapa pustaka diantaranya:
•
Media Library untuk memutar dan merekam berbagai macam format audio dan video.
•
Surface Manager untuk mengatur hak akses layer dari berbagai aplikasi.
•
Graphic Library termasuk didalamnya SGL dan OpenGL, untuk tampilan 2D dan 3D.
•
SQLite untuk mengatur relasi database yang digunakan pada aplikasi.
•
SSl dan WebKit untuk browser dan keamanan internet.
Pustaka-pustaka
tersebut bukanlah aplikasi yang berjalan sendiri, namun hanya dapat digunakan
oleh program yang berada di level atasnya. Sejak versi Android 1.5, pengembang
dapat membuat dan menggunakan pustaka sendiri menggunakan Native Development
Toolkit (NDK).
3.
Android Runtime
Pada
android tertanam paket pustaka inti yang menyediakan sebagian besar fungsi
android. Inilah yang membedakan Android dibandingkan dengan sistem operasi lain
yang juga mengimplementasikan Linux. Android Runtime merupakan mesin virtual
yang membuat aplikasi android menjadi lebih tangguh dengan paket pustaka yang
telah ada. Dalam Android Runtime terdapat 2 bagian utama, diantaranya:
• Pustaka Inti, android dikembangkan melalui bahasa pemrograman Java, tapi Android Runtime bukanlah mesin virtual Java. Pustaka inti android menyediakan hampir semua fungsi yang terdapat pada pustaka Java serta beberapa pustaka khusus android.
• Mesin Virtual Dalvik, Dalvik merupakan sebuah mesin virtual yang dikembangkan oleh Dan Bornstein yang terinspirasi dari nama sebuah perkampungan yang berada di Iceland. Dalvik hanyalah interpreter mesin virtual yang mengeksekusi file dalam format Dalvik Executable (*.dex). Dengan format ini Dalvik akan mengoptimalkan efisiensi penyimpanan dan pengalamatan memori pada file yang dieksekusi. Dalvik berjalan di atas kernel Linux 2.6, dengan fungsi dasar seperti threading dan manajemen memori yang terbatas. [Nicolas Gramlich, Andbook, anddev.org]
• Pustaka Inti, android dikembangkan melalui bahasa pemrograman Java, tapi Android Runtime bukanlah mesin virtual Java. Pustaka inti android menyediakan hampir semua fungsi yang terdapat pada pustaka Java serta beberapa pustaka khusus android.
• Mesin Virtual Dalvik, Dalvik merupakan sebuah mesin virtual yang dikembangkan oleh Dan Bornstein yang terinspirasi dari nama sebuah perkampungan yang berada di Iceland. Dalvik hanyalah interpreter mesin virtual yang mengeksekusi file dalam format Dalvik Executable (*.dex). Dengan format ini Dalvik akan mengoptimalkan efisiensi penyimpanan dan pengalamatan memori pada file yang dieksekusi. Dalvik berjalan di atas kernel Linux 2.6, dengan fungsi dasar seperti threading dan manajemen memori yang terbatas. [Nicolas Gramlich, Andbook, anddev.org]
4.
Application Framework
Kerangka
aplikasi menyediakan kelas-kelas yang dapat digunakan untuk mengembangkan
aplikasi android. Selain itu, juga menyediakan abstraksi generik untuk
mengakses perangkat, serta mengatur tampilan user interface dan sumber daya
aplikasi. Bagian terpenting dalam kerangka aplikasi android adalah sebagai
berikut [Hello Android 2nd Edition]:
1.
Activity Manager, berfungsi untuk mengontrol siklus hidup aplikasi dan menjaga
keadaan ”Backstack“ untuk navigasi penggunaan.
2.
Content Providers, berfungsi untuk merangkum data yang memungkinkan digunakan
oleh aplikasi lainnya, seperti daftar nama.
3.
Resuource Manager, untuk mengatur sumber daya yang ada dalam program. Serta
menyediakan akses sumber daya diluar kode program, seperti karakter, grafik,
dan file layout.
4.
Location Manager, berfungsi untuk memberikan informasi detail mengenai lokasi
perangkat android berada.
5.
Notification Manager, mencakup berbagai macam peringatan seperti, pesan masuk,
janji, dan lain sebagainya yang akan ditampilkan pada status bar.
5.
Application Layer
Puncak
dari diagram arsitektur android adalah lapisan aplikasi dan widget. Lapisan
aplikasi merupakan lapisan yang paling tampak pada pengguna ketika menjalankan program.
Pengguna hanya akan melihat program ketika digunakan tanpa mengetahui proses
yang terjadi dibalik lapisan aplikasi. Lapisan ini berjalan dalam Android
runtime dengan menggunakan kelas dan service yang tersedia pada framework
aplikasi.
Lapisan
aplikasi android sangat berbeda dibandingkan dengan sistem operasi lainnya.
Pada android semua aplikasi, baik aplikasi inti (native) maupun aplikasi pihak
ketiga berjalan diatas lapisan aplikasi dengan menggunakan pustaka API
(Application Programming Interface) yang sama.
Komponen Aplikasi
Fitur
penting android adalah bahwa satu aplikasi dapat menggunakan elemen dari
aplikasi lain (untuk aplikasi yang memungkinkan). Sebagai contoh, sebuah
aplikasi memerlukan fitur scroller dan aplikasi lain telah mengembangkan fitur
scroller yang baik dan memungkinkan aplikasi lain menggunakannya. Maka
pengembang tidak perlu lagi mengembangkan hal serupa untuk aplikasinya, cukup
menggunakan scroller yang telah ada [developer.android.com].
Agar
fitur tersebut dapat bekerja, sistem harus dapat menjalankan aplikasi ketika
setiap bagian aplikasi itu dibutuhkan, dan pemanggilan objek java untuk bagian
itu. Oleh karenanya android berbeda dari sistem-sistem lain, Android tidak
memiliki satu tampilan utama program seperti fungsi main() pada aplikasi lain.
Sebaliknya, aplikasi memiliki komponen penting yang memungkinkan sistem untuk
memanggil dan menjalankan ketika dibutuhkan.
1.
Activities
Activity
merupakan bagian yang paling penting dalam sebuah aplikasi, karena Activity
menyajikan tampilan visual program yang sedang digunakan oleh pengguna. Setiap
Activity dideklarasikan dalam sebuah kelas yang bertugas untuk menampilkan
antarmuka pengguna yang terdiri dari Views dan respon terhadap Event. Setiap
aplikasi memiliki sebuah activity atau lebih. Biasanya pasti akan ada activity
yang pertama kali tampil ketika aplikasi dijalankan.
Perpindahan
antara activity dengan activity lainnya diatur melalui sistem, dengan
memanfaatkan activity stack. Keadaan suatu activity ditentukan oleh posisinya
dalam tumpukan acitivity, LIFO (Last In First Out) dari semua aplikasi yang
sedang berjalan. Bila suatu activity baru dimulai, activity yang sebelumnya
digunakan maka akan dipindahkan ketumpukan paling atas. Jika pengguna ingin
menggunakan activity sebelumnya, cukup menekan tombol Back, atau menutup
activity yang sedang digunakan, maka activity yang berada diatas akan aktif
kembali. Memory Manager android menggunakan tumpukkan ini untuk menentukan
prioritas aplikasi berdasarkan activity, memutuskan untuk mengakhiri suatu
aplikasi dan mengambil sumber daya dari aplikasi tersebut.
Ketika
activity diambil dan disimpan dalam tumpukkan activity terdapat 4 kemungkinan
kondisi transisi yang akan terjadi [Reto Meier, Profesional Android Application
Development, Wiley Publishing, Canada, 2009]:
1)
Active, setiap activity yang berada ditumpukan paling atas, maka dia akan
terlihat, terfokus, dan menerima masukkan dari pengguna. Android akan berusaha
untuk membuat activity aplikasi ini untuk untuk tetap hidup dengan segala cara,
bahkan akan menghentikan activity yang berada dibawah tumpukkannya jika
diperlukan. Ketika activity sedang aktif, maka yang lainnya akan dihentikan
sementara.
2)
Paused, dalam beberapa kasus activity akan terlihat tapi tidak terfokus pada
kondisi inilah disebut paused. Keadaan ini terjadi jika activity transparan dan
tidak fullscreen pada layar. Ketika activity dalam keadaan paused, dia terlihat
active namun tidak dapat menerima masukkan dari pengguna. Dalam kasus ekstrim,
android akan menghentikan activity dalam keadaan paused ini, untuk menunjang
sumber daya bagi activity yang sedang aktif.
3)
Stopped, ketika sebuah activity tidak terlihat, maka itulah yang disebut
stopped. Activity akan tetap berada dalam memori dengan semua keadaan dan
informasi yang ada. Namun akan menjadi kandidat utama untuk dieksekusi oleh
sistem ketika membutuhkan sumberdaya lebih. Oleh karenanya ketika suatu
activity dalam kondisi stopped maka perlu disimpan data dan kondisi antarmuka
saat itu. Karena ketika activity telah keluar atau ditutup, maka dia akan
menjadi inactive.
4)
Inactive, kondisi ketika activity telah dihentikan dan sebelum dijalankan.
Inactive activity telah ditiadakan dari tumpukan activity sehingga perlu
restart ulang agar dapat tampil dan digunakan kembali.
Kondisi
transisi ini sepenuhnya ditangani oleh manajer memori android. Android akan
memulai menutup aplikasi yang mengandung activity inactive, kemudian stopped
activity, dan dalam kasus luar biasa paused activity juga akan di tutup.
2.
Services
Suatu service tidak
memiliki tampilan antarmuka, melainkan berjalan di background untuk waktu yang
tidak terbatas. Komponen service diproses tidak terlihat, memperbarui sumber
data dan menampilkan notifikasi. Service digunakan untuk melakukan pengolahan
data yang perlu terus diproses, bahkan ketika Activity tidak aktif atau tidak
tampak.
3. Intents
Intens merupakan
sebuah mekanisme untuk menggambarkan tindakan tertentu, seperti memilih foto,
menampilkan halaman web, dan lain sebagainya. Intents tidak selalu dimulai
dengan menjalankan aplikasi, namun juga digunakan oleh sistem untuk
memberitahukan ke aplikasi bila terjadi suatu hal, misal pesan masuk. Intents
dapat eksplisit atau implisit, contohnya jika suatu aplikasi ingin menampilkan
URL, sistem akan menentukan komponen apa yang dibutuhkan oleh Intents tersebut.
4. Broadcast
Receivers
Broadcast Receivers
merupakan komponen yang sebenarnya tidak melakukan apa-apa kecuali menerima dan
bereaksi menyampaikan pemberitahuan. Sebagian besar Broadcast berasal dari
sistem misalnya, Batre sudah hampir habis, informasi zona waktu telah berubah,
atau pengguna telah merubah bahasa default pada perangkat. Sama halnya dengan
service, Broadcast Receivers tidak menampilkan antarmuka pengguna. Namun, Broadcast
Receivers dapat menggunakan Notification Manager untuk memberitahukan sesuatu
kepada pengguna.
5. Content
Providers
Content Providers
digunakan untuk mengelola dan berbagi database. Data dapat disimpan dalam file
sistem, dalam database SQLite, atau dengan cara lain yang pada prinsipnya sama.
Dengan adanya Content Provider memungkinkan antar aplikasi untuk saling berbagi
data. Komponen ini sangat berguna ketika sebuah aplikasi membutuhkan data dari
aplikasi lain, sehingga mudah dalam penerapannya.
Tipe Aplikasi Android
Terdapat
tiga kategori aplikasi pada android [Reto Meier, Profesional Android
Application Development, Wiley Publishing, Canada, 2009] :
1. Foreground
Activity
Aplikasi yang hanya
dapat dijalankan jika tampil pada layar dan tetap efektif walaupun tidak
terlihat. Aplikasi dengan tipe ini pasti mempertimbangkan siklus hidup
activity, sehingga perpindahan antar activity dapat berlangsung dengan lancar.
2. Background
Service
Aplikasi yang
memiliki interaksi terbatas dengan user, selain dari pengaturan konfigurasi,
semua dari prosesnya tidak tidak tampak pada layar. Contohnya aplikasi
penyaringan panggilan atau sms auto respon.
3. Intermittent
Activity
Aplikasi
yang masih membutuhkan beberapa masukkan dari pengguna, namun sebagian sangat
efektif jika dijalankan di background dan jika diperlukan akan memberi tahu
pengguna tentang kondisi tertentu. Contohnya pemutar musik.
Untuk
aplikasi yang kompleks akan sulit untuk menentukan kategori aplikasi tersebut
apalagi aplikasi memiliki ciri-ciri dari semua kategori. Oleh karenanya perlu
pertimbangan bagaimana aplikasi tersebut digunakan dan menentukan kategori
aplikasi yang sesuai.
Siklus Hidup Aplikasi Android
Siklus
hidup aplikasi android dikelola oleh sistem, berdasarkan kebutuhan pengguna,
sumberdaya yang tersedia, dan sebagainya. Misalnya Pengguna ingin menjalankan
browser web, pada akhirnya sistem yang akan menentukan menjalankan aplikasi.
Sistem sangat berperan dalam menentukan apakah aplikasi dijalankan, dihentikan
sementara, atau dihentikan sama sekali. Jika pengguna ketika itu sedang
menjalankan sebuah Activity, maka sistem akan memberikan perioritas utama untuk
aplikasi yang tersebut. Sebaliknya, jika suatu Activity tidak terlihat dan
sistem membutuhkan sumber daya yang lebih, maka Activity yang prioritas rendah
akan ditutup. [Sayed . Y. Hashimi and Satya Komatineni, Pro Android, Apress,
USA 2009]
Android
menjalankan setiap aplikasi dalam proses secara terpisah, yang masing-masing
memliki mesin virtual pengolah sendiri, dengan ini melindungi penggunaan memori
pada aplikasi. Selain itu juga android dapat mengontrol aplikasi mana yang
layak menjadi prioritas utama. Karenanya android sangat sensitive dengan siklus
hidup aplikasi dan komponen-komponennya. Perlu adanya penanganan terhadap
setiap kondisi agar aplikasi menjadi stabil.
Sebagai
contoh dibawah ini
skema
audio pada android:
skema
modem pada android:




[ Insomnia ]: Cara Kerja Android >>>>> Download Now
BalasHapus>>>>> Download Full
[ Insomnia ]: Cara Kerja Android >>>>> Download LINK
>>>>> Download Now
[ Insomnia ]: Cara Kerja Android >>>>> Download Full
>>>>> Download LINK