自從移動應用開發興起以來,不少公司和開發者就在不斷的探索移動跨平台開發技術,以適應移動應用高速迭代的需求 。縱觀當前的移動跨平台方案,總結一下無外乎三大類:一種是使用原生內置的瀏覽器加載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技術的大多是阿里系 的產品 ,並且比較還不低。