自从移动应用开发兴起以来,不少公司和开发者就在不断的探索移动跨平台开发技术,以适应移动应用高速迭代的需求。纵观当前的移动跨平台方案,总结一下无外乎三大类:一种是使用原生内置的浏览器加载 HTML5 的 Hybrid 技术,采用此方案的主要有 Cordova、Ionic 和微信小程序;另一种是使用 JavaScript 开发,然后使用原生组件进行渲染,采用此方案的主要有 React Native、Weex 和快应用;最后一种是使用自带的渲染引擎和自带的原生组件实现跨平台,采用这种方案的主要是 Flutter。
抛开传统的 Hybrid 技术技术,目前比较流行的移动跨平台技术方案当属 React Native、Weex 和 Flutter。不过,从开发效率、渲染性能、维护成本和社区生态上等不同的细节来看又各有优劣,对比如下。
不过,综合对比下来说,Flutter 应该是目前最好的,React Native 次之,不过,正如我之前说的一样,对于移动跨平台技术,没有最好,只有适合自己的。
前不久,有网友对目前国内的大厂采用的移动跨平台技术进行了统计,给出了如下一组数据。
App | Swift | React Native | Flutter | Weex | Version |
---|---|---|---|---|---|
1. 钉钉 | ✔ | 5.0.5 | |||
2. 腾讯会议 | 1.3.0 | ||||
3. 剪映 | ✔ | 2.7.1 | |||
4. TestFlight | ✔ | 2.6.0 | |||
5. 微视 | ✔ | 6.6.0 | |||
6. 快手极速版 | 2.1.3 | ||||
7. 抖音 | ✔ | 9.9.0 | |||
8. 企业微信 | 3.0.13 | ||||
9. 腾讯视频 | 8.0.0 | ||||
10. 拼多多 | 5.3.0 | ||||
11. 微信 | 7.0.11 | ||||
12. QQ | ✔ | 8.2.9 | |||
13. 快手 | ✔ | 7.1.5 | |||
14. 旅行世界 | ✔ | 1.2.0 | |||
15. 番茄小说 | 2.7.5 | ||||
16. 支付宝 | ✔ | 10.1.87 | |||
17. 手机淘宝 | ✔ | ✔ | 9.5.0 | ||
18. 学习强国 | 2.9.2 | ||||
19. 百度 | ✔ | ✔ | 11.19.0 | ||
20. 韩剧 TV- 追剧大本营 | 4.6.8 | ||||
21. 哔哩哔哩 | 5.54.1 | ||||
22. 京东 | ✔ | 8.5.2 | |||
23. 小红书 | ✔ | ✔ | 6.36.1 | ||
24. 爱奇艺 | ✔ | 11.2.5 | |||
25. 闲鱼 | ✔ | ✔ | 6.6.50 | ||
26. 优酷 | ✔ | ✔ | 8.5.4 | ||
27. WPS Office | 10.0.3 | ||||
28. 网易云音乐 | ✔ | 7.0.20 | |||
29. 腾讯课堂 | ✔ | ✔ | ✔ | 4.8.5 | |
30. 淘宝直播 | ✔ | 1.6.1 | |||
31. 交管 12123 | 2.4.4 | ||||
32. QQ 浏览器 | ✔ | 10.1.0 | |||
33. 西瓜视频 | ✔ | ✔ | 4.3.0 | ||
34. 百度网盘 | ✔ | ✔ | 10.0.91 | ||
35. 美图秀秀 | ✔ | 8.7.70 | |||
36. 喜马拉雅 | ✔ | 6.6.54 | |||
37. 酷狗音乐 | 10.0.4 | ||||
38. 好省 | ✔ | 2.2.0 | |||
39. 七猫小说 | ✔ | 3.0 | |||
40. QQ 音乐 | ✔ | 9.8.5 | |||
41. 京东金融 | ✔ | 5.3.50 | |||
42. Keep | ✔ | 6.36.0 | |||
43. 微博 | ✔ | 10.3.0 | |||
44. BOSS 直聘 | 7.200 | ||||
45. UC 浏览器 | ✔ | ✔ | 12.8.6.1274 | ||
46. 人人视频 | 4.3.6 | ||||
47. 58 同城 | ✔ | 9.6.1 | |||
48. 全民 K 歌 | ✔ | 6.19.8 | |||
49. 轻颜相机 | ✔ | 2.9.1 | |||
50. 网上国网 | ✔ | 2.0.2 | |||
51. 皖事通 | 1.6.11 | ||||
52. 安居客 | ✔ | 12.26.4 | |||
53. 淘宝特价版 | ✔ | 3.14.1 | |||
54. 今日头条 | ✔ | ✔ | 7.6.1 | ||
55. 高德地图 | 10.28.0 | ||||
56. 芒果 TV | ✔ | 6.5.6 | |||
57. 菜鸟裹裹 | ✔ | ✔ | 5.9.0 | ||
58. 得物 (毒) | ✔ | ✔ | 4.33.5 | ||
59. 贝壳找房 | 2.27.1 | ||||
60. 美团 | ✔ | 10.7.401 | |||
61. 第一弹 | 2.36.5 | ||||
62. PP 体育 | 5.20.2 | ||||
63. 知乎 | ✔ | 6.31.2 | |||
64. 手机天猫 | ✔ | 9.5.1 | |||
65. Zoom | 4.6.7 | ||||
66. QQ 邮箱 | 5.7.4 | ||||
67. WiFi 万能钥匙 | 5.8.3 | ||||
68. 中国建设银行 | 4.3.2.001 | ||||
69. 作业帮 | 12.7.4 | ||||
70. 农行掌上银行 | 4.2.0 | ||||
71. 团油 | ✔ | 5.2.2 | |||
72. 美团外卖 | ✔ | 7.31.1 | |||
73. 虎牙直播 | ✔ | ✔ | 7.10.0 | ||
74. 中国工商银行 | ✔ | ✔ | 5.1.0.1.1 | ||
75. 搜狗输入法 | 10.5.0 | ||||
76. 饿了么 | ✔ | 8.30.2 | |||
77. 扫描全能王 | 5.17.0 | ||||
78. 流利说·英语 | ✔ | 7.14.0 | |||
79. 百度贴吧 | ✔ | 11.2.1 | |||
80. 智联招聘 | ✔ | ✔ | 7.9.47 | ||
81. 搜狐视频 | 7.9.2 | ||||
82. 中国移动 | 6.0 | ||||
83. 人民智云 | 1.4.2 | ||||
84. 腾讯新闻 | ✔ | 6.0.41 | |||
85. 苏宁易购 | 8.5.0 | ||||
86. 酷狗铃声 | 2.4.0 | ||||
87. 一甜相机 | 2.1.9 | ||||
88. 下厨房 | 7.3.1 | ||||
89. 一直播 | 3.2.4 | ||||
90. TT 语音 | ✔ | 5.0.9 | |||
91. 阿里巴巴 | ✔ | 8.20.5 | |||
92. 我的常州 | 1.3.5 | ||||
93. 刷宝短视频 | ✔ | 2.0 | |||
94. 比心陪练 | 4.8.0 | ||||
97. 中国银行手机银行 | ✔ | 6.5.0 | |||
114. 招商银行 | 8.1.5 | ||||
151. 百度地图 | 10.23.0 | ||||
170. 星巴克中国 | ✔ | 7.10.1 | |||
206. 滴滴出行 | ✔ | ✔ | 5.4.4 | ||
353. 网易新闻 | 65.1 |
通过统计,得出如下的统计结果。
应用总数 | Swift | React Native | Flutter | Weex | ObjC | 时间 |
---|---|---|---|---|---|---|
100 | 26 | 23 | 13 | 14 | 41 | 2020.03.18 |
当然,这已经是 3 个月之前的数据了,那么 3 个月之后,这些数据又是怎么样的呢,下面是网友【恋猫 de 小郭】最新给的统计,我们来看看。需要说明的是,查看 Android apk 采用的何种技术,我们只需要将 apk 拖到 Android Studio 中打开即可,当然也可以使用诸如 apktool 等反编译工具进行反编译。
1、微信 (v7.0.15)
- arm 框架: arm64-v8a
- 语言:kotlin、androidx
- 跨平台框架:flutter,自定义的 skia
2、腾讯课堂 (v4.10.3.13)
- arm 框架: armeabi
- 语言:kotlin、androidx
- 跨平台框架:react-native
3、QQ(v8.3.9)
- arm 框架: armeabi
- 跨平台框架:Flutter
- 分包数量高达 14 个 dex
4、书旗小说 (v11.1.3.111)
- arm 框架: armeabi
- 跨平台框架:flutter、weex
5、京东 (v9.0.0)
- arm 框架: armeabi-v7a
- 跨平台框架:react-native
6、京喜 (v3.6.0)
- arm 框架: armeabi
- 跨平台框架:react-native
7、苏宁易购 (v8.8.7)
- arm 框架: armeabi
- 语言:kotlin、andriodx
- 跨平台框架:weex、react-native
- 分包数量高达 15 个 dex
8、微信读书 (v4.6.0)
- arm 框架: armeabi-v7a
- 语言:包含 kotlin、andriodx
- 跨平台框架:react-native
9、京东金融 (v5.4.30)
- arm 框架: armeabi-v7a
- 包含 kotlin、andriodx
- 跨平台框架:react-native
- 分包数量高达 11 个 dex
10、腾讯动漫 (v8.4.7)
- arm 框架: armeabi
- 包含 kotlin、andriodx
- 跨平台框架:weex
11、哔哩哔哩 (v6.1.0)
- arm 框架: armeabi
- 包含 kotlin
- 跨平台框架:flutter
- 分包数量高达 14 个 dex
12、滴滴出行 (v5.4.14)
- arm 框架: armeabi-v7a
- 包含 kotlin、androidx
- 跨平台框架:weex
13、哈罗出行 (v5.40.0)
- arm 框架: armeabi-v7a
- 包含 kotlin、androidx
- 跨平台框架:flutter
- 分包数量高达 14 个 dex
14、网易云音乐 (v7.1.61)
- arm 框架: armeabi
- 包含 kotlin、androidx
- 跨平台框架:react-native
15、手机淘宝 (v9.8.0)
- arm 框架: armeabi-v7a、armeabi-v8a
- 包含 kotlin、androidx
- 跨平台框架:flutter、weex
- 分包数量高达 11 个 dex
16、闲鱼 (v6.7.10)
- arm 框架: armeabi
- 跨平台框架:flutter、weex
- 分包数量高达 14 个 dex
17、支付宝 (v10.1.95.9010)
- arm 框架: armeabi
- 分包数量高达 12 个 dex
18、UC 浏览器 (v13.0.0.1080)
- arm 框架: armeabi-v7a
- 包含 kotlin
- 跨平台框架:flutter、weex
19、饿了么 (8.32.2)
- arm 框架: armeabi-v7a
- 包含 kotlin
- 跨平台框架:weex
- 分包数量高达 14 个 dex
20、钉钉 (v5.1.5)
- arm 框架: armeabi
- 包含 kotlin
- 跨平台框架:weex
- 分包数量高达 20 个 dex
21、飞猪 (v9.5.2.104)
- arm 框架: armeabi-v7a
- 包含 kotlin
- 跨平台框架:weex、flutter
- 分包数量高达 15 个 dex
22、菜鸟裹裹 (v5.11.2)
- arm 框架: armeabi
- 包含 kotlin
- 跨平台框架:weex、react-native
23、百度网盘 (v10.1.23)
- arm 框架: armeabi-v7a
- 包含 kotlin、androidx
- 跨平台框架:flutter
- 分包数量高达 15 个 dex
24、百度 (v11.23.5.10)
- arm 框架: armeabi
- 包含 kotlin
- 跨平台框架:react-native
25、美团 (v10.10.201)
- arm 框架: armeabi
- 跨平台框架:react-native
26、美团外卖 (v7.36.4)
- arm 框架: armeabi
- 跨平台框架:react-native
- 分包数量高达 11 个 dex
27、美团外卖商家版 (v6.1.0.36)
- arm 框架: armeabi
- 跨平台框架:flutter、react-native
- 分包数量高达 11 个 dex
28、抖音 (v11.2.0)
- arm 框架: armeabi-v7a
- 包含 kotlin、androidx
- 跨平台框架:react-native
- 分包数量高达 10 个 dex
29、今日头条 (v7.7.4)
- arm 框架: armeabi-v7a
- 包含 kotlin
30、知乎 (v6.42.0)
- arm 框架: armeabi-v7a
- 包含 kotlin、androidx
31、微博 (v10.5.2)
- arm 框架: armeabi
- 包含 kotlin、androidx
32、天猫 (v12.5)
- arm 框架: armeabi-v7a
- 跨平台框架:Weex
33、58 同城 (v9.10.1)
- arm 框架: armeabi-v7a
- 包含 kotlin、androidx
- 跨平台框架:react-native
- 分包数量高达 16 个 dex
34、携程 (v8.24.2)
- arm 框架: arm64-v8a
- 包含 kotlin、androidx
- 跨平台框架:react-native
35、去哪儿 (v9.0.6)
- arm 框架: armeabi
- 包含 kotlin、androidx
- 跨平台框架:react-native
36、小红书 (v6.46.0)
- arm 框架: armeabi-v7a
- 包含 kotlin、androidx
- 跨平台框架:react-native
37、虎扑 (v7.5.8.12113)
- arm 框架: armeabi、armeabi-v7a
- 包含 kotlin、androidx
39、Boss 直聘 (v8.050)
- arm 框架: armeabi-v7a
- 包含 kotlin、androidx
40、智联招聘 (v7.9.56)
- arm 框架: armeabi-v7a
- 跨平台框架:weex
41、猿辅导 (v7.7.1)
- arm 框架: armeabi
- 包含 kotlin、androidx
- 跨平台框架:flutter
42、快手 (v7.5.10)
- arm 框架: armeabi-v7a
- 包含 androidx
- 跨平台框架:flutter
43、得到 (v8.0.1)
arm 框架: armeabi-v7a
包含 kotlin、androidx
跨平台框架:react-native
44、每日优鲜 (v9.8.51)
- arm 框架: armeabi、armeabi-v7a
- 包含 kotlin、androidx
- 跨平台框架:flutter
45、盒马 (v4.43.0)
- arm 框架: armeabi-v7a
- 包含 kotlin、androidx
- 跨平台框架:weex、flutter
46、小米有品 (v5.6.88)
- arm 框架: armeabi-v7a
- 包含 kotlin、androidx
- 跨平台框架:weex、react-native
47、米家 (v5.6.88)
- arm 框架: armeabi-v7a、arm64-v8a
- 包含 kotlin
- 跨平台框架:weex、react-native、flutter
48、链家 (v9.15.1)
- arm 框架: armeabi
- 包含 kotlin
- 跨平台框架:flutter
49、喜马拉雅 (v6.6.75.3)
- arm 框架: armeabi
- 包含 kotlin
- 跨平台框架:react-native
50、同花顺 (v10.08.03)
- arm 框架: armeabi
- 包含 kotlin、androidx
- 跨平台框架:flutter
51、陌陌 (v8.24.3)
- arm 框架: armeabi
- 包含 kotlin、androidx
- 跨平台框架:weex
- 分包数量高达 12 个 dex
52、脉脉 (v5.2.66)
- arm 框架: armeabi-v7a
- 包含 kotlin、androidx
- 跨平台框架:react-native
经过分析这些排名靠前的 App,我们可以得到如下一张表。
| 应用总数 | kotlin | androidx | Flutter | react-native | weex |
| ————— | —– | ———— | ——- | —- | —- |
| 52 | 39 | 24 | 19 | 22 | 18 |
通过上面的统计数据,我们发现:
- 大部分应用都开始支持 Androidx 版本,并且大多使用 Kotlin 进行应用开发,当然还存在部分 Java。
- 大部分应用对 arm64-v8a 支持不够,主要是因为大部分应用还停留在国内,但是像微信、支付这种全球类的应用已经开始支持 arm64-v8a。
- 相比去年,跨平台 Flutter 的比例提升不少,react-native 作为过去三年最流行的跨平台框架,还有很多的项目还在使用它,而使用 weex 技术的大多是阿里系 的产品,并且比较还不低。