技术编程如何减小安卓应用的体积( 二 )
4.限制库资源的使用
通常 , 在开发Android应用程序时 , 我们会用到各种外部库 , 而且我们往往需要将这些库的可用性和多功能性发挥到极致 。 其中 , 最常用的莫过于Google Play Services(可用于恢复应用程序文本的自动翻译)和Android Support Library(可用于改善老旧设备上的用户体验) 。 当然 , 这些类库同时也是为服务器或台式机设计的 。 它们往往会带有各种无法为手机应用提供服务的方法和对象 。 对此 , 您需要在编写程序时仅保留应用所需的部分 。 要做到这一点 , 您不但需要通过修改不同的调用权限 , 还应当仅使用那些适合移动设备的库 , 来实现某些特定的功能 。
5.仅支持特定的屏幕密度
不同于iPhone那样基本固定了屏幕的尺寸 , 由全球不同厂商生产出来的Android平台设备 , 可谓五花八门 。 它们有着不同屏幕尺寸和分辨率的产品 。 此外 , 在Android的屏幕密度方面 , 也存在着诸如:ldpi、tvdpi、mdpi、hdpi、xhdpi、xxhdpi和xxxhdpi等类型 。 因此 , 如果您想让自己的应用小而美的话 , 那么就完全没有必要支持所有的屏幕类型 , 只需保证自己的界面能够清晰流畅地显示在基本设备上即可 。
当然 , 在具体实践中 , 您也可以通过调查 , 摸清具有特定屏幕密度设备在市场上的占比 。 如果占比的确不高 , 就真的没有必要让应用去适应甚至捆绑每一种密度 。 通过如下命令 , Android系统可以采取自动扩展的方式 , 适应不同密度的屏幕 。 android{splits { density { enabled true } }}
6.避免枚举
通常 , 枚举操作会给一个应用的classes.dex文件带来1.0到1.4 KB的空间占用 。 而且 , 如果程序中的枚举多了 , 尤其是有各种共享库或复杂系统的情况下 , 它们在运行的时候也会拖慢速度 , 并占用更多的空间 。 我们可以通过使用ProGuard和@IntDef的批注(annotation)功能 , 将枚举型转换为整型 , 以实现在保留枚举所有优点的基础上 , 减小应用的体积 。
7.使用APK体积分析器
APK分析器可以为您提供有关APK体积大小的各种数据 。 在其界面的上方 , 您可以选择查看原始文件的大小 , 即:APK占用的磁盘空间大小 。 其“下载体积”表示了:在考虑了Play Store的帐户压缩的情况下 , 用户将会耗费多少数据流量来下载目标应用 。
APK体积分析器可以通过Android Studio的插件市场(plugin marketplace) , 有效地进行下载 。 在其分析报告中 , 它会以降序排列的方式展示文件夹和文件的大小 。 通过此功能 , 您可以轻松地找出占用空间的“大户” 。 同时 , 您也可以通过“比较”的功能 , 查看到某个应用新、旧版本之间的体积差异 。
8.可下载的字体
由于Play Store中的绝大多数应用程序都采用了相同的字体 。 因此 , 大多数字体会被包含在App Bundles中 。 当某个用户在一台设备上运行包含了采用相同字体的不同应用时 , 它们就需要能够在本地进行相互复用 。 幸运的是 , Google已经考虑到了此类情况 , 并在其支持库中提供了可下载的各类字体 。 据此 , 您在开发应用时 , 不必再用API去捆绑字体文件 , 只需请求相应的字体即可 。
9.提供多个APK
有时候 , 用户可能只想用到某个应用的一部分功能 。 而作为一个整体 , 应用往往无法将既有的APK进行拆分 。 对此 , 您可以在Google Play上 , 通过Android App Bundles上传自己的应用 , 以便Google可以根据设备的配置 , 来启用APK的优化 。 在实际开发中 , 您也可以将其中一个APK划分为多个 , 以便用户根据自己的判断和实际设备的配置 , 选择最实用的APK 。
小结
【技术编程如何减小安卓应用的体积】在竞争激烈的市场上 , 我们的应用除了能够提供优质的功能服务 , 其自身的下载体积、以及在用户设备上占用的空间 , 也是决定其成败的关键因素之一 。 通过上述介绍的减小应用体积的方法 , 我们将能不断提高用户的使用体验 。
推荐阅读
- 徐峥|徐峥年初被23家电影公司联名“封杀”,上万人签名抵制,现状如何
- 游戏葡萄|七年磨一剑的任天堂,如何用美术诠释游戏?
- 智能城市崛起,看智能化如何定义未来之城
- 萍姐姐调侃体育|郭艾伦如何回应?国产第一后卫之争愈演愈烈,吴前爆发孙铭徽开挂
- 王者荣耀|李小龙皮肤如何搭配才最帅气,这个回城特效绝配,搭配特效秒变传说皮肤!
- 前瞻网|华大推15分钟新冠快速检测盒,前瞻医疗器械产业全球周报第47期:苹果被起诉窃取血氧监测专利技术
- 极酷数码客|价格很有优势,雷军刚发布行业领先技术!小米新机紧接被曝光
- 麦田军事观察|印度抨击法国公司拒绝转让核心技术啥意义?不知花钱买不来现代化
- 剖析爱奇艺积分体系,如何做留存和转化
- 沈潮汐|扬言基建技术超越中国,2天后愣住了,印度3天时间搭好一座桥
