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

设置前后工程变化如下

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

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

或者,按照上面的做法,先将一个普通的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文件进行更灵活地控制

<?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>

总结

  1. ant命令中添加 -Dandroid.library=true 参数从普通Android项目中导出jar包
  2. 添加一个 custom_rules.xml 文件来对生成的jar文件进行更灵活地控制

更多相关文章

  1. 静默安装实现方法
  2. Windows平台下如何使用Android(安卓)NDK
  3. Android(安卓)Fragment的介绍与使用(案例Demo)
  4. Unity Android(安卓)安装apk后显示两个app的问题
  5. Android上使用Google Map
  6. 折磨死我的conversion to dalvik format failed with error 1 竟
  7. Android成长记(1)-----android环境搭建与adb shell 命令
  8. android通讯录开发 导出数据库
  9. android扁平化界面设计—在android中使用Font-Awesome

随机推荐

  1. 【Android】【动画】自定义插值器Interpo
  2. Android(安卓)TextView追加文字
  3. android的几种渲染与裁剪
  4. Android为Notification加上一个进度条
  5. android 如何判断程序是否在前台运行
  6. android登录模块
  7. Managing APN Settings on Google Androi
  8. 【android】 sqliter数据库CRUD
  9. First Preview of Android(安卓)N: Devel
  10. android保存文件