美文网首页iOS进阶+实战
通过MachO分析App技术栈

通过MachO分析App技术栈

作者: flexih | 来源:发表于2020-03-08 16:05 被阅读0次

标题里的技术栈特指App里Swift/React Native/Flutter/Weex的应用情况。

实现

  1. Swift
    dyld libs里是否包含libswiftCore.dylib

  2. React Native
    是否有包含RCTView类

  3. Flutter
    dyld libs里是否包含Flutter.framework

  4. Weex
    是否有包含WXSDKInstance类

dyld libs指类型为LC_LOAD_DYLIB的load command。

在实现的时候,有两点需要注意:

  • 需要对binary,binary引用的dyld Framework,以及dyld Framework引用的dyld Framework,进行1-4.
  • dyld Framework下的binary,在获取class list的时候需要通过Symbol Table获得类名。

数据

基于 SnakeKit ,使用以上方法分析中国区App Store 免费榜单应用,得出以下数据。


iOS中国区Swift/React Native/Flutter/Weex应用现状

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.08
  1. ObjC指应用没有使用Swift/React Native/Flutter/Weex
  2. 以上均指iPhone应用
  3. 榜单来自 中国 App Store 免费榜 - iPhone - 2020年3月8日
  4. 此列表仅用于统计

结论

  1. 中国区免费榜单前100名的iPhone应用使用Swift的不到30%。
  2. React Native是使用最多的跨端方案,占用率不到30%。
  3. 极速版和原版的技术栈不同,可能是不同的开发人员在维护。
  4. 一些应用使用了React Native/Flutter/Weex之外的跨端方案。
  5. .....

Github

SnakeList

相关文章

  • 通过MachO分析App技术栈

    标题里的技术栈特指App里Swift/React Native/Flutter/Weex的应用情况。 实现 Swi...

  • iOS 图像渲染原理

    图形渲染技术栈 下图所示为 iOS App 的图形渲染技术栈,App 使用 Core Graphics、Core ...

  • iOS 图像渲染原理

    图形渲染技术栈 下图所示为 iOS App 的图形渲染技术栈,App 使用 Core Graphics、Core ...

  • 六 Hock原理分析

    在上篇文章MachO文件解析已经详细介绍了MachO,并且由MachO引出了dyld,再由dyld讲述了App的启...

  • 前端框架React、Vue对比

    前端技术栈选型分析 公司做前后端分离,确定前端技术栈,对前端框架React、Vue,稍微做了下分析:对比:1、上手...

  • DYLD 加载Mach-O的流程

    背景 大家都知道iOS在加载app的时候本质其实是加载app中的MachO文件,那么MachO文件又是谁来进行加载...

  • 代码注入(11)

    代码注入(11) framework注入 假工程里写代码不会走,是因为APP(MachO)文件整个都被替换了 通过...

  • App开发技术栈

    跨平台 Flutter 编程语言 java kotlin 架构 mvvm jetpack

  • 应用安全

    MachO文件结构详解 MachO概念 在可安装的每一个.app包中,都有一个与app同名的可执行文件。如图: ....

  • iOS 渲染流程

    图形渲染技术栈 如图,App 使用Core Graphics、Core Animation、Core Image ...

网友评论

    本文标题:通过MachO分析App技术栈

    本文链接:https://www.haomeiwen.com/subject/ulnddhtx.html