我们知道,可以通过如下设置将一个普通的Android工程转换成Android Library工程

1acd454628e1c9c7c67464559f8b5c7b.png

设置前后工程变化如下

307818164563ccb95b6fa1524b1dda36.png

使用Ant编译时(通过android.bat update project 命令生成 build.xml),普通的Android工程会生成apk文件,而Android Library工程只生成jar文件。由于要生成dex并打包apk资源,前者比后者要耗时不少。

有时我们需要从普通工程中导出部分代码生成jar包,可以手动完成

c4cf076f18fa224102f0eab2a68d6727.png

或者,按照上面的做法,先将一个普通的Android工程转换成Android Library工程,再执行 ant release 或 ant debug

其实,还有一种更简单地方法:使用如下方式执行 ant release

ant release -Dandroid.library=true

编译后将生成一个classes.jar,编译输出如下

...

-compile:

[jar] Building jar: F:\xxx\bin\classes.jar

-post-compile:

-obfuscate:

-dex:

[echo] Library project: do not convert bytecode...

...

最后,我们还可以通过添加一个 custom_rules.xml 文件来对生成的jar文件进行更灵活地控制:

Creating my library output jar file...

Custom jar packaging exclusion: ${android.package.excludes}

总结

ant命令中添加 -Dandroid.library=true 参数从普通Android项目中导出jar包

添加一个 custom_rules.xml 文件来对生成的jar文件进行更灵活地控制

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐