美文网首页
日常学习

日常学习

作者: CheeseSun | 来源:发表于2021-01-19 14:43 被阅读0次

    1:日常中优化有哪些:

    优化主要分为UI优化、内存优化、相应优化

    UI优化

    1、布局控件的选择:主要布局有RelativeLayout,LinearLayout及ConstraintLayout性能比较

    结论:RelativeLayout measure过程或执行2次 而LinearLayout在没有Weight的情况下只需要执行一次,ConstraintLayout在层级比较复杂的时候性能体现出来,如果简单的布局就用LinearLayout 如果能用1个RelativeLayout实现就用RelativeLayout,如果层级相对复杂就选择用ConstraintLayout。

    2、使用标签<ViewStub><include><merge>标签

    3、注意界面代码层级,单个界面绘制层级超过5层就要考虑重新绘制界面 可采用<include>

    4、使用TextView的leftDrawabel/rightDrawable代替ImageView+TextView布局

    内存优化:

    1、遇到Bitmap的时候记得不用时候回收,传递bitmap的时候记得传递地址而不要把bitmap直接当做对象直接通过intent传递

    2、使用 静态内部类+WeakReference 代替内部类,如Handler、线程、AsyncTask

         在Handelr中使用WeakReference 避免由Handler delay造成的Context destory 而导致的crash

    3、使用Thread pool 避免创建过于子线程,同时在Thread完成任务后进行销毁

    4、webview和数据库建立连接,在activity销毁或者不用的时候进行移除和销毁

    响应优化:

    响应优化就是把一些耗时的操作(非UI操作)放入子线程中去完成,因为在Activity中如果5秒未响应会ANR,而在BroadCastReceiver在10秒内未响应会提示ANR,Serve则在20秒未响应出现ANR

    剩下的就需要结合Android Studio的monitor进行性能分析,判断在那一块有性能上的问题进行针对性的优化。

    相关文章

      网友评论

          本文标题:日常学习

          本文链接:https://www.haomeiwen.com/subject/wfnqzktx.html