Komponen Arsitektur Android

Gambar 1 -Android Architecture ( http-architecture )

Yang membedakan seorang pengguna Android dan seorang developer Android adalah kemampuan seorang developer untuk memahami seluk beluk aplikasi Android. Jadi, sebelum kita mulai mengembangkan aplikasi Android ada baiknya kita memahami hal-hal yang dasar terlebih dahulu, yaitu Arsitektur dari Android.

Beberapa orang di google juga menyebut arsitektur Android sebagai Android Stack(Tumpukan Android). Arsitektur Android terdiri dari berbagai lapisan dan setiap lapisan terdiri dari beberapa program yang memiliki fungsi berbeda. Tutorial ini akan menjelaskan lapisan-lapisan Android tersebut bagian demi bagian.

Seperti gambar di atas, berikut lapisan-lapisan Android dari yang paling dalam hingga paling luar:

– Linux Kernel

– Library

– Android Runtime

– Application Framework

– Application

Linux Kernel
Gambar 2 – Linux Kernel ( Edureka )

Di lapisan terbawah Arsitektur Android terdapat Linux Kernel. 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 gambar di bawah ini:

Gambar 3 – Kernel Update (edureka.co)

Library
Gambar 4 – Native Libraries ( Edureka.co)

Library 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.

Android Runtime
Gambar 5 – Android Runtime ( Edureka.co )

Terletak 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.

Application Framework
Gambar 6 – Application Framework ( Edureka.co)

Lapisan 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

Application Layer
Gambar 7 – Application (edureka.co)

Aplikasi 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

Itulah garis besar dari Arsitektur Android. Jika ada yang ditanyakan, silahkan tanyakan pada komen dibawah

Jika artikel ini bermanfaat buat Anda, mohon untuk di Share because “Sharing is Caring”

Referensi: