我试图在Android Studio中进行条件构建,在这里我可以通过删除任何多余的库依赖关系来减少生成的APK的大小,如果它们不需要特定分发。如何在Android中有条件地编译JAR?
我有一些代码,大致接近于以下内容:
public class MyClass {
/* Static Declarations. */
public static final boolean USE_LIBRARY = false;
public void doSomething() {
// Are we using the library?
if(MyClass.USE_LIBRARY) {
// Do something with the library that we'd define in my build.gradle.
com.some.gradle.library.MyLibrary.doSomethingWithLibrary();
}
else {
// Do something else.
}
}
}
如果我从我的摇篮依赖删除com.some.gradle.library
,我收到指示上面的代码不能被编译编译错误。正如你所看到的,只要USE_LIBRARY
保持不真实,我们绝不需要参考MyLibrary
;甚至没有实例化,因为它没有提到进口;这些只在运行时被侵犯。
我应该注意到,在实践中,USE_LIBRARY
是一个程序生成的常量,与应用程序的BuildConfig.java
有关。
当然,编译器可以确定这个代码可以优化吗?这是一种预处理器检查,我可以解决吗?
这听起来很有希望。我有阶段1和阶段2,但我不知道第三个甚至是一个选项!我会让你知道我如何继续,谢谢。 –