不适配targetSdkVersion的坑你了解吗?

发表于:2020-7-17 10:48

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:wsc    来源:搜狗测试

  前言
  Android测试同学,不可避免的都接触过targetSdkVersion升级相关的测试,今天小编结合之前的经历聊一聊测试过程遇到的关于targetSdkVersion的坑。
  问题现象和排查
  小编参与测试的项目有一个产品线是由SDK和awp内核组成,为第三方提供优化移动端的web应用体验的解决方案。
  近期,接入合作方的开发反馈了一个很诡异的问题:他们正在开发新版本出现web页面加载后显示空白的问题。而这在其他接入方使用一年多时间都没有反馈过上述问题。
  故,我们开始探案模式:整个过程采用典型的排除法来定位问题
  STEP-01: 排查是否网站原因
  和接入方沟通出现问题的机型和系统(AndroidQ)以及出现问题的链接,自行编译demo,但是并没有成功的复现问题。(排除由于网站原因导致白屏的可能)
  STEP-02: 尝试寻找稳定复现路径
  在出现问题机型上安装接入方提供的安装包,发现可以稳定复现网页白屏的问题。(说明该开发版本存在问题)
  STEP-03: 排查awp代码改动的影响
  使用接入方提供的安装包,替换加载早期版本的内核,惊奇的发现也是可以复现网页白屏的问题。(排除近期产品代码和功能的变更优化,引入上述问题)
  STEP-04: 排查接入方代码改动的影响
  使用接入方线上的安装包,分别加载早期和最新版本的内核,结果发现问题无法复现。(这个一度使我们陷入困境,怀疑是接入方自身代码错误而引入的问题)
  STEP-05: 确认接入方代码改动对awp的影响
  和接入方开发沟通,排查前后版本有哪些重大改动。(确认哪些改动,是否影响到awp的接入功能,最后发现该开发版本计划升级targetSdkVersion到api29)
  STEP-06: demo尝试模拟出现问题场景
  修改demo代码,更改targetSDKVersion为29,发现在Android Q手机上可以复现问题。
  STEP-07: 确认导致问题的复现原因
  基于上面的排查步骤,可以初步定位是由于接入方将targetSDKVersion升级29导致Android Q机型上独有的问题。之前一年没有反馈上述问题的原因是基本业界内主流应用targetSdkVersion大部分都没有升级到29,所以提前没有暴露上述问题。
  STEP-08: 定位问题的深层原因
  这个部分,测试同学在排查阶段不需要介入太多。由开发持续定位深层原因和修复问题。
  问题原因
  针对问题的后续的定位和排查,我们发现导致问题的原因是由于接入方升级targetSDKVersion为29,诱发了潜藏的共享内存问题,导致网页显示白屏。后续有机会可以针对共享内存问题总结分享一次。
  Android Q共享内存特性详细参考:https://developer.android.com/about/versions/10/behavior-changes-10
  隐患思考
  细思下,这有个更隐患的问题。这个问题是在接入方开发过程提出发现的,如果到接入方测试后期才发现呢?或者由于未适配API29的机型呢?对于用户,这无疑将是一个重大伤害。
  那我们在过程中的哪个环节存在问题呢:没有关注Android新版本的特性吗?没有关注共享内存对于逻辑细节的影响吗?
  答案是否定的,这个是我们学习、总结、沉淀和提升的过程,但是并不是解决这个问题的核心方法。核心在于如何尽早发现上述问题。
  问题解决与启示
  解决这个问题的核心在于第一时间进行targetSdkVersion适配。
  因为是为第三方提供服务的产品形态,所以和单一APP测试存在的区别是:在单一APP测试中,适配测试主要涉及分辨率适配,厂商机型适配,系统版本适配,ROM 适配,CPU架构适配和Android系统运行环境适配。但是单一APP特定版本targetSdkVersion是恒定的,不需要适配targetSDKVersion。
  而作为第三方服务提供者,接入方targetSDKVersion版本并不统一,虽然接入方也不会第一时间升级到最新版本的targetSDKVersion。但是第一时间完成最新版本targetSDKVersion的适配,可以提前发现潜藏的问题,以便为接入方提供更好的服务。
  结语
  工作中需要学会尽可能避免踩坑,但实际上不可能做到完全杜绝。真正重要的是杜绝踩相同的坑,工作过程遇到的问题都是成长的宝藏:
  There are nomistakes, save one: the failure to learn from a mistake.

      本文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号