Kali ini kita akan coba membuat aplikasi android tanpa IDE. Berikut ini merupakan contoh aplikasi Hello World minimalis yang hanya menggunakan tool Android paling dasar.
Persyaratan dan asumsi
- Oracle JDK 1.7 atau yang lebih baru
- Android SDK
Contoh ini kita coba jalankan di Linux. Anda mungkin harus menyesuaikan sintaks untuk platform Anda sendiri.
Menyiapkan Android SDK
Setelah membongkar SDK release:
1. Instal paket tambahan menggunakan SDK manager. Jangan gunakan android update sdk --no-ui
seperti yang diperintahkan dalam paket Readme.txt yang dibundel; Ini akan mengunduh sekitar 30 GB file yang tidak perlu. Alih-alih gunakan android SDK
interaktif untuk mendapatkan paket minimum yang disarankan.
2. Tambahkan direktori JDK dan SDK berikut ke PATH eksekusi Anda. Ini opsional, tetapi Anda bisa mencobanya dengan mengikuti instruksi di bawah ini:
- JDK / bin
- SDK / platform-tools
- SDK / alat
- SDK / build-tools / LATEST (sebagaimana diinstal pada langkah 1)
3. Buat perangkat virtual Android. Gunakan AVD Manager interaktif (android avd
). Anda mungkin harus sedikit mengutak-atik dan mencari tutorial tambahan;
(Anda juga dapat menggunakan perangkat Anda sendiri)
4. Jalankan perangkat dengan mengetikkan:
emulator -AVD DEVICE
5. Jika layar perangkat tampak terkunci, geser untuk membukanya.
Biarkan berjalan saat Anda mengkode aplikasi.
Coding aplikasi
0. Ubah ke direktori kerja kosong.
1. Buat source file:
mkdir - orang tua src / dom / domain
sentuh src / dom / domain / SayingHello.java
content:
[java]
package dom.domain;
import android.widget.TextView;
public final class SayingHello extends android.app.Activity
{
protected @Override void onCreate( final android.os.Bundle activityState )
{
super.onCreate( activityState );
final TextView textV = new TextView( SayingHello.this );
textV.setText( "Hello world" );
setContentView( textV );
}
}
[/java]
2. Tambahkan manifest.
touch AndroidManifest.xml
Content:
<?xml version='1.0'?>
<manifest xmlns:a='http://schemas.android.com/apk/res/android'
package='dom.domain' a:versionCode='0' a:versionName='0'>
<application a:label='Saying hello'>
<activity a:name='dom.domain.SayingHello'>
<intent-filter>
<category a:name='android.intent.category.LAUNCHER'/>
<action a:name='android.intent.action.MAIN'/>
</intent-filter>
</activity>
</application>
</manifest>
3. Buat sub direktori untuk mendeklarasikan resource:
mkdir res
Membangun kode
0. Buat source untuk mendeklarasikan resource. Ganti path yang benar ke SDK Anda, dan API yang dipasang untuk membangun (mis. “Android-23”):
aapt package -f \\
-I SDK/platforms/android-API/android.jar \\
-J src -m \\
-M AndroidManifest.xml -S res -v
1. Compile source code ke Java bytecode (.java → .class):
javac \\
-bootclasspath SDK/platforms/android-API/android.jar \\
-classpath src -source 1.7 -target 1.7 \\
src/dom/domain/*.java
2. Translate bytecode dari Java ke Android (.class → .dex):
Pertama kali, gunakan Jill (.class → .jayce):
java -jar SDK/build-tools/LATEST/jill.jar \\
--output classes.jayce src
Kemudian Jack (.jayce → .dex):
java -jar SDK/build-tools/LATEST/jack.jar \\
.
--import classes.jayce --output-dex
Android bytecode dulu disebut dengan “Dalvik executable code”, kemudian berubah menjadi “dex”.
Anda dapat mengganti langkah 11 dan 12 dengan satu panggilan ke Jack jika Anda suka; Anda juga memungkinkan untuk mengkompilasinya langsung dari sumber Java (.java → .dex). Tetapi ada keuntungan untuk mengkompilasi dengan javac. Ini adalah alat yang lebih dikenal, didokumentasikan dengan lebih baik, dan lebih luas diterapkan.
3. Bungkus file resource, termasuk di dalamnya file manifest:
aapt package -f \\
-F app.apkPart \\
-I SDK/platforms/android-API/android.jar \\
-M AndroidManifest.xml -S res -v
4. Buat full APK menggunakan ApkBuilder
tool:
java -classpath SDK/tools/lib/sdklib.jar \\
com.android.sdklib.build.ApkBuilderMain \\
app.apkUnalign \\
-d -f classes.dex -v -z app.apkPart
Ketika Anda menggunakannya mungkin Anda akan mendapatkan peringatan berupa, “THIS TOOL IS DEPRECATED. See –help for more information.” Jika --help
gagal dengan ArrayIndexOutOfBoundsException, maka sebagai gantinya Anda tidak perlu melewati argumen ini:
java -classpath SDK/tools/lib/sdklib.jar \\
com.android.sdklib.build.ApkBuilderMain
Ini menjelaskan bahwa CLI (ApkBuilderMain) tidak lagi mendukung panggilan langsung Java API (ApkBuilder).
(Jika Anda tahu cara melakukannya dari baris perintah, harap perbarui contoh ini.)
5. Mengoptimalkan keselarasan data APK (praktik yang disarankan):
zipalign -f -v 4 app.apkUnalign app.apk
Install running APK:
0. Install aplikasi ke Android device:
adb install -r app.apk
1. Start the app:
adb shell am start -n dom.domain/.SayingHello
Seharusnya sudah bisa menjalankan say hello.
Itu saja. Itulah yang diperlukan untuk say hello menggunakan dasar alat Android.
Deklarasikan resource
Bagian ini opsional. Deklarasi sumber daya tidak diperlukan untuk aplikasi “hello world” sederhana. Jika memang tidak diperlukan untuk aplikasi Anda, maka Anda bisa tidak menyertakan build dengan menghilangkan langkah 10, dan menghapus referensi ke res / direktori dari langkah 13.
Jika tidak, inilah contoh singkat tentang cara mendeklarasikan resource, dan bagaimana merujuknya.
0. Tambahkan a resource file:
mkdir res/values
touch res/values/values.xml
Content:
<?xml version='1.0'?>
<resources>
<string name='appLabel'>Saying hello</string>
</resources>
1. Referensi resource dari manifest XML. Ini adalah gaya referensi deklaratif:
<!-- <application a:label='Saying hello'> -->
<application a:label='@string/appLabel'>
2. Referensi resource yang sama dari Java source. Ini merupakan referensi penting:
// v.setText( "Hello world" );
v.setText( "This app is called "
+ getResources().getString( R.string.appLabel ));
3. Coba Test modifikasi di atas dengan rebuilding, reinstalling kemudian coba running app kembali (steps 10-17).
Seharusnya sudah bisa restart dan dapat menampilkan kalimat, “Say hallo”.
Uninstall aplikasi
adb uninstall dom.domain
Begitulah langkah-langkah dalam membuat aplikasi android tanpa IDE.
Semoga bermanfaat!