`
jojol_zhou
  • 浏览: 342566 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

原:Android 命令行手动编译打包详解

阅读更多

Android 命令行手动编译打包过程图



【详细步骤】:

1使用aapt生成R.java类文件:
例:
F:\explorer\android-sdk-windows2.2\tools>f:\explorer\android-sdk-windows2.2\platforms\android-3\tools\aapt.exe package -f -m -J F:\explorer\AndroidByread\gen -S res -I f:\explorer\android-sdk-windows2.2\platforms\android-3\android.jar -M AndroidManifest.xml
其中  -f -m -J F:\explorer\AndroidByread\gen 代表按覆盖的形式在gen目录下生成带包路径的R.java,-S res指定资源文件 ,-I f:\explorer\android-sdk-windows2.2\platforms\android-3\android.jar 指定使用的android类,-M AndroidManifest.xml指定程序的配置文件

aapt Usage:



2使用android SDK提供的aidl.exe把.aidl转成.java文件:
usage: aidl OPTIONS INPUT [OUTPUT]
       aidl --preprocess OUTPUT INPUT...

OPTIONS:
   -I<DIR>    search path for import statements.
   -d<FILE>   generate dependency file.
   -p<FILE>   file created by --preprocess to import.
   -o<FOLDER> base output folder for generated files.
   -b         fail when trying to compile a parcelable.

INPUT:
   An aidl interface file.

OUTPUT:
   The generated interface files.



3第三步 编译.java类文件生成class文件:
例:F:\explorer\AndroidByread>javac -encoding GB18030 -target 1.5 -bootclasspath F:\explorer\android-sdk-windows2.2\platforms\android-3\android.jar -d bin src\com\byread\reader\*.java gen\com\byread\reader\R.java



4使用android SDK提供的dx.bat命令行脚本生成classes.dex文件:

例:
F:\explorer\AndroidByread>F:\explorer\android-sdk-windows2.2\platforms\android-3\tools\dx.bat --dex --output=F:\explorer\AndroidByread\bin\classes.dex f:\explorer\AndroidByread\bin\classes
其中classes.dex为生成的目标文件,f:\explorer\AndroidByread\bin\classes为class文件所在目录

5使用Android SDK提供的aapt.exe生成资源包文件(包括res、assets、androidmanifest.xml等):
F:\explorer\AndroidByread>F:\explorer\android-sdk-windows2.2\platforms\android-3\tools\aapt.exe package -f -M AndroidManifest.xml -S res -A assets -I F:\explorer\android-sdk-windows2.2\platforms\android-3\android.jar -F bin\byreadreader
将AndroidManifest.xml,res和assets文件夹中的资源文件打包生成byreadreader,用法参见1

6第六步 生成未签名的apk安装文件:
apkbuilder  ${output.apk.file} -u -z  ${packagedresource.file} -f  ${dex.file}  -rf  ${source.dir}  -rj  ${libraries.dir}

例:
F:\explorer\AndroidByread>f:\explorer\android-sdk-windows2.2\tools\apkbuilder.bat f:\explorer\byreadreader.apk –v -u -z f:\explorer\AndroidByread\bin\byreadreader -f f:\explorer\AndroidByread\bin\class.dex -rf F:\explorer\AndroidByread\src
其中f:\explorer\byreadreader.apk为生成的apk ,-z f:\explorer\AndroidByread\bin\byreadreader为资源包,f:\explorer\AndroidByread\bin\class.dex为类文件包


7使用jdk的jarsigner对未签名的包进行apk签名:
use jarsigner
jarsigner  -keystore ${keystore} -storepass  ${keystore.password} -keypass ${keypass} -signedjar ${signed.apkfile} ${unsigned.apkfile} ${keyalias}
例如:
F:\explorer\android-sdk-windows2.2\tools>jarsigner –keystore f:\explorer\eclipse3.5\bbyread.keystore -storepass byread002 -keypass byread002 -signedjar f:\explorer\byread.apk f:\explorer\byreadreader.apk byread
其中–keystore f:\explorer\eclipse3.5\bbyread.keystore 为密钥文件  -storepass byread002为密钥文件密码 byread 为密钥别名 -keypass byread002为密钥别名密码,-signedjar f:\explorer\byread.apk为签名后生成的apk文件 f:\explorer\byreadreader.apk为未签名的文件。

参考:http://asantoso.wordpress.com/2009/09/15/how-to-build-android-application-package-apk-from-the-command-line-using-the-sdk-tools-continuously-integrated-using-cruisecontrol/
  • 大小: 8.2 KB
  • 大小: 5.2 KB
  • 大小: 20.3 KB
  • 大小: 10.3 KB
  • 大小: 104.5 KB
分享到:
评论
11 楼 2006003845 2014-02-08  
ghlimbrother 写道
用这种方法怎么把so文件打包进去啊 还有第三方的jar文件 谢谢

找到解决方法了吗 ?
10 楼 2006003845 2014-02-08  
你好 请问下 如果项目中  libs/  有jar 包 有.so文件 改如何做?
9 楼 shiyanshiguize 2013-12-30  
楼主在吗?我在执行第一步:使用aapt生成R.java类文件: 时总是提示resource directory 'res' dose not exist,但是我的项目里是有这个文件夹的,这里的res文件夹是指的AndroidByread这个项目里面的res文件夹吗?还是android sdk提供的那个res文件夹呢,在platforms\android-19\data下面有一个res文件夹
8 楼 a13525177343 2013-09-29  
楼主今天查看build.xml的作用的时候,看见你的博文的,我就还是想不明白eclipse已经帮你编译好了为什么还要自己搞
7 楼 TremendousTurtle 2012-11-19  
[url] http://droidan.sinaapp.com/?p=46[/url]
6 楼 TremendousTurtle 2012-11-19  
写了一个自动打包编译apidemo的命令行小脚本 http://droidan.sinaapp.com/?p=46
5 楼 lyfi 2012-08-03  
4 楼 libo19881179 2012-08-01  
我在第三步遇个问题 不知道怎么编译所有的java文件,帮忙看下 谢谢~
http://www.iteye.com/problems/86683
3 楼 zhengyao 2012-04-28  
android create project \

--target <target_ID> \

--name <your_project_name> \

--path /path/to/your/project \

--activity <your_activity_name> \

--package <your_package_namespace>


ant  debug or relese我喜欢这样
2 楼 kongdesheng 2011-11-10  
这个第二步是干嘛的啊?
1 楼 ghlimbrother 2011-07-29  
用这种方法怎么把so文件打包进去啊 还有第三方的jar文件 谢谢

相关推荐

Global site tag (gtag.js) - Google Analytics