卡顿优化方法论
卡顿优化 卡顿优化方法论 卡顿优化,也就是提升 APP 的响应时间,用空间换时间,总结了四项基本原则: 缓存优先,有缓存读缓存 减少新建,能复用就不新建 减少任务,能不做的尽量不做 具体问题具体分析:针对具体事务本身进行分析,必须做的能提前做就提前做,不必须的延后做 优化措施 任务执行 任务优先级排序,优先高优先级的执行 线程设置 ...
卡顿优化 卡顿优化方法论 卡顿优化,也就是提升 APP 的响应时间,用空间换时间,总结了四项基本原则: 缓存优先,有缓存读缓存 减少新建,能复用就不新建 减少任务,能不做的尽量不做 具体问题具体分析:针对具体事务本身进行分析,必须做的能提前做就提前做,不必须的延后做 优化措施 任务执行 任务优先级排序,优先高优先级的执行 线程设置 ...
基础知识 UI 优化思路 布局文件解析:io 操作 创建对象:反射 Xml inflate 原理 [[LayoutInflater 源码解析]] [[AsyncLayoutInflater]] 渲染优化 布局优化 merge merge 就是合并的意思。使用它可以有效优化某些符合条件的多余的层级。 在定义 View 的时候,可以把 xml 的根布局设...
APM 性能指标 启动时间 流畅度 FPS 网络指标 基于 okhttp 指标监控 https://www.jianshu.com/p/60cfd0282930
性能优化工具 TraceView [[TraceView]] Systrace [[Systrace入门]] Profiler Android Studio 自带工具 BTrace AGP 8.0 不支持,AGP 8.0+ 移除了 Transform 的 API Perfetto(Android9 及以上) LeakCanary MAT/MMAT MAT使用教程...
性能监控 监控应用卡顿方案 Looper Printer 替换方案 很常见的方案,使用系统方法 setMessageLogging 替换掉主线程 Looper 的 Printer 对象,通过计算 Printer 打印日志的时间差,来拿到系统 dispatchMessage 方法的执行时间 Looper.getMainLooper().setMessageLogging(str -&g...
进程保活手段 https://github.com/xingda920813/HelloDaemon https://github.com/D-clock/AndroidDaemonService 利用前台服务漏洞 某音乐软件在原生 Pixel 被拦截自启动后导致系统 NFC 无限崩溃http://weishu.me/2021/01/25/another-keep-alive-...
Android 中的多进程 Android 进程概述 进程是进程资源分配和调度的基本单位。在 Android 中,一个应用默认有一个主进程(正常情况下,一个 apk 启动后只会运行在一个进程中,其进程名为 apk 的包名,所有的组件都会在这个进程中运行),我们也可以通过配置实现一个应用对应多个进程。 多进程模式中,不同进程间的组件会拥有独立的虚拟机,Application 以及内存空间...
自定义 View 预览 isInEditMode RecyclerView: private void createLayoutManager(Context context, String className, AttributeSet attrs, int defStyleAttr, int defStyleRes) { if (className ...
Android 定位权限变更 本文梳理 Android1.0~Android11 定位权限几次重大变更和适配。 版本变更 Android 6.0(Android 23)之前,在清单文件声明定位权限即可: ACCESS_COARSE_LOCATION 和 ACCESS_FINE_LOCATION Android 6...
存储权限 Todo: