​​​近期,谷歌针对Google Play上架应用发布强制性适配Android 8.0公告,要求自2018 年 8 月 1 日起,所有向 Google Play 首次提交的新应用都必须基于 Android 8.0 (API 等级 26) 完成开发;11 月 1 日起,所有 Google Play 的现有应用也必须基于 Android 8.0完成更新。

同时为响应工信部《移动应用软件高API等级预置与分发自律公约》的要求,截止到2019 年 5月,所有新上架和预置应用都必须针对 Android 8.0 (API 等级 26) 开发;到2019 年 8 月 ,所有现有应用更新要基于 Android 8.0。

近日,华为终端开放实验室针对国内Top1000主流应用的TargetSdkVersion展开调查。

什么是TargetSdkVersion

TargetSdkVersion对开发者来说,指的是应用在开发阶段能够支持到的目标系统版本。

应用在运行时,系统会检查其TargetSdkVersion配置,如果当前系统版本低于或等于此项配置,表示应用开发者已经在当前系统上进行了全面的测试,无需做任何兼容性处理。如果当前系统版本高于此项配置,表示此应用开发时没有在当前系统版本上进行测试,这时系统就会执行一系列的兼容性策略。

华为终端实验室建议开发者将TargetSdkVersion 配置成26,这会显著提升应用安全性以及性能并全面改善用户体验。

测试环境

硬件环境:P20

软件版本:Android 8.1

测试范围

本次测试选取了各大应用市场Top1000主流应用,类型涉及:便捷生活、购物比价、社交通讯、新闻阅读、影音娱乐、出行导航、拍摄美化、实用工具、教育、美食、汽车、旅游住宿、商务、儿童、金融理财、运动健康、主题个性和游戏。

数据来源

Top1000应用的TargetSdkVersion的扫描结果。

数据分析

首先我们来看一下TargetSdkVersion的等级与Android版本的对应关系

​下面是国内各大应用市场综合排名Top1000应用 TargetSdkVersion 属性的分布情况

​由图看出,TargetSdkVersion在26以上的仅占比为12%,不符合Google要求的占比88%,虽然Android版本一直在提高安全和性能,但应用的兼容版本达到Android 8.0的还是很少。在不符合Android 8.0 开发的要求中TargetSdkVersion 23以下占比高达52%,应引起关注。TargetSdkVersion 23是开发者常用的一个版本,Google在此版本上有较大的权限变更。TargetSdkVersion 24、25 占比 14% ,Google在此版本为了延长电池寿命增加了低耗电模式,并且增加了私有目录访问权限。

Top1000的各分类应用的TargetSdkVersion 分布对比分析

除了拍摄美化,其他分类的TargetSdkVersion 26及以上的占比均未达到50%,现状严峻。其中主题个性26及以上占比甚至为0%,对此开发者需重点关注。

将TargetSdkVersion 配置成26及以上,会显著提升应用安全性及性能,改善用户体验。但通过对国内Top1000应用TargetSdkVersion的数据分析结果显示,大部分应用都不符合Google Play的开发要求,同样不满足《移动应用软件高API等级预置与分发自律公约》对国内各应用的要求。

对开发者的建议

华为终端实验室建议您将应用目标 API 等级设置为最新版本,确保用户能够享用这些改进项目,同时允许应用在 Android 低版本仍旧可以运行。适配新目标等级后,应用可以利用 Android 平台最新功能给用户创造更美好的体验。

如果您有更好的解决方法与见解,欢迎在文章下方留言交流。

华为终端开放实验室后期将持续发布各类别应用的评测报告,为用户选择最佳体验的应用提供参考,敬请关注!

如有疑问,可发送邮件至deveco@huawei.com。

*本报告最终解释权归华为所有。

华为终端开放实验室

2018年8月3日

DevEco 云测平台已开放能力概览

云测试:

兼容性测试——全自动化验证,保证应用无兼容性死角

稳定性测试——基于控件识别技术的随机遍历测试

性能测试——深入分析应用性能薄弱点

功耗测试——检测影响手机应用功耗的各项关键指标

安全测试——进行广告拦截、病毒扫描、安全漏洞分析和隐私泄露分析

云调试:

远程真机——华为全机型+谷歌原生真机,7*24小时在线

功能测试:

录制回放——解决应用功能逻辑测试诉求

*以上内容都已面向安卓绿色联盟会员免费开放,可登录deveco.huawei.com使用体验。

最新文章

  1. linux I/O复用
  2. PHP手机,邮箱正则匹配
  3. 微型orm fluentdata
  4. PowerDesigner的安装和数据库创建(转载)
  5. C#内部类
  6. Server.MapPath()获取本机绝对路径
  7. Honda HDS IMMO PCM Code calculator Free Download
  8. 命名空间“System.Web.Mvc”中不存在类型或命名空间名称“Ajax”(是否缺少程序集引用?)
  9. 使用Hadoop打造私有云盘之API操作
  10. 3.1 as86汇编器
  11. Divide and Conquer.(Merge Sort) by sixleaves
  12. Java集合-treebag
  13. Java 装饰模式
  14. 深入理解JVM(一)编译openJDK
  15. debian 7.4 安装配置
  16. 使用uibesizerpath + Cashaplayer画椭圆
  17. JAVA中使用LOG4J记录日志
  18. mysql 官方docker镜像使用教程
  19. 1.1 What Is This Book About(这本书是关于什么的)
  20. 如何实现Canvas图像的拖拽、点击等操作

热门文章

  1. js创建json对象
  2. 更合理的 setState()
  3. Linux下交叉编译gdb和gdbserver
  4. 【java】JDK安装后,没有配置环境变量,也可以java -version查看到版本信息
  5. Jquery获取对象的几种方式介绍
  6. Android Design Support Library介绍之:环境搭建
  7. 【译】你对position的了解有多少?
  8. 【JAVA】StringTokenizer 迭代方式对字符串进行分割
  9. 【转】angular中$parse详解教程
  10. 读取Properties配置文件, 四种方式都可以得到webroot/WEB-INF/classes这个路径