Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/194.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何从Android中的第三方库中去除冗余包?_Java_Android_Gradle - Fatal编程技术网

Java 如何从Android中的第三方库中去除冗余包?

Java 如何从Android中的第三方库中去除冗余包?,java,android,gradle,Java,Android,Gradle,我有一个android应用程序和一个库,它使用Apache Commons Math。 ApacheCommonsMath是一个相当庞大的库,它使输出APK1MB更大 由于我只使用与统计和插值相关的类,因此我有两种减小大小的想法: 我想从目标apk中去掉不必要的包(但是如何?) 依赖于apachecommons的java库可以是一个胖jar(它的jar文件将包括apachecommons:math3的所有类)。我将从这个jar中排除所有未使用的包 ProGuard?-我现在不想用这个 第一个似乎

我有一个android应用程序和一个库,它使用Apache Commons Math。 ApacheCommonsMath是一个相当庞大的库,它使输出APK1MB更大

由于我只使用与统计和插值相关的类,因此我有两种减小大小的想法:

  • 我想从目标apk中去掉不必要的包(但是如何?)
  • 依赖于apachecommons的java库可以是一个胖jar(它的jar文件将包括apachecommons:math3的所有类)。我将从这个jar中排除所有未使用的包
  • ProGuard?-我现在不想用这个

  • 第一个似乎最简单,但我仍然不知道如何编写一个gradle任务来删除未使用的包。如有任何示例或链接,将不胜感激。:)

    至于第一个选项,因为它是ApacheCommons库(以开源形式分发),所以您可以创建自己的fork,从中删除不需要的内容,重新编译并使用重新编译的版本(确保更改版本,以免意外遇到任何奇怪的问题)。虽然可能不是最好的解决方案,但作为最后手段,值得了解。

    您不想使用ProGuard有什么特别的原因吗?它专门用于从Android应用程序中剥离未使用的类/方法听起来不错!其实我还没想过呢谢谢