自动打包
现贡献出Window环境下的批处理代码如下。如果觉得不方便,本人已整合了一个rar压缩包,只要将以下三个文件中开头部分的参数设置成自己本机环境上的数值,然后依次运行下面三个文件,将自动生成一个已签名(图个方便我使用了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
文件:step1_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
文件:step2_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
文件:step3_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