aplikasi ingin menampilkan URL, sistem akan menentukan komponen apa yang dibutuhkan oleh intents tersebut.
- 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, baterai 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 user. Namun, broadcast receivers
dapat menggunakan notification manager untuk memberitahukan sesuatu kepada user
- Notifications
Notifications merupakan kerangka pemberitahuan untuk user. Notification memberikan isyarat atau peringatan tanpa mencuri
perhatian atau menyela aktivitas yang sedang dilakukan user. Notifications adalah teknik yang lebih disukai untuk membuat
perhatian user dari dalam suatu layanan atau broadcast receiver . Sebagai contoh, ketika device menerima pesan teks atau
panggilan masuk ditandai dengan menampilkan keterangan berupa cahaya, berbunyi, menampilkan icon, atau menampilkan
pesan dialog. Sehingga user bisa cepat bertindak pada peristiwa serupa karena memiliki aplikasi yang menggunakan notifications.
2.4.6 Tipe Aplikasi Android
Terdapat tiga kategori aplikasi pada Android yaitu Meier,
2009 :
- Foreground Activity
Aplikasi yang hanya dapat dijalankan jika tampil pada layar dan tetap efektif walaupun tidak terlihat. Aplikasi dengan tipe ini
selalu mempertimbangkan siklus hidup activity, sehingga perpindahan antar activity dapat berlangsung dengan lancar.
- Background Service
Aplikasi yang memiliki interaksi terbatas dengan user, selain dari pengaturan konfigurasi, semua dari prosesnya tidak tampak pada
layar. Contohnya aplikasi penyaringan panggilan atau sms auto respon.
- Intermittent Activity
Aplikasi yang masih membutuhkan beberapa masukkan dari user, namun sebagian sangat efektif jika dijalankan di background dan
jika diperlukan akan memberi tahu user 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 karena itu, perlu mempertimbangkan bagaimana aplikasi tersebut digunakan dan menentukan kategori
aplikasi yang sesuai.
2.4.7 Siklus Hidup Aplikasi Android
Siklus hidup aplikasi Android dikelola oleh sistem, berdasarkan kebutuhan user, sumber daya yang tersedia, dan
sebagainya. Misalnya user 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 user sedang menjalankan sebuah activity, maka sistem akan
memprioritaskan aplikasi tersebut. Sebaliknya, jika suatu activity tidak terlihat dan sistem membutuhkan sumber daya yang lebih,
maka activity yang prioritas rendah akan ditutup Hashimi, 2009.
Gambar 2.2 Siklus Hidup Activity Android Burnette, 2009
User mengatasi method ini pada activity class, dan Android akan memanggilnya menurut waktu yang tepat Burnette, 2009:
- onCreateBundle : Dipanggil ketika activity pertama kali dibuat, disini user melakukan pengaturan statis secara normal, misal
membuat view, memasukkan data dan sebagainya. Method ini mempassing obyek yang berisi status activity sebelumnya, jika
status tersebut sebelumnya telah di catat . Selalu diikuti dengan onStart .
- onStart : Dipanggil sebelum activity terlihat moleh user. Selalu diikuti onResume .
- onResume : Dipanggil sebelum activity mulai berinteraksi dengan user. Pada titik ini, activity berada pada stack activity
yang paling atas. Selalu diikuti onPause . - onPause : Dipanggil ketika sistem akan memulai activity lain.
Method ini biasa digunakan untuk melakukan perubahan yang tidak disimpan kedalam data yang tetap, menghentikan animasi,
dan hal lain yang memakai CPU dan yang lainnya. Diikuti onResume jika activity tetap berada di layar atau onStop jika
activity menjadi tidak terlihat oleh user. - onStop : Dipanggil ketika activity tidak lagi terlihat oleh user.
Ini mungkin terjadi karena kemudian dihancurkan atau jika activity lain yang sudah ada atau yang baru telah dilanjutkan.
Diikuti dengan onRestart jika activity kembali berinteraksi dengan user atau dengan onDestroy jika activity akan ditutup.
- onRestart : Dipanggil setelah activity dihentikan, dan merupakan prioritas untuk di jalankan kembali dan selalu diikuti
onStart . - onDestroy : Dipanggil sebelum activity dihancurkan, ini
merupakan panggilan terakhir yang diterima activity. Bisa dikatakan activity diakhiri finish , atau karena sistem secara
temporary menghancurkan instant activity untuk menghemat ruang.
- onSaveInstanceStateBundle : Android akan memanggil method ini untuk mengizinkan activity menyimpan setiap contoh
keadaan, seperti posisi kursor dalam sebuah text field. Pada umunya user tidak akan membutuhkan untuk mengatasi
pelaksanaan penyimpanan keadaan, karena pelaksanaan penyimpanan untuk semua tampilan user dikontrol secara
otomatis. - onRestoreInstanceStateBundle : Dipanggil ketika activity di
inisialisasi ulang sejak keadaan sebelum disimpan dari onSave- InstanceState . Default implementasi dikembalikan dari
keadaan tampilan user. Activity tidak berjalan di dalam bagian yang mungkin akan
dihentikan atau proses linux menempatkannya yang mungkin akan dihentikan pada setiap waktu pada setiap perintah untuk membuat
tempat activity baru. Sementara itu, method onPause mungkin akan jadi method terakhir yang dipanggil dalam activity.
Android menjalankan setiap aplikasi dalam proses secara terpisah, yang masing-masing memiliki mesin virtual pengolah
sendiri, dengan melindungi penggunaan memori pada aplikasi. Selain itu juga Android dapat mengontrol aplikasi mana yang layak
menjadi prioritas utama. Karena itu Android sangat sensitive dengan siklus hidup aplikasi dan komponen-komponennya. Gambar 1.2
menunjukkan prioritas dari aplikasi Meier, 2009.
Gambar 2.3 Prioritas Aplikasi Berdasarkan Activity Meier, 2009
- Active Processes foreground
Proses yang sedang dibutuhkan oleh user. Suatu proses dipertimbangkan menjadi yang terdepan jika berada pada kondisi
Android Developer, 2011 : - Menjalankan sebuah activity di mana user sedang berinteraksi
dengannya Method Objek Activity onResume sedang dipanggil.
- Merupakan host service yang terkait dengan activity di mana user sedang berinteraksi dengannya.
- Memiliki obyek BroadcastReceiver yang mengeksekusi method onReceive .
- Memiliki obyek service yang mengeksekusi satu dari lifecycle callback onStart, onCreate, atau onDestroy.
- Visible Processes
Merupakan proses tidak memiliki komponen yang di depan, tetapi tetap mempengaruhi apa yang user lihat dilayar. Proses ini
dipertimbangkan menjadi terlihat ketika salah satu dari kedua kondisi ini terjadi :
- Host dari sebuah activity yang tidak berada didepan, teatapi tetap terlihat oleh user method onPause dipanggil. Ini
mungkin terjadi, misalnya, jika activity yang terdepan merupakan dialog yang mengijinkan activity sebelumnya
terlihat pada latar belakang. - Host dari sebuah service yang terikat pada activity yang
terlihat. Proses yang terlihat dipertimbangkan menjadi sangat penting
dan tidak akan dimatikan kecuali jika itu diperlukan untuk menjaga foreground berjalan.
- Started Service Processes
Suatu proses service yang menjalankan service dengan method startService dan tidak berada kedalam salah satu dari dua
kategori diatas. Walaupun proses service tidak secara langsung mengikat pada apapun yang dilihat user. Pada umumnya
melakukan sesuatu yang dilakukan oleh user seperti memainkan file.mp3 pada background, atau mendownload data pada network,
maka dari itu sistem menjaga mereka tetap berjalan, kecuali memori tidak mencukupi untuk memelihara semua foreground
dan proses yang terlihat.
- Background Processes
Proses yang memegang suatu activity yang saat ini tidak terlihat oleh user method obyek onStop dipangil. Proses ini tidak
secara langsung berpengaruh kepada user, dan dapat dimatikan kapanpun untuk mengklaim memori untuk proses foreground,
terlihat atauproses
service. Jika
sebuah activity
mengimplementasi method
lifecycle secara
benar, dan
mengcapture status saat itu, mematikan proses tidak membuat user terganggu.
- Empty Processes
Proses untuk meningkatkan keseluruhan pencapaian sistem, Android sering mempertahankan aplikasi didalam memori setelah
mereka sudah mencapai akhir dari umur hidup mereka. Android memelihara cache ini untuk meningkatkan proses start-up
aplikasi ketika kembali dihidupkan atau dipakai. Proses ini secara rutin mematikan ketika diperlukan.
2.4.8 Kelebihan Android