[转]Windows中使用命令行方式编译打包Android项目
http://my.oschina.net/liux/blog/37875
网上很多用Ant来编译打包Android应用的文章,毕竟Ant是纯Java语言编写的,具有很好的跨平台性。今天想写个纯windows平台下的DOS命令行方式编译Android项目的bat文件,见以下代码:
- echo off
- rem =========基本参数配置============
- rem jdk的路径
- set JAVA_HOME=D:/Program Files/Java/jdk1.6.0_24
- rem jdk的版本
- set JDK_Version=1.6
- rem sdk的路径
- set AndroidHome=D:/Android/android-sdk-windows
- rem 编译的android版本路径
- set AndroidVersion=/platforms/android-8
- rem 编译的android项目路径
- set AndroidProject=D:/yourProject
- rem 编译生成的未签名apk文件
- set unsign_apk=yourProject.apk
- rem 编译生成的已签名apk文件
- set sign_apk=yourProject-sign.apk
- rem 签名用的key
- set apk_key=keyname
- set apk_keypass=keypass
- set apk_keystore=D:/yourProject/key.keystore
- for %%x in ("%AndroidProject%") do set AndroidProject=%%~sx
- for %%x in ("%JAVA_HOME%") do set JAVA_HOME=%%~sx
- for %%x in ("%AndroidHome%") do set AndroidHome=%%~sx
- rem jdk工具包
- set EXE_JAVA=%JAVA_HOME%/bin/java
- set JAVAC=%JAVA_HOME%/bin/javac
- set JAR=%JAVA_HOME%/bin/jar
- set KeyTool=%JAVA_HOME%/bin/keytool
- set Jarsigner=%JAVA_HOME%/bin/jarsigner
- rem sdk工具包
- set AndroidAAPT=%AndroidHome%%AndroidVersion%/tools/aapt.exe
- set AndroidDx=%AndroidHome%%AndroidVersion%/tools/dx.bat
- set AndroidApkBuilder=%AndroidHome%/tools/apkbuilder.bat
- set AndroidJar=%AndroidHome%%AndroidVersion%/android.jar
- rem android项目引用的扩展jar包
- set ExternerJar=%AndroidProject%/lib/commons-codec.jar;%AndroidProject%/lib/commons-httpclient-3.1.jar;
- set ReferJar=%AndroidProject%/lib/commons-codec.jar %AndroidProject%/lib/commons-httpclient-3.1.jar
- rem android项目基本目录及配置文件
- set AndroidProjectRes=%AndroidProject%/res
- set AndroidProjectGen=%AndroidProject%/gen
- set AndroidProjectBin=%AndroidProject%/bin
- set AndroidProjectAsset=%AndroidProject%/assets
- set AndroidProjectAndroidMainfest=%AndroidProject%/AndroidManifest.xml
- set AndroidProjectSrc=%AndroidProject%/src/weibo/*.java
- set AndroidProjectSrc=%AndroidProjectSrc% %AndroidProject%/src/weibo/http/*.java
- set AndroidProjectSrc=%AndroidProjectSrc% %AndroidProject%/src/weibo/util/*.java
- set AndroidProjectSrc=%AndroidProjectSrc% %AndroidProject%/gen/yourProjectPackageName/*.java
- rem 编译输出文件
- set AndroidProjectClassDex=%AndroidProject%/bin/classes.dex
- set AndroidProjectResources=%AndroidProject%/bin/resources.ap_
- set AndroidProjectApk="%AndroidProject%/bin/%unsign_apk%"
- set AndroidProjectSignApk="%AndroidProject%/bin/%sign_apk%"
- echo 生成R.java
- %AndroidAAPT% package -f -m -J %AndroidProjectGen% -S %AndroidProjectRes% -I %AndroidJar% -M %AndroidProjectAndroidMainfest%
- echo 生成class
- %JAVAC% -encoding UTF-8 -target %JDK_Version% -bootclasspath %AndroidJar% -classpath %ExternerJar% -d %AndroidProjectBin% %AndroidProjectSrc%
- echo 生成dex
- cd %AndroidProjectBin%
- rem 把bin目录下*.class文件打成jar包
- %JAR% cvf %AndroidProjectBin%/yourProject.jar *.*
- cd %AndroidProject%
- rem 生成dex 这里需要注意,因为调用的是bat的脚本,因此必须用Call
- call %AndroidDx% --dex --output=%AndroidProjectClassDex% %AndroidProjectBin%/yourProject.jar %ReferJar%
- echo 打包资源文件
- %AndroidAAPT% package -f -M %AndroidProjectAndroidMainfest% -S %AndroidProjectRes% -A %AndroidProjectAsset% -I %AndroidJar% -F %AndroidProjectResources%
- echo 生成未签名的apk文件
- call %AndroidApkBuilder% %AndroidProjectApk% -v -u -z %AndroidProjectResources% -f %AndroidProjectClassDex% -rf %AndroidProject%/src
- echo 生成数字签名key.keystore
- %KeyTool% -genkey -v -keystore %apk_keystore% -storepass %apk_keypass% -keypass %apk_keypass% -alias myKey -dname CN=Liux,OU=makingware.com,O=makingware,L=sz,ST=gd,C=cn -keyalg RSA -validity 10000
- echo 进行数字签名
- %Jarsigner% -verbose -keystore %apk_keystore% -keypass %apk_keypass% -storepass %apk_keypass% -signedjar %AndroidProjectSignApk% %AndroidProjectApk% myKey
- echo 签名成功
- pause
其中keys 按照指定的路径 新生成的,可以按照已有的key的信息打包
[转]Windows中使用命令行方式编译打包Android项目的更多相关文章
- [转]Windows中的命令行提示符里的Start命令执行路径包含空格时的问题
转自:http://www.x2009.net/articles/windows-command-line-prompt-start-path-space.html 当使用Windows 中的命令行提 ...
- 转:Windows中的命令行提示符里的Start命令执行路径包含空格时的问题
转自:http://www.x2009.net/articles/windows-command-line-prompt-start-path-space.html 当使用Windows 中的命令行提 ...
- sublime text2在windows中以命令行启动
sublime text2在windows中以命令行启动 把执行文件添加到PATH中即可,如图: 如果你和我一样习惯了mac下的简写subl,那么需要在程序目录中新建一个批处理文件subl.bat ...
- Android系列之Android 命令行手动编译打包详解
Android 命令行手动编译打包过程图 [详细步骤]: 1使用aapt生成R.java类文件: 例: E:\androidDev\android-sdk-windows2.2\tools> ...
- Android - Ant自动编译打包android项目 -- 1(转)
1. 背景: Eclipse用起来虽然方便,但是编译打包android项目还是比较慢,尤其当要将应用打包发布到各个渠道时,用Eclipse手动打包各种渠道包就有点不切实际了,这时候我们用到Ant帮我 ...
- (转载)Ant自动编译打包android项目
1 Ant自动编译打包android项目 1.1 Ant安装 ant的安装比较简单,下载ant压缩包 http://ant.apache.org (最新的为1.9.3版本),下载之后将其解压 ...
- 项目androidAnt编译打包Android项目
时间紧张,先记一笔,后续优化与完善. Ant编译打包Android项目 在Eclipse中对Android项目停止编译和打包如果项目比较大的话会比较慢,所以改为Ant工具来停止编译和打包 Ant环境配 ...
- delphi DCC32命令行方式编译delphi工程源码
本文链接地址:http://blog.csdn.net/sushengmiyan/article/details/10284879 作者:苏生米沿 Borland出品的Delphi,在TIOBE公布的 ...
- Windows中通过命令行新建文件夹、新建文件,和一些常用命令
新建文件 和Linux不太一样,Linux中的touch和vi命令创建新文件的方法都不能用了,在windows命令行下得用type nul>文件名.后缀名来创建: F:\study\vue\wo ...
随机推荐
- linux操作系统-两台linux服务器SSH免密码登录
A为本地主机(即用于控制其他主机的机器) ; B为远程主机(即被控制的机器Server), ip为192.168.100.247 ; A和B的系统都是Linux 在A上的命令 # ssh-keyg ...
- linux操作系统-设置静态ip
在使用linux虚拟机的时候因为经常有关机的需求,然后重新开机后可能面临这上一次获取的ip被改变,在这里我分享一下在linux 下设置静态ip的经验 1.查看路由状态 [root@localhost ...
- (转)Android中Parcelable接口用法
1. Parcelable接口 Interface for classes whose instances can be written to and restored from a Parcel. ...
- 4. 深入 Python 流程控制
除了前面介绍的 while 语句,Python 还从其它语言借鉴了一些流程控制功能,并有所改变. 4.1. if 语句 也许最有名的是 if 语句.例如: >>> x = int(i ...
- ES6 Proxy的应用场景
一.相关API Proxy Reflect 二.Proxy应用场景 1.数据校验 表单提交的时候做数据校验,例如年龄是不是满足条件,数据类型是不是满足要求等等,这场场景非常适合使用Proxy. 下面展 ...
- centos7.2下nginx安装教程
1.准备工作 1)关闭iptables 关闭操作 iptables -t nat -F 查看操作 iptables -t nat -L 2)关闭selinux 查看操作 setenforce 关闭操作 ...
- 常用的TCP Option
当前,TCP常用的Option如下所示———— Kind (Type) Length Name Reference 描述 & 用途 0 1 EOL RFC 793 选项列表结束 1 1 NOP ...
- Qt样式表的使用
Qt中可以灵活的使用层叠样式表(CSS),其语法和CSS很相似.因为HTML CSS的灵活性,所以可以很方便的为QT界面设计自己需要的外观.除了子类化Style类,使用QT样式表(QStyleShee ...
- db2建立类似oracle的dblink
db2 catalog tcpip node rmt_node remote 127.0.0.1 server 50000; --db2 catalog database rmt_db as rmt_ ...
- 获取JavaScript异步函数的返回值
今天研究一个小问题: 怎么拿到JavaScript异步函数的返回值? 1.错误尝试 当年未入行时,我的最初尝试: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 <s ...