一、概述步骤
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.aapt package -f -m -J kingworld/gen/ -S kingworld/res/ -I /local/tools/android-sdk-linux_x86/platforms/android-10/android.jar -M kingworld/AndroidManifest.xml
2.使用android SDK提供的aidl.exe把.aidl转成.java文件(optional)
usage: aidl OPTIONS INPUT [OUTPUT]
aidl –preprocess OUTPUT INPUT
3.javac -encoding UTF-8 -target 1.6 -bootclasspath /local/tools/android-sdk-linux_x86/platforms/android-10/android.jar -d kingworld/bin kingworld/src/com/android/xhliu/*.java kingworld/gen/com/android/xhliu/R.java
4.mkdir classes
jar cvf classes/kingworld.jar kingworld/bin/com/android/xhliu/*.*
5.dx –dex –no-strict –output=classes.dex kingworkd.jar
6.aapt package -f -M AndroidManifest.xml -S res -A assets -I /local/tools/android-sdk-linux_x86/platforms/android-10/android.jar -F bin/kingworld-res.apk
7.apkbuilder ${output.apk.file} -u -z ${packagedresource.file} -f ${dex.file} -rf ${source.dir} -rj ${libraries.dir}
apkbuilder kingworld.apk -v -u -z kingworld-res.apk -f ../classes/classes.dex -rf ../src/
8.使用jdk的jarsigner对未签名的包进行apk签名:
jarsigner -keystore ${keystore} -storepass ${keystore.password} -keypass ${keypass} -signedjar ${signed.apkfile} ${unsigned.apkfile} ${keyalias}
Android签名用keytool和jarsigner制作apk文件
Android程序的签名和Symbian类似都可以自签名(Self-signed),但是在Android平台中证书初期还显得形同虚设,平时开发时通过ADB接口上传的程序会自动被签有Debug权限的程序。需要签名验证在上传程序到Android Market上时大家都已经发现这个问题了。Android signed制作方法
$keytool -genkey
-v -keystore android123.keystore
-alias android123.keystore -keyalg RSA -validity 20000