| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 移动开发 -> android 性能优化 -> 正文阅读 |
|
[移动开发]android 性能优化 |
比如,RelativeLayout布局过程需要花费更多的CPU时间,所以经常使用LinearLayout,但是需要嵌套时(布局层级变多),建议使用RelativeLayout或FrameLayout
??标签主要用于布局重用,降低减少布局层级。ViewStub提供了按需加载的功能,当需要时才会将ViewStub中的布局加载到内存,提高程序初始化效率 ??
??开发者模式下有个调试GPU过渡绘制选项,可根据颜色看出绘制次数,优化方法: ??3.1)移除默认的window背景颜色,Theme.Light.windowBackground改成null ??3.2)移除不必要的背景 ???????常见可优化场景:ViewPager 加多个Fragment 组成的首页界面,如果每个Fragment都有设置背景的话,activity根布局或者ViewPager 不用设置背景 ??3.3)写合理且高效的布局 ??????比如,通过RecyclerView?的addItemDecoration添加分割线,如果是listview的话,则使用setDivider方法 ??3.4)自定义控件 ??????当某些控件不可见时,如果还继续绘制更新该控件,就会导致过渡绘制,但是通过Canvas的clipRect方法可以设置需要绘制的区域。DrawerLayout就是一个例子,
???2.1)集合类泄漏 ???2.2)单例、静态变量造成的内存泄漏 ???2.3)匿名内部类、非静态内部类 3)怎么分析内存泄漏 MAT(Memory Analyzer Tool)和 LeakCanary
Activity 5秒内无法响应屏幕触摸事件或键盘输入事件就会ANR, BroadcastReceiver如果10秒之内没有执行完成也会出现ANR 所以可以开启子线程执行耗时操作,
同上
??主要对加载图片进行压缩,避免加载图片过大导致OOM 出现
??采用线程池,避免程序中存在大量的Thread。线程池可以重用内部的线程,从而避免线程的创建和销毁带来的性能开销,同时线程池还能邮箱的控制线程池的最大并发数,避免大量的线程因互相抢占系统资源从而导致阻塞现象
|
|
移动开发 最新文章 |
Vue3装载axios和element-ui |
android adb cmd |
【xcode】Xcode常用快捷键与技巧 |
Android开发中的线程池使用 |
Java 和 Android 的 Base64 |
Android 测试文字编码格式 |
微信小程序支付 |
安卓权限记录 |
知乎之自动养号 |
【Android Jetpack】DataStore |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年4日历 | -2025/4/19 1:40:30- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |