SERBA SERBI ANDROID DAN PROJECT APLIKASI ANDROID Oleh: Handoyo 201122091 FAKULTAS TEKNIK INFORMATIKA UNIVERSITAS SURAKARTA 2012 PENDAHULUAN 1. LatarBelakang Android adalah sebuah system operasi dengan kernel linux yang umumnya berjalan pada perangkat dengan processor ARM dan bisaanya diimplementasikan pada perangkat telepon selular atau tablet PC bahkan PC yang sudah ada pada masa kini dengan storage yang relative berukuran tidak terlalu besar. Akhir-akhir ini begitu banyak perangkat komunikasi baik berupa telepon selular maupun tablet PC yang beredar di pasaran menggunakan system operasi Android. Seringkali kita tidak puas dengan software bawaan yang dibangun oleh vendor, sehingga kita terdorong untuk menambahkan aplikasi-aplikasi yang dapat dijalankan pada system operasi Android.Untuk menambahkan sebuah aplikasi kedalam ponsel yang berbasis Android, tentunya tidaklah semudah kalau aplikasi itu dibangun dengan menggunakan sebuah PC. Maka dari itu dibutuhkan sebuah metode yang dinamakan Cross Compile yaitu metode membuat program yang ditujukan untuk platform tertentu tapi proses pengerjaan compilingnya dilakukan di platform lain. Personal Komputer baik itu notebook atau netbook yang banyak beredar mempunyai platform linux atau windows dan merupakan dua platform yang sangat berbeda.Sehingga jika kita membuat program di windows, program itu tidak bias dijalankan di linux. Begitu juga sebaliknya. Cara lama adalah kita membuat program untuk platform tertentu dalam lingkungan platform tersebut.Misalnya dalam membuat sebuah aplikasi untuk windows harus dengan perangkat windows, dan menggunakan compiler yang untuk windows.Begitu juga dengan Linux dengan compiler linuxjuga. Dengan metode cross compiling, kita bias dengan bebas membuat aplikasi windows di linux. Sehingga kita tidak direpotkan lagi dengan keterbatasan platform tersebut. Meski demikian, cross compiling hanya sebatas pada cara kita dapat membuat program atau aplikasi untuk platform tersebut, namun bukan berarti kita dapat menjalankan program tersebut di platform yang bukan seharusnya. Misal kita bikin aplikasi windows di linux, memang kita bias membuat programnya tapi untuk menjalankannya kita harus pakai “alatbantu” semacam emulator. 3 Tapi yang jelas, kita sudah mendapatkan kemudahan untuk membuat aplikasi untuk platform-platform lain tanpa harus punya platform tersebut. 2. Tujuan Tujuan project ini adalah untuk mengetahui perkembangan android dan seluk beluknya serta membuat sebuah aplikasi sederhana yang bisa ditanam pada perangkat dengan platform Android dengan metode cross compile di linux. ANDROID 1. Sejarah Android Android merupakan salah satu sistem operasi yang dewasa ini semakin terkenal. Android merupakan software stack yang digunakan oleh perangkat mobile yang mencakup sistem operasi, middleware, dan aplikasi kunci, pertama kali didesain oleh Andy Rubin. Android sendiri merupakan sistem operasi yang digunakan untuk telepon selular yang berbasiskan Linux. Android menyediakan platform yang bersifat terbuka sehingga mampu dimanfaatkan pengguna untuk mengembangkan aplikasi mereka sendiri untuk digunakan oleh mobile device. Android Inc. kemudian dibeli oleh Google Inc, untuk mengembangkan Android mereka membentuj Open Headset Alliance yang berisikan berbagai perusahaan besar seperti Google, HTC, Intel, Motorola, Qualcomm, T-Mobile, dan Nvidia. Terdapat dua badan khusus dostributor Android yaitu yang mendapat dukungan penuh dari Google yaitu Google Mail Service (GSM) dan yang sama sekali tidak didukung oleh Google yaitu Open Handset Distribution. Android pertama kali diterapkan sebagai operasi sistem pada perangkat mobile HTC Dream yang dirilis 22 Oktober 2008. Selanjutnya Android mengalami beberapa pengembangan. Android versi 1.1 Dikeluarkan oleh Google pada 9 Maret 2009, dilengkapi dengan penambahan fitur berupa pembaruan estetis pada aplikasi, jam alarm, voice search (pencarian suara), pengiriman pesan dengan Gmail, dan pemberitahuan email. Android versi 1.5 (Cupcake) Tidak berselang lama dari 9 Maret 2009, yaitu pada Mei 2009, Google kembali merilis telepon seluler dengan menggunakan Android tetapi Android yang kini digunakan merupakan versi 1.5 yang dikenal dengan nama Cupcake. Kemampuan tambahan dari Android 1.1 adalah berupa penambahan fitur merekam dan menonton video dengan menggunakan kamera selular, menggugah video pada website YouTube dan gambar ke Picasa langsung melalui device mobilenya, dukungan Bluetooth A2DP, mampu terhubung secara otomatis pada bluetooth headseat, menampilkan animasi layar, dan menampilkan layar keyboard. Android versi 1.6 (Donut) Donut dirilis pada September 2009 dengan perbaikan sistem dari Android berupa proses pencarian yang lebih baik, penggunaan baterai indikator dan kontrol applet VPN, penyediaan galeri yang memungkinkan pengguna dapat menghapus foto dari koleksi foto yang tersimpan di galerinya, terintegrasinya kamera, camcorder, dan galeri, kemampuan dial kontak, teknologi text to change speech. Android versi 2.0/2.1 (Eclair) Eclair diluncurkan pada 3 Desmber 2009, menitikberatkan pada pengoptimalkan hardware, peningkatan Google Maps 3.1.2, browser yang telah mendukung pendukung HTML5, penambahan flash untuk kamera dengan 3.2 MP, digital Zoom dan penyediaan Bluetooth 2.1. Android versi 2.2 (Froyo : Frozen Yoghurt) Diluncurkan pada 20 Mei 2010, Froyo diluncurkan dengan penambahan kemampuan berupa kemampuannya untuk mendukung Adobe Flash 10.1, kecepatan kinerja yang menigkat, integrasi V8 JavaScript yang digunakan oleh Google Chrome yang mampu mempercepat kemampuan rendering browser, kemampuan aplikasi dalam SD Card, WiFi Hotspot portabel, dan kemampuan auto update pada Androis Market. Android versi 2.3 (Gingerbread) Pada Android versi 2.3 yang dirilis pada 6 Desember 2010. peningkatan dilakukan dari sisi fungsi copy paste, disein ulang pada user interface, dukungan format video VP8 dan WebM, efek audia tambahan seperti equalization dan bass boost, kemapuan tambahan yang mendukung Near Field Communicatin (NFC). dan mampu mendukung penggunaan kamera lebih dari satu. Android versi 3.0/3.1 (Honeycomb) Versi 3.0 ini dirancang khusus untuk digunakan pada tablet, mendukung penggunaan android pada layar dengan ukuran lebih besar, oleh karena itu terdapat perubahan pada User Interface agar sesuai digunakan pada tablet. Honeycomb mendukung pemakaian multi prosesor dan akselerasi hardware untuk grafis. Tablet pertama yang mengimplemantsikan sistem operasi Android versi 3.0 ini adalah Motorola Xoom. Penggunaan Android versi 3.0 ini mulai masuk pasar Indonesia pada Mei 2011. Android versi 4.0 (Ice Cream Sandwich) Merupakan pengembangan Honeycomb yang kini dipakai untuk smartphone. Diumumkan pada 19 Oktober 2011 dengan penambahan fitur berupa penggunaan deteksi wajah untuk membuka kunci telepon, jaringan data pemantauan pengunaan dan kontrol, terintegrasinya kontak dengan jaringan sosial media, pearangkat tambahan untuk melakukan bidang fotografi, pencarian email secara offline, dan penayampaian informasi menggunakan NFC. Kelebihan dan Kekurangan Android Kelebihan Android Beberapa kelebihan dan keunggulan Android adalah : - Android bersifat open source, karena berbasis linux. Sehingga banyak developer yang ingin mengembangkan Android. - Merupakan realisasi dari Cloud Computing, karena semua fitur Google sudah terintegrasi dengan mobile yang terpasang Android. Contact pada telepon seluler pun akan tersimpan secara otomatis pada account google. - Dengan tersedianya Android Market, cara mendapatkan OS Android ini pun terbilang mudah. - Fleksibel, karena bisa digunakan pada banyak platform hardware. - Android memberikan pilihan untuk memilih Hardware yang digunakan. - Android dapat mengubah Pengaturan dengan Cepat - Android dapat menjalankan beberapa Aplikasi pada waktu yang bersamaan atau disebut juga Multitasking. - Kemudahan dalam Notifikasi, karena setiap ada SMS, Email, atau bahkan artikel terbaru dari RSS Reader, akan selalu ada notifikasi di Home Screen Ponsel Android. Kekurangan Android Adapun beberapa kekurangan Android adalah : - Keterbergantungan pada koneksi internet yang simultan. - Kurang tersedianya Aplikasi tambahan pihak ketiga. 2. Arsitektur Android Sistem operasi android memilik 4 lapisan (layer) yang merupakan komponen sistem android. Gambar 1 Layer pada Sistem Operasi Android setiap lapisan yang ada berperan dalam fungsi-fungsi spesifik dari sistem operasi, sebagai berikut: 1. Linux Kernel Lapisan yang berada pada lapisan paling bawah adalah kernel. Google membangun sistem operasi android menggunakan kernel linux 2.6. kernel linux ini mencakup manajemen memori, pengaturan keamanan, manajemen ketersediaan tenaga, dan beberapa driver hardware. Layer kernel menjadi layer abstraksi yang menjadi penghubung antara hardware dan software. Android bukan linux, android hanya berjalan di atas kernel linux 2.6. linux merupakan sistem operasi terbuka yang ahli dalam hal manajemen memori dan manajemen proses. android hanya menyediakan keamanan, manajemen memori, manajemen proses, jaringan dan driver. Linux menyediakan driver layar, kamera, keypad, wifi, flash memory, audio, dan IPC. 2. Android Run Time Android runtime berisi core libraries dan dalvik virtual machine. Core libraries berisi seluruh inti library Java. Android menempatkan sebagian besar fungsi-fungsi yang ada pada library dasar bahasa pemrograman java di dalam librarynya. Dalvik adalah java virtual machine yang berguna untuk optimalisasi sistem android pada telepon selular. dalvik dibuat agar device yang digunakan dapat menjalankan multi virtual machine. Virtual machine ini akan mengeksekusi file dengan format dalvik executable (.dex) yang telah dioptimasi untuk menggunakan minimal memory footprint. virtual machine ini akan menjalankan class-class yang dicompile menggunakan compiler java yang selanjutnya akan diubah formatnya menjadi format .dex. Dalvik virtual machine menggunakan kernel linux untuk menjalankan fungsi-fungsi seperti threading dan low-level memory management. 3. Libraries Android menyediakan satu set library-library dalam bahasa C/C++ yang dapat digunakan oleh berbagai komponen yang ada pada sistem android. Library ini dapat diakses oleh programmer melalui android application framework. ● System C Library Didapatkan dari turunan implementasi library standar C (libc) milik BSD, dioptimasi untuk device embedded berbasis linux. ● Media Libraries Library ini mendukung playback dan recording dari berbagai format audio dan video populer, seperti MP3, ACC, JPG, MPEG4, H.264, AMR, dan PNG. ● Surface Manager Mengatur akses pada dispaly dan lapisan composites 2D dan 3D graphic dari berbagai aplikasi. ● Libwebcore Web browser engine yang mensupport android browser maupun embeddable web view. ● SGL Engine Grafik 2D yang dasar. ● 3D libraries Library ini menggunakan hardware akselerasi 3D dan highly optimized 3D software rasterizer ● Free Type Bitmap dan vector font rendering. ● SQLit Engine database relasional yang ringan namun powerful untuk semua aplikasi. Library ini bukan merupakan aplikasi yang dapat berjalan sendiri. Library dapat digunakan oleh program yang ada di level atasnya. namun sejak versi 1.5, programmer dan developer bisa menggunakan library sendiri menggunakan Native Development Toolkit (NDK). 4. Applications Framework Lapisan application framework mencakup program untuk mengatur fungsi-fungsi dasar smartphone. Application Framework merupakan serangkaian tool dasar seperti alokasi resource smartphone, aplikasi telepon, pergantian antar – proses atau program, dan pelacakan lokasi fisik telepon. Programmer mendapatkan akses penuh untuk memanfaatkan API-API (Android Protocol Interface) yang juga digunakan core applications. Arsitektur aplikasi didesain untuk menyederhanakan pemakaian kembali komponen-komponen, setiap aplikasi dapat menunjukkan kemampuannya dan aplikasi lain dapat memakai kemampuan tersebut. Mekanisme yang sama memungkinkan pengguna mengganti komponen-komponen yang dikehendaki. Di dalam semua aplikasi terdapat servis dan sistem yang meliputi : ● Satu set Views yang dapat digunakan untuk membangun aplikasi meliputi lists, grids, text boxes, buttons, dan embeddable web browser. ● Content Providers yang memungkinkan aplikasi untuk mengakses data dari aplikasi lain (misalnya Contacts), atau untuk membagi data yang dimilikinya. ● Resource Manager, menyediakan akses ke non-code resources misalnya localized strings, graphics, dan layout files. ● Notification Manager yang memungkinkan semua aplikasi untuk menampilkan custom alerts pada the status bar. ● Activity Manager yang memanage life cycle of dari aplikasi dan menyediakan common navigation backstack. 5. Applications Berada di tingkatan paling atas. Di lapisan ini dapat ditemukan fungsi-fungsi dasar smartphone seperti menelepon dan mengirim pesan singkat, menjalankan web browser, mengakses daftar kontak, dan lain-lain. layer ini merupakan layer yang paling sering diakses oleh pengguna melalui user interface. 3. File System pada Android File system pada Android berstandar pada kernel Linux. Struktur file yang digunakan sama persis dengan sistem operasi Linux. File system yang sering digunakan pada android terbagi kedalam beberapa file system, yaitu : 1. Root Mount Point Device :/ : Linux Kernel, RAM Layaknya linux, semua filesystem akan berada di dalam Root. Tidak seperti Windows yang memilah-milahnya ke dalam drive. Dalam linux semua device dapat diakses melalui filesystem dan menggunakan system stream, baik itu penyimpanan, display, ataupun input dan output device. 2. System Mount Point Device : /system : Internal Memory Partisi ini berisi file-file system, dimana file-file system operasi Android dan aplikasiaplikasi bawaannya disimpan. Partisi system ini selalu disimpan dalam Internal Storage (storage pada ponsel), dan tidak dapat diubah isinya kecuali telah dilakukan rooting. Berikut adalah beberapa file-file yang berada pada partisi ini : a. /data/app – Berisi file-file .apk dari aplikasi-aplikasi yang diinstal, baik itu dari market atau dari aplikasi yang diinstall secara manual. b. /data/data – Berisi file-file data aplikasi, baik itu aplikasi system ataupun yang diinstall oleh user. Isi direktori ini memuat berbagai macam data yang disimpan oleh aplikasi, seperti save game, database (sqlite), juga file-file assets dan resource dari aplikasi tersebut. Direktori inilah yang biasanya membesar dan bila kita menginstall banyak aplikasi, maka Low Disk Space biasanya muncul dikarenakan isi direktori ini sudah terlalu besar. c. /data/dalvik-cache – Merupakan tempat penyimpanan file-file .dex untuk dijalankan secara langsung oleh dalvik virtual machine. 3. Boot Mount Point Device : /boot : Internal Memory Partisi ini memuat Kernel Linux dan merupakan partisi awal yang akan menerima sinyal booting dari device. Kernel inilah yang secara langsung mengakses hardware pada device kita. 4. SDCard Mount Point : /sdcard, /mnt/sdcard Device : MMC / External Storage Layout : FAT32 Berbeda dengan partisi-partisi lainnya. Partisi ini adalah area bebas, dimana kita dapat melakukan perubahan sesuai dengan keinginan. Kita dapat menyimpan lagu, foto, dan video di dalamnya, kita juga dapat menggunakannya untuk penyimpanan backup data, dan dapat juga digunakan sebagai USB drive. 5. SD-EXT Merupakan modifikasi yang bisa dilakukan pada Custom ROM dimana bila internal Memory tidak mencukupi untuk memuat data-data penting system, maka dilakukanlah pempartisi-an pada memory card kita. Dimana memory card kita akan dibagi menjadi 2 partisi, partisi pertama berformat FAT32 yang akan dijadikan sebagai /sdcard, dan partisi kedua berformat EXT(x). Inilah kehebatan Linux dan Android, dimana device yang memiliki umur yang tua yang tidak dapat lagi memuat system Android yang semakin hari semakin berukuran besar dan tidak dapat dimuat di dalam Internal Memory yang memiliki keterbatasan ukuran, dapat tetap mengikuti perkembangan zaman. SD-EXT ini memanfaatkan fasilitas Symlink yang didukung oleh Linux, dimana kita dapat melakukan symbolic link (memetakan) suatu file atau direktori dari satu partisi menuju partisi lainnya. Contohnya, kita memiliki direktori /sd-ext/app_s pada SD-EXT, dan lazimnya semua aplikasi system disimpan dalam /system/app, maka kita dapat melakukan symlink dari /sdext/app_s menuju /system/app, sehingga ketika system mengakses file/direktori dari /system/app maka system akan membaca file/direktori itu dari /sd-ext/app_s. Beberapa pengembangan SD-EXT ini telah dilakukan oleh beberapa developer dan custom-ROM chef, seperti app2sd, data2sd, dan Modifikasi yang saya buat sendiri AD2SDX ( Lihat di XDA-Developers ). Dimana mod-mod tersebut memiliki fungsinya masing-masing yang sebenarnya memiliki tujuan yang sama, yaitu memanipulasi filesystem yang terbatas agar dapat memanfaatkan penyimpanan data system di dalam External Memory. 6. Dev, Tmp, Proc Direktori-direktori tersebut bukanlah merupakan Storage, tapi merupakan virtual. dimana /dev merupakan direktori yang memuat semua stream hardware, /tmp merupakan penyimpanan temporary pada ram, dan/proc merupakan direktori untuk menyimpan informasi proses yang berjalan. Seperti halnya linux pada PC, semua akses aplikasi menuju hardware dapat dilakukan dengan mengakses stream pada /dev, seperti halnya kita mengakses file biasa. Kita dapat mengakses framebuffer display secara langsung pada file /dev/graphics/fb0, atau mengakses input device secara langsung pada /dev/input. Sistem Android mengakses hardware melalui /dev ini, dimana /dev ini lah yang diatur oleh Kernel Linux. Kita juga dapat mengetahui ID suatu proses dan proses apa saja yang sedang berjalan pada direktori /proc. dan dapat juga menyimpan file temporary pada direktori /tmp untuk dilakukan proses selanjutnya. Hanya saja direktori-direktori ini hanya dapat diakses bila Anda memiliki permission root. 4. Manajemen Memori pada Android Proses dapat dibunuh menurut tingkat prioritasnya. proses dengan tingkat prioritas yang lebih rendah akan dibunuh terlebih dahulu. Prioritasnya juga dapat dipengaruhi oleh ketergantungan antar proses. Semua aplikasi Android akan tetap berjalan dan berada dalam memori sampai sistem membutuhkan resource untuk aplikasi lain Gambar 2 State Aplikasi Sangat penting untuk merancang aplikasi dengan benar untuk memastikan bahwa prioritas sesuai untuk melakukan pekerjaan itu. Jika tidak, aplikasi tersebut bisa dibunuh ketika berada pada sesuatu yang penting. Berikut rincian masing-masing state dari aplikasi yang ditunjukkan pada gambar di atas : Active Processes Active (foreground) merupakan proses aplikasi hosting yang memugkinkan komponen untuk berinteraksi dengan pengguna. Merupakan upaya Android untuk selalu responsif. Proses Active meliputi: * Aktivitas yang dilakukan pada keadaan sistem operasai berada pada kondisi “active”, yaitu proses dasar yang memungkinkan terjadinya event yang diminta oleh user. * Baik kegiatan, service, atau penerimaan broadcast yang sedang melaksanakan event handler onReceive. * Layanan saat melaksanakan onStart, OnCreate, atau event handler onDestroy. Visible Processes Visible, Kegiatan hosting bertipe ini memungkinkan proses terlihat, tetapi mereka tidak dapat menanggapi inputan dari pengguna. Proses ini umumnya sangat sedikit, mereka akan berhenti bekerja pada keadaan ekstrim dan proses selanjutnya akan dilakukan oleh proses yang aktif.. Started Service Processes, Layanan ini mendukung proses berkelanjutan, namun dengan tidak menampilkan antarmuka. Started Service Process tidak memungkinkan interaksi langsung dengan pengguna, oleh karena itu proses dengan tipe ini menerima prioritas yang lebih rendah di banding aktivitas “active”. Proses ini tidak akan dihentikan kecuali apabila sumber daya yang mereka butuhkan sama dengan proses “active”. Background Processes, aktivitas proses hosting yang tidak terlihat dan yang tidak memiliki layanan yang telah dimulai dianggap sebagai proses background. pada umumnya terdapat banyak proses background yang akan dibunuh oleh anroid menggunakan pola last seen first killed untuk mendapatkan sumber daya untuk proses foreground. Empty Processes Untuk meningkatkan kinerja sistem secara keseluruhan, Android sering mempertahankan aplikasi dalam memori setelah mereka telah mencapai akhir lifetime. Android mengelola cache untuk meningkatkan waktu start-up aplikasi ketika mereka dijalankan kembali. Proses ini dibunuh secara rutin sesuai kebutuhan. Cara menggunakan memori dengan efisien Android mengelola aplikasi yang berjalan di belakang (belakang). Android menutup aplikasi bila sistem membutuhkan memori dengan jumlah yang lebih banyak. Namun, kebanyakan pengguna android tidak puas dengan cara ini, karena apabila terlalu banyak proses yang dilakukan dapat menyebabkan penurunan kinerjai. Kita dapat menggunakan task manager untuk mengelola memori dengan lebih efisien. TAHAP PEMBUATAN APLIKASI 1. Tahap Persiapan a. Kebutuhan Perangkat : PC / Laptop Sistem Operasi : Linux Ubuntu Java 5 / Java 6 Kabel serial Devkit8000 Sources bisa diunduh di: http://192.168.1.115/downloads/devkit8000 b. Paket Pendukung pada Ubuntu $ sudo apt-get install add-apt-repositery $ sudo add-apt-repositery "deb http://archive.canonical.com/ lucid partner" $ sudo add-apt-repository "deb-src http://archive.canonical.com/ ubuntu lucid partner" $ sudo apt-get update $ sudo apt-get install git-core gnupg sun-java6-jdk flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev minicom gtkterm tftpd uboot-mkimage expect $ sudo update-java-alternatives -s java-6-sun c. Mempersiapkan Source Menggunakan Repo Pre-package Unduh paket $ mkdir rowboat-android $ cd rowboat-android $ Download the pre-packaged repo from http://software-dl.ti.com/dsps/ dsps_public_sw/sdo_tii/TI_Android_DevKit/TI_Android_GingerBread_2_3_4_D evKit_2_1/index_FDS.html $ tar -xvzf XXXX.tar.gz $ tar -zxvf beagleboard-rev-c4.tar.gz $ cd XXXX cd beagleboard-rev-c4 $ ./.repo/repo/repo sync –local-only d. Hasil Source Android file system Kernel Linux Android (pada direktori kernel) u-boot atau boot loader (pada directory u-boot) x-loader (pada direktori x-loader) Toolchain e. Setup Toolchain Pergi ke direktori 'Toolchain' $ cd ~/toolchain/ Install toolchain $ tar xjvf toolchain-arm-xxx.tar.bz2 Export ke Path $ export PATH=~/toolchain/arm-android-eabi-xxx/bin:$PATH f. Kompilasi Silang Source Kompilasi x-loader Pergi ke direktori x-loader Lalu kompilasi $ make CROSS_COMPILE=arm-android-eabi- distclean $ make CROSS_COMPILE=arm-android-eabi- omap3beagle_config $ make CROSS_COMPILE=arm-android-eabiManfaatkan tools 'signGP' $ ./signGP ./x-load.bin $ mv x-load.bin.ift MLO Kompilasi boot loader (u-boot) $ make CROSS_COMPILE=arm-android-eabi- distclean $ make CROSS_COMPILE=arm-android-eabi- omap3_devkit8000_config $ make CROSS_COMPILE=arm-android-eabiHasil langkah tsb adalah : file 'u-boot.bin Kompilasi kernel Pergi ke direktori kernel $ make ARCH=arm CROSS_COMPILE=arm-android-eabi- distclean $ make ARCH=arm CROSS_COMPILE=arm-android-eabi omap3_devkit8000_android_defconfig $ make ARCH=arm CROSS_COMPILE=arm-android-eabi- uImage g. Menanam ke SD/MMC Card Buat Direktori khusus untuk menyimpan hasil kompilasi yang akan ditanam ke SD/MMC Card $ mkdir Boot_Images Salin file MLO, u-boot.bin dan uImage ke direktori Boot_Images $ cp ~/MLO ~/Boot_Images $ cp ~/u-boot.bin ~/Boot_Images $ cp ~/uImage ~/Boot_Images Buat Direktori Filesystem & salin root filesystem $ mkdir Filesystem $ cp ~/rootfs_beagle.tar.bz2 ~/Filesystem Jalankan script 'mkmmc-android.sh' $ ./mkmmc-android.sh /dev/sdc 2. Tahap Pembuatan Aplikasi a. Kebutuhan aplikasi emulator Android sdk sebagai implementasi aplikasi yang dipraktekan Dalam penginstalan Android sdk ini sebagai media emulator yangg kelompok kami coba adalah media emulator Android sdk yang bersifat portable yang langsung dijalankan di linux dan sebagai catatannya adalah didalamnya harus terinstal flatform android,sample android,media alat dimana program android dijalankan di hardware android.dan secara langsung karena media emulatornya dengan posisi sudah terinstall seperti dibawah ini tampilan screenshotnya b. Kebutuhan aplikasi editor Eclipse dengan plug-in Android Download melalui Ubuntu Software Center atau dapat juga mengcopy dari sumber yang sudah ada.Dan untuk yang harus diperhatikan ketika menginstal Eclipse ini perlu menambahkan plugin di new software yang servernya menuju repository dari andropid.jika di linux menambahkan nama plugin misal ADTplugin dan locationnya adalah screenshotnya seperti dibawah ini https://dl-ssl.google.com/android/eclipse dan APLIKASI MULTIMEDIA PLAYER MP3 Kelompok kami akan membuat aplikasi sederhana memutar sebuah file berekstensi .mp3 melalui sebuah tombol yang kami beri nama mainkan. Dalam kondisi normal, jika tombol mainkan diklik, mp3 akan dimainkan dan pada saat player sedang memainkan audiotombol mainkan berubah tidak bisa diklik. Namun jika mp3 selesai berputar, baru kemudian tombol mainkan dapat diklik kembali. Mulai membuat aplikasi: Membuat project baru 1. Jalankan Enclipse, buat Project baru. Klik file > new KetikplayingAudiopada kotakProject name pilih Create new project in workspace KlikNext Pilih GALAXY Tab Addons pada kotak dialogBuild Target > Next KetikMemutar file audiopada kotakApplication name Ketikcontoh.playingAudiopada kotakPackage name PilihCreate Activity, dan isikan playingAudio PilihMinimum SDK version 8 Klik Finish Membuat project player audio 1. Buat gambar apa saja(misal :mainkan)dengan format *.png 2. Buat folder baru dengan nama drawable di folder res. Masukkan gambar berlabel mainkan (atau apa saja untuk mewakili icon player) dalam format * .png Copykan gambarmainkanberformat *.png ke dalam folder drawable 3. Buat folder baru lagi di res, kali ini beri nama raw. Masukkan file mp3(misal kautsar.mp3) ke dalam folder raw. 4. Kemudian ketikkan script berikut ini pada main.xml. <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:id="@+id/textView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Memainkan Musik" android:textSize="15px" > </TextView> <ImageButton android:id="@+id/putarMusik" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_gravity="center_vertical|center_horizontal" android:adjustViewBounds="false" android:src="@drawable/play" > </ImageButton> <TextView android:id="@+id/ket" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:text="" android:textSize="15px" > </TextView> </LinearLayout> 5. Ketiklah script playingAudio.java seperti berikut package contoh.playingAudio; import java.io.IOException; import android.app.Activity; import android.media.MediaPlayer; import android.media.MediaPlayer.OnCompletionListener; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.ImageButton; import android.widget.TextView; public class playingAudio extends Activity{ ImageButton mainkan; TextView keterangan; MediaPlayer mp; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); keterangan=(TextView)findViewById(R.id.ket); keterangan.setText("Silakan klik tombol play"); mainkan=(ImageButton)findViewById(R.id.putarMusik); mainkan.setOnClickListener(new OnClickListener(){ public void onClick(View arg0){ mainkan.setEnabled(false); keterangan.setText("Tombol play tidak aktif"); go(); } }); } public void go(){ mp=MediaPlayer.create(playingAudio.this, R.raw.kautsar); try { mp.prepare(); } catch (IllegalStateException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } mp.start(); mp.setOnCompletionListener(new OnCompletionListener(){ public void onCompletion(MediaPlayer arg0){ mainkan.setEnabled(true); keterangan.setText("Silakan klik tombol play"); } });}} Bila script berantakan, lakukan Format (source > format). Lakukan RUN dan lihat hasilnya.