android性能问题---项目实战

1. HandlerThread导致oom

     背景:自动化测试过程中,每一个用例task里面会启动一个HandlerThread,但是HandlerThread是在task构造函数里面启动,而不是onStart里面启动,这样就导致初始化task集合时瞬间start了很多HandlerThread,并且如果中间退出测试,会导致没有开始的task里面的HandlerThread无法释放。最终多次进出之后,会导致大量线程存在,进而oom.

public abstract class BasicTask {
   protected BasicTask(int repeat) {
        handlerThread = new HandlerThread(getClass().getSimpleName()
                + "_Handler");
        handlerThread.start();
    }

    protected void onStart(){
      ..............
    }
    //只有被onStart过的task才能onStop
    protected void onStop() {
        handlerThread.quit();
    }
}

     

解决方案:延迟start HandlerThread

public abstract class BasicTask {
   protected BasicTask(int repeat) {
        .........................
    }

    protected void onStart(){
        handlerThread = new HandlerThread(getClass().getSimpleName()
                + "_Handler");
        handlerThread.start();
    }
    //只有被onStart过的task才能onStop
    protected void onStop() {
        handlerThread.quit();
    }
}

     

     

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 博学谷源码是一个基于Android平台的实战项目,它通过将理论知识与实际运用相结合,帮助学员更好地理解和掌握Android开发技术。 该源码提供了多个实际案例项目,涵盖了Android开发中常见的技术点和功能实现。通过参与这些实战项目,学员可以系统地学习并应用Android开发的基础知识和核心技术,提升实际开发能力。 博学谷源码的特点是完整、实用、项目化。每个项目都是从需求分析、架构设计、开发实现到最终功能测试和发布部署的完整过程。在实践中,学员能够学习到项目开发流程、团队协作、问题解决等实际开发技巧。同时,项目中也涵盖了常见的开发框架、库以及常用工具的使用,帮助学员快速上手开发。 此外,博学谷源码还提供了详细的文档和教学视频,通过这些学习资料,学员可以深入了解项目的功能设计和实现思路,快速掌握项目开发的方法和技巧。同时,学员也可以通过在源码的基础上进行二次开发,加深对Android开发的理解。 总之,博学谷源码是一个非常实用和全面的Android实战项目资源,通过参与其中,学员可以真实地接触到项目开发的方方面面,提高自身的开发能力和经验。 ### 回答2: Android项目实战博学谷源码是一个包含Android项目实战案例的代码库,可供开发者学习和参考。该源码库提供了各种实际的Android项目示例,其中包括了常见的功能、界面设计和技术实现等。 这些示例项目涵盖了不同的应用场景,例如通讯录管理、音乐播放器、天气预报、新闻阅读等。每个项目都提供了完整的源代码和相应的文档说明,开发者可以根据自己的需求选择适合自己的项目进行学习和练习。 通过学习这些项目的源码,开发者可以了解到实际项目中的开发思路、架构设计和代码实现。同时,还可以学习到一些常用的Android开发技术和工具,例如数据库操作、网络请求、图像处理等。 此外,该源码库还提供了一些高级主题的项目示例,例如自定义View、动画效果、性能优化等。这些示例项目对于想要更加深入学习和掌握Android开发的开发者来说非常有价值。 总之,Android项目实战博学谷源码是一个很好的学习资源,提供了实际的Android项目示例,帮助开发者提升自己的开发能力。无论是初学者还是有经验的开发者,都可以从中受益,并在以后的Android开发中运用到自己的项目中。 ### 回答3: 博学谷是一家在线教育平台,针对IT技术的学习提供了丰富的课程资源。其中,Android项目实战是博学谷的一个重要分类,旨在帮助学员通过实际项目开发经验来提升Android开发的能力和实践技巧。 Android项目实战博学谷源码是指博学谷在Android项目实战课程中提供给学员的项目源代码。通过这些源码,学员可以了解到一个完整的Android项目是如何构建、实现各种功能、优化性能等方面的。同时,学员可以根据源码进行实际的编程练习,加深理解和掌握Android开发技能。 博学谷的Android项目实战课程覆盖了从基础入门到高级进阶的多个层次,内容涵盖了Android项目的各个方面,如UI设计、数据存储、网络通信、多媒体处理、性能优化等。学员可以根据自己的实际需求和兴趣选择合适的课程进行学习。 通过学习和实践这些源码,学员可以从项目实践中积累经验,深入理解Android开发的各个方面,并能够运用所学知识进行实际项目的开发工作。同时,博学谷也提供了丰富的学习资料和辅导服务,帮助学员顺利完成Android项目实战学习。 总之,博学谷的Android项目实战博学谷源码是一份具有实践价值的资料,通过学习和掌握这些源码,可以提高Android开发的能力,为今后的工作和学习打下坚实的基础。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值