冻屏怎么解决,手机冻屏
从软件角度来看,手机UI出现“冻屏”通常是由于内存泄漏引起的。通常所说的内存泄漏是指堆内存的泄漏。堆内存是指程序从堆中分配的、任意大小的、使用完后必须显式释放的内存。应用程序一般使用软件平台封
手机死机现象有时会随机发生,手机的死机通常发生在UI界面上,也可以说发生冻屏。冻屏是一个通俗的说法,是指无论按什么键,怎么按键,屏幕都没有反应。UI死机也分两种情况,一种是按“结束/返回键”屏幕没反应,但按“红键”屏幕会返回至空闲状态;还有一种情况是按“结束/返回键”和“红键”都不起作用。
从软件角度来看,手机UI出现“冻屏”通常是由于内存泄漏引起的。通常所说的内存泄漏是指堆内存的泄漏。堆内存是指程序从堆中分配的、任意大小的、使用完后必须显式释放的内存。应用程序一般使用软件平台封装过的内存分配/释放函数进行内存的管理。大多数出现内存泄漏的原因都是由于对象没有及时释放造成的,而且一个对象未释放将引起多处内存泄漏,因为一个对象可能包含多个子对象,并且有些类是相互继承的关系。所以要格外小心防止内存泄漏。
内存泄漏发生的方式:
① 常发性内存泄漏。发生内存泄漏的代码会被多次执行,每次被执行时都会导致内存泄漏。
② 偶发性内存泄漏。发生内存泄漏的代码只有在某些特定情景(Scenario)下才会发生。对于特定的情景,偶发性的也许就变成常发性的了。所以测试条件和测试方法对检测内存泄漏至关重要。
③ 一次性内存泄漏。发生内存泄漏的代码只会被执行一次,有时因为设计上的缺陷,会导致有一块且仅有一块内存发生泄漏。
针对内存泄漏,这里给出几点修复建议:
① 为便于调试,当内存泄漏发生时,通常用OutOfMemoryError作为内存泄漏提示的信息,并将手机屏幕置为“蓝屏”。
② 检查一个应用程序是否产生内存泄漏,首先要运行这个应用程序然后立即退出,如果连这样一个简单的操作都产生内存泄漏,那就先修复这些漏洞。只有先修复这些主要的泄漏,才能进行特定功能的测试。
③ 尤其注意在循环中创建或分配的内存代码,如果它们未释放,可能会引起大量的内存泄漏。
④ 先修复大的类,然后再修复小的类,因为一个大类经常包含多个子类。修复了一个大类的未释放问题,就能解决大量的该大类包含的子对象未释放问题。
⑤ 市面上内存泄漏检测工具很多,要根据具体的软件平台特性选择适当的内存泄漏检测工具
文章评论