android通过ant打包带有Library project和第三方jar包 的脚本实现

本文介绍如何使用Ant脚本打包Android工程,其中包括Library project和第三方jar包。首先,通过合并Library和主工程的res文件,处理可能的资源冲突。然后,利用aapt生成各自package路径下的R文件。接着,确保使用合并后的res文件进行资源打包,并在编译和生成dex阶段添加第三方jar。最后,提供了相关路径变量的说明。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题背景:我们的游戏工程要移植到某渠道,该渠道有自己的计费和登录方式,提供给我们了一个android sdk工程,该工程中只有res,src是一个jar包。

思路由来:使用eclipse工程打包,解压apk,查看里面的class.dex,resource.arsc文件,看看都有什么内容,再自己写脚本实现相同的处理。

 

普通的android工程ant打包网上的资源已经很泛滥了,我在这里不再赘述。拣重点来说,

1.      合并第三方library和自己工程的res文件,一般的渠道商的library中的文件都会以自己渠道名作为开头,这是非常好的习惯,因为我们不能使两个工程中含有相同的文件,而对于strings、style这些相同文件名的合并,需要把里面对应的内容进行合并。这个合并后的res文件才是我们最终要用的

2.      使用aapt工具生成两个R文件。一个R文件在自己工程的package路径下,另一个R文件是第三方工程的package路径下。方法:使用两次aapt工具,两次package的路径分别从两个工程的AndroidManifest.xml中获得。

3.      使用aapt工具生成resource资源的时候,一定记得-s 的是合并之后的res,否则程序运行过程中会报找不到对应的文件的错误

 

这样第三方工程的资源就被打到apk文件中了。对于代码资源jar的添加,包括两处处理。

1.      在编译时,添加第三方jar包,否则编译不过去

2.      在生成dex时,使用工具dx时,把jar的路径添加进去,这样jar就被打进了dex中。至此就完成了第三方jar包的添加。

到这里就完成了。具体代码贴出来:(只有一个文件的代码,主要实现都在这个文件中。)

说明:
${sdk.dir} :android sdk 的路径,自己指定自己的位置
${lib-dir} :自己工程下面放第三方jar的libs路径
${outdir-gen} :工程src路径

${resource-all-res-dir} :合并后的res路径

${library-dir} :第三方工程路径

${projecthomedir} :自己工程的路径


1.前面的处理:

<?xml version="1.0" encoding="GB18030"?>
<project name="AntTask" basedir="." default="signAPK">
		<path id="android.antlibs">
		<pathelement path="${sdk.dir}/tools/lib/anttasks.jar" />
		<pathelement path="${sdk.dir}/tools/lib/sdklib.jar" />
		<pathelement path="${sdk.dir}/tools/lib/androidprefs.jar" />
	</path>

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值