Android项目导出jar包的小技巧
為什么80%的碼農(nóng)都做不了架構(gòu)師?>>> ??
我們知道,可以通過(guò)如下設(shè)置將一個(gè)普通的Android工程轉(zhuǎn)換成Android Library工程
設(shè)置前后工程變化如下
使用Ant編譯時(shí)(通過(guò)android.bat update project 命令生成 build.xml),普通的Android工程會(huì)生成apk文件,而Android Library工程只生成jar文件。由于要生成dex并打包apk資源,前者比后者要耗時(shí)不少。
有時(shí)我們需要從普通工程中導(dǎo)出部分代碼生成jar包,可以手動(dòng)完成
或者,按照上面的做法,先將一個(gè)普通的Android工程轉(zhuǎn)換成Android Library工程,再執(zhí)行 ant release 或 ant debug
其實(shí),還有一種更簡(jiǎn)單地方法:使用如下方式執(zhí)行 ant release
ant release -Dandroid.library=true編譯后將生成一個(gè)classes.jar,編譯輸出如下
... -compile:[jar] Building jar: F:\xxx\bin\classes.jar-post-compile:-obfuscate:-dex:[echo] Library project: do not convert bytecode... ...最后,我們還可以通過(guò)添加一個(gè) custom_rules.xml 文件來(lái)對(duì)生成的jar文件進(jìn)行更靈活地控制:
<?xml version="1.0" encoding="UTF-8"?> <project name="tinyUtils" default="help"><target name="-post-compile"><!-- copy from <sdk>\tools\ant\build.xml '-compile' task --><if condition="${project.is.library}"><then><echo level="info">Creating my library output jar file...</echo><property name="out.mylibrary.jar.file" location="${out.absolute.dir}/my_classes.jar" /><if><condition><length string="${android.package.excludes}" trim="true" when="greater" length="0" /></condition><then><echo level="info">Custom jar packaging exclusion: ${android.package.excludes}</echo></then></if><propertybyreplace name="project.app.package.path" input="${project.app.package}" replace="." with="/" /><jar destfile="${out.mylibrary.jar.file}"><!-- 自定義 --></jar></then></if></target> </project>總結(jié)
轉(zhuǎn)載于:https://my.oschina.net/apm/blog/278484
總結(jié)
以上是生活随笔為你收集整理的Android项目导出jar包的小技巧的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 在 asp.net mvc中的简单分页算
- 下一篇: android sina oauth2.