素材巴巴 > 程序开发 >

在Android开发中使用Ant 二:进行一次完整的打包

程序开发 2023-09-14 15:11:53

一次完整的Android打包要进行以下的几步:编译、代码混淆、打包apk、签名apk、apk优化。

为了能包涵使用NDK的情况,在这里使用一个有native代码的工程TestJni。

在工程根目录下新建local.properties文件,输入sdk和ndk的路径

例如:

sdk.dir=D:\Android\android-sdk
ndk.dir=D:\Android\android-ndk

在工程根目录下新建build.xml,输入代码


 
 

my.package依赖于native和release,执行了一次ndk编译和release操作。

打开cmd,切换到工程根目录,输入ant my.package,等待build完成,在bin目录下生成了未签名的apk文件。

代码混淆

如果在project.properties中配置了proguard.config=proguard.cfg,release的时候会自动进行代码混淆。在${sdk.dir}/tools/ant/build.xml可以找到相应的target。

    proguard.config is ${proguard.config}Proguard.config is enabled

proguard.enabled的依据就是在release模式下,并且设置proguard.config这个属性。

签名

在${sdk.dir}/tools/ant/build.xml查找release target

    

我们看到有 -release-sign 这个 targer,继续查找这个target

 

查看第一行

如果执行签名的话 has.keystore 这个条件要成立,继续查找 has.keystore

    

找到上面两个 condition,has.keystore成立的条件是设置了 key.store 和 key.alias 这两个property,并且 key.store 长度不能为0。

has.password 成立的条件是,has.keystore成立, 并且设置了 key.store.password 和 key.alias.password,如果没有这两个属性的话,在build过程中会要求输入密码。

在local.properties中添加这些属性

key.store=D:\Android\keystore\test_key.keystore
key.alias=test_key
key.store.password=123456
key.alias.password=123456

打开cmd,切换到工程根目录,执行 ant my.package, 在bin目录中生成了 TestJni-release.apk 。

检查生成的apk是否进行了优化

至此,打包完成。



标签:

素材巴巴 Copyright © 2013-2021 http://www.sucaibaba.com/. Some Rights Reserved. 备案号:备案中。