Arsitektur Android Haaii Guyss Tau Ga Sih Salah Satu By Muhammad Hidayah

Haaii guyss!!! Tau ga sih salah satu perbedaan antar programmer android dengan user android. Yeeppss yang menjadi pembeda antar programmer dengan user ialah seorang programmer harus tau Arsitektur Android yang disini seorang programmer dituntut untuk mengetahui dan memahami dari seluk beluk aplikasi android. Pada artikel kali ini saya akan mencoba untuk mengupas tentang Arsitektur Android.

Beberapa orang google juga menyebut arsitektur android sebagai stack android (Tumpukan). Bisa disebutkan sebagai stack karena aplikasi android memiliki berbagai lapisan didalamnya serta memiliki tugasnya masing — masing.

Gambar 1 -Android Architecture ( -architecture )Seperti yang bisa kita lihat pada gambar diatas, aplikasi android mempunyai 5 lapisan didalamnya yaitu:

* Kernel
* Library
* Android Runtime
* Application Framework
* Application

Gambar 2 — KernelKarena Android merupakan salah satu turunan dari sistem operasi Linux, maka Android juga memiliki kernel. Bagi yang belum pernah menyentuh sistem operasi Linux pasti akan bertanya — tanya apa itu “KERNEL”. Kernel merupakan inti dari sistem operasi berbasis UNIX. Kernel merupakan lapisan terdalam yang berada pada sistem operasi baik itu Linux maupun Android. Lapisan ini tidak benar — benar berinteraksi dengan pengguna maupun developer, tapi lapisan ini merupakan jantung dari seluruh sistem di Android karena lapisan inilah yang memberikan fungsi-fungsi berikut pada sistem Android:

* Abstraksi Hardware
* Program Manajemen Memory
* Pengaturan Sekuritas
* Manajemen Energi Software ( Baterai )
* Driver (Driver adalah program yang mengontrol hardware)
* Network Stack

Dengan berkembangnya Android maka Kernel Linux yang digunakan juga ikut berkembang, seperti pada table di bawah ini:

Android Version |API Level |Linux Kernel in AOSP
— — — — — — — — — — — — — — — — — — — — — — — — — —
1.5 Cupcake |3 |2.6.27
1.6 Donut |4 |2.6.29
2.0/1 Eclair |5–7 |2.6.29
2.2.x Froyo |8 |2.6.32
2.3.x Gingerbread |9, 10 |2.6.35
3.x.x Honeycomb |11–13 |2.6.36
4.0.x Ice Cream San |14, 15 |3.0.1
4.1.x Jelly Bean |16 |3.0.31
4.2.x Jelly Bean |17 |3.4.0
4.3 Jelly Bean |18 |3.4.39
4.4 Kit Kat |19, 20 |3.10
5.x Lollipop |21, 22 |3.16.1
6.0 Marshmallow |23 |3.18.10

Gambar 3 — Native LibrariesLibrary membawa sekumpulan instruksi untuk mengarahkan perangkat Android kita dalam menangani berbagai tipe data. Contohnya,perekam dari berbagai macam format Video dan Audio ditangani oleh Media Framework Library.

Berikut adalah beberapa kegunaan Library:

* Surface Manager: Mengolah tampilan Windows Pada Layar
* SGL: Grafik 2 Dimensi
* Open GL|ES: Grafik 3 Dimensi maupun 2 Dimensi
* Media Framework: Menunjang perekaman dari berbagai macam format audio, video, dan gambar
* Free Type: Penerjemah Font
* WebKit: Mesin Browser
* libc (System C libraries)
* SQLite: Database
* Open SSL: Sekuritas Jaringan

Android Libraries

Kategori ini menyangkut Library berbasis Java yang berfungsi khusus untuk pengembangan Android. Contoh dari Library yang termasuk dalam kategori ini adalah Library yang memfasilitasi pembangunan User Interface, Penggambaran Grafik dan akses Database, juga library yang terdapat pada Application Framework.

Rangkuman dari beberapa Library Android yang tersedia untuk Android Developer adalah sebagai berikut :

* android.app − Memberikan akses ke model aplikasi dan fondasi dari semua aplikasi Android.
* android.content − Memfasilitasi akses konten, mempublikasikan dan mengirim pesan antar aplikasi dan komponen aplikasi.
* android.database − Digunakan untuk mengakses data yang dipublikasikan oleh content providers, juga termasuk kelas manajemen basis data SQLite.
* android.opengl − antarmuka Java ke Api penerjemah OpenGL ES 3D Graphic
* android.os − Menyediakan akses aplikasi ke OS system service stAndar seperti perpesanan, system service, dan IPC ( Inter Process Communication ).
* android.text − Digunakan untuk menyajikan dan memanipulasi teks yang ditampilkan pada perangkat.
* android.view − Dasar dari pembangunan user interface aplikasi.
* android.widget − Koleksi dari beberapa user interface yang telah dibuat dan dapat langsung digunakan seperti tombol, label, tabel, view, layout manager, tombol pilihan, dll.
* android.webkit − Sekumpulan kelas untuk memungkinkan kemampuan web browsing yang akan dibangun ke dalam aplikasi.

Gambar 4 — Android RuntimeTerletak pada level yang sama dengan lapisan Library juga terdapat Lapisan Android Runtime dan juga sekumpulan Library Java yang dikhususkan untuk Android. Programmer Aplikasi Android membuat aplikasinya menggunakan bahasa pemrograman Java. Dalam lapisan Android Runtime juga terdapat Dalvik VM (Virtual Machine)

Apa Itu Dalvik VM ?

Dalvik Virtual Machine adalah sejenis Java Virtual Machine yang didesain khusus dan dioptimasikan untuk Android. Dalvik VM menggunakan fitur inti Linux seperti manajemen memory dan multi-threading. Dalvik VM membuat setiap Aplikasi Android dapat berjalan dengan prosesnya sendiri. Berikut beberapa rangkuman mengenai Dalvik VM

* Dalvik VM adalah sebuah VM berbasis Register.
* Optimal karena kebutuhan memory yang sedikit.
* Didesain agar banyak VM dapat dijalankan pada saat yang sama.
* Bergantung pada OS yang mendasari suatu proses isolasi, manajemen memori dan dukungan threading.
* Beroperasi pada ekstensi DEX.

Gambar 5 — Application FrameworkLapisan ini berinteraksi langsung dengan aplikasi kita. Program-program di atas memanajemen fungsi dasar dari perangkat seperti manajemen Resource, Manajemen Panggilan, Manajemen Window dll. Sebagai seorang developer, kita dapat melihat lapisan ini sebagai alat dasar yang dapat digunakan untuk mengembangkan aplikasi.

Beberapa program penting pada Application Framework antara lain:

* Activity Manager − Mengontrol semua aspek dari siklus hidup aplikasi dan Activity Stack.
* Content Providers − Mengizinkan aplikasi untuk mempublikasikan dan berbagi data dengan aplikasi lainnya.
* Resource Manager − Memberikan akses kepada resources yang bukan kode seperti strings, setting warna, dan layout User Interface.
* Notifications Manager − Membuat aplikasi dapat menampilkan pengingat dan notifikasi kepada pengguna.
* View System − Digunakan untuk membuat User Interface aplikasi

Gambar 6 — ApplicationAplikasi berada pada lapisan terluar dari Arsitektur Android. Pengguna awam Android pasti akan berinteraksi dengan lapisan ini untuk fungsi umum seperti menelepon, mengakses website, dll. Lapisan di bawah dari lapisan aplikasi ini diakses kebanyakan oleh Developer, Programmer atau sejenisnya.

Beberapa aplikasi stAndar yang pasti ada pada setiap perangkat, seperti:

* Aplikasi SMS
* Penelepon
* Web Browser
* Contact Manager

Ok, saya kira begitu saja yang saya bahas pada artikel kali ini. Semoga bermanfaat!

REFERENSI: