使用命令行模拟Eclipse中Android Project的编译流程(从源代码编译出最后的apk)
来源:互联网 发布:淘宝店过户 编辑:程序博客网 时间:2024/04/28 00:57
本文参考及引用http://www.cnblogs.com/wujd/archive/2012/01/10/wujiandong-android-1.html,命令行具体含义也请参考此文。
一、Android Projectd Building System
二、需要用的工具
aapt,dx,apkbuilder,javac,jarsigner,zipalign
aapt,dx位于android-sdk-linux/build-tools/18.0.1中
apkbuilder笔者是这样找到的:locate apkbuilder,发现我下载的源码目录下有apkbuilder,然后把这个文件复制到android-sdk-linux/tools中,就可以使用了
javac,jarsigner,zipalign位于jdk1.6.0/bin中
三、用命令行模拟eclipse中Android Project编译流程
1、新建一个Android Project,目前的目录结构如下图:
此时gen目录还没有内容,bin目录没有显示在工程目录中;但是在终端查看,已经有内容了,如下:
classes文件夹没有内容
2、点击右键,Build Project,此时的目录结构如下图:
此时gen目录下产生了R.java,bin目录在工程目录中,显示如上,没有任何内容;但是在终端查看,内容有改变,如下:
只剩下一个classes文件夹,此文件夹为空
对应的命令:
在工程目录下执行如下代码:
生成R文件:
aapt p -f -m -J gen -S res -I ~/android-sdk-linux/platforms/android-18/android.jar -M AndroidManifest.xml
3、点击右键,再一次Build Project
bin目录在工程目录中,显示如上;但是在终端查看,内容有改变,如下:
原来classes文件夹,里面生成了所有的class文件,如下图:
对应的命令:
在工程目录下执行以下命令:
生成.class文件:
javac -encoding GBK -target 1.5 -bootclasspath ~/android-sdk-linux/platforms/android-18/android.jar -d bin/classes src/com/jltxgcy/helloworld/*.java gen/com/jltxgcy/helloworld/R.java -classpath libs/android-support-v4.jar
4、点击右键Run as Android Application
bin目录在工程目录中,显示如上;但是在终端查看,内容有改变,如下:
对应的命令:
在工程目录下执行以下命令:
生成resources.ap_:
aapt package -f -S res -I ~/android-sdk-linux/platforms/android-18/android.jar -A assets/ -M AndroidManifest.xml -F bin/resources.ap_
生成classes.dex:
dx --dex --output=bin/classes.dex bin/classes
生成HelloWorld_unsigned.apk:
apkbuilder bin/HelloWorld_unsigned.apk -v -u -z bin/resources.ap_ -f bin/classes.dex -rf src -nf libs
签名apk,使用debug key,别名为androiddebugkey,密码是android:
jarsigner -verbose -keystore ~/.android/debug.keystore -signedjar bin/HelloWorld_signed.apk bin/HelloWorld_unsigned.apk androiddebugkey
对齐apk:
zipalign -v 4 bin/HelloWorld_signed.apk bin/HelloWorld.apk
移除临时apk:
rm bin/HelloWorld_unsigned.apk bin/HelloWorld_signed.apk
安装apk:
adb install bin/HelloWorld.apk
5、点击右键,Android Tools->Export Signed Application Package
同样的步骤,只是签名使用的自己创建的数字证书(release版),最后的apk不保存在bin目录下,而是由用户指定。
具体可以参考http://blog.csdn.net/jltxgcy/article/details/22647101
- 使用命令行模拟Eclipse中Android Project的编译流程(从源代码编译出最后的apk)
- Android中.apk文件的编译流程
- Android中.apk文件的编译流程
- Android中.apk文件的编译流程
- APK 的编译流程
- Qt源代码使用Vs2013中VC编译器编译的流程
- 命令行编译android apk
- 命令行编译android apk
- 手动编译APK的流程
- 如何将Android 源码中编译出的apk进行自己的签名
- android 编译出一个单独的apk和system.img
- Max下CocosCreator编译出android的apk包
- GYP中修改编译出的apk文件名称
- 如何用命令行编译打包Android程序项目的APK?
- AndoridStudio编译出的APK乱码
- Android源代码的编译
- 如何将源代码编译后的文件(lib库/bin/jar/apk等)编译到android中
- eclipse创建的android maven工程使用ant编译,最后在studio里打开使用
- android GridView视图的案例
- jfinal中model转map的方法实现
- 绿萝算法下网站站长如何建设外链
- 线程状态
- Android之LinearLayout学习
- 使用命令行模拟Eclipse中Android Project的编译流程(从源代码编译出最后的apk)
- HOJ 1191 (next_permutation()的应用)
- 2014.3.29阿里实习笔试题
- Android中完美解决CheckedTextView选择乱跳问题
- maven springMVC+Mybatis
- dispatch_semaphore_create信号
- 数组指针(int *)(&a+1)
- dedecms V5.7笔记:判断空值或含有某个值的写法(例如是否推荐文章,是否图片等)及field:picname function='thumb(@me最大比例缩图的显示判断
- 【排序算法】经典排序算法之插入排序