App Bundle是否足够,还是需要拆分APK以减小APK大小?

时间:2019-12-14 09:57:17

标签: android apk opencv4android android-app-bundle

我正在使用 OpenCV 库v4.1.2来实现GrabCut算法,我仅使用以下内容:

import org.opencv.android.Utils;
import org.opencv.core.CvType;
import org.opencv.core.Mat;
import org.opencv.core.Rect;
import org.opencv.core.Size;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;

生成APK后,它具有巨大的大小 70MB

成绩:

defaultConfig {
    applicationId "abc.app"
    minSdkVersion 21
    targetSdkVersion 29
    versionCode 1
    versionName "1.0"
    multiDexEnabled true
    ndk.abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64'
    testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}

我的问题:

Android App Bundle是否足以减少APK的大小,还是应该按每种体系结构拆分它?

2 个答案:

答案 0 :(得分:1)

尽管可以将大小不超过100MB的应用上传到Google Play商店,但强烈建议您使用Android Abb捆绑功能。实施起来很容易:

bundle {
   language {
       enableSplit = true
   }
   density {
       enableSplit = true
   }
   abi {
       enableSplit = true
   }
}

当您支持四个'armeabi-v7a''arm64-v8a''x86''x86_64'时,使用Android Abb捆绑包将减少用户从以下位置下载的最终软件包的烦恼Google Play商店明显。根据您提供的信息,我想它将减少一半,大约为30-40MB。

如果您没有将应用程序本地化为其他语言,或者如果本地化文件不占用太多空间,则可以设置language {enableSplit = false},如果没有太多空间,密度也会采用相同的逻辑被不同的密度相关文件占用。

答案 1 :(得分:1)

发布Android App Bundle时,Play会为您按ABI(以及DPI和语言)进行拆分。这是Android App Bundle的主要优点之一:您只需要发布具有单个版本的单个工件Code,并且Play可以代表您管理减小应用大小的所有最佳实践。