Selasa, 10 Juni 2014

Shared Preference

Definisi Shared Preferences


Shared Preferences (SP) merupakan penyimpan data dalam bentuk key-value, value yang disimpan harus dalam bentuk tipe data primitif seperti integer, double, string, booelan.. Shared Preference objek untuk activity diperoleh melalui getPreferences().

Mode Shared Preferences

Ada tiga mode untuk shared preferences (SP):



  • MODE_PRIVATE:  data yang disimpan dalam SP hanya dapat dibaca oleh aplikasi yang  bersangkutan.
  • MODE_WORLD_READABLE: data yang disimpan dalam SP dapat dibaca oleh aplikasi lain.
  • MODE_WORLD_WRITEABLE: data yang disimpan dalam SP dapat dibaca dan diubah oleh aplikasi lain. 
untuk mengakses preferences maka menggunakan method dibawah ini :




  • getPreferences()
  • getsharedPreferences()
  • getDefaultSharedPreferences()
Contoh Implementasi Shared Preferences
Buat project android dengan ketentuan sebagai berikut :
  • Project name           : SharedPreferences
  • Build Target             : Android 2.1-update1
  • Application Name   : SharedPreferences
  • Activity                       : SharePreferencesActivity
  • Min SDK                    : 7






Hasil Tampilan Project


SQLite

Pengertian

SQLite merupakan sebuah sistem manajemen basisdata relasional yang bersifat ACID-compliant dan memiliki ukuran pustaka kode yang relatif kecil, ditulis dalam bahasa C. SQLite merupakan proyek yang bersifat public domain yang dikerjakan oleh D. Richard Hipp.
Tidak seperti pada paradigma client-server umumnya, Inti SQLite bukanlah sebuah sistem yang mandiri yang berkomunikasi dengan sebuah program, melainkan sebagai bagian integral dari sebuah program secara keseluruhan. Sehingga protokol komunikasi utama yang digunakan adalah melalui pemanggilan API secara langsung melalui bahasa pemrograman. Mekanisme seperti ini tentunya membawa keuntungan karena dapat mereduksi overhead, latency times, dan secara keseluruhan lebih sederhana. Seluruh elemen basisdata (definisi data, tabel, indeks, dan data) disimpan sebagai sebuah file. Kesederhanaan dari sisi disain tersebut bisa diraih dengan cara mengunci keseluruhan file basis data pada saat sebuah transaksi dimulai.

Terdapat beberapa alasan mengapa SQLite sangat cocok untuk pengembangan aplikasi Android, yaitu:
  • Database dengan konfigurasi nol. Artinya tidak ada konfigurasi database untuk para developer. Ini membuatnya relatif mudah digunakan.
  • Tidak memiliki server. Tidak ada proses database SQLite yang berjalan. Pada dasarnya satu set libraries menyediakan fungsionalitas database.
  • Single-file database. Ini membuat keamanan database secara langsung.
  • Open source. Hal ini membuat developer mudah dalam pengembangan aplikasi.


Tipe data yang didukung di SQLite :
Numeric ( integer , float , double), Text ( Char , varchar , text )Date TimeBlob 

Kelas SQLite

Ada 3 kelas yang harus di ketahui yaitu:
  • SQLiteDatabase
SQLiteDatabase merupakan sebeuah kelas yang mempunya method-method  
Insert() = untuk menambahkan baris ke database 
Update () = untuk memperbarui baris pada database 
Delete ()  = untuk menghapus baris pada database
execSQL ()  = untuk mengeksekusi sintak SQL
·    
  •   SQLiteOpenHelper SQLiteOpenHelper adalah subclass yang memiliki beberapa method seperti:onCreate()                             = di jalankan jika sebelum'nya belum ada databaseonUpgrade()                          = di jalankan jika sebelum'nya sudah di temukan database yang sama tapi beda versi, method ini bisa dimanfaatkan untuk mengubah sekema databaseonOpen()                                = di jalankan jika database dalam keadaan opengetWritableDatabase()         = memanggil database agar bisa di masuki datagetReadableDatabase()      = memanggil database agar bisa dibaca data'nya

  • Cursor
Setiap Query yang di eksekusi pasti membawa nilai kembalian atau feedback. Feedbeck yang dihasilkan query ini, jadi dengan kata lain cursor merepresentasikan hasil query yang di eksekusi pada baris dan kolom tertentu beberapa ini method yang di gunakan untuk latihan ini :

moveToFirst()       = untuk indah ke baris pertama
isAfterLast ()      = akan mengirim pesan balik jika posisi cursor sudah berada     di baris terakhir
  getLong()             = untuk mengambil data pada kolom yang mempunyai tipe  data Long
getString()            = untuk mengambil data pada kolom yang mempunyai tipe data String




OS yang didukung oleh SQLite : 

           SQLite mendukung semua platform. Anda bebas memilih OS, mau pakai Windows, Linux, Mac OSX bahkan Android atau iPhone pun bisa.



SQlite Manager

Tools untuk memanajemen Sqlite:

            SQLiteManager adalah multibahasa/tools berbasis web untuk mengelola database SQLite. Bahasa pemrograman yang digunakan adalah: PHP4 dan PHP5. Bekerja dengan baik pada platform Linux, Windows dan Mac OSX. Tools ini dalam masa developpement, tetapi sangat fungsional. Berbagai fungsinya adalah:

  • Manajemen beberapa database.
  • Creation ‘Koneksi’ ke beberapa database.
  • Properti dan pengelolaan pilihan dari database yaitu insert / Update / delete table.
  • Manajemen dari indeks – Menampilkan / Sisipkan / merubah / menyembunyikan data       dalam tabel.
  • Impor data dari file – eksekusi manual permintaan dari ‘SQLite’ format atau dari                 ‘MySQL’ format (konversi).
  • Membuat / Update / Hapus dari View.
  • Membuat / Update / Hapus dari Trigger.
  • Manajemen dari fungsi yang ditetapkan pengguna. (digunakan di   SQLiteManager           permintaan).
  • Ekspor dan struktur data ke format SQL.

Integrasi dengan bahasa lain
  • SQLite termasuk dalam framework REALbasic, yang memungkinkan aplikasi yang dikembangkan dengan menggunakan REALbasic dapat memanfaatkan basisdata SQLite.
  • Pustaka SQLite bisa digunakan secara langsung pada bahasa C/C++, namun untuk Tcl dan beberapa bahasa pemrograman berbasis script juga tersedia.
  • Modul DBI/DBD untuk Perl juga tersedia pada CPAN, DBD:SQLite, namun modul ini bukanlah antarmuka dengan SQLite melainkan memasukkan SQLite secara keseluruhan dalam modul tersebut.
  • Modul Python juga tersedia (PySQLite) yang diimplementasikan pada DB API Python versi 2.0 (PEP 249)
  • PHP dimulai dengan PHP5 telah memasukkan SQLite, versi PHP4 sebelumnya bisa juga digunakan untuk mengakses SQLite, namun modul SQLite tidak dimasukan secara standar bawaan.
  • Dimulai Lazarus versi 0.9.8 dan Free Pascal 2.0.0, SQLite didukung untuk digunakan oleh para programmer. Tutorial tersebut bisa didapatkan disini.
  • Meskipun borland tidak mempaketkan SQLite secara standar bawaan, Delphi sudah mendukung SQLite juga menggunakan pustaka yang dibuat oleh pihak ketiga (Aducom dan Zeos). Banyak program administrasi basisdata SQLite baik komersil ataupun bebas yang menawarkan kemudahan-kemudahan dalam memanajemen basisdata SQLite terdapat di internet dibuat dengan menggunakan bahasa ini.
  • SQLite juga termasuk dalam paket yang dibundle secara standar bawaan pada Mac OS X, dan digunakan sebagai salah satu pilihan mekanisme penyimpanan data pada API Apple.


Kelebihan Sqlite :

Sqlite merupakan salah satu embbeded database yang wajib dipertimbangkan untuk digunakan pada aplikasi bukan enterprise karena memiliki beberapa kelebihan yaitu :
Secara umum cukup stabil
  • Perfomanya lebih efesien dan cepat dibandingkan database yang lain
  • Sedikit menggunakan memory, hanya membutuhkan sigle library untuk mengakses database
  • Berjalan dibanyak platform yang berbeda, dan dapat dipindahkan dengan mudah tanpa setting administrasi yang rumit.
  • Memenuhi standart ACID (Atomicity, Consistensy, Isolation, dan Durability )
  • Mendukung ANSI 92 SQl Standar.
  • Mempunyai API untuk bahasa C++, PHP, Perl, Phyton, dan Tcl.
  • License public domain, free untuk redistributed.


Selasa, 25 Maret 2014

Lay Out

Definisi Layout

Layout adalah dimana tempat xml untuk memerintahkan atau membangun sebuah "layout" untuk sebuah tampilan pada android.

Pada saat kita membuat project baru, maka di sisi kiri Eclipse dapat kita lihat Package Explorer yang berisi file yang ada dalam folder project kita. Di dalam folder “src” akan ada file *.java yang akan menjadi tempat kita melakukan programming. Lalu di folder “res” akan ada resource-resource yang dapat kita gunakan. Resource ini dapat berupa file, gambar, ataupun xml untuk menyimpan value maupun layout.

Untuk di Android, kita melakukan programming untuk interface dalam sebuah Activity, bentuk dasar dari coding Activity:


Secara umum, layout Android ada 4 jenis yaitu:

1. LinearLayout 
Linear Layout yaitu tampilan dimana user hanya menempatkan 1(satu) widget per baris/kolom. Jika ingin 1 widget/baris, maka harus menggunakan orientation: vertical, dan jika 1 widget/kolom harus menggunakan orientation : horizontal

Contoh hasil dari tampilan LinearLayout adalah sebagai berikut :


2. RelativeLayout 
RelativeLayout adalah tampilan dimana user dapat menempatkan widget-widget didalamnya seperti layer, sehingga sebuah widget dapat berada di atas/di bawah widget lainnya. Layout ini biasanya berguna untuk membuat tampilan yang lebih universal sehingga dapat dibuka dengan baik di segala resolusi ponsel Android.



Contoh dari RelativeLayout adalah sebagai berikut:



3. AbsoluteLayout 
AbsoluteLayout adalah tampilan dimana kita dapat memasukkan posisi x dan y dari widget yang ada di dalamnya secara pasti sehingga penempatan posisi dapat ditentukan secara pasti.


contoh dari penggunaan AbsoluteLayout adalah sebagai berikut:




4. Frame Layout 
Frame Layout merupakan tampilan dimana widget-widget di dalamnya akan saling menumpuk satu sama lain. Bedanya antara layout ini dengan RelativeLayout adalah jika di RelativeLayout, kita dapat menempatkan sebuat widget posisinya di sebelah kanan/kiri/atas/bawah, sedangkan pada FrameLayout, widget yang ditulis lebih akhir akan diletakkan di DEPAN widget sebelumnya, sehingga akan menutupi kecuali jika warnanya transparan.



 Contoh dari tampilan FrameLayout adalah sebagai berikut:





sumber : http://danielhace.wordpress.com/2011/03/31/android-layout/

Screen Resolution


Definisi Resolusi

Resolusi adalah ukuran yang menunjukkan banyaknya pixel yang terdapat pada suatu layar. Semakin besar ukuran resolusi dapat diartikan semakin banyak juga konten yang dapat ditampilkan pada suatu layar. 

Yang perlu digarisbawahi adalah bahwa besaran resolusi tidak menunjukkan besaran layar secara fisik. Dimensi layar yang kecil dapat menampilkan resolusi yang sama dengan layar yang besar sekalipun. Tergantung dari besar atau kecilnya pixel. Pixel dapat Anda bayangkan sebagai suatu titik pada layar. Pixel bisa saja seukuran titik yang Anda buat menggunakan pensil, atau bisa juga sebesar titik yang Anda buat menggunakan spidol whiteboard.


Pada contoh di atas, bahwa resolusi layar Samsung Galaxi Note 3 adalah 1080 x 1920 pixels. Angka 1080 adalah banyaknya pixel pada sisi lebar dan angka 1920 adalah banyaknya pixel pada sisi panjang. Jadi untuk dapat mengetahui berapa banyak pixel pada Samsung Galaxy Note 3, kita hanya perlu mengalikan kedua angka tersebut. 1080 x 1920 = 2073600 pixels. Luar biasa banyak untuk 2073600 pixels dalam layar yang berukuran 5.7 inch.


Kategori Resolusi

Ketika resolusi disajikan dalam angka adalah sengant mudah bagi kita untuk menetukan layar mana yang lebih besar resolusinya. Tetapi adalakanya produsen elektronik menggunakan simbol huruf yang menjadikan sulituntuk kita menentukan berapa pixels yang dimiliki suatu layar.


  • VGA ( Video Graphics Resolution )

    VGA adalah standar resolusi pertama dalam dunia elektronik. Yang awalnya dipakai untuk memberikan standar resolusi pada layar komputer. tetapi sekarang layar yang menggunakan resolusi VGA mulai ditinggalkan karenan tidak mampu menampilkan gambar pada layar dengan kualitas bagus.



VGA ( Video Graphics Resolution ) 

  • XGA , QXGA, HXGA 
XGA (Extended Graphics Array), QXGA (Quad Extended Graphics Array) and HXGA (Hyper Extended Graphics Array) adalah pengembangan dari standar resolusi VGA yang ditingkatkan resolusinya. Resolusi dasarnya dibuat pada aspect ratio 4:3 dengan tanda W untuk menunjukan wide version dan tanda +, S (Super) dan U (ultra) yang berarti versi resolusi yang lebih tinggi. 
Resolusi XGA biasa dipakai pada layar monitor komputer dan tablet, sedangkan QXGA diapai untuk high end layar komputer tetapi tablet belum ada yang menggunakan resolusi QXGA. HXGA dipakai untuk layar dengan kemampuan ultra high resolution. 

XGA ( Extended Graphics Array ) 

QXGA (Quad Extended Graphics array ) 

HXGA ( Hyper Extended Graphics Array ) 
·         HD (High Definition) 
    HD adalah resolusi standar yang biasa digunakan pada HDTV (High Definition TV). Resolusi dasarnya adalah 1280x720, dengan aspect ration 16:9. Namun belakangan, resolusi ini tidak hanya dipakai pada TV saja, namun juga mulai merambah pada smartphone. Seperti pada Samsung Galaxy Note 3 dengan resolusi 1920×1080 yang termasuk dalam katergori FHD (Full High Definition). 
HD ( High Definition )




sumber : http://www.android-magz.com/2013/09/apakah-yang-dimaksud-dengan-screen.html

Arsitektur Android

Penjelasan Arsitektur Android

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.



1. 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. Linux merupakan sistem operasi terbuka yang handal dalam manajemen memori dan proses. Oleh karenanya 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.


2. Libraries

Android menggunakan beberapa paket pustaka yang terdapat pada C/C++ dengan standar Berkeley Software Distribution (BSD) hanya setengah dari yang aslinya untuk tertanam pada kernel Linux. Beberapa pustaka diantaranya:

1.   System C Library,  Diturunkan dari implementasi standard C system library (libc) milik BSD, dioptimasi untuk piranti embedded berbasis Linux
2. Media Libraries, Berdasarkan Packet Video's OpenCORE; library-library ini mendukung playback dan recording dari berbagai format audio dan video populer, meliputi MPEG4, H.264, MP3, AAC, AMR, JPG, dan PNG
3.    Surface Manager, Mengatur akses pada display dan lapisan composites 2D dan 3D graphic dan berbagai aplikasi
4.   Lib Web Core, Web browser engine modern yang mensupport Android browser maupun embeddable web view
5.     SGL, Teh underlyng 2D Graphics Engine
6. 3D Libraries, Implementasi berdasarkan OpenGL ES 1.0 APIs; library ini menggunakan hardware 3D acceleration dan highly optimized 3D software restirezer.            
7.      FreeType, Bitmap dan vector font rendering
8.   SQLite, Relational databse engine yang powerful dan ringan tersedia untuk semua aplikasi

9.      SSl dan WebKit untuk browser dan keamanan internet. 

Pustaka-pustaka tersebut bukanlah aplikasi yang berjalan sendiri, namun hanya dapat digunakan oleh program yang berada di level atasnya. Sejak versi Android 1.5, pengembang dapat membuat dan menggunakan pustaka sendiri menggunakan Native Development Toolkit (NDK).

3. Android Runtime
Pada android tertanam paket pustaka inti yang menyediakan sebagian besar fungsi android. Inilah yang membedakan Android dibandingkan dengan sistem operasi lain yang juga mengimplementasikan Linux. 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 dikembangkan oleh Dan Bornstein yang terinspirasi dari nama sebuah perkampungan yang berada di Iceland. Dalvik hanyalah interpreter 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. [Nicolas Gramlich, Andbook, anddev.org]

4. Application Framework
Kerangka aplikasi menyediakan kelas-kelas yang dapat digunakan untuk mengembangkan aplikasi android. Selain itu, juga menyediakan abstraksi generik untuk mengakses perangkat, serta mengatur tampilan user interface dan sumber daya aplikasi. Bagian terpenting dalam kerangka aplikasi android adalah sebagai berikut [Hello Android 2nd Edition]:

§   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.

5. Application Layer

Puncak dari diagram arsitektur android adalah lapisan aplikasi dan widget. Lapisan aplikasi merupakan lapisan yang paling tampak pada pengguna ketika menjalankan program. Pengguna hanya akan melihat program ketika digunakan tanpa mengetahui proses yang terjadi dibalik lapisan aplikasi. Lapisan ini berjalan dalam Android runtime dengan menggunakan kelas dan service yang tersedia pada framework aplikasi.

Lapisan aplikasi android sangat berbeda dibandingkan dengan sistem operasi lainnya. 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.


Komponen Aplikasi

Fitur penting android adalah bahwa satu aplikasi dapat menggunakan elemen dari aplikasi lain (untuk aplikasi yang memungkinkan). Sebagai contoh, sebuah aplikasi memerlukan fitur scroller dan aplikasi lain telah mengembangkan fitur scroller yang baik dan memungkinkan aplikasi lain menggunakannya. Maka pengembang tidak perlu lagi mengembangkan hal serupa untuk aplikasinya, cukup menggunakan scroller yang telah ada [developer.android.com].

Agar fitur tersebut dapat bekerja, sistem harus dapat menjalankan aplikasi ketika setiap bagian aplikasi itu dibutuhkan, dan pemanggilan objek java untuk bagian itu. Oleh karenanya android berbeda dari sistem-sistem lain, 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.


1. Activities

Activity merupakan bagian yang paling penting dalam sebuah aplikasi, karena Activity menyajikan tampilan visual program yang sedang digunakan oleh pengguna. Setiap Activity dideklarasikan dalam sebuah kelas yang bertugas untuk menampilkan antarmuka pengguna yang terdiri dari Views dan respon terhadap Event. Setiap aplikasi memiliki sebuah activity atau lebih. Biasanya pasti akan ada activity yang pertama kali tampil ketika aplikasi dijalankan.

Perpindahan antara activity dengan activity lainnya diatur melalui sistem, dengan memanfaatkan activity stack. Keadaan suatu activity ditentukan oleh posisinya dalam tumpukan acitivity, LIFO (Last In First Out) dari semua aplikasi yang sedang berjalan. Bila suatu activity baru dimulai, activity yang sebelumnya digunakan maka akan dipindahkan ketumpukan paling atas. Jika pengguna ingin menggunakan activity sebelumnya, cukup menekan tombol Back, atau menutup activity yang sedang digunakan, maka activity yang berada diatas akan aktif kembali. Memory Manager android menggunakan tumpukkan ini untuk menentukan prioritas aplikasi berdasarkan activity, memutuskan untuk mengakhiri suatu aplikasi dan mengambil sumber daya dari aplikasi tersebut.

Ketika activity diambil dan disimpan dalam tumpukkan activity terdapat 4 kemungkinan kondisi transisi yang akan terjadi [Reto Meier, Profesional Android Application Development, Wiley Publishing, Canada, 2009]:

1) Active, setiap activity yang berada ditumpukan paling atas, maka dia akan terlihat, terfokus, dan menerima masukkan dari pengguna. Android akan berusaha untuk membuat activity aplikasi ini untuk untuk tetap hidup dengan segala cara, bahkan akan menghentikan activity yang berada dibawah tumpukkannya jika diperlukan. Ketika activity sedang aktif, maka yang lainnya akan dihentikan sementara.

2) Paused, dalam beberapa kasus activity akan terlihat tapi tidak terfokus pada kondisi inilah disebut paused. Keadaan ini terjadi jika activity transparan dan tidak fullscreen pada layar. Ketika activity dalam keadaan paused, dia terlihat active namun tidak dapat menerima masukkan dari pengguna. Dalam kasus ekstrim, android akan menghentikan activity dalam keadaan paused ini, untuk menunjang sumber daya bagi activity yang sedang aktif.

3) Stopped, ketika sebuah activity tidak terlihat, maka itulah yang disebut stopped. Activity akan tetap berada dalam memori dengan semua keadaan dan informasi yang ada. Namun akan menjadi kandidat utama untuk dieksekusi oleh sistem ketika membutuhkan sumberdaya lebih. Oleh karenanya ketika suatu activity dalam kondisi stopped maka perlu disimpan data dan kondisi antarmuka saat itu. Karena ketika activity telah keluar atau ditutup, maka dia akan menjadi inactive.

4) Inactive, kondisi ketika activity telah dihentikan dan sebelum dijalankan. Inactive activity telah ditiadakan dari tumpukan activity sehingga perlu restart ulang agar dapat tampil dan digunakan kembali.

Kondisi transisi ini sepenuhnya ditangani oleh manajer memori android. Android akan memulai menutup aplikasi yang mengandung activity inactive, kemudian stopped activity, dan dalam kasus luar biasa paused activity juga akan di tutup.


2. Services

Suatu service tidak memiliki tampilan antarmuka, melainkan berjalan di background untuk waktu yang tidak terbatas. Komponen 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.

3. 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.

4. 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. Sama halnya dengan service, Broadcast Receivers tidak menampilkan antarmuka pengguna. Namun, Broadcast Receivers dapat menggunakan Notification Manager untuk memberitahukan sesuatu kepada pengguna.

5. 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. 


Tipe Aplikasi Android

Terdapat tiga kategori aplikasi pada android [Reto Meier, Profesional Android Application Development, Wiley Publishing, Canada, 2009] :

1. Foreground Activity
Aplikasi yang hanya dapat dijalankan jika tampil pada layar dan tetap efektif walaupun tidak terlihat. Aplikasi dengan tipe ini pasti mempertimbangkan siklus hidup activity, sehingga perpindahan antar activity dapat berlangsung dengan lancar.

2. Background Service
Aplikasi yang memiliki interaksi terbatas dengan user, selain dari pengaturan konfigurasi, semua dari prosesnya tidak tidak tampak pada layar. Contohnya aplikasi penyaringan panggilan atau sms auto respon.

3. Intermittent Activity
Aplikasi yang masih membutuhkan beberapa masukkan dari pengguna, namun sebagian sangat efektif jika dijalankan di background dan jika diperlukan akan memberi tahu pengguna 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 karenanya perlu pertimbangan bagaimana aplikasi tersebut digunakan dan menentukan kategori aplikasi yang sesuai.




sumber : http://maxiandroid.blogspot.com/2012/03/cara-kerja-dan-arsitektur-android.html
              http://educnology.web.id/open-source/arsitektur-sistem-operasi-android