Bagi para developer aplikasi Android dapat menggunakan IDE Android Studio yang didukung langsung oleh Google. Aplikasi Android dapat ditulis dalam bahasa pemrograman Java. Kode Java dikompilasi bersama dengan data file resource yang dibutuhkan oleh aplikasi, dimana prosesnya dibuat dalam bentuk package sehingga menghasilkan file dengan ekstensi APK. File APK itulah yang nanti diinstal di perangkat Android.
Terdapat enam jenis komponen pada aplikasi Android yaitu:
- Activities
Suatu activity akan menyajikan user interface (UI) kepada pengguna, sehingga pengguna dapat melakukan interaksi. Sebuah aplikasi Android bisa jadi hanya memiliki satu activity, tetapi pada umumnya bisa memiliki banyak activity dalam satu aplikasi tergantung pada tujuan aplikasi dan desain dari aplikasi tersebut. Satu activity biasanya akan dipakai untuk menampilkan aplikasi atau yang bertindak sebagai UI saat aplikasi diperlihatkan kepada pengguna. Untuk pindah dari satu activity ke activity lain kita dapat melakukannya dengan satu event, misalnya click button, memilih opsi atau menggunakan triggers tertentu. Secara hirarki sebuah windows activity dinyatakan dengan method Activity.setContentView( ).ContentView adalah objek yang berada pada root hirarki. - Service
Service tidak memiliki Graphic User Interface (GUI), tetapi service berjalan secara background, sebagai contoh dalam memainkan musik, service mungkin memainkan musik atau mengambil data dari jaringan, tetapi setiap service harus berada dalam kelas induknya. Misalnya, media player sedang memutar lagu dari list yang ada. Aplikasi ini akan memiliki dua activity atau lebih activity yang memungkinkan pengguna untuk memilih lagu atau menulis SMS sambil player musik tetap aktif. Untuk dapat menjaga musik tetap dijalankan, activity music player dapat menjalankan service. Service ini dijalankan pada thread utama dari proses suatu aplikasi Android. - Broadcast Receiver
Broadcast receiver berfungsi menerima dan beraksi untuk menyampaikan notifikasi. Contoh broadcast seperti notifikasi zona waktu berubah, baterai low, gambar telah selesai diambil oleh kamera atau pengubahan referensi bahasa yang digunakan. Aplikasi juga dapat menginisiasi broadcast misalnya memberikan informasi pada aplikasi lain bahwa ada data yang telah diunduh ke perangkat dan siap untuk digunakan.
Broadcasr receiver tidak memiliki user interface (UI), tetapi memiliki sebuah activity untuk merespon informasi yang mereka terima, atau mungkin menggunakan Notification Manager untuk memberitahu kepada pengguna, seperti lampu latar atau vibration (mode getar) perangkat, dan lain sebagainya. - Content Provider
Content provider membuat kumpulan aplikasi data secara spesifik sehingga bisa digunakan aplikasi lain. Data disimpan dalam ¬file system seperti database SQLite. Content provider menyediakan cara untuk mengakses data yang dibutuhkan oleh suatu activity, misalnya ketika kita menggunakan aplikasi yang membutuhkan peta (Google Maps), atau aplikasi yang membutuhkan untuk mengakses data kontak dan navigasi.