Android Fundamental
A. Arsitektur Android
Arsitektur android terdiri dari 5 bagian yang harus diketahui oleh setiap developer apabila ingin
membangun sebuah aplikasi berbasis android. Masing-masing bagian ini menghimpun beberapa
program yang mendukung fungsi-fungsi spesifik dari sistem operasi.
I. Applications
Applications merupakan tingkatan pertama dan lapisan terluar pada arsitektur android. Yang
dimaksud dengan applications disini adalah aplikasi-aplikasi baik yang merupakan bawaan dari
android tersebut ataupun yang diinstall sendiri yang dipakai secara langsung oleh penggunanya
seperti Web Browser, Message, Contact, dan lain-lain. Pada lapisan ini pengguna dapat memakai
aplikasi tanpa harus mengetahui proses kerja di balik aplikasi tersebut.
1. Activity Manager – mengatur lifecycle dari sebuah aplikasi dan activity stack.
2. Window Manager – mengatur atau mengalokasikan layar dari sebuah aplikasi. Contohnya
dalam sebuah aktivitas saat mengakses aplikasi muncul sebuah pop-up window.
3. Content Provider – memberikan izin untuk dapat mengakses data dari aplikasi lain
contohnya kontak, album foto, dan lain-lain.
4. View System – serangkaian tampilan yang dapat digunakan untuk user interface sebuah
aplikasi diantaranya termasuk daftar, kotak teks, tombol, dan bahkan browser web yang
dapat disematkan.
5. Package Manager – mengatur berbagai macam informasi yang berkaitan dengan aplikasi
yang ter-install pada perangkat tersebut.
6. Telephony Manager – mengizinkan aplikasi untuk menggunakan kemampuan telepon pada
perangkat.
7. Resource Manager – menyediakan akses ke resource yang bersifat non-code seperti strings,
grafik dan layout user interface.
8. Location Manager – mengizinkan aplikasi untuk melacak lokasi dari perangkat untuk
kepentingan aplikasi tersebut contohnya maps.
9. Notification Manager - menampilkan pemberitahuan atau pengingat pada aplikasi.
III. Libraries
Libraries adalah sekumpulan kode yang berbasis bahasa C/C++ untuk memproses atau
menangani berbagai macam tipe data.
Core library di android sebagai penyedia fungsi-fungsi khusus untuk android. Inilah yang
membedakan android dengan sistem operasi lain yang berbasis Linux juga. Android menjadi
lebih unggul dengan core library yang sudah tersedia.
Aplikasi android dibuat dari bahasa pemrograman Java dimana setiap aplikasi dapat menjalankan
prosesnya sendiri karena dijalankan di VM tanpa harus re-compile untuk perangkat lain. Akan
tetapi android tidak menggunakan Java Virtual Machine (JVM) melainkan menggunakan Dalvik
Virtual Machine (DVM). Dalvik Virtual Machine merupakan virtual machine yang diatur untuk
perangkat dengan memori yang kecil, resource yang terbatas dan processor yang kecil.
Sebelum aplikasi dijalankan, source code (.java) di compile menjadi java byte code berupa binary
(.class) yang kemudian diterjemahkan lagi menjadi file dengan format Dalvik Executable (.dex)
untuk meminimalisir memori footprints. Setelah itu .dex file akan dikelompokkan bersama
resource, certificate, dan file lainnya menjadi format .apk menggunakan aapt. File .apk ini yang
kita kenal sebagai aplikasi android.
V. Linux Kernel
Android merupakan sistem operasi berbasis Linux yang tentunya memiliki kernel. Kernel adalah
bagian atau inti utama dari sistem operasi Linux ataupun android yang mendukung berbagai
macam komponen hardware. Dan tugasnya untuk mengelola dan berkomunikasi dengan
hardware.
B. Komponen Aplikasi Android
Terdapat empat tipe utama dari komponen aplikasi android, diantaranya sebagai berikut.
1. Activity
Activity merupakan task yang pengguna jalankan melalui grafik user interface. Contohnya
adalah saat ingin mengirim pesan pengguna mencari nomor penerima pesan dengan cara
mencari kontak orang yang dimaksud dengan menampilkan daftar kontak di aplikasi
contact.
Setiap android pada umumnya memiliki lebih dari satu activity.Dari sebagian activity ada
satu activity yang bersifat main atau utama dan activity lainnya disebut child. Perlu
diketahui juga ada yang disebut back stack. Jadi apabila ada sebuah window baru mulai,
activity sebelumnya di-push ke belakang stack dan diberhentikan sampai activity yang baru
prosesnya sudah selesai. Dan activity yang baru tersebut di popped out dari stack dan
activity sebelumnya dilanjutkan.
2. Services
Berbeda dengan activity, proses services berjalan di background tanpa ada interaksi dari
pengguna ataupun GUI. Contohnya mendengarkan musik di aplikasi streaming meskipun
sedang membuka aplikasi lain. Services biasanya ditulis dengan format xml file
"AndroidManifest.xml".
3. Broadcast Receivers
Digunakan untuk menerima dan merespon broadcast announcements. Contohnya adalah
pemberitahuan bahwa baterai perangkat sudah ingin habis. Broadcast receivers
menggunakan notification manager untuk menampilkan peringatan atau pemberitahuan
ketika ada broadcast.
4. Content Provider
Digunakan untuk mengelola kumpulan data apakah bersifat private atau dapat dibagikan ke
aplikasi lain. Aplikasi dapat memodifikasi data dengan bantuan content resolver interface
yang merupakan class didalam Android system.
C. Versi Android
Name Version API Level Released
2. Development Environment
A. Language
Java adalah bahasa pemrograman yang disupport oleh Google dan juga merupakan bahasa
pemrograman yang paling terkenal dan banyak digunakan untuk membuat aplikasi android. Selain
Java ada beberapa bahasa pemrograman yang dapat digunakan untuk membuat aplikasi android
berikut penjelasan lebih lanjut.
Java
Menurut Andy Rubin, selaku co-founder dari Android Inc, Java dipakai sebagai bahasa
pemrograman khusus untuk android dikarenakan pada saat itu Java merupakan bahasa
pemrograman yang popular di kalangan developer.
Kotlin
Kotlin menjadi urutan kedua dalam bahasa pemrograman yang dapat digunakan untuk
membuat aplikasi android. Dikarenakan memiliki banyak kemiripan dengan Java dan
mudah untuk dipelajari. Perbedaannya terletak pada “boiler plate” code yang artinya
lebih efisien dan lebih muda dibaca. Bahasa Kotlin juga di-support oleh Android Studio
salah satu development tools android.
C/C++
Penggunaan bahasa C/C++ dalam pembuatan aplikasi android dapat dilakukan namun
tidak dianjurkan karena kurang fleksible. Android studio menyediakan Android NDK
(Native Development Kit) yang support C/C++, artinya code tidak akan dijalankan di Java
Virtual Machine (JVM) melainkan dijalankan secara natively pada perangkat yang
memberikan kontrol salah satunya pada bagian memori.
C#
Berbeda dengan C/C++, C# lebih mudah dipakai untuk membuat aplikasi android. Bahasa
ini di-support oleh Unity dan Xamarin yang merupakan tools yang bagus untuk digunakan
untuk pembuatan aplikasi game.
Basic
Satu bahasa pemrograman lain yang dapat digunakan untuk membuat aplikasi android.
Namun bahasa ini belum di-support oleh Android Studio, Unity ataupun Xamarin.
Corona
Bahasa pemrograman satu ini lebih simple dari Java dan support semua native libraries.
PhoneGap
Apabila sudah sering menggunakan HTML,CSS dan javascript dalam membuat website
maka PhoneGap salah satu solusi yang tepat untuk membuat aplikasi android.
B. Tools
1. Android SDK
Android Software Development Kit adalah tools yang dapat digunakan untuk membuat aplikasi
android yang dilengkapi dengan sample project, development tools dan emulator untuk
mencoba menjalankan program yang sudah dibuat.
IntelliJ IDEA adalah salah satu Integrated Development Environment (IDE) yang paling populer
untuk pengembangan Java. Android Studio adalah versi IDEA yang mencakup versi SDK Android
dan alat GUI tambahan untuk membantu dalam pembuatan aplikasi android.
2. Eclipse
Eclipse merupakan Integrated Development Environment (IDE) yang digunakan untuk membuat
aplikasi sama halnya seperti Android Studio. Bahasa pemrograman yang didukung selain Java
diantaranya adalah C/C++, Python, dan lain-lain. Dengan hadirnya Android Studio, Google
memberhentikan support kepada Eclipse secara penuh pada tahun 2016.