我有一个随着时间增长的 Android 项目,随着规模的增长,gradle 构建时间也随之增长。
当它低于 65k 限制时,它是可以忍受的——大约14 秒。现在使用 multidex 需要36s。
所以我的问题是 - 有没有办法“关闭”部分未使用的代码,使其回到 65k 限制之下?
例如,关闭通过 gradle 引入并具有数千种方法的 amazon s3 sdk。
我知道您可以使用 proguard 剥离代码,但这只会增加构建时间。
当我打开使用它的部件时,我很高兴它在运行时崩溃,只是想让测试更快。
在我从 gradle 进口中删除亚马逊的那一刻,我显然得到了这个:
Error:(24, 26) error: package com.amazonaws.auth does not exist
有没有办法以某种方式忽略错误?我知道在 Picasso 中,它有一个运行时检查来查看您是否有 OkHttp,如果没有 - 使用标准网络。
static Downloader createDefaultDownloader(Context context) {
if (SDK_INT >= GINGERBREAD) {
try {
Class.forName("com.squareup.okhttp.OkHttpClient");
return OkHttpLoaderCreator.create(context);
} catch (ClassNotFoundException ignored) {}
}
return new UrlConnectionDownloader(context);
}
我能做这样的事情吗?还是有什么其他方式?