
性能优化
文章平均质量分 89
流金岁月5789651
开始,新的一段旅程
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
APK 瘦身优化小结
APK 优化主要分为:Dex、Resource、Assets、Native LibrariesMatrix-ApkChecker是针对android安装包的分析检测工具,根据一系列设定好的规则检测apk是否存在特定的问题,并输出较为详细的检测结果报告,用于分析排查问题以及版本追踪。Matrix-ApkChecker在 Android 中代码混淆和压缩都是通过 ProGuard 来实现的,ProGuard会检测和移除代码中未使用的类、字段、方法和属性。在 build.gradle中,使用minifyEnabl原创 2022-06-04 10:40:21 · 383 阅读 · 0 评论 -
启动优化小结
启动基础知识应用有三种启动状态,每种状态都会影响应用向用户显示所需的时间:冷启动、温启动或热启动。冷启动当启动应用时,后台没有该应用的进程,这时系统会首先会创建一个新的进程分配给该应用,这种启动方式就是冷启动。冷启动相关的任务流程:热启动当启动应用时,后台已有该应用的进程,比如按下home键,这种在已有进程的情况下,这种启动会从已有的进程中来启动应用,这种启动方式叫热启动。温启动当启动应用时,后台已有该应用的进程,但是启动的入口Activity被干掉了。有许多潜在状态可视为温启动。例如:原创 2022-05-25 11:00:55 · 1250 阅读 · 0 评论 -
启动优化知识之有向无环启动器
前言App启动优化,自然会想到异步加载。将耗时任务放到子线程加载,等到所有加载任务加载完成之后,再进入首页。这种多线程异步加载方案适合于多个任务之间没有依赖关系,业务逻辑没有那么复杂情况。但是在实际项目中肯定会遇到复杂业务逻辑情况,如任务2依赖于任务1,这种情况如何解决?或者任务3依赖于任务2,任务2依赖于任务1,这种更复杂情况又该如何解决呢?那既能够异步操作、又能解决任务之间的依赖关系,同时执行代码更加优雅的方式有没有?下面这种解决方案就具备该条件:有向无环图启动器。重要概念在介绍有向无环图启动器原创 2022-05-22 22:46:10 · 633 阅读 · 0 评论 -
内存优化小结
内存泄漏(Memory Leak)每个应用程序都需要内存来完成工作,为了确保Android 系统的每个应用都有足够的内存,Android 系统需要有效地管理内存分配。当内存不足时,Android 运行时就会触发GC,GC采用的垃圾标记算法为根搜索算法。从上图可知,Obj4是可达的对象,表示它被引用,因此不会标记为可回收的对象。Obj5、Obj6和Obj7都是不可达的对象,其中Obj5和Obj6虽然相互引用,但是因为它们到GCRoots是不可达,所以它们仍旧被标记为可回收的对象。内存泄露就是指没有用的原创 2022-05-03 23:03:43 · 1002 阅读 · 0 评论 -
内存泄露检测工具:Matrix ResourceCanary 使用
简介Resource Canary主要是用来检测Activit级别的内存泄漏、以及重复创建的冗余Bitmap。地址官方文档Matrix GitHub使用1. 项目依赖在项目根目录下的 gradle.properties中配置要依赖的Matrix版本号MATRIX_VERSION=2.0.5在项目根目录下的build.gradle文件添加Matrix依赖dependencies { classpath ("com.tencent.matrix:matrix-gra原创 2022-04-28 21:29:51 · 1420 阅读 · 0 评论 -
卡顿优化小结
卡顿理解卡顿先理解个概念:帧数。帧数就是在1秒时间里传输的图片的量,也可以理解为图形处理器每秒钟能够刷新几次,通常用FPS表示。每一帧其实就是静止的图像,通过快速连续显示帧便形成了运动的假象。要想画面保持在60fps,需要屏幕在1秒内刷新60 次,也就是每16ms刷新一次,绘制时长在16ms以内。Android 系统每隔16ms发出VSYNC信号,触发UI进行渲染,如果每次渲染都成功,这样就能够达到流畅的画面所需要60fps。VSYNC 是 Vertical Synchronization (垂直原创 2022-04-13 14:17:08 · 1075 阅读 · 0 评论 -
Android 系统分析工具:Systrace
前言Systrace 可以帮助开发者收集Android关键子系统(SurfaceFlinger、WMS等Framework 部分关键模块、服务,View体系系统等)的运行信息。Systrace的功能包括跟踪系统的I/O操作、内核工作队列、CPU负载以及Android各个子系统的运行状况等。对于UI显示性能,比如动画播放不流畅、渲染卡顿等问题提供了分析数据。Systrace 工具安装使用Systrace 工具包会在sdk/platform-tools/systrace/ 目录下,如图所示:Windo原创 2022-04-03 10:49:57 · 5517 阅读 · 0 评论 -
Android Studio Profiler CPU检测卡顿
前言Android Studio 3.0 及更高版本中的 Android Profiler 取代了 Android Monitor 工具。Android Profiler工具可提供实时数据,帮助您了解应用的CPU、内存、网络和电池资源使用情况。图1Android Profiler 显示当前正在分析的进程和设备图2在Sessions窗格中,选择要查看的会话,或启动一个新的分析会话图3使用缩放按钮控制要查看的时间轴范围,或使用 Attach to live 按钮跳转到实时更原创 2022-03-30 16:21:25 · 10402 阅读 · 0 评论 -
性能检测工具:Matrix-TraceCanary 入门
简介TraceCanary分为帧率监控、慢方法监控、ANR监控、启动耗时、主线程优先级检测、IdleHandler耗时检测这6个功能。基本使用文档TraceCanary 文档Matrix GitHub用法1. 项目依赖在项目根目录下的 gradle.properties中配置要依赖的Matrix版本号MATRIX_VERSION=2.0.5在项目根目录下的build.gradle文件添加Matrix依赖dependencies { classpath ("com.原创 2022-03-22 21:05:29 · 4599 阅读 · 0 评论 -
APK瘦身优化检测工具-Matrix ApkChecker 使用
简介Matrix-ApkChecker 作为Matrix系统的一部分,是针对android安装包的分析检测工具,根据一系列设定好的规则检测apk是否存在特定的问题,并输出较为详细的检测结果报告,用于分析排查问题以及版本追踪。官方文档Matrix Github使用运行前准备工作从官方地址下载ApkChecker.jar (本次使用matrix-apk-canary-2.0.2.jar)准备配置文件config.json ,下面是配置文件(与官方文档示例有区别,具体配置根据自己项目需求)原创 2021-11-26 17:26:38 · 2748 阅读 · 0 评论 -
性能分析工具System Trace
前言Android 9或更高版本的设备包含一个名为 System Tracing的系统级应用。允许您直接从测试设备本身录制跟踪记录,而无需插入设备并通过 ADB 连接到该设备。解决应用中与性能相关的错误(例如启动速度慢、转换速度慢或界面卡顿)时,录制跟踪记录特别有用。使用可以使用“快捷设置”图块录制系统跟踪记录。如果首次在测试设备上使用 System Tracing,或在设备的快捷设置面板中看不到 System Tracing 图块。如下图所示:启用开发者选项,找到系统跟踪在系统跟踪中,打开原创 2022-03-15 15:45:52 · 8503 阅读 · 0 评论