Android APK 手动命令编译、打包、签名步骤
2015-07-17 10:16
387 查看
原作:http://blog.csdn.net/xmobile/article/details/7979210
一、概述步骤
APK的生成需要经过以下几个步骤:
1、使用Android SDK提供的aapt.exe生成R.java类文件
2、使用Android SDK提供的aidl.exe把.aidl转成.java文件(如果没有aidl,则跳过这一步)
3、使用JDK提供的javac.exe编译.java类文件生成class文件
4、使用Android SDK提供的dx.bat命令行脚本生成classes.dex文件
5、使用Android SDK提供的aapt.exe生成资源包文件(包括res、assets、androidmanifest.xml等)
6、使用Android SDK提供的apkbuilder.bat生成未签名的apk安装文件
7、使用jdk的jarsigner.exe对未签名的包进行apk签名
二、详细步骤
1)、准备工作
A、安装好JDK,配置环境变量;
B、将android-sdk-windows\platform-tools和 android-sdk-windows\tools 添加到CLASSPATH 环境变量中;
C、打CMD命令行界面,将当前目录切换到工程所在目录;
D、准备一个目录,以下例子是以MyNotification项目;
2)、使用aapt生成R.java类,aapt所在路径android-sdk-windows\platform-tools\aapt.exe。
aapt package -f-m -J gen -S res -M AndroidManifest.xml -IF:\Android\Installs\android-sdk-windows\platforms\android-9\android.jar
说明:-J后面跟的是生成目录;-S后面跟的是资源目录;-M后面跟的是AndroidManifest.xml;-I后面跟的是使用的AndroidAPI的jar
3)、使用aidl把.aidl转成.java文件(如果没有aidl,则跳过这一步),aidl所在路径android-sdk-windows\platform-tools\aidl.exe。
4)、javac.exe编译.java类文件生成class文件,javac所在路径jdk1.6.0_33\bin\javac.exe。
javac -encodingutf-8 -target 1.6 -d bin -bootclasspathF:\Android\Installs\android-sdk-windows\platforms\android-9\android.jargen\com\my\notification\*.java src\com\my\notification\*.java
说明:-target:生成特定 VM 版本的类文件;-d:指定存放生成的类文件的位置;-bootclasspath:覆盖引导类文件的位置;
5)、使用dx.bat命令行脚本生成classes.dex文件,dx.bat所在路径android-sdk-windows\platform-tools\dx.bat。
dx.bat--dex --output=F:\Android\Workspace\MyNotification\bin\classes.dex F:\Android\Workspace\MyNotification\bin\
说明:--output:生成的dex文件;最后带上class文件所在目录;
6)、使用aapt.exe生成资源包文件,aapt.exe所在路径android-sdk-windows\platform-tools\aapt.exe。
aaptpackage -f -S res -M AndroidManifest.xml -IF:\Android\Installs\android-sdk-windows\platforms\android-9\android.jar -FF:\Android\Workspace\MyNotification\bin\resources.ap_
说明:-S:资源目录;-M:AndroidManifest.xml文件;-I:导入用的jar文件;-F:生成的资源文件;
7)、使用apkbuilder.bat生成未签名的apk安装文件,apkbuilder.bat所在路径android-sdk-windows\tools\apkbuilder.bat。(使用该命令时:会提示该工具已过时,Google不推荐使用。而推荐使用的是:com.android.ant.ApkBuilderTask)
apkbuilderF:\Android\Workspace\MyNotification\bin\MyNotification.apk -u -zF:\Android\Workspace\MyNotification\bin\resources.ap_ -fF:\Android\Workspace\MyNotification\bin\classes.dex -rfF:\Android\Workspace\MyNotification\src\
说明:-z:资源打包文件;-f:类打包文件;-rf:源代码目录;
8)、使用jarsigner.exe对未签名的包进行apk签名,jarsigner.exe所在路径jdk1.6.0_33\bin\jarsigner.exe。
jarsigner-verbose -keystore D:\my.kestore -signedjarF:\Android\Workspace\MyNotification\bin\signed.apk F:\Android\Workspace\MyNotification\bin\MyNotification.apkmy.keystore
说明:-keystore:keystore文件;-signedjar:签名后的文件;后面还有未签名文件和key的alias
一、概述步骤
APK的生成需要经过以下几个步骤:
1、使用Android SDK提供的aapt.exe生成R.java类文件
2、使用Android SDK提供的aidl.exe把.aidl转成.java文件(如果没有aidl,则跳过这一步)
3、使用JDK提供的javac.exe编译.java类文件生成class文件
4、使用Android SDK提供的dx.bat命令行脚本生成classes.dex文件
5、使用Android SDK提供的aapt.exe生成资源包文件(包括res、assets、androidmanifest.xml等)
6、使用Android SDK提供的apkbuilder.bat生成未签名的apk安装文件
7、使用jdk的jarsigner.exe对未签名的包进行apk签名
二、详细步骤
1)、准备工作
A、安装好JDK,配置环境变量;
B、将android-sdk-windows\platform-tools和 android-sdk-windows\tools 添加到CLASSPATH 环境变量中;
C、打CMD命令行界面,将当前目录切换到工程所在目录;
D、准备一个目录,以下例子是以MyNotification项目;
2)、使用aapt生成R.java类,aapt所在路径android-sdk-windows\platform-tools\aapt.exe。
aapt package -f-m -J gen -S res -M AndroidManifest.xml -IF:\Android\Installs\android-sdk-windows\platforms\android-9\android.jar
说明:-J后面跟的是生成目录;-S后面跟的是资源目录;-M后面跟的是AndroidManifest.xml;-I后面跟的是使用的AndroidAPI的jar
3)、使用aidl把.aidl转成.java文件(如果没有aidl,则跳过这一步),aidl所在路径android-sdk-windows\platform-tools\aidl.exe。
4)、javac.exe编译.java类文件生成class文件,javac所在路径jdk1.6.0_33\bin\javac.exe。
javac -encodingutf-8 -target 1.6 -d bin -bootclasspathF:\Android\Installs\android-sdk-windows\platforms\android-9\android.jargen\com\my\notification\*.java src\com\my\notification\*.java
说明:-target:生成特定 VM 版本的类文件;-d:指定存放生成的类文件的位置;-bootclasspath:覆盖引导类文件的位置;
5)、使用dx.bat命令行脚本生成classes.dex文件,dx.bat所在路径android-sdk-windows\platform-tools\dx.bat。
dx.bat--dex --output=F:\Android\Workspace\MyNotification\bin\classes.dex F:\Android\Workspace\MyNotification\bin\
说明:--output:生成的dex文件;最后带上class文件所在目录;
6)、使用aapt.exe生成资源包文件,aapt.exe所在路径android-sdk-windows\platform-tools\aapt.exe。
aaptpackage -f -S res -M AndroidManifest.xml -IF:\Android\Installs\android-sdk-windows\platforms\android-9\android.jar -FF:\Android\Workspace\MyNotification\bin\resources.ap_
说明:-S:资源目录;-M:AndroidManifest.xml文件;-I:导入用的jar文件;-F:生成的资源文件;
7)、使用apkbuilder.bat生成未签名的apk安装文件,apkbuilder.bat所在路径android-sdk-windows\tools\apkbuilder.bat。(使用该命令时:会提示该工具已过时,Google不推荐使用。而推荐使用的是:com.android.ant.ApkBuilderTask)
apkbuilderF:\Android\Workspace\MyNotification\bin\MyNotification.apk -u -zF:\Android\Workspace\MyNotification\bin\resources.ap_ -fF:\Android\Workspace\MyNotification\bin\classes.dex -rfF:\Android\Workspace\MyNotification\src\
说明:-z:资源打包文件;-f:类打包文件;-rf:源代码目录;
8)、使用jarsigner.exe对未签名的包进行apk签名,jarsigner.exe所在路径jdk1.6.0_33\bin\jarsigner.exe。
jarsigner-verbose -keystore D:\my.kestore -signedjarF:\Android\Workspace\MyNotification\bin\signed.apk F:\Android\Workspace\MyNotification\bin\MyNotification.apkmy.keystore
说明:-keystore:keystore文件;-signedjar:签名后的文件;后面还有未签名文件和key的alias
相关文章推荐
- android 自定义控件 总结
- Android应用如何监听自己是否被卸载及卸载反馈功能的实现
- Android时间戳和日期字符串互换
- android组件Service控制后台音乐播放
- TabActivity通过Intent向Child Activity传值
- Android 对话框
- Android中的长度单位详解(dp、sp、px、in、pt、mm)
- 类似IOS的滑动返回上一级,SwipeBackLayout-android的滑动返回类库
- android 中 系统日期时间的获取
- 【Android Studio快捷键】之导入相应包声明(import packages)
- Android Studio 使用笔记:给包重命名~~有点水
- Android中Listview(三)--圆角listview
- Android学习之 Manifest中meta-data扩展元素数据的配置与获取
- Android ListView中带有时间数据的排序
- Android Split touch events 禁用多点触控
- Android中WindowManager.LayoutParams类详解
- Android报错记录
- Android 支付宝 SDK 无法跳转到wap支付
- Android运行时ART简要介绍和学习计划
- Android实现登录功能demo示例