使用 chrome inspect 提高开发效率

使用 chrome inspect 提高开发效率

打开 chrome 浏览器,输入网址:chrome://inspect/#devices 即可打开一个新的世界。

一下内容分为三部分:

  1. chrome inspect 的简单介绍;
  2. 如何使用 Stetho
    1. Elements 功能部分
    2. Network 功能部分
    3. Resources 功能部分
  3. 小结

注:以下内容均建立在 Android 手机已经打开了 USB 调试功能,且通过 ADB 连接到电脑上。

且对应安装的应用包不能是 release 包,release 包不支持在线调试功能。

1. 简单介绍

界面如下:

inspect 界面

我们可以通过点击对应包名的 inspect按钮 打开 inspect 面板:

inspect 面板界面部分

谷歌很早就推出了该功能,具体地址如下:
https://developers.google.com/web/tools/chrome-devtools/remote-debugging/?hl=zh-cn

Android 设备的远程调试入门

最初的用处是为了方便调试 webView 界面的,如下所示,所有应用的 webView 界面都可以通过 chrome 浏览器的 inspect 功能查看到,示例如下:

inspect webview

但上述操作流程显得比较繁琐,后来 facebook 推出了一个封装库 stetho,更简单使用,封装了对网络请求的拦截,功能也更强大一些。

github 地址: https://github.com/facebook/stetho

以下内容建立在使用 stetho 的基础上。

2. 如何使用?

如何使用 stetho 呢?

  1. gradle 引入
  2. Application 中初始化

引入代码如下:

// chrome inspector
implementation 'com.facebook.stetho:stetho:1.5.1'
// `stetho-okhttp3` 如果需要对网络拦截,需要导入该引用,不需要则可引入
implementation 'com.facebook.stetho:stetho-okhttp3:1.5.1'
//如果要添加对网络的请求部分,需要添加 OKHttp 库

Application 中初始化:
代码如下:

class TLApplication : Application() {

    override fun onCreate() {
        super.onCreate()

        // 注册 Stetho inspector
        Stetho.initializeWithDefaults(this)
    }

}

按照上述两个步骤,即配置完成。

下面主要讲一下 inspectElementsNetwork 功能

2.1 chrome inspectElements

是的,我们可以通过这个窗口,看到当前界面的布局及当前界面对应类的名称。

对于刚接手一个项目的开发来说,弄清楚类与界面的对应关系至关重要,这是不防使用一个 debug 包,
利用 inspect 功能就可以快速查看界面对应的类名称。

是不是十分方便?

示例如下:

element 选项

从图中可看到,当前的主要界面属于 FirstMainActivity 这个类,

它里面包含 FirstHomeFragmentMoreArticleTagFragment 两个 Fragment,

然后我们就可以通过这些信息,快速定位代码。

同时,在 inspect 窗口的右侧,还有一部分, 里面有一个 Properties 属性

当我们选中 main_view_pager 这个部分后,点击 Properties 后,作用如下,

element 2 properties 图示

会展示出当前选中 元素 的各项信息。

也是个方便的功能点。

注:如果只是想要拿到 当前界面 layout 的信息可以通过 Android StudioTools -> LayoutInspector 选取对应的 Activity 界面获取到,信息更全面。
毕竟是 AS 内置功能,肯定更加好用。
这里不再详细说明,可自行查看。

2.2 chrome inspectNetwork 功能

这部分是我最想说的部分,因为…… 太好用了,太实用了,比起 Charles 方便太多。当然 Charles 有它的用处。

当我们在进行 APP 功能开发时,在调试后端接口是否好用时,我们只需要利用 inspect 工具,就可以十分直观的查看到后端返回的数据样式。

当我们在打开一个 界面时,如果有网络请求,就会在显示出网络请求的返回接口:

后端网络接口的请求结果

其中 Header 里面是这次网络请求的具体 api 地址;
Preview 里面预览后端接口返回的数据样式,我们可通过这一项,快速排查问题,
是否是因为后端没有返回正确的数据,还是因为客户端处理错误,大大提高了开发效率。

同时也可以通过预览数据样式,判断是否是客户端解析数据出错,对应的 key 是否正确。

现在一般 app 都会存在与后端的交互,学会该功能,开发起来简直不要太爽。


美中不足

美中不足的是,当前 Stetho 只支持通过 OKHttp 进行的网络请求,不过 OKHttp 毕竟是官方的,使用的也多,且 Retrofit 也是使用 OkHttp 进行网络请求的,所以也算是涵盖了大部分的场景。


2.3 chrome inspectResources 功能

resources 可以查看「数据库内容」,「 SharedPreference 数据」,不需要我们自行查看数据库文件,可在这里直观得看到是否存储成功,以及现有数据。

界面如下:

inspect 的 resources 功能

3. 小结

当然 chrome inspect 功能不止于此,上面所说的只是我平时喜欢使用的;

当然 Stetho 的功能也不止于此,能力有限,暂时写这么多。

我平时在工作中,十分喜欢使用 inspect 功能,在 debug 是往往能帮忙我节约很多时间。

所以,还不快快使用起来~~~

如果公司内部没有类似的工具,可安利公司使用一下,可以提高很多效率,也是间接的节约了成本。

2019.09.03 by chendroid

PS: 水平有限,上述内容如有错误,请大胆指出.

转载自个人公众号文章:https://mp.weixin.qq.com/s?__biz=MzIxMzIyNTQyNw==&mid=2247483730&idx=1&sn=7cb94c073a416de0090a55a88668fa43&chksm=97bb5beea0ccd2f80b02754e1f8b40fd9b56c8c3c35c64d728ae2c7a8b12f20b27abb908325a&token=1966877851&lang=zh_CN#rd

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,293评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,604评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,958评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,729评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,719评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,630评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,000评论 3 397
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,665评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,909评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,646评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,726评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,400评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,986评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,959评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,996评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,481评论 2 342

推荐阅读更多精彩内容