首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
性能优化
中玉
创建于2022-02-20
订阅专栏
性能优化
等 1 人订阅
共10篇文章
创建于2022-02-20
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
ANR
Anr简介 ANR 是负责更新界面的应用主线程无法处理用户输入事件或绘制操作。 诊断Anr 常见的几种形式: 应用在主线程上非常缓慢地执行涉及 I/O 的操作。 应用在主线程上进行长时间的计算。CPU
线程优化
线程过多的危害 每个线程至少占用1M的内存。过多会引起OOM。32位手机尤其明显。 HandlerThread创建Loop会持有至少两个文件描述符,导致文件描述符不足的崩溃。 线程过多会出现频繁的上下
App启动优化
启动分析 启动过程分析 T1预览窗口显示。系统在拉起微信进程之前,会先根据微信的Theme属性创建预览窗口。当然如果我们禁用预览窗口或者将预览窗口指定为透明,用户在这段时间依然看到的是桌面。 T2闪屏
Android线程优化
Cgroups可以更好的凸显某类线程的优先级,Android中有两类group尤其重要:一类是default group,对应UI线程。另一类是background group,对应工作线程; 进程的属性变化也会影响到线程的调度,当一个App进入后台,该App所属的整个线程都将…
存储优化
加载慢:初始化加载整个文件。 全量写入:单次改动都会导致整体写入。 卡顿:onPause方法会将所有的SharePreferences保存到硬盘中。 mmap和文件锁保证数据完整。 增量写入,使用Protocol Buffer。 支持ShardPreferences迁移。 实现…
App列表页优化
convertView复用,使用ViewHolder。 耗时任务异步处理。 减少布局层级,避免过度绘制。 避免过大尺寸:GC频繁,内存抖动。 滑动时取消加载。 使用线程池收敛线程,降低线程优先级。 避免UI线程时间片被抢占。 如果item高度是固定的话,可以使用Recycler…
App布局优化
LayoutInflater.Factory是layoutInflater中创建View的一个Hook。 定制创建View的过程:全局替换自定义TextView等。 Factory2继承与Factory。 Factory2比Factory的onCreateView方法多一个pa…
App内存优化
内存抖动:内存曲线锯齿状,GC导致卡顿。 内存泄漏:可用内存减少,频繁GC。 内存溢出:OOM,程序异常。 实时图表展示应用内存使用量。 识别内存泄漏,抖动等。 提供捕获堆转储,强制GC以及追踪内存分配的能力。 优点:方便直观,线下平时使用。 强大的Java Heap分析工具,…
App启动优化
启动速度的优化方向是 Application 和 Activity 生命周期阶段,这是我们开发者能控制的时间,其他阶段都是系统做的。 创建进程阶段主要做了下面三件事,这三件事都是系统做的。 启动应用阶段主要做了下面三件事,从这些开始,随后的任务和我们自己写的代码有一定的关系。 …
App卡顿优化工具
图形化的形式展示执行时间、调用栈等。 信息全面,包含所有线程。 运行时开销严重,所有函数不等比变慢。 生成文件在sd卡:Android/data/packagename/files。 监控和跟踪Api调用、线程运行情况,生成Html报告。 轻量级,开销小。 直观反映CPU利用率…