`
yanzilee9292
  • 浏览: 526706 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

【转】Android兼容性测试的一些坑

阅读更多

http://qa.blog.163.com/blog/static/1901470022014817936189/

 

 

还记得上次我们网易云音乐做大改版时,最后播放器界面适配每一款机型实在是个大工程,不同的系统,不同的分辨率,不同的尺寸都会有不一样的表现,为了达到完美的结果,需要花费很大的精力,于是就有了下面这一张成果图:

Android兼容性测试的一些坑 - 甘霖川 - 千代野

但是实际上,这只是Android端产品开发的冰山一角,以下在实际工作中总结出一些常见的“坑”。

 

1ROM - 毫无疑问,这是所有坑中的天坑。

“我有一个帅气的锁屏”

对于一款音乐播放器来说,4.x系统默认提供了音乐播放器显示在锁屏的接口,但是很多ROM却做了修改。 

比如:使用MIUI某些版本锁屏播放时,控制锁屏界面暂停,会调用本地音乐播放器播放里面的音乐。后来MIUI做了升级,但是还是不能将其他app播放的音乐信息正确显示在锁屏。有时候用户来反馈,我们也很无奈(难道只能以暴制暴,做一个锁屏界面盖住他们吗?)

比如:在4.4某些手机上,锁屏界面点击下一首,歌手名不会立即显示当前播放的歌曲,而是上一首的。这也倒不是ROM的问题,的确是4.4系统的BUG,暂时还无法解决。

“我有一个聪明的系统管理机制” 

Android客户端的开放诞生了很多“好心”产品,比如360LBE之类,然后很多互联网厂商在叠加需求的驱使下,开始将这些流行应用集成到ROM中,典型的就有小米集成了LBE的系统管理,后来华为等厂商也开始跟进。

     比如:(某机型)wifi网络下灭屏播放在线歌单,播放一段时间后自动停止,点亮屏幕后则自动继续播放。典型的“为你省电又省心”的类型,会在灭屏时关闭网络,导致播放在线歌单无法缓冲,这类ROM即使你修改了wifi休眠策略后还会这么干

     比如:Flyme某些版本,灭屏播放已下载的歌曲,可能出现间隔时间较长的情况。这个问题最后确认系统在灭屏一段时间后会降低CPU频率,处理事件间隔延长,导致实际产品体验不佳的情况。后来程序猿只能用一些“猥琐”的方式来解决这个问题。

“我的通知栏展现了我们设计师的审美”

无一例外,很多厂商会对通知栏进行修改,对于我们云音乐需要在通知栏显示歌曲播放状态。

比如三星S5OPPOMoto X等机型在通知栏点击上一首暂停下一首进行切换时,则可能出现显示错误或无法响应的问题

另外还有些厂(Hua)(Wei),则喜欢将通知栏底色弄成全白色,这样我们原本PNG图上的白字在这种通知栏上就直接迷失,用户反馈给我们说为什么你们通知栏上没有字,我们只能哭笑不得,然后乖乖优化 

Actionbar修改” 

奇怪的是有些厂商还会对原生的actionbar做一些修改,实际上发现的有miui某版本、vivo和华为的一些机型有这个问题,导致actionbar上的返回键不能使用,导致开发需要换一种方式进行实现。

还有一些2.3的机子上,点击actionbar左上角上的云音乐icon,会最小化云音乐。

还有一些4.4的机子上,某些activity上点击actionbar左上角返回时会重复刷新该界面

“文件系统权限”

大多数移动产品都需要使用到本地文件的读写权限,然后有很多厂商对文件系统有各自的定制,导致我们的产品会有一些水土不服的情况。

常见的比如有在三星S4上发现SD卡为"sdcardfs"格式的,不能扫描到里面的歌曲。这是因为我们程序在sd卡文件类型列表中还没有将这类格式列入。这一方面需要我们开发时能获知到更多的相关知识,另外一方面需要及时识别这类问题并迅速修复(毕竟新的东西总是在来临)

    还有发现Moto X 升到4.4版本后,本地音乐扫描时会扫描出很多多余的音乐文件(legacy文件夹下),这也是由于原生文件系统改版后导致的结果,需要我们的开发针对这种情况去做过滤。

 “接口提供问题”

 如小米手机,默认播放器支持播放WMA,但是我们调用默认player却不能播放,这会导致用户扫描进来的歌曲却不能播放。

Webview问题”

Webview上除了2.34.x系统的区别之外,有些手机比如Sony很多机型在Webview上和其他手机也有一些区别,会导致调用MP3播放的时候无效。

“其他”

比如FlymeSmartbar的兼容,MIUI旧版本Menu键的兼容。(真是两座大山,相信很多同学会赞同)

 

2、系统管理软件坑

似乎国人使用电脑或手机都有一个习惯,拿到手机后第一时间装个杀毒软件吧,再装个安全大师清理软件吧,这种安全意识和清理意识值得鼓励,但是却会因为这些管理软件带来很多的问题。

     常见的有,LBE安全大师、360手机安全卫士、腾讯手机管家、省电软件等。他们大多干着一些杀病毒、杀木马、监控流量、清空间、清内存等工作,最重要的是喜欢一键功能,让小白用户享受到了免费使唤一个“管家”的感觉,可是实际上他们在运行过程中会给很多移动产品带来影响。

         比如:灭屏强行关闭网络。导致我们灭屏播放在线歌曲受限

          灭屏开启强制杀进程,导致程序被误杀。

          卸载时清理应用相关文件,会导致清空用户下载的歌曲数据

          控制软件使用权限,比如我们在打开应用时,管理软件提示该软件需要使用某权限,是否禁止,会导致应用原来的很多功能不能正常使用。

 

以上这些坑,一方面会导致用户使用我们产品过程中的体验变差,带来一些用户流失。

另外一方面在我们与用户沟通确认的过程中会浪费相当多的时间,比如一个后台闪退被杀进程的问题,我们必须要排除是否是软件本身的问题,最后定位到其他管理软件导致也只能是给自己一些安慰。曾经发现的比较严重的问题是,我们的联通免流量业务需要获取手机Device ID验证后才能正常的进行代理免流量,后来收到一个用户反馈说他的手机开通使用业务却被扣费,最后花了很大的精力才发现用户手机上的系统管理软件当时禁用了我们软件获取他手机的Device ID,导致无法确认手机已经开通业务。

         虽然这些问题不是我们程序本身的BUG,但是我们的开发也需要适当的对这些问题进行修复或引导,尽可能的减少体验的降低和用户的流失。

 

3、竞品及关联APP

在实际用户环境中,还有一部分问题来源于其他APP

比如我们这款音乐产品来说,遇到的最多的就是声音权限冲突问题,之前的荔枝FM这款APP只要安装在手机中,就会导致我们云音乐的播放暂停,另外还有QQ音乐、酷狗音乐某些版本也会导致类似的问题,问题源于他们会在非播放歌曲时也会偷偷的申请声音权限,导致我们暂停。还有千牛软件(一款淘宝买家软件),每次收到消息时,云音乐播放就会暂停,即使千牛的通知消息声结束时,云音乐也不会继续播放,原因是千牛的通知消息设定了一个非固定长度的声音,云音乐被打断了就无法继续。后来程序猿也只能通过其他方式来避免这些“不讲道理的同行”带来困扰。

    竞品下载的文件异常 由于我们产品需要去扫描手机本地的歌曲,但是实际曾出现过某个文件夹的歌曲扫描不到的情况,最后是发现某竞品下载的Flac歌曲文件进行了特别的处理,导致我们需要针对这种情况进行特别处理。

    关联APP接口更换 在产品推广及社交互动的驱使下,很多产品都有分享到其他软件的功能,常见的比如分享到QQ好友,然而在QQ提供的接口中,有时候却不能完全适用,比如用户如果装了QQ HD版、QQ国际版,便不能正常使用我们的分享接口。

     

4Android系统之坑

这方面最常见问题就是开发者可能用了新版本上的API,对于低版本比如2.3版本不支持,导致产品运行崩溃之类的问题。

         其次就是最新版本的支持,这种其实也无法避免,像4.4版本extSDcard系统的修改导致了很多的问题,这需要对于新版本发布时的修改点及时确认影响范围,并尽快修改。

 

5、服务器端之坑

一般来说,服务器端的问题造成的影响范围总是很广,一个小的BUG可能会被所用用户捕捉到(而不像移动端的BUG更多的可能是某种特定的场景出现),但是好在修复快,无需移动端重复上线这么复杂。

         这方面的BUG其实有很多,就不一一罗列,常见需要检查的还是服务器返回的数据,上传数据到服务器后在其他地方显示的检查,以及新增或修改接口的确认等等。但是下面这个也是一个比较有趣的例子,曾经发现在客户端动态流里点击@xx 这个用户,提示无法找到该用户,最后确认为我们的服务端字库里对这个字未识别,导致这个“云音乐达人”用户曾经长达几个月的时间不能被他的粉丝们点击到

 
以上基本都是在云音乐产品中遇到的一些问题的总结,希望能给其他移动产品的测试和开发过程中带来一些启发和帮助。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics