如何发布带静态资源的库——android 篇

1.首先要使用 android sdk 提供的命令行工具处理已有的项目:java

1 cd YourProjectDir
2 android update project -p ./

 

2.上一步生成的 build.xml 中,会有一个对 custom_rules.xml 的引用,这个引用是可选的,没有 custom_rules.xml 也不会影响编译。但这个文件正好是用来添加自定义编译步骤的,要把 assets 资源添加到 jar 包中,就要建立这个文件。在工程目录下建立 custom_rules.xml 后,将如下内容添加到其中:android

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <project name="custom_rules">
 3     <target name="-post-compile" if="${project.is.library}">
 4         <echo>Post Compile: add assests from ${asset.absolute.dir} to ${out.library.jar.file}</echo>
 5         <jar destfile="${out.library.jar.file}" update="true">
 6             <zipfileset dir="${asset.absolute.dir}" prefix="assets" excludes="**/*.java ${android.package.excludes}"/>
 7         </jar>
 8         <echo>Post Compile: rename ${out.library.jar.file} to ${out.absolute.dir}/${standalone.jar.file}.jar</echo>
 9         <delete file="${out.absolute.dir}/${standalone.jar.file}.jar" quiet="true"/>
10         <rename src="${out.library.jar.file}" dest="${out.absolute.dir}/${standalone.jar.file}.jar"/>
11     </target>
12 </project>

其中standalone.jar.file 是定义在 local.properties 中的一个配置,表示你要生成的 jar 包的名字,固然你要写在别的地方也不是不行。这段代码作的事情就是在 compile 以后打一个 jar 包,把 assets 目录中的文件都压缩到 jar 包的 assets 目录中。而后将老版本的 jar 包删除,并将刚生成的 jar 包改为咱们要的名字。这样打出来的 jar 包中会包含 assets 资源,apk 能够直接引用。为了避免产生命名冲突,建议将 jar 包中的 assets 资源都放在一个以库名称命名的子目录中,这样 apk 中的资源就不会和库里的资源冲突了。windows

 

3.为了使用 eclipse 调试,咱们还须要配置 eclipse 工程(手上的项目暂时还不方便切换 android studio,之后再说),实现调用 ant 自动编译。首先你的 path 环境变量里确定要有 ant,windows 平台建议安装 winant,mac 平台直接安装 ant 就好。而后要配置 eclipse,达到每次修改原文件都自动调用 ant 编译的效果。具体方法是点击 project->properties,选择 builders,添加一个 builder,配置如图所示。而后把全部默认的 builder 都不选,只勾选新添加的 builder 便可。eclipse

 

注意,这种作法的前提是个人工程并不算大,自动编译还能跟上修改,若是是大工程,仍是不要自动编译了。工具

相关文章
相关标签/搜索