28 Januari 2012

Dasar Aplikasi Android: Komponen Aplikasi

Android memiliki 4 komponen pemrograman. Setiap komponen memiliki peran yang berbeda-beda dan berdiri sendiri meskipun terkadang salah satu komponen bergantung pada komponenen lainnya. Masing-masing komponen memiliki daur hidup sendiri-sendiri yang mengatur kapan komponen dibuat dan bagaimana komponen dihapus. Berikut ini adalah 4 tipe komponen dalam aplikasi android:

  • Activity
  • Sebuah activity bisa dianggap sebagai satu tampilan yang dilengkapi dengan user interface. Sebagai contoh, sebuah aplikasi email mungkin memiliki satu activity untuk menunjukan email baru, satu lagi activity untuk menulis surat, dan satu lagi activity untuk membaca email. Meskipun activity-activity bekerja bersamaan untuk membentuk sebuah aplikasi email yang bagus, setiap activity tidak bergantung kepada yang lainnya. Misalnya aplikasi lain bisa menggunakan satu dari beberapa activity tersebut jika aplikasi email memperbolehkannya. Contoh, sebuah aplikasi kamera bisa menggunakan activity dalam aplikasi email untuk menulis surat, digunakan oleh aplikasi kamera untuk mengirim gambar.
  • Service
  • Service adalah komponen yang berjalan dibalik layar. Sebuah service tidak memiliki user interface. Sebagai contoh, sebuah service bisa memainkan musik, sementara user sedang menjalankan aplikasi lain. Atau service juga bisa mengirimkan data melalui internet tanpa harus menghentikan interaksi user dengan sebuah activity. Komponen lain, misalnya activity bisa memulai service dan menjalankannya atau terikat ke service tersebut untuk berinteraksi dengan service tersebut.
  • Content provider
  • Sebuah content provider mengatur sekumpulan data aplikasi yang terbagi (shared). Kita bisa menyimpan data di filesystem, sebuah database SQLite, di web, atau di metode penyimpanan data lainnya yang bisa diakses oleh aplikasi kita. Melalui content provider, aplikasi lain bisa memberikan query atau bahkan bisa memodifikasi, tentunya jika content provider mengijinkan aksesnya. Sebagai contoh, sistem android menyediakan content provider yang mengatur informasi kontak user. Misalnya, aplikasi apa saja yang memiliki ijin bisa memberikan query kepada sebagian data untuk membaca dan menulis informasi tentang orang tertentu. Content provider juga bisa digunakan untuk menulis dan membaca data pribadi yang tidak dibagikan (tidak di shared).
  • Broadcast receivers
  • Broadcast receiver adalah komponen yang merespon terhadap siaran (broadcast) pengumuman yang dikeluarkan oleh sistem. Banyak siaran broadcast yang aslinya berasal dari sistem. Misalnya broadcast yang memberitahukan bahwa layar sudah mati, battery lemah, atau gambar sudah diambil. Aplikasi juga bisa memulai broadcast, misalnya memberitahukan aplikasi lain bahwa beberapa data sudah selesai didwonload dan bisa digunakan. Meskipun broadcast receiver tidak menampilkan user interface, broadcast receiver bisa membuat notifikasi di status bar untuk memberitahukan user sedang terjadi broadcast. Secara umum, broadcast receiver hanyalah sebuah "gerbang" kepada komponen lain dan ditujukan untuk melakukan perkerjaan yang sangat minimal. Contoh sederhana, broadcast receiver bisa meminta service untuk melakukan beberapa tugas berdasarkan kejadian yang ada.
Aspek yang unik dari desain sistem android adalah semua aplikasi bisa menjalankan komponen dari aplikasi. Untuk contoh, misalkan kita ingin user meng-capture foto dengan perangkat kamera, mungkin saja ada aplikasi lain yang melakukan hal yang sama, dan aplikasi kita bisa menggunakannya activity yang sudah ada daripada harus mengembangkan activity baru lagi. Kita tidak perlu menyatukan atau bahkan menghubungkan menuju kode aplikasi kamera. Namun, kita bisa langsung saja memulai activity dari aplikasi kamera. Setelah proses cature selesai, foto tersebut bisa langsung digunakan oleh aplikasi yang bersangkutan. Bagi user, dalam hal ini seolah-olah kamera adalah bagian dari aplikasi.

Ketika sistem memulai sebuah komponen, komponen memulai proses untuk aplikasi bersangkutan (bila belum berjalan) dan menjalankan class-class yang dibutuhkan komponen. Sebagai contoh, apabila aplikasi kita menjalankan activity dari aplikasi kamera yang meng-capture gambar, activity tersebut berjalan di dalam proses milik aplikasi kamera, bukan proses milik aplikasi yang kita jalankan. Karena itulah, tidak seperti aplikasi di dalam sistem lain, aplikasi android tidak memiliki satu bagian utama yang mengatur bagian lain (tidak ada fungsi main()).

Karena sistem menjalankan setiap aplikasi di dalam sebuah proses yang terpisah dengan proses perijinan file yang melarang akses ke aplikasi lain. Aplikasi kita tidak dapat langsung mengaktifkan sebuah komponen dari aplikasi lain. Namun begitu, sistem android mampu melakukan hal tersebut. Jadi, untuk mengaktifkan sebuah komponen dari aplikasi lain, kita harus memberikan pesan kepada sistem yang menyatakan bahwa aplikasi kita ingin menggunakan komponen tertentu. Kemudian sistem akan mengaktifkan komponen yang kita minta.

Tidak ada komentar:

Posting Komentar