有没有办法使用proguard从APK中删除特定的类?我需要这样做来构建2个不同的APK,其中一个具有受限制的功能。例如,某些活动不应该在2个APK之一中提供,因此它不应该在其中。
我不能使用库和2个项目来实现这一点,因为实际用例要复杂得多,并且已经涉及构建4个APK,另外2个APK应该从同一个库构建,从APK中剥离特定组件。
我尝试了类似的东西,但它根本不起作用,并没有从构建的APK中删除任何内容。
-assumenosideeffects class app.package.activities.classes_to_strip.** {
public *** *(...);
public static *** *(...);
public *;
private *;
protected *;
}
更新:我改变了标题,以更好地反映我正在努力实现的目标。
到目前为止,我已经能够构建一个精简版APK(活动较少)但是所有其他活动代码仍然存在于最终APK中,因为它们是从代码的各个部分引用的(这不是真正的问题,因为这样的代码不会运行。)
答案 0 :(得分:1)
Android的Ant / Eclipse / Gradle构建过程自动生成ProGuard配置(bin / proguard.txt),用于保存AndroidManifest.xml(和其他XML文件)中引用的活动(和其他类)。因此,您应该以不同的方式使用不同的AndroidManifest.xml文件启动构建。
答案 1 :(得分:0)
不,proguard用于代码组合,而不用于代码'构建选项'。
答案 2 :(得分:0)
使用Proguard,您可以轻松地使用-keep class * 混合大部分代码和排除某些。 但是,你想要做的是相反的。
我认为你可以手动删除AndroidManifest.xml中的一些代码