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

big*_*nes 9 resources android apk android-library

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

读完后android总是打包未使用的资源吗?,我想知道这是否正常.我怎么能避免这个?是不同的图书馆项目的唯一方式?

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

(1)我试图为我的应用测试一个新图标/res/drawable/icon.png,但默认图标会一直显示.我删除了图像,它一直显示默认图标!它必须/res/drawable-mdpi/icon.png来自图书馆.

Fab*_*amp 3

新的 Android 构建系统内置了资源剥离机制,可以作为构建过程的最后一步运行。除了删除 lint 识别的资源之外,还可以使用它。

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

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

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

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