adb shell setprop 、开发者选项-程序员宅基地

技术标签: adb  

App性能调试详解

Android App性能监控工具

更多系统属性参考

获取当前打开APP的包名

adb shell "dumpsys activity top | grep ACTIVITY | tail -n 1"

> adb shell "dumpsys activity top | grep ACTIVITY | tail -n 1"
  ACTIVITY com.xq.demo/.MainActivity 28b307b pid=28250

获取当前APP的进程ID

adb shell pidof <package_name>

> adb shell pidof com.xq.demo
28250

打开系统语言设置

adb shell am start -a android.settings.LOCALE_SETTINGS

打开点按和指针显示

#为触摸操作提供视觉提示:触摸点 【0: 关闭点按显示,1: 开启点按显示】
adb shell settings put system show_touches 1
adb shell settings put system show_touches 0

# 屏幕叠加层显示当前触摸数据:坐标【0: 关闭指针显示,1: 开启指针显示】
adb shell settings put system pointer_location 1
adb shell settings put system pointer_location 0

一、开启 GPU Render 的profiling bar: Gpu渲染速度

adb shell setprop debug.hwui.profile true
adb shell setprop debug.hwui.profile visual_bars 
adb shell setprop debug.hwui.profile visual_lines

adb shell setprop debug.hwui.profile false

#控制汇总条长度
adb shell setprop debug.hwui.profile.maxframes 400 

效果如下:

在这里插入图片描述

其中, Android 6.0 及更高版本的设备时分析器输出中某个竖条的每个区段如下所示:

在这里插入图片描述
下表显示的是 Android 4.0 和 5.0 中的竖条区段。

在这里插入图片描述

系统源码 :

/**
 * System property used to enable or disable hardware rendering profiling.
 * The default value of this property is assumed to be false.
 * When profiling is enabled, the adb shell dumpsys gfxinfo command will
 * output extra information about the time taken to execute by the last
 * frames.
 * Possible values:
 * "true",        to enable profiling
 * "visual_bars", to enable profiling and visualize the results on screen
 * "false",       to disable profiling
 * @see #PROFILE_PROPERTY_VISUALIZE_BARS
 * @hide
 */
public static final String PROFILE_PROPERTY = "debug.hwui.profile";
/**
 * System property used to specify the number of frames to be used
 * when doing hardware rendering profiling.
 * The default value of this property is #PROFILE_MAX_FRAMES.
 *
 * When profiling is enabled, the adb shell dumpsys gfxinfo command will
 * output extra information about the time taken to execute by the last
 * frames.
 *
 * Possible values:
 * "60", to set the limit of frames to 60
 */
static final String PROFILE_MAXFRAMES_PROPERTY = "debug.hwui.profile.maxframes";

二、打开 Overdraw 检查 : GPU过度绘制

adb shell setprop debug.hwui.overdraw show

# 

adb shell setprop debug.hwui.overdraw false

在这里插入图片描述

在这里插入图片描述

系统源码:

/*
 * Controls overdraw debugging.
 *
 * Possible values:
 * "false", to disable overdraw debugging
 * "show",  to show overdraw areas on screen
 * "count", to display an overdraw counter
 *
 * @hide
 */
public static final String DEBUG_OVERDRAW_PROPERTY = "debug.hwui.overdraw";

三、开启显示各个view的布局线 : 布局边界

adb shell setprop debug.layout true

# 

adb shell setprop debug.layout false

在这里插入图片描述

系统源码 :

/**
 * When set to true, apps will draw debugging information about their layouts.
 *
 * @hide
 */
public static final String DEBUG_LAYOUT_PROPERTY = "debug.layout";

参考

四、查看dirty区域:

adb shell setprop debug.hwui.show_dirty_regions true

adb shell setprop debug.hwui.render_dirty_regions true

系统源码:

/**
* System property used to enable or disable dirty regions invalidation.
* This property is only queried if {@link #RENDER_DIRTY_REGIONS} is true.
* The default value of this property is assumed to be true.
*
* Possible values:
* "true",  to enable partial invalidates
* "false", to disable partial invalidates
*/
static final String RENDER_DIRTY_REGIONS_PROPERTY = "debug.hwui.render_dirty_regions";


/**
* Turn on to draw dirty regions every other frame.
*
* Possible values:
* "true",  to enable dirty regions debugging
* "false", to disable dirty regions debugging
*
* @hide
*/
public static final String DEBUG_DIRTY_REGIONS_PROPERTY = "debug.hwui.show_dirty_regions";

五、log日志

# 使能所有log tag 输出,设置所有log V等级及以上的log才能输出
adb shell setprop persist.log.tag V
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/sinat_31057219/article/details/132454384

智能推荐

MultipartFile的属性 file.getOriginalFilename()与file.getName()的区别 MultipartFile与File互转_multipartfile属性-程序员宅基地

文章浏览阅读1.9k次,点赞3次,收藏5次。MultipartFile为org.springframework.web.mutipart包下的一个类,也就是说如果想使用MultipartFile这个类就必须引入spring框架,换句话说,如果想在项目中使用MultipartFile这个类,那么项目必须要使用spring框架才可以,否则无法引入这个类。以下基于spring-web.5.2.9.RELEASE源码了解一下MultipartFileMultipartFile注释说明第一句:一种可以接收使用多种请求方式来进行上传文件的代表形式。_multipartfile属性

english-程序员宅基地

文章浏览阅读1.8k次。关于音标: 1.http://blog.hjenglish.com/melodious/category/2060.html(美音听力及发音小技巧) 2.http://det.tjfsu.edu.cn/learning/oral.htm(英语口语学习资源) 3.http://203.68.17.29/mis/mono/kevin/EteachWeb/KK%AD%B5%BC%D0/kk.htm

Android studio升级3.0 carry2 出现问题Gradle sync failed: Connection timed out: connect解决办法_gradle sync failed: read timed out consult ide log-程序员宅基地

文章浏览阅读3.7w次,点赞3次,收藏14次。android studio 3.0升级后报错的解决_gradle sync failed: read timed out consult ide log for more details (help

IText5 PDF合并并且添加书签_itextsharp 添加页签-程序员宅基地

文章浏览阅读290次。多个PDF合并,添加书签,更好的多每个PDF进行定位查看,书签定位带每个PDF的第一页。_itextsharp 添加页签

Qt5 的connect新语法中 lambda表达式的引用传递问题_lambda qt connect 传参-程序员宅基地

文章浏览阅读1.7k次。介绍 Qt5 的 connect 新式语法的文章很多,关于其使用 lambda 表达式的语法也很容易搜到,今天我来一点不一样的干货也可以说是bug,由于个人能力原因,无法深究真正的原因,望神通广大的网友能告知一下,不尽感激。/* * 使用Qt 5.15.0 创建一个新的GUI程序,基类选择QWidget * 同时取消创建 ui界面,在 widget.cpp 中写上下面的代码 * 然后编译执行,在弹出的窗口中,点击QPushButton即可验证*/#include "widget.h"#incl_lambda qt connect 传参

【转】GitLab 7.2.1 升级到 7.14.3 过程中遇到的坑_gitlab gc-程序员宅基地

文章浏览阅读281次。转自:http://dockone.io/article/8413GitLab 7.2.1 升级到 7.14.3 过程中遇到的坑【背景】在此次升级之前,我们线上的 GitLab 7.2.1 版本已经跑了3年之久,其中结合我们自己的 CI/CD 流程添加了一些自定义的 feature,整个 CI/CD 流程运行的也十分顺畅。不过随着微服务、Docker、Kubernetes、Servic..._gitlab gc

随便推点

【瑞萨RA_FSP】SCL UART 串口通信_sci和uart-程序员宅基地

文章浏览阅读1.6k次,点赞3次,收藏11次。串口通讯(Serial Communication)是一种设备间非常常用的串行通讯方式,因为它简单便捷,因此大部分电子设备都支持该通讯方式,电子工程师在调试设备时也经常使用该通讯方式输出调试信息。在计算机科学里,大部分复杂的问题都可以通过分层来简化。如芯片被分为内核层和片上外设。对于通讯协议, 我们也以分层的方式来理解,最基本的是把它分为物理层和协议层。物理层规定通讯系统中具有机械、电子功能部分的特性,确保原始数据在物理媒体的传输。协议层主要规定通讯逻辑,统一收发双方的数据打包、解包标准。_sci和uart

生成模型在知识图谱构建中的应用:如何提高知识抽取和整合能力-程序员宅基地

文章浏览阅读737次,点赞20次,收藏5次。1.背景介绍知识图谱(Knowledge Graph, KG)是一种表示实体、关系和实例的数据结构,它可以帮助计算机理解和推理人类语言中的信息。知识图谱已经成为人工智能和大数据领域的重要技术,它在自然语言处理、推荐系统、问答系统等方面发挥着重要作用。然而,知识图谱的构建是一个非常挑战性的任务,因为它需要从大量的文本数据中自动抽取和整合知识。生成模型(Generative Model)是一类...

我的心得:数据中心运维&管理(二)-程序员宅基地

文章浏览阅读2.9k次。续接:《我的心得:数据中心运维&管理(一)》5:追其根源,防患未然:5Why 分析法在数据中心的应用;如何有效的解决问题,首先需要了解产生此问题的因素和最根本因素;如何寻找根本原因?需要更加有效合理的工具方法,下面给大家介绍一下典型的 5-Why 分析法:什么是 5-Why5-why 的关键在于鼓励解决问题的人要努力避开主观或自负的假设和逻辑陷阱,从结果着手,沿着因果关系链条,顺藤摸瓜,直至找出原_数据中心运维汇报案例

粒子群优化算法(PSO)-程序员宅基地

文章浏览阅读1.9w次,点赞34次,收藏307次。先简单介绍一下粒子群优化算法(Particle Swarm Optimization),后边会介绍一些改进的粒子群算法。1.背景知识受到鸟群觅食行为的启发(鸟群觅食,通过信息共享使种群找到最优的觅食点),由社会心理学家JamesKennedy和电气工程师RussellEberhart于1995年提出,用于解决科学工程领域的非线性,非凸性,组合优化问题;在函数优化,图像处理也有广泛的应用。粒子群优化算法是一种基于数值的优化算法,粒子群优化算法的基础是“信息共享”。具..._粒子群优化算法

刷了LeetCode的链表专题,我发现了一个秘密!!!_leetcode 刷题的链表带不带头结点-程序员宅基地

文章浏览阅读228次,点赞2次,收藏4次。刷了LeetCode的链表专题,我发现了一个秘密!文章目录刷了LeetCode的链表专题,我发现了一个秘密!引言1、链表的几个概念讲解1.1链表中的的指针是什么1.1指针指向哪儿1.3判断边界的条件2、必须掌握的几类题目2.1单链表反转(LeetCode206)2.2链表中环的检测(LeetCode141)2.3两个有序的链表合并(LeetCode21)2.4删除链表(LeetCode18)2.5删除链表倒数第 n 个结点(LeetCode19)2.6求链表的中间结点(LeetCode876)3、学习链表_leetcode 刷题的链表带不带头结点

android studio的安装(补充篇gradle失败的问题更新于 2021-03-10)-程序员宅基地

文章浏览阅读10w+次,点赞199次,收藏864次。本来没有打算写这篇文章的但是很多人看完我的上篇文章之后有所需求特此写下此文附上上篇android studio的安装,史上最详细(超多图)!!先说明原因:gradle资源包是通过android studio 远程访问安卓的gradle仓库进行下载的难免会出现网络不佳,以及被墙的情况(并不是所有人都会遇到)开始正文:1.现象说明gradle失败会显示这个界面2.首先确认自己的g..._补充篇gradle失败的问题

推荐文章

热门文章

相关标签