【问题标题】:Dex file in Android does it matter it's exported or not?Android中的Dex文件是否导出是否重要?
【发布时间】:2013-05-03 10:21:53
【问题描述】:

我有一个 Android 项目,它依赖于一个 jar 文件。为了让应用程序运行,我需要将 jar 导出到 APK。 jar 将被 dexed 并且 jar 中的类将被打包到 apk 中。

现在我想把这个 jar 移到框架中:意思是修改 framework.jar 并将我的类放入其中:

我将 framework.jar 移回 Android 设备。 当我编译我的 Android 应用程序时,我不再需要导出我的 .jars。

我的问题是:这些文件是否仍会被索引并考虑索引方法的数量?

【问题讨论】:

    标签: android jar dex


    【解决方案1】:

    这些类不会包含在您的应用 .dex 文件中,并且不会计入 dexed 方法的数量。但是,它们将被索引并计入 framework.jar 的限制。

    编辑:正如@JesusFreke 在评论中提到的,您调用的framework.jar 中的方法计入.dex 方法限制。但是,应用很少会使用框架中的所有类和方法,因此仍然可以节省大量资金。

    【讨论】:

    • 你知道如何检查 dexed 方法计数吗?
    • 这不是真的。 apk 直接引用/调用的任何方法都将计入该 dex 文件中的方法限制,即使引用的方法的定义在 dex 文件外部也是如此。
    • @JesusFreke,您是否仅暗示apk 引用将计入调用?例如:如果我的 jar 有 100 个方法,而 apk 只调用了 10 个,那么只计算 10 个?
    • @JesusFreke,我从 android 论坛看到:tinyurl.com/cbpvtyz#10jessewil...@google.com “我很好奇,你的方法数是怎么达到 56,484 的?65,535 的限制包括来自您自己的应用程序的方法,以及您的应用程序调用的所有平台方法。"
    • @Lily,该数字是您的 apk 定义或引用的所有不同方法的计数。所以是的,如果你只从外部 jar 文件中调用 10,那么只有这 10 个会计算在内。
    猜你喜欢
    • 2011-12-06
    • 2012-02-27
    • 2020-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多