Android开发之使用Ant命令行编译和APK签名

最近在做Android开发时,需要引用第三方的代码进项目,一般情况下,直接在Eclipse下设置需要导入的代码的编译输出为library即可,但是很多代码在Eclipse下编译会出现很多莫名其妙的错误。因而只能使用命令行方式对代码进行编译。具体方法如下:



1.安装编译用的Java,安装Android Platform-tools,安装Ant,设置好各种环境变量。部分Linux下Ant已经默认集成,Windows下需要自行安装。

2.使用Android工具更新代码的编译配置。

3.使用Ant工具进行编译,可编译Debug版和Release版本。

4.生成代码签名用的私钥,并对APK进行签名。

5.对APK文件进行对齐,对大文件APK有不错的效果。





以下是参考Bash代码,可自己需要更改,执行时,sudo bash XXX.sh即可



# Setup Java Home

JAVA_HOME = "/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home"



# Setup android Home

ANDROID_HOME="~/android-sdk-macosx"



# Setup path

PATH = "$ANDROID_HOME/tools:$JAVA_HOME/bin:$PATH"



# Update current project

android update project --path .

#android update project --path ./Library/lib1

#android update project --path ./Library/lib2



# Remove keystore

rm -f product.keystore



# Make keystone

keytool -genkey -alias product.keystore -keyalg RSA -validity 40000 \

-keystore product.keystore -storepass password -keypass password \

-dname "CN=Product OU=Android Team O=Organization L=Hongkong ST=Hongkong C=China"



# Clean

ant clean



# Remove ant.properties

rm -f ant.properties



# Make ant.properties

echo "key.store=product.keystore" > ant.properties

echo "key.alias=product.keystore" >> ant.properties



# Build apk

ant release



# Sign APK

# jarsigner -verbose -keystore product.keystore -signedjar \

# bin/product_signed.apk bin/product-release-unsigned.apk product.keystore



# Zip align apk

# zipalign -v 4 bin/product_signed.apk bin/product_final.apk





说明:

更新Android的ant编译配置,如果代码的结构发生变更,请执行,如果代码中包含引用的第三方库代码,需要分别对这些代码进行更新。



# Update current project

android update project --path .

#android update project --path ./Library/lib1

#android update project --path ./Library/lib2





生成签名用的Keystore文件,几个参数的说明

-genkey 生成秘钥证书

-alias 别名

-keyalg 秘钥的计算算法

-validity 有效期

-keystore 秘钥库文件路径

-storepass 秘钥库密码

-keypass 秘钥证书密码

-dname 发行者信息

CN= 发行者姓名 (个人姓名或产品名)

OU= 组织单元名 (团队名)

O= 组织机构名 (公司名)

L= 城市/地区

ST= 州/省

C= 国家代码





# Make keystone

keytool -genkey -alias product.keystore -keyalg RSA -validity 40000 \

-keystore product.keystore -storepass password -keypass password \

-dname "CN=Product OU=Android Team O=Organization L=Hongkong ST=Hongkong C=cn"





生成ant自动编译用的ant.properties文件,设置key.store和key.alias两个变量后,ant release时会自动对生成的APK签名和对齐



echo "key.store=product.keystore" > ant.properties

echo "key.alias=product.keystore" >> ant.properties





手动对代码签名,几个参数的说明

-verbose 显示输出

-keystore keystore别名

-signedjar 签名apk文件,第一个参数为目标文件,第二个为未签名apk



# Sign APK

jarsigner -verbose -keystore product.keystore -signedjar bin/product_signed.apk bin/product-release-unsigned.apk product.keystore





手动对APK进行对齐



# Zip align apk

zipalign -v 4 bin/product_signed.apk bin/product_final.apk




--------------------------------------------------------------------------------------
- 版权声明:
- 如在本页面内无特别说明,本文内容均为[李大仁博客]原创,本文版权归[李大仁博客]所有。
- 欢迎转载,转载请务必在文章页面明显位置提供原文链接并注明出处。欢迎您在转载本文时保留本段声明。
- 文章标题: Android开发之使用Ant命令行编译和APK签名
- 独立博客: 李大仁博客
- 永久链接:http://www.lidaren.com/archives/905
--------------------------------------------------------------------------------------
以上内容由博客自动发布工具自动发布,最终显示内容和效果会与原文内容有所偏差,敬请谅解。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值