如果我做对了,我不确定.它似乎正在做对位.如果我将标志android:extractNativeLibs设置为true,则应用程序占用大约70MB的用户空间(是的......)但是如果我将此标志设置为false,则设备上安装的应用程序的大小会跳到大约95MB.所以我不确定用户是否会欣赏这一点.
Ove*_*r17 21
这有点棘手.当extractNativeLibs设置为false时,您的APK大小会更大.
当extractNativeLibs设置为true(默认)或未添加到清单时,您的本机库可以压缩存储在APK中.它们在安装过程中由PackageManager提取,并将副本放到/ data/app /中.因此,本机库有两个副本 - 在APK中压缩,在/ data/app /中压缩.
这种方法具有以下优点:
缺点:
通过将extractNativeLibs设置为"false",可以启用Google在Marshmallow(Android 6)中引入的新方法.它希望这些库在APK(STORE方法)和zipaligned中未压缩存储.在安装过程中无需提取它们.在应用启动时,可以直接从APK加载库.
好处:
缺点:
预计,我没有发现两种选择的加载性能有明显差异.
extractNativeLibs ="false"选项可能对您的if有用:
例如,对于使用Unity制作的游戏,由于大型本机库,此选项几乎不适用.
Android App Bundles是Google Play宣布的新分发机制,更多详情可在官方网站上获得https://developer.android.com/platform/technology/app-bundle/和https://developer.android.com/guide /应用束/
与传统的APK相比,它具有明显的优势,其中最重要的是500 Mb最大尺寸限制.重要提示:这是下载大小,而不是应用包本身或生成的APK的大小.(APK由Play生成并即时交付给设备,有关其工作原理的更多详细信息应在官方Android资源上提供).
构建AAB时,默认情况下,extractNativeLibs标志设置为"false".但是,由于Google Play会在传送到终端设备的APK之上应用压缩,因此这不会影响下载大小.这意味着这个标志只会带来Android App Bundles的好处 - 安装速度更快,磁盘尺寸更小,几乎没有额外成本,因为没有压力达到最大尺寸限制.
然而,一个令人困惑的事情是当你接近500 Mb限制时如何计算下载大小,因为AAB大小不是下载大小的指示.在bundletool中有一个特殊的命令,或者您可以尝试直接将其上传到Play.如果您的AAB远低于500 Mb,则无需担心.
extractNativeLibs="false"如果你的APK包含多个ABI,可能会适得其反.假设你使用的是每个ABI 10 MB的库,可以压缩到5 MB.如果你有3个ABI,那么结果是:
extractNativeLibs ="true":
APK: 15 MB (3 x 5 MB)
Extracted: 10 MB
Total: 25 MB
Run Code Online (Sandbox Code Playgroud)
extractNativeLibs ="false":
APK: 30 MB (3 x 10 MB)
Extracted: 0 MB
Total: 30 MB
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6213 次 |
| 最近记录: |