[译] Java、Kotlin、RN、Flutter 开发出来的 App 大小,你了解过吗?(1)

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

现在开发 App 的方式非常多,原生、ReactNative、Flutter 都是不错的选择。那你有没有关注过,使用不同的方式,编译生成的 Apk ,大小是否会有什么影响呢?本文就以一个最简单的 Hello World App,来看看不同的框架,编译出来的 Apk 大小,有什么区别。当然,本文的环境下是一个最简单的 Apk,其实只能部分说明问题,你觉得呢?

— 承香墨影


移动开发发展至今,已经可以接受很多方式来开发 App,例如基于特定平台的原生开发方式(使用 Java 或者 Kotlin 开发 Android,使用 Objective-C 或者 Swift 开发 iOS);基于 Facebook 提供的 ReactNative;基于 Walmart 的 Electrode Native;基于 Ionic 框架;使用 Unity 开发一些特定的 App,以及最近 Google 发布的 Flutter.io 框架来开发 App。

那你有没有思考过,这些库和框架,是否会对你的 App 大小有所影响?

我们来分别分析以这些方式编写的应用程序的 Apk 文件,这些应用程序非常的简单,只包含顶部的标题和屏幕中心的文本控件(Hello World)。这是一个最低限度的基本 App。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

首先对于这个测试,我会创建四个不同版本的 Apk。分别是:Java、Kotlin、React Native 和 Flutter。Android Api Level 均为 27。

然后使用 Android Studio 编译成 Release 包,使用对应的 cli 编译 React Native 和 Flutter。

它们将使用默认的 proguard 配置,最后我们使用 Android Studio 自带的 Analyze APK 分析这些 Apk。

Java(539 KB)

首先使用 Java 来开始这次实验,使用 Java 开发 Android 算是最常规也是最简单的一种方式。正如前面描述的那样,由于我们仅仅使用了 Java 和 Android 框架来创建这个应用程序,所以它将是最小的,唯一的依赖是 Android 支持库,在这里你可以看到它占用了整个 Apk 内相当多的空间。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

我们可以通过删除一些依赖库,使用 Activity 而不是 AppCompatActivity 来进一步降低应用程序的大小。

Kotlin(550KB)

接下来,我们使用 Kotlin。如果你使用 Java 编写过很长一段时间的代码,我想 Kotlin 应该会让你眼前一亮。Kotlin 应用程序的 Release 版本,包含了我们在 Java APK 中能看到的所有内容,以及一些基于 Kotlin 的语法糖信息。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

React Native(7MB)

如果你有前端(Web)的开发经验,并希望使用 JavaScript 来开发 App,那么 React Native 是一个不错的选择。

如果你希望在已发布的 App 上,进行更快的功能迭代,使用 React Native 也可以让你不必为每个小改动都发布应用市场。

由 React Native 生成的 Release apk 在 classes.dex 文件中有几个类,这些类有 12193 个针对此应用程序的引用方法。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

它还在 x86armeabi-v7alib 目录中添加了一些 so 库。总共添加了大约 6.4 MB 的空间。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Flutter(7.5MB)

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

img

img

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:Android)

如何做好面试突击,规划学习方向?

面试题集可以帮助你查漏补缺,有方向有针对性的学习,为之后进大厂做准备。但是如果你仅仅是看一遍,而不去学习和深究。那么这份面试题对你的帮助会很有限。最终还是要靠资深技术水平说话。

网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。建议先制定学习计划,根据学习计划把知识点关联起来,形成一个系统化的知识体系。

学习方向很容易规划,但是如果只通过碎片化的学习,对自己的提升是很慢的。

同时我还搜集整理2020年字节跳动,以及腾讯,阿里,华为,小米等公司的面试题,把面试的要求和技术点梳理成一份大而全的“ Android架构师”面试 Xmind(实际上比预期多花了不少精力),包含知识脉络 + 分支细节

image

在搭建这些技术框架的时候,还整理了系统的高级进阶教程,会比自己碎片化学习效果强太多。

image

网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。希望这份系统化的技术体系对大家有一个方向参考。

《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门即可获取!
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门即可获取!
  • 11
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值