gpt4 book ai didi

android - 如何减少使用 Visual Studio 2015 构建的 apk 大小?

转载 作者:太空狗 更新时间:2023-10-29 14:00:04 26 4
gpt4 key购买 nike

我正在使用可移植类库 (PCL) 制作 Xamarin Forms 应用程序。

我创建了一个有两个屏幕的应用程序。生成 .apk 时,我注意到它太重了。我已经看到这是由于 Linker/Linking process .

我为生成 .apk 所做的步骤是:

  1. 构建配置:发布 - 任何 CPU
  2. Bluid --> Clean Solution
  3. 构建 --> 构建解决方案
  4. 在解决方案资源管理器中,我选择 Android (Droid) 项目
  5. 构建 --> 导出 Android 包 (.apk)
  6. apk包在project_forder/bin/Release/project-name.Droid-Signed.apk

结果是一个大约 17 MB 的包。

我尝试减小尺寸的步骤是:

  1. 右键点击 Android (Droid) 项目
  2. 点击“属性”选项
  3. 标签“Android 选项”
  4. 然后是“链接器”选项卡
  5. 在“链接”组合中,我选择“仅限 Sdk 程序集”
  6. 然后我重复生成 apk 的步骤。

当我选择链接组合时:

  • 仅 Sdk 程序集:apk 的大小相同 (17 MB)
  • SDK 和用户程序集:大小减少了 (13 MB),但我认为它太多了。此外,在移动和运行应用程序中安装包时,它会立即停止。我认为这与未包含某些依赖项有关。

注意事项:

  • 我还没有设置图片资源。
  • 我包含了一个来自 NuGet 的依赖 ZXing。

编辑:

我解压了apk,它的结构是:

  • /assemblies/(10.8 MB,有很多 .dll)
  • /lib/armeabi/(2.84 MB,带有 libmonodroid.so 和 libmonosgen-2.0.so)
  • /lib/armeabi-v7a/(2.80 MB,带有 libmonodroid.so 和 libmonosgen-2.0.so)
  • /lib/x86/(3.41 MB,带有 libmonodroid.so 和 libmonosgen-2.0.so)
  • /META-INF/(100 KB)
  • /res/(1.02 MB)
  • AndroidManifest.xml (4 KB)
  • classes.dex (2.5 MB)
  • 环境 (1 KB)
  • 通知 (1 KB)
  • 资源.arsc (241 KB)
  • typemap.jm (332 KB)
  • typemap.mj (381 KB)

一种解决方案是为每个架构创建一个 .apk。在这种情况下,每个 .apk 占用 13-14 MB,其中 lib 文件夹仅包含特定架构的 libmonodroid.so 和 libmonosgen-2.0.so。我仍然认为 14 MB 太大了。

如何知道assembles文件夹中的哪些文件可能被遗漏了?

我(通过 friend )听说,当在 Google Play 上发布单个 .apk 时,如果一个 apk 包包含所有架构(arm、x86 等)的库并且包占用 17 MB,当用户下载该应用程序后,Google Play 会生成一个具有特定移动用户特征 (14 MB) 的 .apk。是真的吗?如果是这样,发布 17 MB 的 .apk 将不是问题。

answer是我的问题所谈论的内容,但它没有说明我可以省略哪些程序集或如何排除它们。我不认为打开/解压缩 .apk 文件并删除库和程序集是一种礼貌的解决方案。

最佳答案

您可以解压 apk 以查看是哪个部分使它如此之大。您可以破解 apk 以查看其中包含的包。

关于android - 如何减少使用 Visual Studio 2015 构建的 apk 大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36361413/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com