Android APK 手动命令编译、打包、签名步骤

转: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-windowsplatform-tools和 android-sdk-windows ools 添加到CLASSPATH 环境变量中;

         C、打CMD命令行界面,将当前目录切换到工程所在目录;

         D、准备一个目录,以下例子是以MyNotification项目;

2)、使用aapt生成R.java类,aapt所在路径android-sdk-windowsplatform-toolsaapt.exe。

aapt package -f-m -J gen -S res -M AndroidManifest.xml -IF:AndroidInstallsandroid-sdk-windowsplatformsandroid-9android.jar

说明:-J后面跟的是生成目录;-S后面跟的是资源目录;-M后面跟的是AndroidManifest.xml;-I后面跟的是使用的AndroidAPI的jar

3)、使用aidl把.aidl转成.java文件(如果没有aidl,则跳过这一步),aidl所在路径android-sdk-windowsplatform-toolsaidl.exe。

4)、javac.exe编译.java类文件生成class文件,javac所在路径jdk1.6.0_33injavac.exe。

javac -encodingutf-8 -target 1.6 -d bin -bootclasspathF:AndroidInstallsandroid-sdk-windowsplatformsandroid-9android.jargencommy otification*.java srccommy otification*.java

         说明:-target:生成特定 VM 版本的类文件;-d:指定存放生成的类文件的位置;-bootclasspath:覆盖引导类文件的位置;

5)、使用dx.bat命令行脚本生成classes.dex文件,dx.bat所在路径android-sdk-windowsplatform-toolsdx.bat。

         dx.bat--dex --output=F:AndroidWorkspaceMyNotificationinclasses.dex F:AndroidWorkspaceMyNotificationin

         说明:--output:生成的dex文件;最后带上class文件所在目录;

6)、使用aapt.exe生成资源包文件,aapt.exe所在路径android-sdk-windowsplatform-toolsaapt.exe。

         aaptpackage -f -S res -M AndroidManifest.xml -IF:AndroidInstallsandroid-sdk-windowsplatformsandroid-9android.jar -FF:AndroidWorkspaceMyNotificationin esources.ap_

         说明:-S:资源目录;-M:AndroidManifest.xml文件;-I:导入用的jar文件;-F:生成的资源文件;

7)、使用apkbuilder.bat生成未签名的apk安装文件,apkbuilder.bat所在路径android-sdk-windows oolsapkbuilder.bat。(使用该命令时:会提示该工具已过时,Google不推荐使用。而推荐使用的是:com.android.ant.ApkBuilderTask)

         apkbuilderF:AndroidWorkspaceMyNotificationinMyNotification.apk -u -zF:AndroidWorkspaceMyNotificationin esources.ap_ -fF:AndroidWorkspaceMyNotificationinclasses.dex -rfF:AndroidWorkspaceMyNotificationsrc

         说明:-z:资源打包文件;-f:类打包文件;-rf:源代码目录;

8)、使用jarsigner.exe对未签名的包进行apk签名,jarsigner.exe所在路径jdk1.6.0_33injarsigner.exe。

jarsigner-verbose -keystore D:my.kestore -signedjarF:AndroidWorkspaceMyNotificationinsigned.apk F:AndroidWorkspaceMyNotificationinMyNotification.apkmy.keystore

说明:-keystore:keystore文件;-signedjar:签名后的文件;后面还有未签名文件和key的alias

原文地址:https://www.cnblogs.com/tmlee/p/5098374.html