【发布时间】:2013-12-13 14:56:49
【问题描述】:
我已经使用 Xamarin 实现了一个 Android 应用程序:
.apk 的大小为 13.6MB,其中:
- 配置:发布
- 链接:仅限 SDK 程序集
- 支持的架构:armeabi、armeabi-v7a
以下是从已编译的 .apk 中获取的主要组件的大小概览:
(这些是未压缩大小,我将 .apk 解压缩到一个目录并在 Windows Explorer 中查看文件):
- classes.dex (1.23 KB)
- 两个 libmonodroid.iso (armeabi + armeabi-v7a) (5.58 MB)
- 所有 Mono.xxx.dll (3.89 MB)
- mscorlib.dll (1.51 MB)
所有 System.xxx.dll (2.56 MB)
我的应用程序集(Droid 应用 + 一个 PCL)(204 KB)
- MvvmCross + 插件 (599 KB)
- Xamarin ActionbarSherlock (348 KB)
- ZXing.monoandroid (413 KB)
- PCL Newtonsoft.Json (398 KB)
PCL Microsoft HTTP 客户端库 (System.Net.Http.dll) (110KB)
'res' 文件夹(大小:451KB 磁盘大小:816KB) - 因为有些文件是 1KB,所以会产生碎片,所以 实际大小 vs 磁盘大小明显不同
- 所有 PNG 文件(大小:325KB 磁盘大小:496KB 磁盘)
我可以做些什么来减少编译后的 .apk 的大小?
我觉得它很大。
【问题讨论】:
-
您是否在 .apk 中包含任何图标或闪屏?
-
其中一些库对于 Android 的库(如 Newtonsoft.Json 和 System.Net.Http)是多余的。
-
@joostmakaay 好问题;我更新了我的列表
-
@CoreyOgburn 好点,但我使用的是 PCL 版本的库,它们由我的 PCL 程序集引用;我更新了我的清单。
-
13MB 是普通 Xamarin.Android 应用程序的平均大小。我从来没有设法在 Android 上低于 8MB。在 iOS 上,我设法获得了 4 MB。
标签: android xamarin.android xamarin mvvmcross