"Welcome To MY Blog

Selasa, 26 November 2019

Komponen Utama aplikasi Android

A. Komponen Utama Aplikasi Android

Komponen aplikasi adalah blok pembangun penting dari aplikasi Android. Setiap komponen adalah titik masuk tempat sistem atau pengguna dapat memasuki aplikasi Anda. Beberapa komponen bergantung   pada komponen lainnya. Komponen aplikasi adalah bagian penting dari sebuah aplikasi Android. Komponen ini harus terhubung dengan AndroidManifest.xml file yang menggambarkan setiap komponen dari aplikasi dan bagaimana mereka berinteraksi.

Ada empat macam tipe komponen aplikasi:
  •   Aktivitas  (Activity)
  •   Layanan (Service)
  •   Penerima siaran (BroadcastReceiver)
  •   Penyedia materi (ContentProvider)
Setiap tipe memiliki kegunaan tersendiri dan daur hidupnya sendiri yang mendefinisikan cara komponen dibuat dan dimusnahkan.
 
Bagian berikut menguraikan empat tipe komponen aplikasi :
1. Aktivitas (Service)   
Aktivitas merupakan subclass dari class Activity. Aktivitas adalah titik masuk untuk berinteraksi dengan pengguna. Ini mewakili satu layar dengan antarmuka pengguna. Misalnya, aplikasi email mungkin memiliki satu aktivitas yang menampilkan daftar email baru, aktivitas lain untuk menulis email, dan aktivitas satunya lagi untuk membaca email. Walaupun semua aktivitas bekerja sama untuk membentuk pengalaman pengguna yang kohesif dalam aplikasi email, masing-masing tidak saling bergantung. Karenanya, aplikasi berbeda bisa memulai salah satu aktivitas ini (jika aplikasi email mengizinkannya). Misalnya, aplikasi kamera bisa memulai aktivitas dalam aplikasi email yang membuat email baru agar pengguna bisa berbagi gambar. 

Aktivitas mempermudah interaksi penting berikut di antara sistem dan aplikasi:
  • Tetap memantau apa yang penting bagi pengguna saat ini (apa yang ada di layar) untuk memastikan bahwa sistem tetap menjalankan proses yang menjadi host aktivitas. 
  • Memahami proses yang digunakan sebelumnya berisi sesuatu yang dapat dikembalikan pengguna (aktivitas yang dihentikan), jadi lebih memprioritaskan mempertahankan proses tersebut. 
  • Membantu menangani aplikasi menghentikan prosesnya sehingga pengguna dapat kembali ke aktivitas dengan status sebelumnya yang dipulihkan. 
  • Memberikan cara bagi aplikasi untuk menerapkan alur antar pengguna, dan bagi sistem untuk mengoordinasikan alur ini. (Contoh yang paling klasik sedang dibagikan di sini).
2. Layanan (Service)
    Suatu layanan diterapkan sebagai subclass Service. Layanan adalah titik masuk serbaguna untuk menjaga aplikasi tetap berjalan di latar belakang bagi semua jenis alasan. Ini adalah komponen yang berjalan di latar belakang untuk melakukan operasi yang berjalan lama atau untuk melakukan pekerjaan bagi proses jarak jauh. Layanan tidak menyediakan antarmuka pengguna. Komponen lain, seperti aktivitas, bisa memulai layanan dan membiarkannya berjalan atau mengikat layanan untuk berinteraksi dengannya. Sebenarnya ada dua layanan semantik berbeda yang memberi tahu sistem tentang cara mengelola aplikasi: Layanan yang dimulai memberi tahu sistem agar tetap berjalan hingga pekerjaannya selesai.

3. Penerima siaran
(BroadcastReceiver) 
Penerima siaran diimplementasikan sebagai subclass BroadcastReceiver dan setiap siaran dikirim sebagai objek Intent. 
Penerima siaran adalah komponen yang memungkinkan sistem menyampaikan kejadian di luar alur pengguna regular, menjadikan aplikasi tersebut dapat merespons pengumuman siaran seluruh sistem. Oleh karena itu penerima siaran adalah entri yang didefinisikan dengan baik ke dalam aplikasi, sistem dapat mengirimkan siaran meskipun ke aplikasi yang saat ini tidak berjalan. Jadi, misalnya, suatu aplikasi dapat menjadwalkan alarm untuk mengirimkan notifikasi agar pengguna tahu tentang acara yang akan datang. dan dengan mengirimkan alarm tersebut ke Penerima Siaran aplikasi, aplikasi tersebut tidak perlu untuk tetap berjalan hingga alarm mati. Banyak siaran berasal dari sistem, misalnya, siaran yang mengumumkan bahwa layar sudah dimatikan, baterai lemah, atau gambar sudah diambil. Aplikasi juga dapat mengawali siaran . misalnya, untuk memberi tahu aplikasi lain bahwa beberapa data sudah didownload ke perangkat dan tersedia untuk digunakan. Walaupun penerima siaran tidak menampilkan antarmuka pengguna, penerima bisa membuat notifikasi bilah status untuk memberi tahu pengguna kapan kejadian siaran dilakukan.
    

4. Penyedia Materi (ContentProvider)
Penyedia materi diimplementasikan sebagai subclass ContentProvider dan harus mengimplementasikan seperangkat standar API yang memungkinkan aplikasi lain melakukan transaksi.
 
Penyedia materi mengelola set data aplikasi secara bersama-sama, yang dapat Anda simpan di sistem file, di database SQLite, di web, atau di lokasi penyimpanan persisten lain yang dapat diakses aplikasi Anda. Melalui penyedia materi, aplikasi lain bisa melakukan kueri atau memodifikasi data jika penyedia materi mengizinkannya. Misalnya, sistem Android menyediakan penyedia materi yang mengelola informasi kontak pengguna. Karenanya, setiap aplikasi dengan izin yang sesuai bisa melakukan kueri mengenai bagian dari penyedia materi. Aplikasi ini membujuk agar memikirkan penyedia konten sebagai abstraksi di database, karena terdapat banyak API dan dukungan dibuat untuk kasus umum tersebut. Namun demikian, penyedia konten memiliki beragam tujuan inti untuk perspektif desain-sistem. Bagi sistem, penyedia konten adalah titik masuk ke dalam suatu aplikasi untuk mempublikasikan item data bernama, yang diidentifikasi oleh skema URI. Jadi sebuah aplikasi dapat memutuskan bagaimana ia ingin memetakan data yang ada di dalamnya ke ruang nama URI, membagikan URI tersebut ke entitas lain yang dapat menggunakannya guna mengakses data. Ada beberapa hal tertentu yang dapat dilakukan sistem dalam mengelola sebuah aplikasi: 
a) Menetapkan URI tidak mengharuskan aplikasi tetap berjalan, sehingga URI dapat terus ada setelah aplikasi yang memilikinya keluar. Sistem hanya perlu memastikan bahwa aplikasi yang memilikinya masih berjalan saat harus mengambil data aplikasi tersebut dari URI yang terkait.
b) URI ini juga menyediakan model keamanan halus yang penting. Misalnya, sebuah aplikasi dapat menempatkan URO untuk gambar yang ada di papan klip, namun membiarkan penyedia kontennya terkunci sehingga aplikasi lain tidak dapat mengaksesnya secara bebas. Apabila aplikasi kedua berupaya mengakses URI tersebut di papan klip, sistem dapat mengizinkan aplikasi tersebut untuk mengakses data melalui pemberian izin URI sementara sehingga diizinkan mengakses data hanya di belakang URI tersebut, namun tidak ada data lainnya di aplikasi kedua itu.

Penyedia materi juga berguna untuk membaca dan menulis data privat ke aplikasi Anda dan tidak dibagikan.
Penyedia materi diimplementasikan sebagai subclass ContentProvider dan harus mengimplementasikan seperangkat standar API yang memungkinkan aplikasi lain melakukan transaksi. Penerima siaran adalah komponen yang memungkinkan sistem menyampaikan kejadian di luar alur pengguna regular, menjadikan aplikasi tersebut dapat merespons pengumuman siaran seluruh sistem. Oleh karena penerima siaran adalah entri yang didefinisikan dengan baik ke dalam aplikasi, sistem dapat mengirimkan siaran meskipun ke aplikasi yang saat ini tidak berjalan.
  Penerima siaran diimplementasikan sebagai subclass BroadcastReceiver dan setiap siaran dikirim sebagai objek Intent. Penyedia materi mengelola set data aplikasi secara bersama-sama, yang dapat Anda simpan di sistem file, di database SQLite, di web, atau di lokasi penyimpanan persisten lain yang dapat diakses aplikasi Anda. Tiga dari empat tipe komponen - aktivitas, layanan, dan penerima siaran diaktifkan oleh pesan  sinkron yang disebut intent.
    Intents mengikat antar masing-masing komponen di runtime. Anda dapat menganggap intent sebagai messenger yang meminta tindakan dari komponen lain. Intent dibuat dengan objek Intent, yang mendefinisikan pesan untuk mengaktifkan komponen tertentu (intent ekspolisit) atau tipe komponen spesifik (intent implisit). Untuk aktivitas dan layanan, intent mendefinisikan aksi yang akan dilakukan (misalnya, untuk melihat atau mengirim sesuatu) dan mungkin menetapkan URI data untuk ditindaklanjuti, salah satu hal yang mungkin perlu diketahui oleh komponen yang akan dimulai. Misalnya, intent mungkin menyampaikan permintaan suatu aktivitas untuk menampilkan gambar atau membuka halaman web. 

   Untuk penerima siaran, intent hanya mendefinisikan pengumuman yang sedang disiarkan. Misalnya, siaran untuk menunjukkan baterai perangkat hampir habis hanya menyertakan string tindakan yang menunjukkan baterai hampir habis.

Ada beberapa metode terpisah untuk mengaktifkan masing-masing tipe komponen:

  1. meneruskan Intent ke startActivity() atau startActivityForResult() 
  2. Dengan Android 5.0 (API level 21) dan sesudahnya, dapat menggunakan class JobScheduler untuk menjadwalkan tindakan. Untuk versi Android sebelumnya,  dapat memulai layanan (atau memberikan petunjuk baru ke layanan yang sedang berlangsung) dengan meneruskan Intent ke startService(). bisa mengikat ke layanan dengan meneruskan Intent ke bindService(). 
  3. memulai siaran dengan meneruskan Intent ke metode-metode seperti sendBroadcast(), sendOrderedBroadcast(), atau sendStickyBroadcast(). 
  4. melakukan kueri ke penyedia konten dengan memanggil query() pada ContentResolver.



Sumber : 

https://developer.android.com/guide/components/fundamentals?hl=id

Tidak ada komentar:

Posting Komentar