Android 深入系统完全讲解(10)

news2025/1/19 7:52:27

8 如何定位界面,定位代码

这一节我们来说说如何定位界面,这个也是一个神器,今天来讲讲 hierarchyviewer.bat 的用法,AS 也有新的工具,但是我还是喜欢这个工具,于是我们开始讲这个。

我们使用 Genymotion 创建一个 Android 虚拟机启动起来,然后运行 hierarchyviewer.bat 可以看到一个界面。(有时候需要退出去再启动一次,第一次有时出不来信息)

在这里插入图片描述

从这里就能定位到当前的界面,然后这个就提供了一些信息,比如能够让我们很快的找到一些系统控件,比如 StatusBar,如果我们依据这个关键字去找,会找的非常累,因为这个子串不特殊,但是我们看到一个 AssistPreviewPanel 很特殊,于是用这个去找到方法是最好的方式,我们代码中搜索下。
在这里插入图片描述

通过这个找到方法,然后我们把这个替换成 StatusBar,去检索定位。setTitle(“StatusBar”)
然后我们回到正题,我们可以看到每一个 View(显示界面),那么点击 LoadView Hierarchy这个我们可以看到布局信息,

在这里插入图片描述
这里很重要的信息,右上角的区域可以快速的定位一个位置,而左边的是详细的,有下角显示一个边界信息。

我们放到左侧,看看这里的信息:

在这里插入图片描述
我们定位界面的时候,找到这个 View 树里面的特殊 View,或者是特殊的 id,用这两个信息在代码中便可以快速的定位到对应的布局文件。

在我们找的时候,可以点击某个灰色框,这样子它会显示这部分的实际效果,这个能够让我们定位具体控件的时候加速,这样子你就可以确定是不是有你要找的控件,如果没有直接可以排除这个目录树,是不是很快就能定位下去,找到你要的那个 View。
在这里插入图片描述

这一节就分享这个技巧,这也是我在找布局的一个方法,总结起来就是特殊字串,特殊 id,特殊 View。

一个界面要快速定位,需要找到这个界面特殊性,很多人处理问题不会找关键字,导致定位不出来,搜索出来一堆无用信息。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/155389.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Win32公共控件使用,进度条实现Marquee样式

参考:https://learn.microsoft.com/zh-cn/windows/win32/controls/progress-bar-control Comctl的全称是Common Controls,也就是公共控件的意思,属于Windows系统的一部分,提供了一组标准的UI控件,如Button、ListView等等。 Comctl32主要有两个大版本,v5和v6,最明显的两个…

【C++11】新特性入门

目录 一、C11简介 二、列表初始化 三、声明 1. auto 2. decltype 3. nullptr 四、范围for 五、STL中一些变化 1. array容器 2. forward_list容器 3. unordered_map和unordered_set容器 一、C11简介 在2003年C标准委员会曾经提交了一份技术勘误表(简称TC1)&#xff…

IOzone I/O测试工具使用说明

IOzone磁盘读写工具使用说明0. IOzone简介1. 下载及安装1.1 下载1.2 编译并安装1.3 IOzone 效用测量什么?2. IOzone参数介绍3. 10 个 IOZone 示例3.1 使用默认值运行所有 IOZone 测试3.2 使用 iozone -b 将输出保存到电子表格3.3 使用 iozone -i 仅运行特定类型的测…

BMP图片格式分析(超详细)

系列文章目录 文章目录系列文章目录前言一、BMP格式概览二、实战分析bmp图片数据前言 对学习C感兴趣的可以看看这篇文章哦:C/C实战入门到精通 BMP图片大家见的应该也比较多,它是一种非常基本的图片格式 因为最近对C生成二维码比较感兴趣,用…

【golang】rune

一、背景 来看下2023.1.11的每日一题,是个简单题 2283. 判断一个数的数字计数是否等于数位的值几乎都有思路,先遍历一遍把数存在map中,第二次遍历直接判断就可以。 二、解答 我的解答(很久不写代码了) 开始想着map的…

autoCell:用于scRNA-seq的分析工具

目录简介引言相关工作贡献数据集和对比方法autoCell高斯混合模型图嵌入结果插补去噪后轨迹分析潜在特征捕获细胞病理学发现细胞类型特异性分子网络简介 动机:scRNA-seq使研究人员能够以单细胞分辨率研究基因表达。然而,由dropout引起的噪声可能会妨碍精…

mac快速配置iterm2

文章目录安装 iterm2设置为默认终端安装 oh-my-zsh 设置默认 shell查看 shell 有几种安装 oh-my-zsh设置默认 shell配置主题安装插件安装高亮插件设置快捷键安装 iterm2 自行官网下载 iterm2 设置为默认终端 Mac 默认终端即“终端”,我们可以把好用的 iterm2 设置…

Pytorch复习笔记--导出Onnx模型为动态输入和静态输入

目录 1--动态输入和静态输入 2--Pytorch API 3--完整代码演示 4--模型可视化 5--测试动态导出的Onnx模型 1--动态输入和静态输入 当使用 Pytorch 将网络导出为 Onnx 模型格式时,可以导出为动态输入和静态输入两种方式。动态输入即模型输入数据的部分维度是动态…

Elasticsearch:运用 Go 语言实现 Elasticsearch 搜索 - 8.x

在我之前的文章 “Elasticsearch:Go 客户端简介 - 8.x”,我对 Elasticsearch golang 客户端做了一个简单的介绍。在今天的这篇文章中,我将详细介绍如何使用这个客户端来一步一步地连接到 Elasticsearch,进而创建索引,搜…

流程编辑器bpmnjs的改造1:设计器外观和布局

重新设计页面,弄一个比较规范的设计器外观和布局,bpmnjs.css加入如下的代码:/* Frame CSS */html,body{width:100%;height:100%}.toolsBar{position:fixed;width:100%;height:40px;background-color:#FFF; border-bottom:1px solid #E1E1E1;d…

Linux安装Docker完整详细教程

目录 Docker及系统版本 Docker的自动化安装 Docker的手动安装(CentOS7) 1.1 卸载历史版本的Docker 1.2 安装依赖包 1.3 更新本地镜像源(也可以叫做:设置源仓库) 1.4 Docker安装 1.5 配置镜像加速 Docker启动 删除Docker Docker其…

连接池PgBouncer部署与踩坑实践

安装 可以直接使用 yum install pgbouncer 安装(rpm管理的是1.14版本) 或者在http://www.pgbouncer.org/downloads/ 下载最新的tat.gz包 解压出来进入目录,通过 ./configure --prefix/home/pgbouncermake & make install 安装&…

01等概率发生器、随机函数、对数器

1.数据结构 数据结构:是由连续结构、跳转结构或者连续加跳转(可能有多个叉)结构组成 数据结构是很多算法得以进行的载体 数组:便于寻址不便于删增数据(需要不断移动数据,如果不动可能就不是连续结构) 链表(跳转结构…

jupyter notebook 暗黑模式新方法

1 直接浏览器采用暗黑模式 (1)首先我们打开谷歌浏览器,在浏览器地址栏中输入“chrome://flags”然后按下回车键。 (2)之后我们会进入谷歌浏览器的实验室页面,在页面左上方的搜索框中输入“enable-force-…

DocuWare客户案例——温德姆镇使用 DocuWare Cloud 改善市民服务

DocuWare客户案例——温德姆镇使用 DocuWare Cloud 改善市民服务 新冠疫情刚开始时,州和地方政府除了发挥传统作用以外,还要负责遏制疫情的关键措施。税收和联邦援助的收入没有增加,跟不上这一新职责的需求。采用减轻管理负担的技术是节省资源…

2022十大边缘计算开源项目

随着“开源”被纳入“十四五”规划发展纲要,“支持数字技术开源社区等创新联合体发展,完善开源知识产权和法律体系,鼓励企业开放软件源代码、硬件设计和应用服务”。开源发展按下了加速键! 开源软件生态蓬勃发展,边缘…

Internet结构和ISP

目录 1. ISP / IXP / ICP 定义 2. 网络连接宏观结构 3. 网络连接层级结构 4. ISP 连接方式 1. ISP / IXP / ICP 定义 ISP:Internet Service Provider,即互联网服务提供商。主要为用户提供互联网接入业务、信息业务的运营商,如移动和电信等。 …

数据结构学习之栈

这里写目录标题栈的定义与性质栈的实现栈的定义栈的功能栈的创建入栈出栈栈顶判断栈为空得到栈的个数栈的销毁栈的定义与性质 第一个问题:什么是栈? 栈的定义是: 一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。…

【从零开始学习深度学习】45. Pytorch迁移学习微调方法实战:使用微调技术进行2分类图片热狗识别模型训练【含源码与数据集】

通常为了使模型的预测精度达到较高的标准,需要收集十分庞大的数据集来进行模型训练。一种比较巧妙解决该问题的办法是应用迁移学习(transfer learning),将从某个已有的数据集学到的知识迁移到目标数据集上。例如,假如我…

微信小程序安装 Vant 组件库与API Promise组件库并实现简单的增删改查

在项目内右键空白处选择在外部终端打开2、在终端窗口输入 npm init -y,创建package-lock.jsonnpm init -y3、在终端输入npm i vant/weapp1.3.3 -S --production,创建node_modules文件夹npm i vant/weapp1.3.3 -S --production4、详情-本地设置&#xff0…