Android 兼容问题处理建议
和硬件打交道的开发多多少少都会遇到过因为设备不同而出现的代码错误,这里分享
一下自己那为数不多的经验,希望能帮到大家。
首先我的分析思路有以下几点:
1 具体查看代码的执行报错,打比方说一样的方法在A设备是能正常运行的,而B设备会报错。
当然这是在理想的情况下,而我们安卓开发经常都是没有对应的设备的,这点比较糟心。
个人解决方法:现在网上有很多云真机服务,虽然价格比较贵(1分钟1块钱),但是能快速找到
对应手机进行调试解决问题,我觉得还是可以尝试使用的。
真机测试还提供了错误日志,截图等功能,虽然还是有局限,但是一般问题能处理了。
2 寻找设备间的区别(系统版本)
例如:Android的版本区别,例如 7.0的部分设备打开实体文件需要额外添加
一个私有文件权限,而6.0的设备根本不需要。而6,0以上的所有设备调用文件读取权限
都需要动态读取判断,这就是版本之间的差异了。
个人解决方法:直接搜索出现问题的对应系统,看看是不是要针对性兼容处理以一下,
正常来说官方更新系统都会额外增加一些限制一些优化,而这些处理有时候我们也要跟着
优化一下对应代码。
3 寻找设备间的区别(厂家)
例如:同一个系统版本的小米和华为手机测试同一套代码,而华为没有出现问题,小米却
闪退了。这样的问题也偶尔会发生的,
缘由也是因为厂家对硬件软件做了不少修改,导致一些底层的函数代码发生了改变,
具体还是要看代码走到哪一步出现了异常,定点修改对应问题。
4 用户操作导致的异常
这个情况很常见,不过经常会被人忽略掉。起因多半是因为用户没有按照正常
操作而导致的奇怪问题,而这些操作问题有时候也会反应到系统上。然后反馈问题的时候
又只会有最终结果而没有操作过程,进而导致开发经常摸不着头脑。可能压根就不是
代码的问题,而是业务逻辑发生了变化,这里特意提一下,实际情况下是需要留意的。
此外如果是做其他硬件开发的话,也是先从基本的设备比较开始,
1 设备的区别
2 设备是否存在硬件故障
3 设备的系统版本是否一致
4 设备运行的代码是否一致
5 设备的操作是否一致
6 设备的运行环境是否一致