博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
minSdkVersion应该设置为15还是14
阅读量:6528 次
发布时间:2019-06-24

本文共 1586 字,大约阅读时间需要 5 分钟。

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

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

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

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

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

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

2. 各版本统计详情信息

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

1.

2.

3.

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

  • 设备数过少(至少低于 0.5% ), 因此没有予以记录;
  • 市面上没有那种该系统版本的机型,因此无法统计;

3.

从上表可以发现:

  • 4.0.0 发布 仅3天 后就发布了 4.0.1 , 一个月 后发布了 4.0.2版本,均为bug修复版;
  • 4.0.3 是修复了大量bug和优化后发布的稳定版: 基本上可以肯定 4.0.0 是不会有机型发布的,最大的可能也是 4.0.2,这个我们后面继续验证;

4. 手机厂商出机时间

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

  • 2011.10.18 Android 4.0.0 发布, 而 2012.8 发布时,基于的还是 Android 2.3;

  • 2012.3 发布的 基于 Android 4.0.3 从 上可以看到 HTC Sence 3.6 是HTC第一版基于 Android 4.0 开发的定制rom, 而从 和 可以确认: 其基于的是 4.0.3, 即 HTC定制ROM也没有 4.0.0~4.0.2 的版本;

  • 再来看看谷歌自己的情况 于 2017.8 发布, 而谷歌自己的当前旗舰机 于 2017.9 才提供 factory image 下载, 其他机型更晚; 基于以上情况,可大胆推断: Android 4.0.0~4.0.2 是没有机型发布的, 在短短一个月的时间内, rom厂商可能都来不及获取定制吧;

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

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

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

6. 小结

? 感觉自己被自己打脸了, 不过我依然坚持自己的最初看法, 若要求从 4.0 支持,那从 4.0.3 开始即可, 虽然你将 15 降成 14 对代码也没影响, 但感觉是做了多余的事情, 却非要说自己支持更多的机子;

转载于:https://juejin.im/post/5a433b25f265da432d2860a3

你可能感兴趣的文章
PyQt - 维基百科,自由的百科全书
查看>>
POJ 3522 Slim Span
查看>>
如何提高学习效率
查看>>
android 的sdk在线安装失败问题处理
查看>>
Blue Mind 1.0 正式版发布,消息和协作平台
查看>>
(android实战)实现摇一摇功能
查看>>
c++ source code ide
查看>>
这样配会损失性能?
查看>>
JTree 节点排序
查看>>
Ifrme自适应
查看>>
spring junit 测试
查看>>
01意识生活方向盘
查看>>
再看copy_on_write缩小临界区的例子
查看>>
windows下的用户态调试的底层与上层实现
查看>>
Shell多行注释
查看>>
GIT GUI的使用(转)
查看>>
spring mvc json的输入输出
查看>>
使用 IntraWeb (13) - 基本控件之 TIWLabel、TIWLink、TIWURL、TIWURLWindow
查看>>
php正确解码javascript中通过escape编码后的字符
查看>>
[iOS翻译]《The Swift Programming Language》系列:Welcome to Swift-01
查看>>