
Androidã®åŠç¿ãå§ãããšããIDEã䜿çšããã«ãAndroidã¢ããªã±ãŒã·ã§ã³ãå®å šã«æåã§äœæããã³ã³ã³ãã€ã«ãããã£ãã®ã§ãã ãããããã®äœæ¥ã¯ç°¡åã§ã¯ãªããããªãæéãããããŸããã ããããçµå±ã®ãšããããã®ã¢ãããŒãã¯éåžžã«æçšã§ãããIDEãé ãå€ãã®åŸ®åŠãªç¹ãæ確ã«ããŸããã
åºæ¬çã«ããã®èšäºã¯ãçŸåšã®ææ°ã®JDKïŒ7ïŒããã³Android SDKïŒAPIã¬ãã«19ïŒ ã®ã³ãã³ãã©ã€ã³ã§ã®Androidããã°ã©ã ã®æ§ç¯èšäºã®ç¿»èš³ãšæ¹èšã§ãã ããã«ãç§ã¯éåžžã«åçŽåããèªåããäœããè¿œå ããŸããã
ã¡ã¢åž³ã®ã¿ã䜿çšããŠãéåžžã«å°ããªæè²çšAndroidã¢ããªã±ãŒã·ã§ã³ãäœæããŸãã ãããŠããããã³ã³ãã€ã«ããã¢ã»ã³ãã«ããŠãããã€ã¹äžã§å®è¡ããŸããããã¯ãã¹ãŠã³ãã³ãã©ã€ã³ã䜿çšããŠè¡ããŸãã ã«èå³ããããŸããïŒ ãé¡ãããŸãã
ãšã³ããªãŒ
Android Studioã§ãã³ãã¬ãŒãã¢ããªã±ãŒã·ã§ã³ãã©ãã»ã©è€éã§æ··ä¹±ããŠãããã«é©ããããŸããã åã«ãªãœãŒã¹ãå±±ç©ã¿ãããŠããŸãã ãããŠãããã»ã©ã§ã¯ãããŸããããã³ãŒããšã¹ã¯ãªããã䜿çšããŸãã ãããªããã°ãªããªãããšã¯ãHelloWorldã衚瀺ããããšã ãã§ãïŒ ããã«ãç§ã調ã¹ãæ¬ãšããã¥ã¢ã«ã¯ããã€ã¢ãã°ããã¯ã¹ã䜿çšããŠIDEAãŸãã¯Eclipse HelloWorldãäœæããæ¹æ³ã説æããŸã-ãããŠãããã«ãã¬ãŒã·ã§ã³ãããããåºãŠããŸãã ãããŠããããŒãã®äžãã§äœãèµ·ããã-æšæž¬ããã§ããŸããã
é·ãæ€çŽ¢ã¯ã»ãšãã©å€±æããŸãã-ãã®ãããã¯ã«é¢ããèšäºã¯ãã·ã¢èªã§èŠã€ãããŸããã§ãããè±èªã§ã¯æ代é ãã®æ å ±ãããã stackowerflowãšããã¥ã¡ã³ããæ©ããªãããã¡ã€ã«ã§äœããä¿®æ£ããå¿ èŠããããŸããã ç§ããããèãåºãããšããç§ã¯ã®ã£ãããåããããšã«æ±ºããŸãã-誰ãã䟿å©ã«ãªããšã©ããªããŸããïŒ å®éããã®èšäºãç»å ŽããŸããã
ãã¬ãŒãã³ã°ã«äœ¿çšããã®ã«çæ³çãªç¬èªã®ãã³ãã¬ãŒããããžã§ã¯ããäœæããŸãã äœåãªãã®ã¯ãªããæãå¿ èŠãªãã®ã ãããããŸãã ãããŠããããã©ã®ããã«çµã¿ç«ãŠãŠAndroidããã€ã¹ã§å®è¡ãããã詳现ã«åæããŸãã èšäºã®æåŸã«ãæçµãããžã§ã¯ããšãšãã«ã¢ãŒã«ã€ããããŠã³ããŒãããããã®ãªã³ã¯ããããŸã-質åãããå Žåã¯ãããã確èªã§ããŸãã
ãããã£ãŠããããžã§ã¯ãã®æ§æãšã¢ã»ã³ããªã®ããã»ã¹ã100ïŒ èªèããç解ããããšã«ãªããŸãã ãã®ãã¹ããããžã§ã¯ãã¯ãå°ãæ¹è¯ããããã¬ãŒãã³ã°ãç®çãšããŠããŸãããå®éã®ãããžã§ã¯ãã®åŒ·åºãªåºç€ãšããŠäœ¿çšã§ããŸãã
æºåãã
ãŸãã JDK 7ãšandroid SDKãã€ã³ã¹ããŒã«ãããŠããå¿ èŠããããŸã ã ã¡ãªã¿ã«ãåŸè ã¯ã€ã³ã¹ããŒã«åŸã«å°ã調æŽããå¿ èŠããããŸãã
ãã®èšäºãèªãåã®äž»ãªèŠä»¶ã¯ãã€ã³ã¹ããŒã«ãããŠãããœãããŠã§ã¢ã«å ããŠãEclipseãŸãã¯Android Studioã«ä»å±ã®Helloworldãæ¢ã«ããã€ã¹ã§å®è¡ã§ããããšã§ãã ã€ãŸã USBãã©ã€ããŒã®æ§æãããã€ã¹ã§ã®USBãããã°ã®æå¹åãªã©ãå¿ èŠã§ãããŸãã¯ããšãã¥ã¬ãŒã¿ãŒãäœæããŠæ§æããŸãã ãããã¯éåžžã«åºæ¬çãªãã®ã§ããããã®æ€èšã¯ãã®èšäºã®ç¯å²å€ã§ã-ãããã¯ãŒã¯ã«é¢ããååãªæ å ±ããããŸãã ãšããã§ãæ¬ããããã€ãã®ç« ãèªãããšãäžå¿ èŠã§ã¯ãããŸãã-ãããã§ã¹ãããªãœãŒã¹ããããŠå®éã«ã¯Javaèšèªã®åºæ¬ãã©ã®ããã«é 眮ãããŠããããç解ããŠãã ããã ãããŠããã®èšäºã§ã¯ãã©ã®æ¬ãæ²é»ããŠãããã«ã€ããŠèª¬æããŸãã
ãããžã§ã¯ãå·ç
éå§ããã«ã¯ããããžã§ã¯ãã®ãããã©ã«ããŒãäœæããŸãã 圌女ãmytestappãšåŒã³ãŸãããã ãã®äžã«ã bin ã obj ã res ãããã³srcã® 4ã€ã®ãã©ã«ããŒãããã«äœæããŸãã
空ã®ããã¹ããã¡ã€ã«ãäœæãããã®ååãAndroidManifest.xmlã«å€æŽããŸãã ããªããåå¿è ã®WindowsãŠãŒã¶ãŒã§ããå Žåãæ¡åŒµæ©èœã®è¡šç€ºãæå¹ã«ããå¿ èŠããããŸããããã§ãªãå Žåããã¡ã€ã«ã¯ããã¹ãã®ãŸãŸã§ãã
以äžãè¿œå ããŸãã
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.testapp"> <uses-sdk android:targetSdkVersion="19" /> <application android:label="TestApp"> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
ããã§ã¯ãã¹ãŠãç°¡åã§ãã èµ·åæã«MainActivityã¯ã©ã¹ãéå§ããTestAppãšããã¢ããªã±ãŒã·ã§ã³ãäœæããäºå®ã§ãã ãã®å°ããªã¯ã©ã¹ãèšè¿°ããã ãã§ãã¢ããªã±ãŒã·ã§ã³ã®æºåã¯å®äºã§ãã å¿ èŠã«å¿ããŠãuses-sdkã¿ã°ã®androidïŒtargetSdkVersionããããã£ãç·šéãã䜿çšããŠããããŒãžã§ã³ãå ¥åããŸãã
次ã«ãæãåçŽãªãªãœãŒã¹ïŒæååHello test appïŒãäœæããŸãã å®éããã®è¡ãJavaã³ãŒãã«çŽæ¥æ¿å ¥ããããšã«ããããªãœãŒã¹ãªãã§å®è¡ã§ããŸãã ãã ããããã€ãã®ã¢ã»ã³ããªæé ã¯ãªãœãŒã¹ã§æ©èœããŸããèå³æ·±ãç¹ãèŠãããã«ãåŒãç¶ããããã䜿çšããŸãã
resãã©ã«ããŒã«valuesãã©ã«ããŒãäœæããŸãããã ãã¹ãŠã®ãªãœãŒã¹ã¯ãã©ã«ããŒã«åå²ããå¿ èŠããããŸãã 次ã«-空ã®strings.xmlãã¡ã€ã«ãäœæããŸãã ããã«æžããŠ
<resources> <string name="hello">Hello test app!</string> </resources>
ãããç§ãã¡ãå¿ èŠãšãããã¹ãŠã®ãªãœãŒã¹ã§ãã ã·ã³ãã«ã§ããïŒ æ¬¡ã«ã srcå ã«comãã©ã«ããŒãäœæãããã®äžã«ãµã³ãã«ãã©ã«ããŒãäœæããããã«éå±€ã®äžäœã«ããtestappãã©ã«ããŒãäœæããŸãããããŠã MainActivity.javaã¯ã©ã¹ããããŸãã ããã«ã³ãŒããè¿œå ããŸã
package com.example.testapp; import android.app.Activity; import android.os.Bundle; import android.widget.TextView; public class MainActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); TextView textView = new TextView(this); textView.setText(getString(R.string.hello)); setContentView(textView); } }
ãã£ã¬ã¯ããªæ§é ã¯æ¬¡ã®ããã«ãªããŸã
â AndroidManifest.xml ââââbin ââââobj ââââres â ââââvalues â strings.xml â ââââsrc ââââcom ââââexample ââââtestapp MainActivity.java
ãããŠããããå®éã«åçŽãªãããžã§ã¯ãã«å¿ èŠãªãã®ãã¹ãŠã§ãã æ¯èŒã®ããã«-
Android Studioã®HelloWorld
å®éãgradleã«ããèªååãgitããã³IDEã§ã®äœæ¥ã¯éåžžã«éèŠã§ãããAndroid ãåŠç¿ãã段éã§ã¯ã ããããç¡èŠããããšæããŸã ã
â .gitignore â AndroidStudioHWProject.iml â build.gradle â gradlew â gradlew.bat â local.properties â settings.gradle â ââââ.gradle â ââââ1.8 â ââââtaskArtifacts â cache.properties â cache.properties.lock â fileHashes.bin â fileSnapshots.bin â outputFileStates.bin â taskArtifacts.bin â ââââ.idea â â .name â â compiler.xml â â encodings.xml â â gradle.xml â â misc.xml â â modules.xml â â vcs.xml â â workspace.xml â â â ââââcopyright â â profiles_settings.xml â â â ââââlibraries â â ComAndroidSupportAppcompatV71901_aar.xml â â support_v4_19_0_1.xml â â â ââââscopes â scope_settings.xml â ââââAndroidStudioHW â â .gitignore â â AndroidStudioHW.iml â â build.gradle â â â ââââbuild â ââââsrc â ââââmain â â AndroidManifest.xml â â â ââââjava â â ââââcom â â ââââexample â â ââââandroidstudiohw â â MainActivity.java â â â ââââres â ââââdrawable-hdpi â â ic_launcher.png â â â ââââdrawable-mdpi â â ic_launcher.png â â â ââââdrawable-xhdpi â â ic_launcher.png â â â ââââdrawable-xxhdpi â â ic_launcher.png â â â ââââlayout â â activity_main.xml â â fragment_main.xml â â â ââââmenu â â main.xml â â â ââââvalues â â dimens.xml â â strings.xml â â styles.xml â â â ââââvalues-w820dp â dimens.xml â ââââgradle ââââwrapper gradle-wrapper.jar gradle-wrapper.properties
å®éãgradleã«ããèªååãgitããã³IDEã§ã®äœæ¥ã¯éåžžã«éèŠã§ãããAndroid ãåŠç¿ãã段éã§ã¯ã ããããç¡èŠããããšæããŸã ã
çµç«
ä»ãç§ãã¡ã¯æãéèŠã§å°é£ãªæ®µéã«æ¥ãŠããŸãã ã³ãã³ãã©ã€ã³ã§å€ãã®äœæ¥ãè¡ããããããã§æå®ãããã¹ãŠã®ã³ãã³ãã1ã€ã®ãã¡ã€ã«ã«èšè¿°ãã comp.batãšããååãä»ããããšããå§ãããŸãã ã³ãã³ãã®åŸã®ãã¡ã€ã«ã®æåŸã«ã äžæåæ¢ãè¿œå ããŠãçµæãšãšã©ãŒïŒååšããå ŽåïŒã衚瀺ã§ããŸãã
ãã©ãã¯ã®æºå
䟿å®äžãç°¡æœã«ããããã«æåã«è¡ãããšã¯ããã¹ãæ ŒçŽããç¹å¥ãªå€æ°ãäœæããããšã§ãã ãŸããã¡ã€ã³ãã£ã¬ã¯ããªãå®çŸ©ããŸãããã JDKããã³Android SDKãžã®ãã¹ãçŸåšã®ãã®ã«çœ®ãæããå¿ èŠããããŸãã
set JAVA_HOME=C:\prog\sdk\jdk\1.7 set ANDROID_HOME=C:\prog\sdk\android-studio\sdk set DEV_HOME=%CD%
次-ããã°ã©ã ãžã®çŽæ¥ãã¹ã SDKã®ã«ã¿ãã°ãåç §ãããã¹ãŠãé©åã«é 眮ãããŠããããšã確èªããããšããå§ãããŸãã ãŸãããã¹ã«ååšããããŒãžã§ã³ã調æŽããŸãã
set AAPT_PATH=%ANDROID_HOME%/build-tools/19.0.1/aapt.exe set DX_PATH=%ANDROID_HOME%/build-tools/19.0.1/dx.bat set ANDROID_JAR=%ANDROID_HOME%/platforms/android-19/android.jar set ADB=%ANDROID_HOME%/platform-tools/adb.exe
ã¡ãªã¿ã«ãå€ãããŒãžã§ã³ã§ã¯ãaaptãŠãŒãã£ãªãã£ã¯platform-toolsã«ãããŸãã-ãããŠãç§ã¯ãããä»ã®èª°ããä»ã®å Žæã«å¿ã³èŸŒãããšãã§ããããšãé€å€ããŸããã ã ãã泚æããŠãã ããã ä»ãããã¹ãŠããã§ãã¯ããã°ãèšäºã®æ®ãã®éšåã¯ã¹ã ãŒãºã«é²ãã¯ãã§ãã
ãããŠãŸã -ããã€ãã®å€æ°ã§ãããã±ãŒãžãšã¯ã©ã¹ã匷å¶çµäºããŸãã ããããå€æŽããå Žå-ã³ãŒããå®è¡ããå¿ èŠã¯ãããŸãã-ãã¹ãŠã®èšå®ãæåã§ãã
set PACKAGE_PATH=com/example/testapp set PACKAGE=com.example.testapp set MAIN_CLASS=MainActivity
ã³ã³ãã€ã«æºå
ãããŠä»ã楜ããéšåã§ãã å€å žçãªJavaããã°ã©ã ã2è¡ã§ã©ã®ããã«ã³ã³ãã€ã«ããã³å®è¡ããããèŠããŠããŸããïŒ ããã§ã¯åãjavacã䜿çšããŠããŸãããããã«å ããŠãããã«å€ãã®ãŠãŒãã£ãªãã£ã䜿çšããå¿ èŠããããŸãã
ãããããäžæè°ãªã¯ã©ã¹Rãã©ã®ããã«æ©èœããã®ãçåã«æã£ãããšã¯ãããŸããïŒ å®éã圌ã¯æåã圌ã®è¶ èœåã®ããã§ç§ãåœæãããŸããã ã³ã³ãã€ã«æ®µéã§ãã¯ã©ã¹ã®ãã£ãŒã«ããä»ããŠä»ã®ãã£ã¬ã¯ããªã®XMLãã¡ã€ã«ã«ã¢ã¯ã»ã¹ããã«ã¯ã©ãããã°ããã§ããïŒ ããªã³ã³ãã€ã©ãããã§åäœããŠãããšä»®å®ããŸãã-å€æããããã«ã
å®éã«ã¯ãç¹å¥ãªãŠãŒãã£ãªãã£AAPTããããŸã-ãªãœãŒã¹ã®ãã£ã¬ã¯ããªã調ã¹ãŠãåãR.javaãäœæããŸãã ãã¹ãŠãéåžžã«ã·ã³ãã«ã§ããããšãããããŸãã-ããã¯åãªãã¯ã©ã¹ã§ãããæŽæ°å®æ°ãæã€ä»ã®éçãªãã¹ããããã¯ã©ã¹ã§æ§æãããŠããŸãã ããã ãã§ãïŒ ãããªæã
R.java
/* AUTO-GENERATED FILE. DO NOT MODIFY. * * This class was automatically generated by the * aapt tool from the resource data it found. It * should not be modified by hand. */ package com.example.testapp; public final class R { public static final class attr { } public static final class string { public static final int hello=0x7f020000; } }
ããã§ã¯ããªããšäžç·ã«äœæããŸãããã ãããè¡ãã«ã¯ã次ã®ã³ãã³ãã䜿çšããŸãã
call %AAPT_PATH% package -f -m -S %DEV_HOME%/res -J %DEV_HOME%/src -M %DEV_HOME%/AndroidManifest.xml -I %ANDROID_JAR%
äœãäœã§ããããç解ããŸãããã AAPT-Android Asset Packaging Tool-æåéããAndroidããããã£ã®ããã«ãŒãã ãã®ãªãã·ã§ã³ïŒ
- ããã±ãŒãž -ãªãœãŒã¹ãããã¯ããå¿ èŠããããšèšããŸã ïŒè¿œå ãåé€ãããŸããïŒ
- -f-æ¢åã®R.javaãäžæžãããŸãïŒååšããå ŽåïŒ
- -m-R.javaã-Jã§æå®ããããã¹ã®ã«ãŒãã§ã¯ãªããé©åãªããã±ãŒãžã«é 眮ããŸã
- -S-ãã®ãªãã·ã§ã³ã®åŸããªãœãŒã¹ãå«ããã£ã¬ã¯ããªãæå®ããŸã
- -J-ãã®ãªãã·ã§ã³ã®åŸã«ãçµæã®R.javaãä¿åããå Žæãæå®ããŸã
- -I-ãã®ãªãã·ã§ã³ã®åŸãæ¥ç¶ãããã©ã€ãã©ãªãžã®ãã¹ã瀺ããŸã-android.jarããªã³ã«ããŸã
å®è¡åŸãåãR.javaãã¡ã€ã«ãsrcãã£ã¬ã¯ããªã«è¡šç€ºãããŸãã ã芧ãã ããã
ãããžã§ã¯ãã«éæ³ã¯ãããŸãããéåžžã®Javaã³ã³ãã€ã©ã«ãšã£ãŠã¯æ§æçã«å®å šã«æ£ããã§ãã ã³ã³ãã€ã«ããŸãããã
call %JAVA_HOME%/bin/javac -d %DEV_HOME%/obj -cp %ANDROID_JAR% -sourcepath %DEV_HOME%/src %DEV_HOME%/src/%PACKAGE_PATH%/*.java
以åã«javaã䜿çšããããšãããå Žåããã®è¡ãç解ããããšã¯é£ãããããŸããã ãã ããããã§ãäœãèµ·ãã£ãŠãããã説æããŸãã
- -d-çµæã®ããã±ãŒãžãš* .classãã¡ã€ã«ãé 眮ããå Žæ
- -cp -classpatch- android.jarã©ã€ãã©ãªãŒãžã®ãã¹ãæå®ããŸã
- -sourcepath- * .javaãã¡ã€ã«ã眮ãããŠããïŒãŸãã¯çœ®ãããŠããïŒãã¹
å®è¡åŸãobjãã©ã«ããŒã«ã¯ããã€ãã³ãŒãïŒ* .classïŒã®åœ¢åŒã®ã¯ã©ã¹ãå«ãããã±ãŒãžãå«ãŸããŠããã¯ãã§ãã ããããããã¯äžéã§ã-Androidä»®æ³ãã·ã³ã¯äºææ§ããããŸããïŒ ããããããã¯èæ¡ããããã®ã§ãããããã«ã¯çç±ããããŸãã ãŸããç·è²ã®R2D2ã§ç解ã§ããã¯ã©ã¹ãã¡ã€ã«ããdexãã¡ã€ã«ãäœæããã³ã³ããŒã¿ãŒã䜿çšããŸãã
call %DX_PATH% --dex --output=%DEV_HOME%/bin/classes.dex %DEV_HOME%/obj
--dexãªãã·ã§ã³ã¯ã* .classãã* .dexã«å€æããå¿ èŠãããããšã瀺ããŸãã 次ã«ããªãã·ã§ã³--outputã®åŸã«ãçµæã®classes.dexãã¡ã€ã«ãžã®ãã¹ãèšå®ããŸãã ãã®ã³ãã³ãã®æåŸã®åŒæ°ã¯ã* .classãã¡ã€ã«ãå«ãããã±ãŒãžãžã®çŽæ¥ãã¹ã§ã
classes.dexãbinãã©ã«ããŒã«ããããšã確èªããŸãã ããã§ããªãœãŒã¹ãšäžç·ã«APKãã¡ã€ã«ã«ããã¯ããã ãã§ãã ãã£ãŠã¿ãŸãããïŒ
call %AAPT_PATH% package -f -M %DEV_HOME%/AndroidManifest.xml -S %DEV_HOME%/res -I %ANDROID_JAR% -F %DEV_HOME%/bin/AndroidTest.unsigned.apk %DEV_HOME%/bin
ããã§ããªãã·ã§ã³ã¯R.javaãäœæãããšãã«äœ¿çšãããã®ãšäŒŒãŠããŸãã
- ããã±ãŒãž -ãªãœãŒã¹ãããã¯ããå¿ èŠããããšèšããŸã ïŒè¿œå ãåé€ãããŸããïŒ
- -f-æ¢åã®AndroidTest.unsigned.apkãäžæžãããŸãïŒååšããå ŽåïŒ
- -M-ãã®ãªãã·ã§ã³ã®åŸããããã§ã¹ããã¡ã€ã«ãžã®ãã¹ãæå®ããŸã
- -S-ãã®ãªãã·ã§ã³ã®åŸããªãœãŒã¹ãå«ããã£ã¬ã¯ããªãæå®ããŸã
- -I-ãã®ãªãã·ã§ã³ã®åŸãæ¥ç¶ãããã©ã€ãã©ãªãžã®ãã¹ã瀺ããŸã-android.jarããªã³ã«ããŸã
- -F-ãã®ãªãã·ã§ã³ã®åŸã«ãçµæã®AndroidTest.unsigned.apkãä¿åããå Žæã瀺ããŸã
- æåŸã®åŒæ°ã¯ãdexãã¡ã€ã«ããããã©ã«ããŒãžã®ãã¹ã§ã
AndroidTest.unsigned.apkãbinãã©ã«ããŒã«è¡šç€ºãããŸãã ãããŠãçç±ã®ããã«ãããåŒã³åºããŸããïŒ åœŒã«ã¯ããžã¿ã«çœ²åããããŸããã Androidã¯ã眲åã®ãªãã¢ããªã±ãŒã·ã§ã³ã®ã€ã³ã¹ããŒã«ãšå®è¡ãçŠæ¢ããŠããŸãã ãããããããäœæããããšã¯äžèŠãããšæããã»ã©é£ãããããŸãã
call %JAVA_HOME%/bin/keytool -genkey -validity 10000 -dname "CN=AndroidDebug, O=Android, C=US" -keystore %DEV_HOME%/AndroidTest.keystore -storepass android -keypass android -alias androiddebugkey -keyalg RSA -v -keysize 2048 call %JAVA_HOME%/bin/jarsigner -sigalg SHA1withRSA -digestalg SHA1 -keystore %DEV_HOME%/AndroidTest.keystore -storepass android -keypass android -signedjar %DEV_HOME%/bin/AndroidTest.signed.apk %DEV_HOME%/bin/AndroidTest.unsigned.apk androiddebugkey
å®éããããã®è¡ã¯Android SDKãšã¯é¢ä¿ã®ãªã2ã€ã®JavaãŠãŒãã£ãªãã£ãå®è¡ããŸããããããã¯å¿ é ã§ãã æåã¯AndroidTest.keystoreãã¡ã€ã«ãäœæãïŒååšã確èªïŒã2çªç®ã¯ãã®ãã¡ã€ã«ãAndroidTest.unsigned.apkã«æ¥ç¶ããŸãã AndroidTest.signed.apkãã¡ã€ã«ãå€æããŸãã ããããã®ãããªã¯ã€ã«ãã¯ã©ãããã¡ã€ã«ã§ãã ãã ããbatã¹ã¯ãªãããäœæãããããããå®è¡ããŸããèªåã¢ãŒãã§ããããã¹ãŠå®è¡ããŸãã
ãã®èšäºã§ã¯ããããã®ãŠãŒãã£ãªãã£ã®ãªãã·ã§ã³ã®è©³çŽ°ãªåæã«æéãè²»ããã¹ãã§ã¯ãªããšæããŸãã æ¬è³ªãææ¡ããã ãã§ããAndroidTest.unsigned.apkãååŸãã AndroidTest.keystoreãã¡ã€ã«ã§çœ²åããŠã AndroidTest.signed.apkã«ä¿åããŸãã å¿ èŠã«å¿ããŠã ããã¥ã¡ã³ããèªãããšãã§ããŸã ã
ã èŠåïŒ-tsaãŸãã¯-tsacertãæäŸãããŠãããã ãã®jar ... ããšããèŠåã衚瀺ãããå¯èœæ§ãé«ããªããŸããã泚æã¯å¿ èŠãããŸãã ã
æã¡äžã
apkãã¡ã€ã«ãããããã³ã³ãã€ã«ãããã®ã§ãå®è¡ã§ããŸãã USBçµç±ã§ããã€ã¹ãæ¥ç¶ãããããšãã¥ã¬ãŒã¿ãŒãå®è¡ããŸãã ãããã
call %ADB% uninstall %PACKAGE% call %ADB% install %DEV_HOME%/bin/AndroidTest.signed.apk call %ADB% shell am start %PACKAGE%/%PACKAGE%.%MAIN_CLASS%
å®éãããã°ã©ã ãæ¢ã«ååšããå Žåãæåã®è¡ã¯ããã°ã©ã ãåé€ããŸãã ç¹°ãè¿ãèµ·åããå Žåã«äŸ¿å©ã§ãã 2çªç®-ããã€ã¹ãŸãã¯ãšãã¥ã¬ãŒã¿ãŒã«APKãã€ã³ã¹ããŒã«ããŸãã 3çªç®ã®ãã®ãèµ·åããŸãã 圌女ã®è°è«ã詳ããèŠãŠã¿ãŸãããã
- ã·ã§ã« -ããã€ã¹ã§ããã€ãã®ã³ãã³ããå®è¡ããã
- am-ã¢ã¯ãã£ããã£ãããŒãžã£ãŒã³ãã³ãã®å®è¡ã«äœ¿çš
- start-ã¢ã¯ãã£ããã£ãéå§ããã
- éå§ããããã±ãŒãžã®ååãšã¯ã©ã¹ã®å®å šãªååïŒããã±ãŒãžãå«ãïŒ
ãã¹ãŠãããŸããã£ãå Žåã次ã®ãããªãã®ã衚瀺ãããŸãã

ãããã«
ãã¹ãŠã®ãã¡ã€ã«ãã¢ã»ã³ãã«ãããšããã£ã¬ã¯ããªããªãŒã¯æ¬¡ã®ããã«ãªããŸãã
â AndroidManifest.xml â AndroidTest.keystore â comp.bat â ââââbin â AndroidTest.signed.apk â AndroidTest.unsigned.apk â classes.dex â ââââobj â ââââcom â ââââexample â ââââtestapp â MainActivity.class â R$attr.class â R$string.class â R.class â ââââres â ââââvalues â strings.xml â ââââsrc ââââcom ââââexample ââââtestapp MainActivity.java R.java
ããã§ãäœã¬ãã«ã§ã®Androidã¢ããªã±ãŒã·ã§ã³ã®ã¢ã»ã³ããªãã©ã®ããã«è¡ãããããæ確ã«ç解ã§ããŸãã IDEã䜿çšããå Žå-ã¢ã»ã³ããªãçªç¶ééã£ãå ŽåïŒãããŠãããé »ç¹ã«çºçããå ŽåïŒ-å¿ èŠã«å¿ããŠç¶æ³ã解決ã§ããŸãã ãŸããæçµçãªapkãã¡ã€ã«ã¯çŽ4ãããã€ãããæ¶è²»ããªãããšã«æ³šæããŠãã ããã
ãããžã§ã¯ãã¢ãŒã«ã€ããã¢ããããŒãããŸã ïŒ[ãã¡ã€ã«]-[ããŠã³ããŒã]ãã¯ãªãã¯ããŸãïŒã ããã«å¥ã®å°ããªã¹ã¯ãªãã-clear.batãè¿œå ããããšã«æ³šæããŠãã ããã ã¢ã»ã³ããªäžã«äœæããããã¹ãŠã®ãã¡ã€ã«ãåé€ããŸãã ãããŠãcomp.batã®æåã«åœŒã®ããŒã³ãã眮ããŸãã ãŸããã¬ã ã®åŸã«ã³ã¡ã³ããè¿œå ããŸãã-ã¹ããããã€ã¹ãããã
ãããã£ãŠãã¹ã¯ãªããã¯ã眲åãå«ããããžã§ã¯ãã®å®å šãªã¯ãªãŒãã³ã°ãšåæ§ç¯ãå®è¡ããããã€ã¹ã§ã®åé€ãã€ã³ã¹ããŒã«ãå®è¡ãè¡ããŸãã