您的位置:首页 > 移动开发 > Android开发

android打包批处理

2014-01-04 23:42 337 查看
第一步 生成R.java资源文件
1
@aapt
package -f -m -J %ROOT%\gen -S %PATH_PROJECT%\res -I %PATH_SDK_PLATFORM%\android.jar -M %PATH_PROJECT%\AndroidManifest.xml
这里我们自动将资源文件res(-S)生成
R.java文件并存放到 gen目录下(-m -J),当然我们还需要android.jar的API库(-I)跟android的配置文件AndroidManifest.xml(-M)的协助,并且设置为强制覆盖不询问形式(-f)第二步 编译java文件
1
@javac
-encoding GB18030 -target 1.6 -bootclasspath %PATH_SDK_PLATFORM%\android.jar -d %ROOT%\classes %PATH_PROJECT%\src\%PATH_PACKAGE%\*.java %ROOT%\gen\%PATH_PACKAGE%\R.java
生成class文件,我们需要借助jdk来完成。将java文件与生成的资源ID文件R.java一起编译成.class文件,并存放到classes目录中(-d)。第三步 打包.class文件
1
@call
dx --dex --output=%ROOT%\classes.dex %ROOT%\classes
将编译好的.class文件打包成classes.dex二进制执行文件。第四步 打包资源文件
1
@aapt
package -f -M %PATH_PROJECT%\AndroidManifest.xml -S %PATH_PROJECT%\res -A %ROOT%\assets -I %PATH_SDK_PLATFORM%\android.jar -F %ROOT%\resources.ap_
选中AndroidManifest.xml (-M), 资源文件夹res(-S) 跟 assets(-A),加上Android的API库(-I),一起打包输出到resources.ap_ 文件中(-F)。第五步 打包APK文件
1
@call
apkbuilder %ROOT%\unsigned.apk -u -z %ROOT%\resources.ap_ -f %ROOT%\classes.dex
将资源文件包resources.ap_跟二进制文件包classes.dex一起打包成未签名的apk压缩包 unsign.apk。第六步 签名
1
@java
-jar %PATH_SIGN%\signapk.jar %PATH_SIGN%\testkey.x509.pem %PATH_SIGN%\testkey.pk8 unsigned.apk android.apk
这里我们使用的是platform里面两个testkey,调用signapk.jar来执行,最终生成android.apk的签名apk包,这时候就可以安装到android系统中了。目录结构
12345678910111213
+autoPackage
(根目录)
-+androidProject
(工程目录)
---(一个普通的工程目录,不赘述)
-+platform
(Android.jar目录)
---android.jar
(用了Android 2.2的platform)
-+sign
(签名文件目录)
---signapk.jar
(在源码\platform\build\tools\signapk目录下)
---testkey.pk8
(在源码\platform\build\target\product\security目录下)
---testkey.x509.pem
(在源码\platform\build\target\product\security目录下)
--run.bat
(批处理文件)
--icon-36.png
(低分辨率ICON)
--icon-48.png
(中分辨率ICON)
--icon-72.png
(高分辨率ICON)
对应需求、目录及流程写出批处理脚本
run.bat
123456789101112131415161718192021222324252627282930313233
@title
Auto package And Sign
@echo
*******************************  start *********************************
@set
ROOT=C:\autoPackage
@set
PATH_PACKAGE=com\isfeel\autopackage
@set
PATH_SDK_PLATFORM=%ROOT%\platform
@set
PATH_SIGN=%ROOT%\sign
@set
PATH_PROJECT=%ROOT%\androidProject
@del
%ROOT%\android.apk
@mkdir
bin gen classes assets
@copy
/Y icon-72.png %PATH_PROJECT%\res\drawable-hdpi\icon.png
@copy
/Y icon-48.png %PATH_PROJECT%\res\drawable-mdpi\icon.png
@copy
/Y icon-36.png %PATH_PROJECT%\res\drawable-ldpi\icon.png
@aapt
package -f -m -J  %ROOT%\gen -S %PATH_PROJECT%\res -I %PATH_SDK_PLATFORM%\android.jar -M %PATH_PROJECT%\AndroidManifest.xml
@javac
-encoding GB18030 -target 1.6 -bootclasspath %PATH_SDK_PLATFORM%\android.jar -d %ROOT%\classes %PATH_PROJECT%\src\%PATH_PACKAGE%\*.java %ROOT%\gen\%PATH_PACKAGE%\R.java
@call
dx --dex --output=%ROOT%\classes.dex %ROOT%\classes
@aapt
package -f -M %PATH_PROJECT%\AndroidManifest.xml -S %PATH_PROJECT%\res -A %ROOT%\assets -I %PATH_SDK_PLATFORM%\android.jar -F %ROOT%\resources.ap_
@call
apkbuilder %ROOT%\unsigned.apk -u -z %ROOT%\resources.ap_ -f %ROOT%\classes.dex
@java
-jar %PATH_SIGN%\signapk.jar %PATH_SIGN%\testkey.x509.pem %PATH_SIGN%\testkey.pk8 unsigned.apk android.apk
@del
%ROOT%\unsigned.apk %ROOT%\classes.dex %ROOT%\resources.ap_
@rmdir
/s/q %ROOT%\bin %ROOT%\gen %ROOT%\classes %ROOT%\assets
@echo
*********************** finished success! ******************************
@pause
@exit
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: