gpt4 book ai didi

android - 如何避免 Android 库项目中未使用的资源和代码进入我的 APK?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:39:01 25 4
gpt4 key购买 nike

我的 Eclipse 工作区中有一个 Android 库项目,我将其用作独特的工具箱。偶然 (1),我刚刚发现库中的资源(xml 动画、xml 布局,甚至可绘制对象!!!)被打包到使用该库的项目的 APK 中,即使我不使用它们也是如此。

看完Does android always package unused resources? ,不知是否正常。我怎样才能避免这种情况?是拥有不同图书馆项目的唯一途径吗?

编辑:我发现,反编译 .dex,未使用的代码也进入了 apk。

(1) 我正在尝试为我的应用程序测试新图标 /res/drawable/icon.png,但默认图标会一直出现。我删除了图像,它一直显示默认图标!它必须是库中的 /res/drawable-mdpi/icon.png

最佳答案

新的 Android 构建系统有一个 resource stripping mechanism内置的可以作为构建过程的最后一步运行。除了删除 lint 识别的资源外,还可以使用它。

请注意,资源剥离机制与 Proguard 结合使用特别有用。 (也与构建系统 bundle 在一起)以及当您在项目中使用库时。想法是:

  • Proguard 会删除您不使用的类,包括那些来自库的类。
  • 上述过程可以删除对这些库中包含的资源的代码引用。
  • 因此可以从 APK 中删除那些未引用的资源,因为没有代码再使用它们。

删除 lint 识别的未使用资源仍然有用,因为删除它们:

  • 加快构建速度
  • 减轻项目的维护负担。

关于android - 如何避免 Android 库项目中未使用的资源和代码进入我的 APK?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5560372/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com