统计:Flutter,开发采用量

2023-11-13

本文作者:徐宜生,原文发布于:群英传。

Flutter这个东西出来这么久了,到底市场占有率怎么样呢?为了让大家了解这一真实数据,也为了让大家了解当前Flutter在各大App中的使用情况,我今天下载了几百个App,占了手机将近80G空间,就为了得出一个结论——Flutter,到底有没有人用。

首先,我在vivo应用市场中,下载了4月11日软件排行榜中的所有App,总计230个,再加上平时用的比较多的一些App,总共270个App,作为我们的统计基数。

检测方法,我使用LibChecker来查看App是否有使用Flutter相关的so。

https://github.com/zhaobozhen/LibChecker

除了使用LibChecker之外,还有其它方案也可以,例如使用shell指令——zipinfo。

https://github.com/sugood/apkanalyser

Apk本质上也是一种压缩包,所以,通过zipinfo指令并进行grep,就可以很方便的获取了,同时,如果配合一下爬虫来爬取应X宝的Apk下载地址,就可以成为一个全自动化的脚本分析工具,这里没这么强的需求,所以就不详细做了。

1

App列表

我们来看下,我都下载了多少App。

这些App基本上已经覆盖了应用商店各个排行榜里的Top软件,所以应该还是比较具有代表性和说服力的。

下面我们就用LibChecker来看下,这些App里面到底有多少使用了Flutter。

2

统计结果

 

已经使用Flutter的App共52个,占全体样本的19.2%,作为参考,统计了下RN相关的App,共有45个,占全体样本的16.6%,可以说,Flutter已经超过RN成为跨平台方案的首选。

在52个使用Flutter的App中:

• 腾讯系:QQ邮箱、微信、QQ同步助手、蓝盾、腾讯课堂、QQ浏览器、微视、企业微信、腾讯会议。

• 百度系:百度网盘、百度输入法。

• 阿里系:优酷视频、哈啰出行、淘特、酷狗直播、阿里1688、学习强国、钉钉、淘宝、闲鱼。

• 其它大厂:链家、转转、智联招聘、拍拍贷、哔哩哔哩漫画、网易有道词典、爱奇艺、考拉海购、携程旅行、微博、Soul、艺龙旅行、唯品会、飞猪旅行。

从上面的数据来看,各大厂都对Flutter有使用,头条系未列出的原因是,目前好像只有头条系大规模使用了Flutter的动态化加载方案,所以原始包内找不到Flutter相关的so,所以未检出(猜测是这样,具体可以请头条系的朋友指出,根据上次头条的分享,内部有90+App在使用Flutter)。

不过这里要注意的 ,这里并不是选取的大家常用的一些APP来做测试的,而是直接选取的排行榜,如果直接用常用APP来测试,那比例可能更高,大概统计了下,估计在60%左右。

不过大厂里面,京东没有使用Flutter我还是比较意外的,看了下京东的几个App,目前还是以RN为主作为跨平台的方案。这跟其它很多大厂一样,它们不仅使用了Flutter,RN也还可以检出,这也从侧面说明了,各个厂商,对跨平台的方案探索,从未停止。

所以,总结一下,目前使用Flutter的团队的几个特定:

• 创业公司:快速试错、快速开发,像Blued、夸克这样的。

• 大厂:大厂的话题永远是效率,如何利用跨平台技术来提高开发效率,是它们引入Flutter的根本原因。

• 创新型业务:例如B漫、淘特、Soul这类没有太多历史包袱的新业务App,可以利用Flutter进行极为高效的开发。

所以,整体在知乎上吵「Flutter被抛弃了」、「Flutter要崛起了」,有什么意义呢?所有的争论都抵不过数据来的真实。

嘴上说着不要,身体倒是很诚实。

希望这份数据能给你一些帮助。

文章开头提到的工具也可以辅助大家去观察一些App使用的技术栈。

 

 

 

转自:统计:Flutter,到底有没有人用?

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

统计:Flutter,开发采用量 的相关文章

  • 如何在Android上获取当前播放曲目的路径[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我想编写一个应用程序将当前播放的音乐流式传输到另一台设备 两个设备之间的连接确实有效 我还可以通过 wifi 传输一些字符串 但在获取
  • Kotlin Android Firebase 数据库哈希映射转换为类

    我正在尝试从 firebase 数据库获取数据 断点显示它正在获取数据 但看起来我没有正确地将其分配给我的班级 这会导致此异常 java lang ClassCastException 无法将 java util HashMap 转换为 班
  • Android Studio Canary 3.4 Canary 4:错误:功能插件不支持variant.getApplicationId()

    自从我在新版本上更新了我的项目以来Android Studio 3 4 金丝雀 4 gradle 同步失败 因为 ERROR variant getApplicationId is not supported by feature plug
  • 如何以编程方式判断蓝牙设备是否已连接?

    我了解如何获取已配对设备的列表 但如何判断它们是否已连接 这一定是可能的 因为我看到它们列在我手机的蓝牙设备列表中 并且它说明了它们的连接状态 将蓝牙权限添加到您的AndroidManifest中
  • AIRPLANE_MODE 的广播接收器无法与 SDK 26 一起使用

    通常 我使用简单的代码来放置Toast当用户改变AIRPLANE MODE 并且它可以使用targetSdkVersion 25 我的 AirPlaneModeReceiver public class AirPlaneModeReceiv
  • 如何使用具有三种布局的视图翻转器?

    我目前正在使用ViewFlipper我的主要活动有两种不同的布局 我想使用第三种布局 但我只能找到showNext and showPrevious 命令 有人可以告诉我如何使用来实现第三种布局吗ViewFlipper 为您制作了一个示例
  • 清晰的图标 清晰的 Android 应用程序

    你好 下午好 关于如何提高图标的 png 质量 有什么想法吗 我使用了 Android 开发者页面上的套件 但我无法获得清晰的图像 我的意思是非常清晰 我是否需要以不同的方式加载此图标 而不仅仅是拖入我的布局 谢谢 我使用这个布局
  • 如何从Slog中查看日志

    如何查看 Slog API 生成的日志 是否有任何选项可以查看系统缓冲区中的日志 我的意思是查看我们使用的无线电缓冲区的日志 adb logcat b 无线电 而这个日志是由Android的Log类生成的 Slog API 的输出在哪里 怎
  • 将项目添加到 android 框架的设置中

    我正在 android 框架中工作 我想向 android 操作系统中的现有设置添加一个项目 您能告诉我如何执行此操作吗 首先阅读有关偏好活动 http developer android com reference android pre
  • 构建应用程序时出现 BufferOverflowException

    每次我想运行我的 Android 应用程序时 我都会收到错误 2013 11 02 13 05 36 Dex Loader Unable to execute dex java nio BufferOverflowException Che
  • 在 Android 中使用 AES 加密的最佳实践是什么?

    我为什么问这个问题 我知道人们对 AES 加密存在很多疑问 即使对于 Android 也是如此 如果您在网络上搜索 会发现很多代码片段 但在每个页面上 在每个 Stack Overflow 问题中 我都发现了另一个具有重大差异的实现 所以我
  • 如何从画布中删除路径区域(Android)

    我需要裁剪角落ImageView 不要将它们弄圆 而是擦除每个角上的三角形 似乎唯一的方法就是覆盖onDraw方法并使用从画布上删除这些区域Path 问题是我没有纯色背景 所以我需要擦除这些区域 但不要用某种颜色填充它们 我为此使用以下代码
  • 如何防止应用程序被盗(针对Android应用程序)?

    我想知道防止人们窃取我的应用程序的最有效方法是什么 在线下载 apk 的副本而不是购买它 我已经花了一个lot特别是 Droidbox 上的时间 并且不会发布 Sync 直到我可以保证提供专业版本的非法副本的人无法发布 有人实施过这个吗 我
  • 如何让surfaceview透明

    大家好 我想让我的 DrawingSurface 视图透明 我尝试了很多东西 但它不起作用 这是我的 xml 代码 使我的表面视图透明
  • 使用 twitter API 1.1 在 Android 应用程序中显示 twitter feed

    基本上我想展示这个提要 https en twitter com epl live https en twitter com epl live在我的应用程序中 由于 twitter 更改了其 api 1 1 每个调用都必须经过授权 我发现的
  • DialogFragment 关闭事件

    我需要处理 DialogFragment 的结尾 在调用 dismiss 之后 例如 我会在关闭后 包含 片段的活动内显示一个 toast 我该如何处理该事件 覆盖onDismiss 在你的DialogFragment中 或者使用setOn
  • Android:从 PhoneGap 应用打开 Play 商店链接

    我想从我的phonegap 3 4 应用程序打开一个指向Google Play 商店的链接 呼唤market details id com google android apps maps导致 ActivityNotFoundExcepti
  • 活动中列表视图中的粘滞行

    我的列表视图中只有一行应该是粘性的 而不是粘性标题中带有字母的部分或部分 我真的很感激任何关于列表视图在活动中粘性一行而不是片段的帮助 我该怎么做 我真的很感谢任何帮助 提前致谢 使用如下代码 class MyAsyncTask exten
  • 片段中的 SavedInstanceState 始终为 null

    我使用 XML 以及活动中的 setContentView 将片段附加到活动 A 有一个问题 因为我的片段中有非常动态的视图 所以当方向改变时 我必须恢复所有的观点状态 我有问题 因为我正在使用类似的东西 public void onSav
  • Retrofit 2.0:预期为 BEGIN_OBJECT,但在第 1 行第 1 列路径 $ [重复] 处为 STRING

    这个问题在这里已经有答案了 我在邮递员上传递了更新用户请求并获得了成功的响应 参见图片 现在当我尝试使用 Retrofit 2 在我的应用程序中执行相同操作时 出现错误 com google gson JsonSyntaxException

随机推荐

  • 从服务器拿文件,怎么从远程服务器拿文件夹

    怎么从远程服务器拿文件夹 内容精选 换一换 添加节点时提示 添加节点失败 节点已存在 待添加节点的服务器上已安装系统性能分析或者添加过节点 如果待添加节点的服务器上已安装系统性能分析 需要登录服务器卸载系统性能分析 详细步骤请参见卸载 卸载
  • [一步一步学react系列] 04—计算器Demo

    前言 之前的例子都是写的计数器 加一减一的功能 我们大致弄懂了redux分层和store数据管理 下面我们将结合现有知识写一个终极版的计算器 以此巩固所学知识 知识点 redux分层 react router 一些算法及数据结构知识 栈 中
  • 调用ChatGpt openai官方node.js包Error: connect ETIMEDOUT问题

    原因是调用的axios库不走系统代理 需要额外配置 openai在文档中有说明增加axios配置的方法 只需请求时配置下proxy就ok了
  • Understand(代码分析工具)的安装教程

    前言 最近在学习嵌入式系统时 写的代码越来越多 一个文件里面函数的数量也越来越多 为方便查看写了哪些函数 以及文件总体架构 在网上找了半天 找到了Understand这款神器 相比于vscode 该软件占内较少 查看结构更直接 文章目录 前
  • JavaScript 获取数组的最后一个元素

    index取值 args args length 1 pop方法 args pop 注意 pop方法会删除args最后一个元素 并返回
  • RS485、MODBUS通信协议浅显易懂篇

    前言 MODBUS协议是Modicon公司发表的一种串行通信协议 属于OSI模型中应用层的协议 现广泛应用于工业控制领域 它的主要特点是免费开放 支持多种电气接口 如RS 232 RS 485 传输介质可以是双绞线 光纤 无线等 RS485
  • 计算机网络基础概论

    什么是Internet 从具体构成角度看 端系统 主机节点 主机及其上运行的网络应用程序 和网络交换设备 数据交换节点 中继器 路由器 交换机 负载均衡设备等 边 通信链路 分为接入网链路和骨干链路 接入网链路是指主机连接到互联网的链路 骨
  • java开发异常类型汇总

    1 java lang nullpointerexception 这个异常大家肯定都经常遇到 异常的解释是 程序遇上了空指针 简单地说就是调用了未经初始化的对象或者是不存在的对象 这个错误经常出现在创建图片 调用数组这些操作中 比如图片未经
  • Java 5-1、用户模块-Mybatis代码生成

    5 1 用户模块 Mybatis代码生成 从这里开始 环境相关配置就告一段落了 项目就开始进入开发学习阶段 一 代码生成 实体类 Mapper接口 Mapper xml 分别生成 AppUser java SysUser java 再抽取B
  • Python题目:学生信息管理系统-高级版(图形界面+MySQL数据库)

    Python题目 学生信息管理系统 高级版 图形界面 MySQL数据库 使用图形界面显示 选用list tuple dictionary或map等数据结构 操作数据库存储X个学生的三门课的成绩 机器学习 Python程序设计 研究生英语 并
  • #BDA#笔记#阶段一:熟悉要分析的数据

    学习参考 1 小灶能力派 BDA证书班
  • java jhat_java命令--jhat命令使用

    jhat也是jdk内置的工具之一 主要是用来分析java堆的命令 可以将堆中的对象以html的形式显示出来 包括对象的数量 大小等等 并支持对象查询语言 使用jmap等方法生成java的堆文件后 使用其进行分析 第一步 导出堆 jmap d
  • 将一组很大的数据集随机分成两组数据

    最近在看机器学习的东西时发现了一些特别好玩的东西 机器学习中又分为训练集和测试集 如何把一组很大的数据分为这两个集合呢 可以使用接下来的函数完成 当然由于random这个随机数生成函数每次产生的数不一定都是刚好达到你的期望 所以总会有一点小
  • 【大数据入门核心技术-Impala】(一)Impala简介

    目录 一 Impala介绍 二 Impala优势 三 Impala主要功能 一 Impala介绍 Impala是Cloudera公司主导开发的新型查询系统 它提供SQL语义 能查询存储在Hadoop的HDFS和HBase中的PB级大数据 已
  • hibernateCRUD

    本文章的目的是实现hibernateDao层功能 但是具体的操作不在Dao层内完成 实体类 package com hibernate entity public class User private int id private Stri
  • 前端实现单元测试(代码版)

    Jest使用 下载 npm install save dev jest ts jest ts node jest globals types jest 在nodejs中支持ts ts执行报错 npx ts jest config init
  • 小白学习go之基础篇2 -- Slice切片的原理

    文章目录 前言 一 为什么要有切片 二 切片是怎么实现的呢 1 Go的切片结构体 SliceHeader 2 初始化切片的两种方式 3 切片是在栈上分配内存的还是在堆 4 切片的扩容 三 切片的使用有什么坑需要注意呢 总结 前言 本文主要记
  • 【解决】mysql安装时,Unable to connect to any of the specified MySQL hosts

    解决方法 win r打开运行 输入regedit 打开注册表 更改注册表 找到HKEY LOCAL MACHINE SYSTEM CurrentControlSet services mysql 服务名 ImagePath 我原先的地址为
  • 性能调优篇07:Zabbix性能优化的几点原则

    性能调优 概述 使Zabbix系统正确调整以获得最佳性能是非常重要的 Zabbix性能优化的几点原则 确保zabbix内部组件性能处于被监控状态 调优的基础 使用硬件性能足够好的服务器 不同角色分开 使用各自独立的服务器 使用分布式部署 调
  • 统计:Flutter,开发采用量

    本文作者 徐宜生 原文发布于 群英传 Flutter这个东西出来这么久了 到底市场占有率怎么样呢 为了让大家了解这一真实数据 也为了让大家了解当前Flutter在各大App中的使用情况 我今天下载了几百个App 占了手机将近80G空间 就为