android打包批处理
2014-01-04 23:42
337 查看
第一步 生成R.java资源文件
这里我们自动将资源文件res(-S)生成
R.java文件并存放到 gen目录下(-m -J),当然我们还需要android.jar的API库(-I)跟android的配置文件AndroidManifest.xml(-M)的协助,并且设置为强制覆盖不询问形式(-f)第二步 编译java文件
生成class文件,我们需要借助jdk来完成。将java文件与生成的资源ID文件R.java一起编译成.class文件,并存放到classes目录中(-d)。第三步 打包.class文件
将编译好的.class文件打包成classes.dex二进制执行文件。第四步 打包资源文件
选中AndroidManifest.xml (-M), 资源文件夹res(-S) 跟 assets(-A),加上Android的API库(-I),一起打包输出到resources.ap_ 文件中(-F)。第五步 打包APK文件
将资源文件包resources.ap_跟二进制文件包classes.dex一起打包成未签名的apk压缩包 unsign.apk。第六步 签名
这里我们使用的是platform里面两个testkey,调用signapk.jar来执行,最终生成android.apk的签名apk包,这时候就可以安装到android系统中了。目录结构
对应需求、目录及流程写出批处理脚本
run.bat
1 | @aapt package -f -m -J %ROOT%\gen -S %PATH_PROJECT%\res -I %PATH_SDK_PLATFORM%\android.jar -M %PATH_PROJECT%\AndroidManifest.xml |
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 |
1 | @call dx --dex --output=%ROOT%\classes.dex %ROOT%\classes |
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_ |
1 | @call apkbuilder %ROOT%\unsigned.apk -u -z %ROOT%\resources.ap_ -f %ROOT%\classes.dex |
1 | @java -jar %PATH_SIGN%\signapk.jar %PATH_SIGN%\testkey.x509.pem %PATH_SIGN%\testkey.pk8 unsigned.apk android.apk |
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 |
相关文章推荐
- cocos2dx 3.15 lua和c++版本 将win32项目打包到android平台遇见的坑与处理办法
- android 项目进行混淆时,签名打包生产proguard文件是报错处理方法。
- 将android程序打包成sdk中资源的处理
- Android 多渠道打包 gradle部分,如何处理代码混淆问题
- Android应用程序签名打包,混淆代码时报错的处理方法
- android程序打包成sdk中资源的处理
- Android 自定义类库打包jar,处理res 文件夹
- Android调用webservice引用第三方jar包ksoap2混淆打包问题处理
- libgdx的android工程打包出错处理一则
- 将android程序打包成sdk中资源的处理
- Android程序自动化打包(ant多工程)及相关问题处理
- Android编辑框被输入法遮盖,有效的处理办法
- 制作keystore用于android打包
- Android中的处理图片
- android消息处理机制
- Android 无法remount处理
- Android事件处理分析
- Android多线程消息处理机制(一) Looper、Thread专题
- Android Studio签名打包的两种方式
- Android 6.0 运行时权限处理完全解析