Android开发经验谈Android知识

minSdkVersion应该设置为15还是14?

2017-11-25  本文已影响2900人  冰川孤辰js

之前做了个库, 用户集成的时候问了句: 我们APP是从 Android 4.0.0 开始支持的, 你们能不能把 minSdkVersion 降到 14 (库设定是 15 , 对应: Android 4.0.3 )? 这是问题的由来,闲着没事, 就来稍微钻一下牛角尖,研究看看

甩个大纲先

1. 官方推荐的最低版本支持

当初做库的时候, Android Studio(简称 AS )还是推荐的 API 15 , 现在(AS 3.0)已经换成了 API 18 :

AS3.0_default.png

不过看上面写的数据, API 18 大概只覆盖了 91.4% ,估计应该很多厂商不愿意吧, 漏掉了很多设备, 那不同API版本的覆盖率是多少呢? AS 也给出了自己的统计:

Distribution.png

不过这上面的信息使用 API 15 代表 Android 4.0 , 没有细分 4.0.0 ~ 4.0.3 , 可能谷歌自己觉得没必要了吧, 不过我们依然可以看出一些信息:

若是从 API 16 开始支持的话,至少能覆盖 99.2% 以上的设备了;

2. 各版本统计详情信息

通常我们设定 minSdkVersion 是看版本分布情况的, 既然 AS 没法提供更细分版本的分布数据,那我们就只能找找其他统计数据了:

1. 谷歌统计数据

google_analysis_version_distribution

2. 腾讯移动分析

tencent_analysis_version_distribution

3. 友盟全域罗盘

表格中的那条系统 `9.1` 的数据我也不知道是什么鬼,别问我:

总结:
从以上三份数据统计来看, API 14(Andorid 4.0.0~4.0.2) 都没有被统计, 猜想有两种可能:

3. Android 各系统版本发布时间

更多详情请点击上方标题链接

从上表可以发现:

4. 手机厂商出机时间

不打算找那么多家的信息了,我们看看当年比较火的 htc/小米 的情况就好:

5. 应用市场上的应用支持情况

原本以为不存在该版本的机型,那市面上的APP应该很少会从 API 14 开始支持的, 为了验证想法, 我去下了应用宝的前100应用(P.S. 之所以是应用宝而不是其他市场,是因为它有接口可以直接调用,懒得爬了😝), 脚本地址在 这里, 懒得运行的话可以到我 云盘下载, 密码: icfv;

统计结果

(ーー゛)我去, 出乎我意料的是 API 14 竟然占一半, 谁能告诉我为什么?
另外 API 11/12 的又是什么鬼? 有手机是 Android 3.0 的吗? 恕我孤陋寡闻了;

6. 小结

若要求从 4.0 支持,那从 4.0.3 开始即可, 虽然你将 15 降成 14 对代码也没影响, 但感觉是做了多余的事情, 却非要说自己支持更多的机子;

上一篇下一篇

猜你喜欢

热点阅读