在项目开发的过程中,难免会遇到这样 那样的问题,在这个时候如果是耗时很长的BUG或者一些界面的特效的时候,不要只停留在表面的代码层逻辑上,还要从源码、系统原理、生命周期等来进行分析。我主要总结一下解决问题的思路。
1.关键的是找到触发问题的关键场景:
例如,不当的使用Context;构造Adapter时,没有使用缓存的convertView等等。构造Adapter时,没有使用缓存的convertView等等。
当程序出现问题时,首先要找到触发它的场景,只有找到触发问题的关键场景,我们才能快速的定位问题,并加以解决。
第一,作为Android开发人员,只有深刻理解Android常用组件的工作机制,以及应用中各个对象的生命周期,才能尽量避免写出导致内存泄露的代码;
第二,当程序出现问题时,首先要找到触发它的场景,就像这个案例中,我们根据QA提供的重现方式,经过反复测试和观察,最终定位到问题。而在我们日常开发中,可能遇到更加复杂的问题,在面对复杂的情况下,只有找到触发问题的关键场景,我们才能快速的定位问题,并加以解决。
第三,强大的工具是帮助我们分析和定位问题的利器,例如前面用到的DDMS和MAT工具,他们能够让我们能够深入到应用的内部进行探索和研究,从而快速的分析到问题的根源。所以开发人员应该学会运用这些强大的工具,来分析解决各种疑难问题。
2.测试方面:
1.全面的兼容稳定性测试要选择不同手机型号/内存/系统版本/cpu型号内核 来进行兼容测试/ 安装/卸载测试(还有一些要关注的像6.0系统的权限问题等)。