由来
今天某同学请我帮忙解决Android开发上的问题。我到问题现场让他复现了BUG,问题大致如此,APP打开之后,从启动页面跳转到首页页面时,出现长时间的黑屏。
解决过程
我查看控制台打印的信息,发现GCC频繁执行,这说明APP在页面跳转过程中消耗大量内存,而GCC运行会阻碍渲染进程的运行。因为黑屏的时间很长,所以我断定APP除了在某些地方过多消耗内存之外,必然还执行了耗时操作。
我认为长时间黑屏是因为onCreate函数到onStart函数之间的时执行间过长过长,于是我用Log打印时间,结果发现两个函数之间耗时7S,难怪会黑屏!
经过一步一步的调试分析,我找到了问题的根源。APP进入首页页面时,会读取数据库,从中读取了七千多个对象。读取数据库的时间过长,而对象过多造成了频繁地GCC,这才造成了黑屏问题。