应用程序捆绑是否足够,或者需要APK拆分以减小APK大小?

问题描述 投票:1回答:2

我正在使用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的大小,或者我应该按每种体系结构拆分它?

android apk opencv4android android-app-bundle
2个回答
1
投票

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

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

[由于您支持四个abis:'armeabi-v7a''arm64-v8a''x86''x86_64',因此使用Android Abb捆绑包将大大减少用户从Google Play商店下载的最终软件包的烦恼。根据您提供的信息,我想它将减少一半,至大约30-40MB。

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


1
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.