Monday, April 28, 2014

T2 GAME TETRIS

GAMBARAN GAME
Gambaran game yang akan saya buat adalah saya membuat game umum, yaitu tetris. Sama seperti tetris pada umumnya, akan menggunakan balok balok dengan bentuk berbeda beda.  Tetris (bahasa RusiaТетрис) adalah teka-teki yang didesain dan diprogram oleh Alexey Pajitnov pada bulan Juni 1985, pada saat ia bekerja di Pusat Komputer Dorodnicyn di Akademi Sains Uni Soviet di Moskow. Namanya berasal dari awalan numerik Yunani yang bermakna bangun dengan empat bagian.
Permainan ini (atau variasi lainnya) terdapat pada hampir setiap konsol permainan video dan komputer pribadi, begitu juga pada peralatan lainnya seperti kalkulatorponselpemutar media portabelPDA dan bahkan sebagai rahasia pada produk non-media seperti osiloskop.

Walaupun Tetris muncul kebanyakan pada komputer rumahan, permainan ini lebih sukses pada versi Gameboy yang dirilis pada 1989 yang membuatnya sebagai permainan paling populer sepanjang masa. Pada berita Electronic Gaming Monthly ke-100, Tetris berada pada urutan pertama pada "Permainan Terbaik Sepanjang Masa. Pada tahun 2007, Tetris berada di urutan kedua pada 100 Permainan Terbaik Sepanjang Masa" menurut IGN. Ini merupakan gambaran game tetris pada umumnya
Saya akan membuat game tetris menggunakan eclipse pada Android. Alasan saya menggunakan software itu, karena pada praktikum di lab saya sedang mempelajari Eclipse pada Android oleh karena itu saya mencoba membuat tugas softskill ini berbasis android.

PENGENALAN ANDROID
Sejarah Android
Android adalah sistem operasi yang berbasis Linux untuk telepon seluler seperti telepon pintar dan komputer tablet. Android menyediakan platform terbuka bagi  para  pengembang  untuk  menciptakan  aplikasi  mereka  sendiri  untuk digunakan  oleh  bermacam  peranti  bergerak.  Awalnya,  Google  Inc.  Membeli Android  Inc.,  pendatang  baru  yang  membuat  peranti  lunak  untuk  ponsel. Kemudian untuk mengembangkan Android,  dibentuklah  Open Handset Alliance, konsorsium dari 34 perusahaan peranti keras, peranti lunak, dan telekomunikasi, termasuk Google, HTC, Intel, Motorola, Qualcomm, T-Mobile, dan Nvidia.
Pada saat perilisan perdana Android, 5 November 2007, Android bersama Open Handset Alliance menyatakan mendukung pengembangan standar terbuka pada perangkat seluler. Di lain pihak, Google merilis kode–kode Android di bawah License Apache, sebuah lisensi perangkat lunak dan standar terbuka perangkat seluler.
Di dunia ini terdapat dua jenis distributor sistem operasi Android. Pertama yang mendapat dukungan penuh dari Google atau Google Mail Services (GMS) dan kedua adalah yang benar–benar bebas distribusinya tanpa dukungan langsung Google atau dikenal sebagai Open Handset Distribution (OHD), tidak  hanya  menjadi  sistem  operasi  di  samrtphone,  saat  ini  Android menjadi  pesaing  utama  dari  Apple  pada  sistem  operasi  Tablet  PC.  Pesatnya pertumbuhan android selain faktor yang disebutkan di atas adalah karena Android itu  sendiri  adalah  platform  yang  sangat  lengkap  baik  itu  sistem  operasinya, aplikasi dan  tool  pengembangan,  market  aplikasi android serta dukukungan yang sangat tinggi dari komunitas open source di dunia.
Kelebihan Android
1.   Lengkap (Complete Platform)
Para  desainer  dapat  melakukan  pendekatan  yang  komperehensif ketika  mereka  sedang  mengembangkan  platform  Android.  Android merupakan sistem operasi yang aman dan banyak menyediakan tool dalam membangun  software  dan  memungkinkan  untuk  peluang  pengembangan aplikasi.
2.    Terbuka (Open Source Platform)
Platform  Android  disediakan  melalui  lisensi  open  source. Pengembang dapat dengan bebas untuk mengembangkan aplikasi. Android sendiri menggunakan Linux Kernel 2.6
3.   Free (Free Platform)
Android  adalah  aplikasi  yang  bebas  untuk  develope.  Tidak  ada lisensi  atau  biaya  royalti  untuk  dikembangkan  pada  platform  Android. Tidak ada biaya keanggotan, tidak diperlukan biaya pengujian, dan tidak ada kontrak yang diperlukan.
Pengembangan Aplikasi Android
Ada 4 hal mendasar yang harus kita pahami dalam membangun aplikasi berbasis Android :
Ø  Activity,  adalah  tampilan  grafis  yang  kita  lihat  ketika  menjalankan  sebuah aplikasi. Aplikasi dapat memiliki lebih dari satu Activity.
Ø  Intent, adalah serangkaian nilai yang menunjukan apa yang harus dilakukan ketika terjadi perpindahan layar.
Ø  Service, adalah layanan yang bekerja di belakang layar (background).
Ø  Content  provider,  memungkinkan  sebuah  aplikasi  untuk  dapat  menyimpan dan menerima data dari basis data.

Versi Android
Bedasarkan  perkembagannya  saat  ini  sistem  operasi  Android  sendiri telah melakukan perubahan-perubahan untuk pada sistem itu sendiri, oleh karena itu Android dirilis dalam beberpa versi.
1.  Android versi 1.1
Pada 9 Maret 2009, Google merilis Android versi 1.1. Android versi ini dilengkapi  dengan  pembaruan  estetis  pada  aplikasi,  jam  alarm,  voice  search (pencarian suara), pengiriman pesan dengan Gmail, dan pemberitahuan email.
2.  Android versi 1.5 (Cupcake)
Pada  pertengahan  Mei  2009,  Google  kembali  merilis  telepon  seluler dengan  menggunakan  Android  dan  SDK  (Software  Development  Kit)  dengan versi  1.5  (Cupcake).  Terdapat  beberapa  pembaruan  termasuk  juga  penambahan beberapa fitur dalam seluler versi ini yakni kemampuan merekam dan menonton  video  dengan  modus  kamera,  mengunggah  video  ke  Youtube  dan  gambar  ke Picasa langsung dari telepon, dukungan Bluetooth A2DP, kemampuan terhubung secara  otomatis  ke  headset  Bluetooth,  animasi  layar,  dan  keyboard  pada  layar yang dapat disesuaikan dengan sistem.
3.  Android versi 1.6 (Donut)
Donut  (versi  1.6)  dirilis  pada  September  dengan  menampilkan  proses pencarian  yang  lebih  baik  dibanding  sebelumnya,  penggunaan  baterai  indikator dan  kontrol  applet  VPN.  Fitur  lainnya  adalah  galeri  yang  memungkinkan pengguna untuk memilih foto yang akan dihapus; kamera, camcorder dan galeri yang dintegrasikan.
4.   Android versi 2.0/2.1 (Eclair)
Pada 3 Desember 2009 kembali diluncurkan ponsel Android dengan versi 2.0/2.1  (Eclair),  perubahan  yang  dilakukan  adalah  pengoptimalan  hardware, peningkatan Google Maps 3.1.2, perubahan  tampilan antarmuka  dengan  browser baru  dan  dukungan  HTML5,  daftar  kontak  yang  baru,  dukungan  flash  untuk kamera 3,2 MP, digital Zoom, dan Bluetooth 2.1.
5.  Android versi 2.2 (Froyo: Frozen Yoghurt)
Pada  20  Mei  2010,  Android  versi  2.2  (Froyo)  diluncurkan.  Perubahanperubahan  umumnya  terhadap  versi-versi  sebelumnya  antara  lain  dukungan Adobe  Flash  10.1,  kecepatan  kinerja  dan  aplikasi  2  sampai  5  kali  lebih  cepat, intergrasi V8  JavaScript engine  yang dipakai Google Chrome yang mempercepat kemampuan  rendering  pada  browser,  pemasangan  aplikasi  dalam  SD  Card, kemampuan WiFi Hotspot portabel, dan kemampuan  auto update  dalam aplikasi Android Market.
6.   Android versi 2.3 (Gingerbread)
Pada  6  Desember  2010,  Android  versi  2.3  (Gingerbread)  diluncurkan. Perubahan-perubahan  umum  yang  didapat  dari  Android  versi  ini  antara  lain peningkatan  kemampuan  permainan  (gaming),  peningkatan  fungsi  copy  paste, layar  antarmuka  didesain  ulang,  dukungan  format  video  VP8  dan  WebM,  efek audio  baru  (reverb,  equalization,  headphone  virtualization,  dan  bass  boost), dukungan kemampuan  Near Field Communication  (NFC), dan dukungan jumlah kamera yang lebih dari satu.
7.  Android versi 3.0/3.1 (Honeycomb)
Android  Honeycomb  dirancang  khusus  untuk  tablet.  Android  versi  ini mendukung ukuran layar yang lebih besar. Tampilan antarmuka pada Honeycomb juga  berbeda  karena  sudah  didesain  untuk  tablet.  Honeycomb  juga  mendukung multi prosesor dan juga akselerasi perangkat keras untuk grafis.
8.   Android versi 4.0 (ICS :Ice Cream Sandwich)
Diumumkan pada tanggal 19 Oktober 2011, membawa fitur Honeycomb untuk smartphone  dan menambahkan fitur baru termasuk membuka kunci dengan pengenalan  wajah,  jaringan  data  pemantauan  penggunaan  dan  kontrol,  terpadu kontak  jaringan  sosial,  perangkat  tambahan  fotografi,  mencari  email  secara offline, dan berbagi informasi dengan menggunakan NFC.
9. Android versi 4.1 (Jelly Bean)
Android Jelly Bean yaang diluncurkan pada acara Google I/O  membawa sejumlah keunggulan dan fitur baru. Penambahan baru diantaranya meningkatkan input keyboard, desain baru fitur pencarian, UI yang baru dan pencarian melalui Voice Search yang lebih cepat.Tak ketinggalan Google Now juga menjadi bagian yang diperbarui. Google Now memberikan informasi yang tepat pada waktu yang tepat pula. Salah satu kemampuannya adalah dapat mengetahui informasi cuaca, lalu-lintas, ataupun hasil pertandingan olahraga. Sistem operasi Android Jelly Bean 4.1 muncul pertama kali dalam produk tablet Asus, yakni Google Nexus 7.

Fitur Android
Android memiliki berbagai fitur diantaranya.
Ø  Framework Aplikasi yang mendukung penggantian komponen dan reusable;
Ø  Mesin virtual Dalvik dioptimalkan untuk perangkat mobile;
Ø  Integrated browser berdasarkan engine open source WebKit;
Ø  Grafts  yang  dioptimalkan  dan  didukung  oleh  library  grafis  2D, grafis 3D berdasarkan spesifikasi OpenGL 26;
Ø  SQLite untuk penyimpanan data;
Ø  Media  Support  yang  mendukung  audio,  video,  dan  gambar (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF);
Ø  Bluetooth, EDGE, 3G, dn WiFi;
Ø  Kamera, GPS, kompas, dan accelerometer;
Ø  Lingkungan  Development  yang  lengkap  dan  kaya  termasuk perangkat  emulator,  tools  untuk  debugging,  serta  plugin  untuk Eclipse IDE.
Software Yang Digunakan
·         Android SDK (Software Development Kit)
Android  SDK  mencakup  perangkat  tools  pengembangan  yang komprehensif.  Android  SDK  terdiri  dari  debugger,  libraries,  handset  emulator, dokumentasi,  contoh  kode  program  dan  tutorial.  Saat  ini  Android  sudah mendukung  arsitektur  x86  pada  Linux  (distribusi  Linux  apapun  untuk  desktop modern),  Mac  OS  X  10.4.8  atau  lebih,  Windows  XP  atau  Vista.  Persyaratan mencakup JDK, Apache Ant dan Python 2.2 atau lebih.
IDE  yang  didukung  secara  resmi  adalah  Eclipse  3.2  atau  lebih  dengan menggunakan plugin Android Development Tools (ADT), dengan ini pengembang dapat  menggunakan  IDE  untuk  mengedit  dokumen  Java  dan  XML  serta menggunakan  peralatan  command  line  untuk  menciptakan,  membangun, melakukan debug aplikasi Android dan pengendalian perangkat Android.

·         ADT (Android Development Tools)
ADT  (Android  Development  Tools)  adalah  plugin  untuk  Eclipse  IDE yang  dirancang  khusus  untuk  memberikan  integrated  environment  yang  kuat untuk membuat aplikasi Android. ADT memberikan kemampuan kepada Eclipse untuk  membuat  projek  baru  Android  secara  cepat,  membuat  aplikasi  User Interface,  menambahkan  komponen  berdasarkan  Android  Framework  API, melakukan  debugging  aplikasi yang di buat dengan menggunakan Android  SDK tools  dan bahkan melakukan distribusi aplikasi yang dibuat. Pembuatan aplikasi android  dengan  Eclipse  beserta  ADT  sangat  dianjurkan  karena  merupakan  cara tercepat untuk memulai membuat projek Android.
·         Eclipse
Eclipse adalah sebuah IDE (Integrated Development Environment) untuk mengembangkan perangkat lunak dan dapat dijalankan di semua platform (platform-independent). Eclipse pada saat ini merupakan salah satu IDE favorit dikarenakan gratis dan open source, yang berarti setiap orang boleh melihat kode pemrograman perangkat lunak ini. Selain itu, kelebihan dari Eclipse yang membuatnya populer adalah kemampuannya untuk dapat dikembangkan oleh pengguna dengan komponen yang dinamakan plug-in.
Berikut ini adalah sifat dari Eclipse:
·                Multi-platform: Target sistem operasi Eclipse adalah Microsoft Windows, Linux, Solaris, AIX, HP-UX dan Mac OS X;
·                Mulit-language: Eclipse dikembangkan dengan bahasa pemrograman Java;
·                Eclipse mendukung pengembangan aplikasi berbasis bahasa pemrograman lainnya, seperti C/C++, Cobol, Python, Perl, PHP, dan lain sebagainya;
·                Multi-role: Selain sebagai IDE untuk pengembangan aplikasi, Eclipse pun bisa digunakan untuk aktivitas dalam siklus pengembangan perangkat lunak, seperti dokumentasi, test perangkat lunak, dan lain sebagainya.


Java
Java adalah bahasa pemrograman yang dapat dijalankan di berbagai komputer termasuk telepon genggam. Bahasa ini awalnya dibuat oleh James Gosling saat masih bergabung di Sun Microsystems saat ini merupakan bagian dari Oracle dan dirilis tahun 1995. Bahasa ini banyak mengadopsi sintaksis yang terdapat pada C dan C++, Aplikasi-aplikasi berbasis java umumnya dikompilasi ke dalam p-code (bytecode) dan dapat dijalankan pada berbagai Mesin Virtual Java (JVM).
 Java merupakan bahasa pemrograman yang bersifat umum/non-spesifik (general purpose) dan secara khusus didisain untuk memanfaatkan dependensi implementasi seminimal mungkin karena fungsionalitasnya yang memungkinkan aplikasi java mampu berjalan di beberapa platform sistem operasi yang berbeda.
Tujuan penciptaan Java pada waktu itu adalah menjadi suatu program yang berukuran kecil, efisien, dan portable di segala jenis hardware. Tujuan yang sama ini membuat Java menjadi satu bahasa yang ideal untuk mendistribusikan program-program yang dapat dijalankan melalui www dan juga suatu bahasa pemrograman untuk segala tujuan untuk mengembangkan program-program yang dapat digunakan dengan mudah dan portable di berbagai platform yang berbeda. Sekarang, Sun telah mengeluarkan berbagai program Java yang dapat digunakan seperti Java API, atau JDK atau JAVA Developer Kit . Selain itu, banyak juga program-program lain yang dapat digunakan untuk membuat program Java, seperti Eclipse, NetBeans, JBuilder, JCreator, J++, dan sebagainya.
Contoh kode program sederhana yang ditulis menggunakan bahasa pemrograman Java adalah sebagai berikut:

// Outputs "Hello, world!" and then exits
public class HelloWorld
{
           public static void main(String args[])
          {
                         System.out.println("Hello, world!");
            }
}
XML
XML (Extensible Markup Language) adalah  bahasa markup  untuk keperluan umum yang disarankan oleh W3C untuk membuat dokumen markup keperluan pertukaran data antar sistem yang beraneka ragam. XML didesain untuk mampu menyimpan data secara ringkas dan mudah diatur. Kata kunci utama XML adalah data. yang jika diolah bisa memberikan informasi.
Untuk Penggunaan XML itu sendiri dalam kasus ini di dalam Android, XML lebih banyak dgunakan dalam mengatur tampilan, walaupun juga digunakan untuk mendapatkan nilai dari suatu file xml yang lainnya.
Perintah Dasar XML Android
XML Android pada dasarnya berbeda dengan XML secara umum. Pada XML Android, nama-nama tag telah didefinisikan oleh Android SDK, tidak seperti XML pada umumnya yang dapat menuliskan nama-nama tag sesuai keinginan. Berikut beberapa tag XML Android yang sering digunakan.


No.
Perintah
Fungsi
1
<AbsolutLayout
digunakan jika hendak menggunakan sistem koordinat x dan y untuk tata letak widget (berdasar piksel)
2
<LinearLayout
jika jenis ini yang digunakan, widget akan terurut secara vertikal berdasarkan urutan penulisan widget
3
<RelativeLayout
tata letak widget relatif, bergantung widget lainnya
4
<Button
membuat widget tombol
5
<ImageButton
membuat widget tombol gambar
6
<EditText
membuat widget kolom penulisan teks
7
<TextView
membuat widget teks
8
<ImageView
membuat widget untuk menampilkan gambar
9
<Spinner
membuat widgetspinner (combo box)

Selain nama-nama tag, pada XML Android juga menyediakan perintah untuk mengatur widget-widget tersebut yang dituliskan di dalam tag-tag tersebut.

No.
Perintah
Fungsi
1
android:id
memberikan nama id
2
android:layout_height
mengatur tinggi widget
3
android:layout_weight
mengatur lebar widget
4
android:layout_x
mengatur posisi widget terhadap sumbu x
5
android:layout_y
mengatur posisi widget terhadap sumbu y
6
android:text
memberikan teks
7
android:textSize
mengatur ukuran teks
8
android:textStyle
mengatur gaya teks
9
android:textColor
mengatur warna teks
10
android:gravity
mengatur posisi widget secara vertikal
11
android:layout_gravity
mengatur posisi widget terhadap layar
12
android:layout_width
mengatur lebar layar
13
android:layout_height
mengatur tinggi layar
14
android:background
memberi background pada layar

contoh penggunaan XML android

Keunggulan XML
1.       Pintar (Intelligence). XML dapat menangani berbagai tingkat (level) kompleksitas.
2.             Dapat beradaptasi. Dapat mengadaptasi untuk membuat bahasa sendiri. Seperti Microsoft membuat bahasa MSXML atau Macromedia mengembangkan MXML.
3.             Mudah pemeliharaannya.
4.             Sederhana. XML lebih sederhana.
5.             Mudah dipindah-pindahkan (portability). XML mempunyai kemudahan perpindahan (portabilitas) yang lebih bagus.
AndroidManifest
Android Manifest merupakan sebuah xml yang berisi informasi mengenai aplikasi, seperti versi dari aplikasi, nama package, level SDK yang digunakan, beserta icon dan nama yang diberikan untuk aplikasi. Selain itu, AndroidManifest.xml ini digunakan sebagai pengatur activity-activity yang terdapat pada aplikasi, berupa daftar kelas-kelas java, penggunaan intent untuk pemilihan, dan pemberian Label /title pada suatu Activity saat mereka Aktif.

Sebelum android dapat memulai komponen aplikasi, maka android harus melihat komponen yang sedang berjalan. Untuk itu, aplikasi akan mendeklarasikan komponen yang mereka gunakan dalam sebuah file manifest yang digabungkan ke dalam paket file android berekstensi (.apk). Dalam Android Manifest terdapat bagian-bagian yang sangat penting untuk terbentuknya suatu aplikasi, diantaranya adalah :

 1. Activity
Activity pada android adalah sebuah class yang digunakan untuk membuat sebuah layout yang akan ditampilkan dalam layar handpone dimana layout ini berisi intrface-interface seperti, listview, combo box, textview, dll yang bertujuan agar kita bisa berinteraksi dengan setiap activity mewakili satu layar, jadi saat akan membuat 5 form dalam 5 layar maka kita harus membuat 5 activity pula dan setiap form tersebut dapat saling berkomunikasi karena berada dalam satu activity.
Pada saat aplikasi berjalan pada sistem Android sebuah aktifitas program terjadi dalam beberapa pernyataan program atau tahapan, seperti diperlihatkan pada gambar 3.7. Kita  tidak dapat melakukan kontrol terhadap tahapan tersebut, semua sudah di atur oleh system. Namun demikian, kita dapat mengidentifikasi kapan tahapan tersebut terjadi dengan memanggil method-method ini :
1.     onCreate( Bundle )
Method ini dipanggil ketika aktifitas pertama kali dimulai. Kita dapat menggunakan method ini untuk melakukan inisialiasi awal seperti menentukan antar muka ( user interface ), Method onCreate( ) yang memiliki satu parameter yang dapat bernilai null atau bernilai informasi dari state sebelumnya yang dijalankan oleh method onSaveInstanceState( ).
2.     onStart( )
Method ini mengindikasikan aktifitas yang siap ditampilkan ke user
3.     onResume( )
       Method ini dipanggil ketika aktifitas kita dinyatakan siap berinteraksi dengan user. Ini adalah aktifitas yang paling tepat untuk menyertakan animasi dan music pada aplikasi anda
4.     onPause( )
Method ini dijalankan ketika aktifitas akan dijalankan di background, biasanya terjadi ketika aktifitas berjalan di atas aktifitas ini. Pada state ini sebaiknya anda implementasi persistent data pada program anda, seperti ketika sebuah database sedang dilakukan proses edit.
5.     onStop( )
Method ini dipanggil saat aktifitas anda tidak bisa dilihat lagi oleh user dan tidak dibutuhkan untuk sementara waktu. Jika memori dalam keadaan parah (karena banyak resource berjalan) maka method onStop() tidak pernah akan dipanggil ( system mungkin akan mematikan prosesnya ).
6.     onRestart( )
Jika method ini dipanggil , berarti aktifitas anda sedang di tampilkan ulang ( redisplay) oleh user dari sebelumnya di stop.


7.     onDestroy( )
Method ini dipanggil sebelum sebuah aktifitas di matikan ( di-destroy). Jika resource memory ketat, method onDestroty() tidak pernah akan dipanggil ( system mungkin akan mematikan prosesnya )
8.     onStateInstanceState( Bundle )
Metodh ini ada di awal pembuatan class dari sebuah Android Project
2. Intent
intent adalah sebuah object yang merupkan kunci  untuk berkomunikasi dengan activity lainnya. Satu hal penting lain dari intent adalah kita bisa mengirimkan data ke Activity lain dan juga dapat menangkap data dari Activity tersebut. Intent sendiri dibagi menjadi 2 yaitu,
·         Implicit intent adalah intent yang memanggil fungsi activity yang sudah ada di fungsi internal android seperti Dial Number, Open Browser dan lainya.
·          Explicit Intent yang memanggil Activity lain yang masih dalam 1 project atupun beda project
     
          Membangun android adalah java. Tidak semua fitur java yang ada digunakan akan tetapi
sebagian dari java yang sering disebut dengan Dalvik Virtual Machine. Beberapa bagian kecil
dari framework Android menggunakan bahasa XML untuk scripting-nya.
a. Activity
Activity merupakan container untuk User Interface (UI). Sebuah Aplikasi Android terbangun
dari satu atau beberapa Activity.
b. Intents
Intent merupakan sistem pesan utama yang menjalankan Android. Intent terdiri dari Action
yang harus dijalankan (Tampil, Ubah, Dial, dll) dan Data.
Intent digunakan untuk memulai aktivitas dan komunikasi antar bagian dari sistem Android.
Suatu aplikasi dapat mengirimkan atau menerima intent.
1. Mengirimkan pesan dengan Intent
Ketika suatu aplikasi mengirimkan suatu intent, aplikasi mengirimkan pesan
memberitahukan Android untuk menjalankan sesuatu. Misal: memberitahukan Android
untuk menjalankan suatu Activity dari aplikasi atau menjalankan aplikasi lain.
2. Mendaftarkan Intent Receiver
Mengirimkan pesan dengan Intent bukan berarti sesuatu selanjutnya akan terjadi
secara otomatis. Aplikasi harus mendaftarkan intent receiver yang memperhatikan
intent dan memberitahukan Android apa yang harus dilakukan.
Contoh, jika pengguna menekan lama suatu image di image gallery, maka akan
memunculkan context menu yang berkaitan dengan image sharing. Dikarenakan
terdapat beberapa receivers yang didaftarkan berkaitan dengan image sharing (email,
messaging, Bluetooth, dll) maka context menu dimunculkan untuk memberikan opsi
keputusan kepada penguna.
c. Cursorless Controls
Perangkat Android menggunakan jari pengguna sebagai input. Jika pada computer biasa
digunakan pointer mouse, kemudian left-click untuk berinteraksi dengan suatu tombol
missal, maka pengguna Android dapat menggunakan jarinya langsung ke tombol. Untuk
menggantikan right-click, pengguna Android dapat menekankan jarinya agak lama ke
layar, kemudian context menu akan muncul.
d. Views dan Widgets
View merupakan elemen dasar UI (User Interface). Sebagai contoh area kotak pada layar
yang bertanggung jawab untuk tampilan dan menerima event (event handling). Beberapa
contoh view antara lain: (1) ContextMenu, (2) Menu, (3) View, (4) SurfaceView .
Widgets adalah elemen UI yang lebih canggih. Merupakan control untuk interaksi antara
sistem dengan pengguna. Beberapa contoh Widgets antara lain: (1) Button, (2) CheckBox,
(3) DatePicker, (4) DigitalClock, (5) Gallery, (6) FrameLayout, (7) ImageView, (8)
RelativeLayout, (9) PopupWindow.
Untuk mempelajari widgets lebih lanjut dapat dilihat melalui url:
e. Asynchronous Calls
Android memiliki sebuah class yang AsyncTask yang memungkin aplikasi menjalan
beberapa operasi pada waktu yang bersamaan, tanpa harus mengatur bagaimana thread
berjalan secara khusus. AsyncTask memungkin developer untuk membangun model
program yang bersih untuk proses-proses asinkron.
Proses asinkron biasa digunakan untuk proses-proses yang membutuhkan waktu lama,
misal: Network Communication (Internet), Media Processing, dan berbagai proses lain
yang mengharuskan pengguna menunggu. Jika pengguna harus menunggu, maka dapat
digunakan proses asinkron untuk menampilkan UI yang memberitahukan pengguna apa
yang terjadi.
f. Background Services
Services merupakan aplikasi yang berjalan di belakang dan tidak terlalu penting memiliki
UI, sebai contoh: antiivirus. Sebagian besar pemutas music (music player) dari Android
Market berjalan sebagai Background Services, yangmana pengguna dapat mendengarkan
musik sembali mengecek e-mail atau melakukan tugas lain yang membutuhkan
penggunaan tampilan layar.






REFERENSI 

https://www.google.com/urlsa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact=8&ved=0CCwQFjAA&url=http%3A%2F%2Fid.wikipedia.org%2Fwiki%2FTetris&ei=-zBeU9yRHMGIrQeN5oHgDw&usg=AFQjCNEPmHvj8tzNwbzhOBeU9zCiEt_kAQ&sig2=Fv20cdPNsxWSjv7U1H5ExQ&bvm=bv.65397613,d.bmk

https://www.google.com/searchq=tetris&es_sm=93&source=lnms&tbm=isch&sa=X&ei=bDFeU9BqiYysB8TygMAG&ved=0CAgQ_AUoAQ&biw=1517&bih=735&dpr=0.9

http://www.google.com/imgres?imgurl=http%3A%2F%2Flenteranews.com%2Fwp-content%2Fuploads%2F2013%2F04%2Ftetris.png&imgrefurl=http%3A%2F%2Flenteranews.com%2Fbegini-cara-tetris-sembuhkan-mata-juling%2F&h=431&w=539&tbnid=OhmGLS6Ry1VY8M%3A&zoom=1&docid=IFlUM9x3gmYreM&ei=bjFeU_exM46yrgeYiYDYCg&tbm=isch&ved=0CGsQMygSMBI&iact=rc&uact=3&dur=380&page=2&start=18&ndsp=26

http://source.android.com,
http://developer.android.com/reference/android/widget/package-summary.html