Androidはコマンドラインを使ってAPKパッケージを打つ


需要の比較的に卵が痛いプロジェクトを受け取って、ユーザーの操作はソースコードを修正することに関連して、仕方がなくて、自動的に梱包するしかありません.現貢はWindow環境でのバッチコードを以下のように提供する.都合が悪い場合は、以下の3つのファイルの先頭部分のパラメータを自分のローカル環境の数値に設定し、次の3つのファイルを順次実行すると、signer.jarを使用してインストール可能なoutが自動的に生成されます.apk.
 
step1_R.java_any.class_classes.dex.bat  
step2_resources.arsc_out.apk.bat  
step3_signer.bat

 
REM ************[START]Do some homework************  
SET WORK_SPACE=D:\Sodino\AutoPackage  
SET PKG_PATH=lab\sodino\webview  
SET OUT_APK=%WORK_SPACE%\out.apk  
SET JAVA_SPACE=E:\Java\jdk1.6.0_14\bin  
SET ANDROID_SPACE=D:\MissionSetup\Android\android-sdk-r08-windows  
REM ************[END]Do some homework************

rarダウンロードアドレス:http://www.sodino.com/AndroidNotepad/AutoPackage.rarファイル:step 1_R.java_any.class_classes.dex.bat
@ECHO OFF
REM *****CREATED BY Sodino 
REM *****2011-03-02 15:00
REM ************[START]Do some homework************
SET WORK_SPACE=D:\Sodino\AutoPackage
SET PKG_PATH=lab\sodino\webview
SET JAVA_SPACE=E:\Java\jdk1.6.0_14\bin
SET ANDROID_SPACE=D:\MissionSetup\Android\android-sdk-r08-windows
REM ************[END]Do some homework************

REM ************[START]FOLDERS************
ECHO Creating output directories if needed...
SET SOURCE_FOLDER=%WORK_SPACE%\src
SET RESOURCE_FOLDER=%WORK_SPACE%\res
SET ASSETS_FOLDER=%WORK_SPACE%\assets
SET GEN_FOLDER=%WORK_SPACE%\gen
REM folder for the 3rd party java libraries
SET EXTERNAL_LIBS_FOLDER=%WORK_SPACE%\libs
REM folder for the native libraries
SET NATIVE_LIBS_FOLDER=%WORK_SPACE%\libs
SET OUT_FOLDER=%WORK_SPACE%\bin
SET OUT_CLASS_FOLDER=%OUT_FOLDER%\classes
REM ************[END]************

REM ************[START]Tools************
SET JAVA=%JAVA_SPACE%\java.exe
SET JAVAC=%JAVA_SPACE%\javac.exe
SET AAPT=%ANDROID_SPACE%\platform-tools\aapt.exe
SET AIDL=%ANDROID_SPACE%\platform-tools\aidl.exe
SET DX=%ANDROID_SPACE%\platform-tools\dx.bat
REM ************[END]************

REM ************[START]Extral jar************
SET ANDROID_JAR=%ANDROID_SPACE%\platforms\android-3\android.jar
REM ************[END]************

REM ************[START]Generate the necessary folders************
MKDIR %GEN_FOLDER%
MKDIR %OUT_FOLDER%
MKDIR %OUT_CLASS_FOLDER%
REM ************[END]************

REM ************[START]Generate the R.java************
ECHO Generating R.java / Manifest.java from the resources...
%AAPT% package -m -J %GEN_FOLDER% -M AndroidManifest.xml -S %RESOURCE_FOLDER% -I %ANDROID_JAR%
REM ************[END]************

REM ************[START]Generate java classes from .aidl files.************
REM SET AIDL_FILE_1=D:\Sodino\AutoPackage\ApiDemos\src\com\example\android\apis\app\IRemoteService.aidl
REM SET AIDL_FILE_OUT_1=D:\Sodino\AutoPackage\ApiDemos\src\com\example\android\apis\app\IRemoteService.java
REM %AIDL% -p -I %SOURCE_FOLDER% -o %GEN_FOLDER% %AIDL_FILE_1% %AIDL_FILE_OUT_1%
REM FAIL
REM ************[END]************

REM ************[START]Compile this project's .java files into .class files.************
ECHO Compile this project's .java files into .class files.
%JAVAC% -encoding utf-8 -target 1.5 -d %OUT_CLASS_FOLDER% -bootclasspath %ANDROID_JAR% -Xlint:unchecked %SOURCE_FOLDER%\%PKG_PATH%\*.java %GEN_FOLDER%\%PKG_PATH%\*.java
REM ************[END]Compile this project's .java files into .class files.************

REM ************[START]Convert this project's .class files into .dex files.************
ECHO Convert this project's .class files into .dex files.
%DX% --dex --output=%OUT_FOLDER%\classes.dex %OUT_CLASS_FOLDER%
REM ************[END]Convert this project's .class files into .dex files.************

ECHO EDITED BY SODINO
PAUSE
@ECHO ON


ファイル:step 2_resources.arsc_out.apk.bat
@ECHO OFF
REM *****CREATED BY Sodino 
REM *****2011-03-02 15:00

REM ************[START]Do some homework************
SET WORK_SPACE=D:\Sodino\AutoPackage
SET PKG_PATH=lab\sodino\webview
SET OUT_APK=%WORK_SPACE%\out.apk
SET JAVA_SPACE=E:\Java\jdk1.6.0_14\bin
SET ANDROID_SPACE=D:\MissionSetup\Android\android-sdk-r08-windows
REM ************[END]************

REM ************[START]FOLDERS************
ECHO Creating output directories if needed...
SET SOURCE_FOLDER=%WORK_SPACE%\src
SET RESOURCE_FOLDER=%WORK_SPACE%\res
SET ASSETS_FOLDER=%WORK_SPACE%\assets
SET GEN_FOLDER=%WORK_SPACE%\gen
REM folder for the 3rd party java libraries
SET EXTERNAL_LIBS_FOLDER=%WORK_SPACE%\libs
REM folder for the native libraries
SET NATIVE_LIBS_FOLDER=%WORK_SPACE%\libs
SET OUT_FOLDER=%WORK_SPACE%\bin
SET OUT_CLASS_FOLDER=%OUT_FOLDER%\classes
REM ************[END]************

REM ************[START]Tools************
SET JAVA=%JAVA_SPACE%\java.exe
SET JAVAC=%JAVA_SPACE%\javac.exe
SET AAPT=%ANDROID_SPACE%\platform-tools\aapt.exe
SET AIDL=%ANDROID_SPACE%\platform-tools\aidl.exe
SET DX=%ANDROID_SPACE%\platform-tools\dx.bat
SET APKBUILDER=%ANDROID_SPACE%\tools\apkbuilder.bat
REM ************[END]************

REM ************[START]Extral jar************
SET ANDROID_JAR=%ANDROID_SPACE%\platforms\android-3\android.jar
REM ************[END]************

REM ************[START]
REM Put the project's resources into the output package file
REM This actually can create multiple resource package in case
REM Some custom apk with specific configuration have been
REM declared in default.properties.
REM ************
ECHO Put the project's resources into the output package file
%AAPT% package -a -f -M AndroidManifest.xml -S %RESOURCE_FOLDER% -A %ASSETS_FOLDER% -I %ANDROID_JAR% -F %OUT_FOLDER%\resources.arsc
REM ************[END]************

REM ************[START]
REM Package the application and sign it with a debug key.
REM This is the default target when building. It is used for debug.
REM ************
ECHO Put the project's resources into the output package file
REM %APKBUILDER% %OUT_APK% -v -u -z %RESOURCE% -f %CLASSES% -rf %SRC%
%APKBUILDER% %OUT_APK% -v -u -z %OUT_FOLDER%\resources.arsc -f %OUT_FOLDER%\classes.dex -rf %SOURCE_FOLDER%
REM ************[END]************

ECHO EDITED BY SODINO
PAUSE
@ECHO ON

ファイル:step 3_signer.bat
@ECHO OFF
REM *****CREATED BY Sodino 
REM *****2011-03-02 15:00
REM ************[START]Do some homework************
SET WORK_SPACE=D:\Sodino\AutoPackage
SET PKG_PATH=lab\sodino\webview
SET OUT_APK=%WORK_SPACE%\out.apk
SET JAVA_SPACE=E:\Java\jdk1.6.0_14\bin
SET ANDROID_SPACE=D:\MissionSetup\Android\android-sdk-r08-windows
REM ************[END]Do some homework************

REM ************[START]FOLDERS************
ECHO Creating output directories if needed...
SET SOURCE_FOLDER=%WORK_SPACE%\src
SET RESOURCE_FOLDER=%WORK_SPACE%\res
SET ASSETS_FOLDER=%WORK_SPACE%\assets
SET GEN_FOLDER=%WORK_SPACE%\gen
REM folder for the 3rd party java libraries
SET EXTERNAL_LIBS_FOLDER=%WORK_SPACE%\libs
REM folder for the native libraries
SET NATIVE_LIBS_FOLDER=%WORK_SPACE%\libs
SET OUT_FOLDER=%WORK_SPACE%\bin
SET OUT_CLASS_FOLDER=%OUT_FOLDER%\classes
REM ************[END]************

REM ************[START]Tools************
SET JAVA=%JAVA_SPACE%\java.exe
SET JAVAC=%JAVA_SPACE%\javac.exe
SET AAPT=%ANDROID_SPACE%\platform-tools\aapt.exe
SET AIDL=%ANDROID_SPACE%\platform-tools\aidl.exe
SET DX=%ANDROID_SPACE%\platform-tools\dx.bat
REM ************[END]************

REM ************[START]Extral jar************
SET ANDROID_JAR=%ANDROID_SPACE%\platforms\android-3\android.jar
REM ************[END]************

REM ************[START]************
ECHO Signed with jarsigner.
%JAVA% -jar %WORK_SPACE%\signer.jar %OUT_APK%
REM ************[END]************

ECHO EDITED BY SODINO
PAUSE
@ECHO ON

さあ、寝ます.明日時間があればsignerの使い方をお話しします.JArはAPKのサイレントインストールを実現します.