
Performance
学习Android 性能优化基础知识以及一些常见的工具
i加加
定个小目标,每周末一篇博客。
展开
-
(两百八十二) 学习debuggerd
之前是命令行,simpleperf也支持python的原创 2020-11-29 00:01:46 · 2607 阅读 · 0 评论 -
(两百八十二) 学习Simpleperf
官方文档https://developer.android.google.cn/ndk/guides/simpleperf简要说明Simpleperf 是一个通用的命令行 CPU 性能剖析工具,包含在面向 Mac、Linux 和 Windows 的 NDK 中。使用说明raphael:/ # simpleperf ...原创 2020-11-22 11:07:52 · 2711 阅读 · 0 评论 -
(两百七十)学习 针对低电耗模式和应用待机模式进行优化
https://developer.android.google.cn/training/monitoring-device-state/doze-standby针对低电耗模式和应用待机模式进行优化从 Android 6.0(API 级别 23)开始,Android 引入了两项省电功能,通过管理应用在设备未连接至电源时的行为方式,帮助用户延长电池寿命。当用户长时间未使用设备时,低电耗模式会延迟应用的后台 CPU 和网络活动,从而降低耗电量。应用待机模式会延迟用户近期未与之交互的应用的后台网络活动。原创 2020-06-21 23:20:52 · 1329 阅读 · 0 评论 -
(两百六十五)学习使用 WorkManager 调度任务
学习https://developer.android.google.cn/topic/libraries/architecture/workmanager/basics使用 WorkManager 调度任务使用 WorkManager API 可以轻松地调度即使在应用退出或设备重启时仍应运行的可延迟异步任务。主要功能:最高向后兼容到 API 14 在运行 API 23 及以上级别的设备上使用 JobScheduler 在运行 API 14-22 的设备上结合使用 Broadc.原创 2020-06-06 16:44:23 · 1326 阅读 · 0 评论 -
(两百六十四)学习优化电池续航时间
https://developer.android.google.cn/topic/performance/powerhttps://developer.android.google.cn/guide/background优化电池续航时间电池续航时间是移动用户体验中最重要的一个方面。没电的设备完全无法使用。因此,对于应用来说,尽可能地考虑电池续航时间是至关重要的。为使应用保持节能,有三点需要注意:让应用变得“偷懒至上”。 充分利用可帮助您管理应用耗电量的平台功能。 使用可帮助您.原创 2020-06-06 16:03:45 · 571 阅读 · 0 评论 -
(两百五十九)学习perfetto Google官方的使用示例
学习https://www.bilibili.com/video/av77424850/1. 影响性能的因素2. 多个activity依次加载需要优化为单一activity3. 懒加载对于初创建的界面不是即刻需要的ui可以进行懒加载4. 大图像加载WebP or 异步加载...原创 2020-05-24 12:16:01 · 1202 阅读 · 0 评论 -
(两百六十一)学习通过线程提升性能
https://developer.android.google.cn/topic/performance/threads通过线程提升性能善于在 Android 上利用线程可以帮助您提升应用的性能。本页从以下几个方面讨论线程的使用:使用界面线程(即主线程);应用生命周期与线程优先级之间的关系;以及平台为帮助管理线程复杂性所提供的方法。对于每个方面,本页都介绍了潜在的陷阱和相应的规避策略。主线程当用户启动您的应用时,Android 会创建新的 Linux 进程以及执行线程。这个主线..原创 2020-05-30 11:20:04 · 465 阅读 · 0 评论 -
(两百六十)学习进程和线程概览
https://developer.android.google.cn/guide/components/processes-and-threads进程和线程概览当应用组件启动且该应用未运行任何其他组件时,Android 系统会使用单个执行线程为应用启动新的 Linux 进程。默认情况下,同一应用的所有组件会在相同的进程和线程(称为“主”线程)中运行。如果某个应用组件启动且该应用已存在进程(因为存在该应用的其他组件),则该组件会在此进程内启动并使用相同的执行线程。但是,您可以安排应用中的其他.原创 2020-05-30 10:23:48 · 348 阅读 · 0 评论 -
(两百五十八)以perfetto的视角观察flutter的加载
1.抓取trace使用https://blog.youkuaiyun.com/sinat_20059415/article/details/106307905中网页抓取方式抓取trace对应tracehttps://download.youkuaiyun.com/download/sinat_20059415/124529432.简要分析测试flutter还是之前写的https://blog.youkuaiyun.com/sinat_20059415/article/details/105920254#t4里的ap..原创 2020-05-24 10:41:30 · 660 阅读 · 0 评论 -
(两百五十七)学习perfetto(二)——生成perfetto trace
继续学习https://perfetto.dev/docs/quickstart/android-tracinghttps://perfetto.dev/docs/concepts/config之前看的https://ui.perfetto.dev/#!/record?p=instructions其实就是开发者文档里的config文件1.理论准备perfetto普通模式的命令行普通模式在普通模式下使用 perfetto 的一般语法如下: adb shell.原创 2020-05-23 23:21:42 · 10904 阅读 · 0 评论 -
(两百五十六)学习perfetto(一)
学习https://www.bilibili.com/video/av77424850/竟然发现Google中国在哔哩哔哩也有账号,i了i了=-=trace分析对应的UI网址https://ui.perfetto.dev/官网:https://perfetto.dev/1.简介https://perfetto.dev/docs/Perfetto is a production-grade open-source stack for performance ins..原创 2020-05-23 22:32:48 · 5530 阅读 · 3 评论 -
(两百五十五)学习应用待机存储分区
学习https://developer.android.google.cn/topic/performance/appstandby应用待机存储分区Android 9(API 级别 28)引入了新的电池管理功能:应用待机存储分区。应用待机存储分区有助于系统根据应用的使用时间新近度和使用频率对应用资源请求确定优先级。 根据应用使用模式,每个应用都会被放置在五个优先级存储分区之一中。系统会根据应用所在的存储分区限制每个应用可用的设备资源。优先级存储分区系统会动态地将每个应用分配到优先级存储.原创 2020-05-23 12:50:49 · 372 阅读 · 0 评论 -
(两百五十三) 学习改善布局性能
学习https://developer.android.google.cn/training/improving-layouts/optimizing-layout优化布局层次结构使用基本布局结构可打造最高效的布局是一种常见的误解。无论如何,您添加到应用中的每个微件和布局都需要进行初始化、布局和绘制。例如,使用 LinearLayout 的嵌套实例会导致视图层次结构过深。此外,嵌套多个使用 layout_weight 参数的 LinearLayout 实例成本非常高,因为每个子级都需要测量两次.原创 2020-05-23 11:04:14 · 359 阅读 · 0 评论 -
(两百五十四)Android 学习性能与功耗(三)
继续学习https://developer.android.google.cn/topic/performance/vitals/permissions权限遭拒大多数应用要求用户向其授予特定的应用权限才能正常运行。不过,在某些情况下,用户可能无法授予权限他们认为应用的核心功能不需要权限。 他们不使用与权限相关的功能。 他们担心此权限会影响设备的性能。 他们就是感觉不自在,例如,他们对隐私权比较敏感。...原创 2020-05-23 12:41:07 · 396 阅读 · 0 评论 -
(两百五十一)学习systrace(二)
继续学习https://source.android.google.cn/devices/tech/debug/systrace了解 Systrace注意:如果您以前从未使用过 systrace,我们强烈建议您先阅读 systrace 概览,然后再继续。systrace 是分析 Android 设备性能的主要工具。不过,它实际上是其他工具的封装容器:它是 atrace 的主机端封装容器,是用于控制用户空间跟踪和设置 ftrace 的设备端可执行文件,也是 Linux 内核中的主要跟踪机制。.原创 2020-05-16 23:50:31 · 437 阅读 · 0 评论 -
(两百五十)学习systrace
学习https://developer.android.google.cn/studio/profile/systrace#frameshttps://source.android.google.cn/devices/tech/debug/systracehttps://developer.android.google.cn/studio/profile/systrace/navigate-report1.简介Systrace 是平台提供的一款工具,用于记录短期内的设备活动。该工具.原创 2020-05-16 22:57:35 · 741 阅读 · 0 评论 -
(两百四十九)Android 学习性能与功耗(二)
继续学习https://developer.android.google.cn/topic/performance/vitals/crash崩溃未处理的异常或信号导致的意外退出,会使 Android 应用崩溃。使用 Java 编写的应用会在抛出未处理的异常(由 Throwable 类表示)时崩溃。使用原生代码语言编写的应用,会在执行过程中遇到未处理的信号(如 SIGSEGV)时崩溃。当应用崩溃时,Android 会终止应用的进程并显示一个对话框,告知用户应用已停止,如图 1 所示。.原创 2020-05-16 14:57:49 · 1154 阅读 · 0 评论 -
(一百八十三)学习TraceView
参考:Android 性能优化:使用 TraceView 找到卡顿的元凶Android性能优化(一)之启动加速35%PS:启动加速总结一下就是能懒加载的懒加载,不能懒加载的看能不能放异步,异步线程合理分配优先级。1. 使用 Android Studio 生成 trace 文件Android Monitor已经过时了,现在用的profile之前有学习过,但好久不用忘了。...原创 2019-09-21 18:43:22 · 363 阅读 · 0 评论 -
(四十三)统计应用具体方法执行时长-Android Profiler CPU
统计应用具体方法执行时长工具原创 2018-06-16 16:11:09 · 7836 阅读 · 3 评论 -
(七)结合leakcanary探讨handler和AsyncTask的内存泄露
前言:之前看handler和AsyncTask的相关博客,都提及了内存泄露,但是只是理论上提及并且提出了修改方案,并没有可视性,搜索的时候发现有个叫做leakcanary的神器可以监控内存泄露,赶紧了解看下。参考博客:1.五分钟体验内存泄露检测LeakCanary2.Android内存优化(六)LeakCanary使用详解3.LeakCanary 中文使用说明我的...原创 2018-02-27 23:48:46 · 1603 阅读 · 3 评论 -
(八)初探Memory Analysis Tool(MAT)
前言:之前一篇博客写了一些关于leakcanary的了解,除此之外还从其他博客上看到有个有类似功能的工具,叫做Memory Analysis Tool,简称MAT,体验一下,看下这两个工具有什么差别。参考:1.Android内存优化(五)详解内存分析工具MATdemo地址:点击打开链接PS:mat结果我放在上面demo的assert文件夹下了1.MAT的下载安装PS:我用的是Ubuntu 16.0...原创 2018-03-04 11:00:48 · 1750 阅读 · 0 评论 -
(两百四十七)Android 学习性能与功耗(一)
学习https://developer.android.google.cn/topic/performance性能与功耗实现奇特的创意为构建用户满意的应用开了个好头,但这仅仅是个开始。下一步需要尽可能提高应用的性能。例如,用户对应用具有如下的期望:耗电少。 启动快。 对用户互动响应迅速。本部分为您提供必要的操作方法,帮助您打造既奇特又高效的应用。请阅读下文,了解如何开发耗电少、响应快、效率高且运行稳定的应用。部分唤醒锁定卡住部分唤醒锁定是 PowerManager AP..原创 2020-05-10 22:58:18 · 825 阅读 · 0 评论