通过android-sdk提供的工具来编译应用程序,这种编译方式虽然不实用,但是能够让开发者更深入的了解android应用程序的编译工程,进而跟好的了解android系统的编译过程。
详细的编译过程如图
下面来实际操作一下
首先,写一个Hello World的程序,目录结构如图
<1>首先编译生成R.java
make gen aapt p -m -J gen -S res -I /home/android/android-sdk-linux/platforms/android-14/android.jar -M AndroidManifest.xml 执行上面2条命令之后,目录结构如
<2>接下来编译java文件生成class文件
mkdir -p bin/classes javac -encoding GB18030 -bootclasspath /home/android/android-sdk-linux/platforms/android-14/android.jar -d bin/classes src/com/manual/build/*.java gen/com/manual/build/R.java
执行上面2条命令之后,目录结构如图
<3>把class文件转换成Dalvik可以运行的dex文件 dx --dex --output bin/classes.dex bin/classes/ 转换之后目录结构如图
<4>编译其它资源(AndroidManifest.xml和res目录下的布局和图片等) aapt p -F bin/resources.ap -S res -I /home/android/android-sdk-linux/platforms/android-14/android.jar -M AndroidManifest.xml 编译之后目录结构如图
<5>打包生成APK文件 apkbuilder bin/ManualBuild.apk -v -u -z bin/resources.ap -f bin/classes.dex -rf src 执行之后,在bin目录下生成了 ManualBuild.apk,不过这个apk暂时还不能用,如果安装的话会提示没有签名。 <6>签名 jarsigner -keystore ~/.android/debug.keystore -storepass android -keypass android bin/ManualBuild.apk androiddebugkey 签名之后这个apk文件就可以运行了,但是建议做下优化 <7>优化 zipalign 4 ManualBuild.apk Tem.apk
|