【问题标题】:Android: compile APK with ANT, common libraries from outside the project folderAndroid:使用 ANT 编译 APK,项目文件夹外的常用库
【发布时间】:2013-12-05 10:03:42
【问题描述】:

我正在运行一个允许用户创建简单的安卓应用程序的网络服务。我正在使用 ANT 来自动构建 APK:

  1. 创建项目文件夹(eclipse-style)
  2. 将库(ad sdks)复制到库文件夹
  3. 运行蚂蚁

问题在于,即使所有应用程序的库始终相同,它们也会为每个应用程序预先编入索引,并且构建过程需要的时间比需要的长得多。我知道这是我现在的设置的正常行为。

我想做的是将所有库保存在服务器上的一个公共文件夹中,并告诉 ant 使用这些库,防止每个应用程序发生预 dexing 过程。

我不确定在 ant.properties 或 build.xml 中使用什么设置来实现这一点。

谢谢!

【问题讨论】:

  • 我不知道你想要什么是可能的。话虽如此,我会切换到 Gradle,因为使用它而不是使用 Ant,你更有可能实现这一目标。

标签: java android linux ant apk


【解决方案1】:

您可以使用 lib 开关来指定库
-lib 指定搜索 jar 和类的路径。或者将库放在标准目录中。 路径目录中的任何 jar 或类都将添加到 Ant 的类加载器中。将 jars 添加到类路径的顺序如下: *.-lib jars 按命令行上 -lib 元素指定的顺序 *.jars 来自 ${user.home}/.ant/lib(除非设置了 -nouserlib) *.jars 来自 ANT_HOME/lib

【讨论】:

    【解决方案2】:

    首先,一个微小的改进;将您的共享库放在您想要的位置,然后,对于需要一个或多个这些库的每个 Android 项目,只需在项目 libs/ 目录中创建一个指向所需库的 symlink。您可以节省空间和时间,特别是在许多用户使用网络服务器的情况下。

    为了避免多重 dexing 的问题,您可以尝试为您的库构建一个独立的 .dex 文件,并使用 ClassLoader 在您的应用程序中动态地使用它。 你可以从这里开始:http://android-developers.blogspot.in/2011/07/custom-class-loading-in-dalvik.html

    【讨论】:

      猜你喜欢
      • 2011-12-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-08
      • 1970-01-01
      • 1970-01-01
      • 2012-03-13
      • 2011-11-04
      相关资源
      最近更新 更多