KONSEP PROSES ANDROID



      Sistem operasi menjalankan banyak beragam program. Ketika proses dijalankan (executed) maka status proses akan berubah dan tidak selamanya aktif menggunakan prosessor. Hanya akan ada satu proses yang dapat berjalan pada prosessor apapun dan hanya pada satu waktu saat itu juga. Banyak proses yang berstatus ready ataupun waiting ketika prosessor menjalankan proses yang lainnya. Jika terdapat dua proses aplikasi yang memiliki prioritas yang sama, proses yang telah di prioritas lebih rendah terpanjang, akan dieksekusi terlebih dahulu.
      Dalam paket sistem operasi android tediri dari beberapa unsur seperti tampak pada gambar di bawah. Secara sederhana arsitektur android merupakan sebuah kernel Linux dan sekumpulan pustaka C / C++ dalam suatu framework yang menyediakan dan mengatur alur proses aplikasi.




A. LINUX KERNEL
      Android dibangun di atas kernel Linux 2.6. Namun secara keseluruhan android bukanlah linux, karena dalam android tidak terdapat paket standar yang dimiliki oleh linux lainnya. Pada android hanya terdapat beberapa servis yang diperlukan seperti keamanan, manajemen memori, manajemen proses, jaringan dan driver. Kernel linux menyediakan driver layar, kamera, keypad, WiFi, Flash Memory, audio, dan IPC (Interprocess Communication) untuk mengatur aplikasi dan lubang keamanan.

B. LIBRARIES
      Android menggunakan standar Berkeley Software Distribution (BSD), hanya setengah dari yang aslinya untuk tertanam pada kernel Linux, diantaranya:
•Media Library untuk memutar dan merekam berbagai macam format audio dan video.
•Surface Manager untuk mengatur hak akses layer dari berbagai aplikasi.
•Graphic Library termasuk didalamnya SGL dan OpenGL, untuk tampilan 2D dan 3D.
•SQLite untuk mengatur relasi database yang digunakan pada aplikasi.
•SSl dan WebKit untuk browser dan keamanan internet.

C. ANDROID RUNTIME
      Android Runtime merupakan mesin virtual yang membuat aplikasi android menjadi lebih tangguh dengan paket pustaka yang telah ada. Dalam Android Runtime terdapat 2 bagian utama, diantaranya:
•Pustaka Inti, android dikembangkan melalui bahasa pemrograman Java, tapi Android Runtime bukanlah mesin virtual Java. Pustaka inti android menyediakan hampir semua fungsi yang terdapat pada pustaka Java serta beberapa pustaka khusus android.
•Mesin Virtual Dalvik, Dalvik merupakan sebuah mesin virtual yang mengeksekusi file dalam format Dalvik Executable (*.dex). Dengan format ini Dalvik akan mengoptimalkan efisiensi penyimpanan dan pengalamatan memori pada file yang dieksekusi. Dalvik berjalan di atas kernel Linux 2.6, dengan fungsi dasar seperti threading dan manajemen memori yang terbatas.

D. APLICATION FRAMEWORK

      Kerangka aplikasi menyediakan kelas-kelas yang dapat digunakan untuk mengembangkan aplikasi android, menyediakan abstraksi generik untuk mengakses perangkat, serta mengatur tampilan user interface dan sumber daya aplikasi. Bagian terpenting dalam kerangka aplikasi android adalah sebagai berikut :
•Activity Manager, berfungsi untuk mengontrol siklus hidup aplikasi dan menjaga keadaan ”Backstack“ untuk navigasi penggunaan.
•Content Providers, berfungsi untuk merangkum data yang memungkinkan digunakan oleh aplikasi lainnya, seperti daftar nama.
•Resuource Manager, untuk mengatur sumber daya yang ada dalam program. Serta menyediakan akses sumber daya diluar kode program, seperti karakter, grafik, dan file layout.
•Location Manager, berfungsi untuk memberikan informasi detail mengenai lokasi perangkat android berada.
•Notification Manager, mencakup berbagai macam peringatan seperti, pesan masuk, janji, dan lain sebagainya yang akan ditampilkan pada status bar.

E. APLICATION LAYER
      Puncak dari diagram arsitektur android adalah lapisan aplikasi. Lapisan aplikasi merupakan lapisan yang paling tampak pada pengguna ketika menjalankan program. Lapisan ini berjalan dalam Android runtime dengan menggunakan kelas dan service yang tersedia pada framework aplikasi. Pada android semua aplikasi, baik aplikasi inti (native) maupun aplikasi pihak ketiga berjalan diatas lapisan aplikasi dengan menggunakan pustaka API (Application Programming Interface) yang sama. Android tidak memiliki satu tampilan utama program seperti fungsi main() pada aplikasi lain. Sebaliknya, aplikasi memiliki komponen penting yang memungkinkan sistem untuk memanggil dan menjalankan ketika dibutuhkan.

      Proses merupakan unit memori yang terproteksi, sedangkan Thread merupakan unit eksekusi. Satu proses tidak dapat mengakses secara langsung memori dari proses lain, kecuali dibuat memori yang global. Setiap aplikasi dan server di Android mempunyai prosesnya sendiri-sendiri, tetapi user juga dapat membuat proses baru. Semua aplikasi Android akan tetap berjalan dalam memori sampai sistem kebutuhan selesai mengeksekusi untuk aplikasi lain. Dalam mode user, ada 5 prioritas proses, yaitu:

1.Active Processes

Aplikasi hosting dengan komponen saat berinteraksi dengan user. Ini adalah proses Android yang sedang mencoba untuk tetap responsif dengan reclaiming sumber. Umumnya proses tersebut sangat sedikit, dan mereka akan dieksekusi hanya sebagai pilihan terakhir. Proses Aktive meliputi:
  1). Active
Setiap activity yang berada di awal, maka dia akan terlihat dan menerima input dari pengguna. Android akan berusaha membuat activity aplikasi untuk tetap hidup dan akan menghentikan activity yang berada di akhir jika diperlukan. Ketika activity sedang aktif, maka yang lainnya akan waiting.
  2). Paused
Dalam beberapa activity akan terlihat tapi tidak pada kondisinya. Ini terjadi jika activity tidak fullscreen dan transparan pada layar. Ketika activity dalam keadaan paused, akan terlihat active namun tidak dapat menerima input dari pengguna. Dalam kasus ekstrim, android akan menghentikan activity dalam keadaan paused.
  3). Stopped
Activity yang tidak terlihat. Activity tetap berada dalam memori dengan informasi yang ada. Tetapi akan tetap dieksekusi awal oleh sistem ketika sistem membutuhkan sumber yang lebih. Saat activity dalam kondisi stopped maka data disimpan. Ketika activity ditutup, maka akan menjadi aktive didalam sistem.
  4). Inactive
Activity telah dihentikan dan sebelum dieksekusi. Activity telah ditutup dari sistem sehingga perlu di restart ulang agar dapat digunakan kembali. Proses ini dijalankan dalam manajer memori android. Android akan menutup aplikasi jika activity inactive, kemudian stopped activity.
2. Visible Processes
visibel tidak aktif tetapi aktivitas hosting tetap terlihat. Seperti namanya, Proses terlihat , tetapi tidak di latar depan atau menanggapi perintah user. Hal ini terjadi ketika sebuah Aktivitas hanya sebagian yang tertutup.
3. Started Service Processes
Proses layanan – layanan hosting yang telah dimulai. Layanan mendukung proses berkelanjutan yang harus melanjutkan tanpa antarmuka. Karena Jasa tidak berinteraksi langsung dengan user, langsung menerima prioritas yang sedikit lebih rendah daripada aktivitas yang terlihat.
4. Background Processes
Proses masih dianggap sebagai proses latar depan dan tidak akan dianggap proses background meskipun sudah mulai dieksekusi. Umumnya ada sejumlah besar proses background Android yang akan mengeksekusi akhir setelah yang awal dieksekusi untuk mendapatkan sumber proses latar depan.
5. Empty Processes
Untuk meningkatkan kinerja sistem secara keseluruhan, Android sering mempertahankan aplikasi dalam memori, setelah mencapai akhir eksekusi proses. Android mempertahankan cache untuk meningkatkan waktu start-up aplikasi ketika kembali diluncurkan. Proses Rou-tinely ini dieksekusi sesuai kebutuhan.

      Android mengelola, membuka aplikasi yang berjalan di latar belakang, sehingga secara resmi user seharusnya tidak peduli tentang hal itu. Ini berarti bahwa menutup aplikasi bila sistem membutuhkan lebih banyak memori. Namun, kebanyakan pengguna android tidak sangat puas dengan apa yang sudah mereka gunakan sehingga membuka aplikasi yang lain. Akibatnya karena terlalu banyak proses yang berjalan, menyebabkan keterlambatan eksekusi proses atau sering menyebutnya “lola”.

KOMPONEN ANDROID

a.Services
      Service diproses tidak terlihat, memperbarui sumber data dan menampilkan notifikasi. Service digunakan untuk melakukan pengolahan data yang perlu terus diproses, bahkan ketika Activity tidak aktif atau tidak tampak.

b.Intents

      Intens merupakan sebuah mekanisme untuk menggambarkan tindakan tertentu, seperti memilih foto, menampilkan halaman web, dan lain sebagainya. Intents tidak selalu dimulai dengan menjalankan aplikasi, namun juga digunakan oleh sistem untuk memberitahukan ke aplikasi bila terjadi suatu hal, misal pesan masuk. Intents dapat eksplisit atau implisit, contohnya jika suatu aplikasi ingin menampilkan URL, sistem akan menentukan komponen apa yang dibutuhkan oleh Intents tersebut.

c.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, Batre sudah hampir habis, informasi zona waktu telah berubah, atau pengguna telah merubah bahasa default pada perangkat. Broadcast Receivers dapat menggunakan Notification Manager untuk memberitahukan sesuatu kepada pengguna.

d.Content Providers

      Content Providers digunakan untuk mengelola dan berbagi database. Data dapat disimpan dalam file sistem, dalam database SQLite, atau dengan cara lain yang pada prinsipnya sama. Dengan adanya Content Provider memungkinkan antar aplikasi untuk saling berbagi data. Komponen ini sangat berguna ketika sebuah aplikasi membutuhkan data dari aplikasi lain, sehingga mudah dalam penerapannya.

Siklus Hidup Aplikasi Android

      Siklus hidup aplikasi android dikelola oleh sistem, berdasarkan kebutuhan pengguna, sumberdaya yang tersedia, dan sebagainya. Misalnya Pengguna 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 pengguna ketika itu sedang menjalankan sebuah Activity, maka sistem akan memberikan perioritas utama untuk aplikasi yang tersebut. Sebaliknya, jika suatu Activity tidak terlihat dan sistem membutuhkan sumber daya yang lebih, maka Activity yang prioritas rendah akan ditutup.

      Android menjalankan setiap aplikasi dalam proses secara terpisah, yang masing-masing memliki mesin virtual pengolah sendiri, dengan ini melindungi penggunaan memori pada aplikasi. Selain itu juga android dapat mengontrol aplikasi mana yang layak menjadi prioritas utama. Karenanya android sangat sensitive dengan siklus hidup aplikasi dan komponen-komponennya. Perlu adanya penanganan terhadap setiap kondisi agar aplikasi menjadi stabil.

Gambar aplikasi

REFERENSI
google
memory management in android
[Reto Meier, Profesional Android Application Development, Wiley Publishing, Canada, 2009]
[Sayed . Y. Hashimi and Satya Komatineni, Pro Android, Apress, USA 2009]

About these ads

About Sintata
Seek and Share Knowledge

4 Responses to KONSEP PROSES ANDROID

  1. radenmas pamung hadiningrat says:

    mantraaaaaaaaaabbbbb,,,,,

  2. gihtah says:

    heemm…bagus juga artikelnya ,,,,4 jempol. :))

  3. gita says:

    yuupp…mantap juga neh,

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.

%d bloggers like this: