Stetho简化Android调试(一)
在开发 Android 应用的时候,有时候我们需要查看数据库、SharePreference等。通常的做法是把相关文件pull出来,而前提必须是手机得root。如果没有root,那就只能通过打印或其它方式查看,整个过程非常麻烦。
Chrome的Developer Tools给Web前端开发带来很大便捷。Stetho是Facebook开源的一个工具,我们借助Stetho结合Developer Tools,能够很轻松直观的调试、查看 Android 应用中的数据。
使用步骤
- 添加依赖
dependencies {
compile 'com.facebook.stetho:stetho:1.3.1'
// 如果需要查看网络请求信息(根据需要,选择依赖)
compile 'com.facebook.stetho:stetho-okhttp3:1.3.1' // 使用okhttp3作为网络底层库
compile 'com.facebook.stetho:stetho-okhttp:1.3.1' // 使用okhttp作为网络底层库
compile 'com.facebook.stetho:stetho-urlconnection:1.3.1' // 使用urlconnection作为网络底层库
}
- 在
Application中初始化
public class MyApplication extends Application {
public static OkHttpClient okHttpClient;
public void onCreate() {
super.onCreate();
// 一般使用默认初始化配置足够使用
Stetho.initializeWithDefaults(this);
// 如果需要查看网络请求相关信息(以使用okhttp3为例)
initOkHttpClient();
}
private void initOkHttp() {
okHttpClient = new OkHttpClient()
.newBuilder()
.addNetworkInterceptor(new StethoInterceptor()) // 这里添加一个拦截器即可
.build();
}
}
至此,我们的应用配置完毕。是不是超级简单?
接下来看怎么使用Developer Tools查看应用的各种信息。
- 打开
Chrome输入chrome://inspect

如果第1、2步配置正确的话,就可以看到以上页面。点击inspec:

注意:如果第一次启动,这个页面有可能会一片空白。因为Developer Tools在连接远程服务器,这个连接需要科学上网。如果页面加载成功后再次打开,就不需要科学上网了。
Developer Tools功能说明
- Elements

就像uiautomatorviewer.bat工具一样,可以查看页面视图的层级结构。
- Network

网络请求的会话信息都包含在这里,可以点击单个会话到详情,查看具体的报文信息。如下:

- Resources

在这个选项卡里面,就可以查看应用保存的信息,包括SharePreference、数据库,并且可以执行SQL语句,直接修改SharePreference的内容。如下:


- Console

该控制台允许使用JavaScript代码与应用程序或Android SDK交互。如下:

context.getResources().getString(R.string.app_name);
运行以上代码可以得到应用下对应的字符串资源。
importPackage(android.util);
Log.d("WaitingAnd", "chuang");
运行以上代码可以在Logcat打印一条日志。
importPackage(android.widget);
importPackage(android.os);
var handler = new Handler(Looper.getMainLooper());
handler.post(function() { Toast.makeText(context, "Hello Stetho", Toast.LENGTH_LONG).show() });
运行以上代码可以在应用中直接显示Toast。
注意:使用Console功能需要添加依赖,否则会提示Not supported without stetho-js-rhino dependency
compile 'com.facebook.stetho:stetho-js-rhino:1.4.2'
- Screencast

赶快用起来吧!_
作者:WaitingAnd
链接:https://www.jianshu.com/p/42303aa8299a
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
Stetho简化Android调试(一)的更多相关文章
- Stetho简化Android调试(二)
Stetho简化Android调试(一) 一文中讲述了如何使用Stetho结合Chrome远程调试Android App. Stetho给我们调试带来很大的便利,效率显著提升的同时也产生一个问题:如果 ...
- 在 MAC OS X 安装 ADB (Android调试桥)
什么是 ADB? Android调试桥( adb )是一个开发工具,帮助安卓设备和个人计算机之间的通信. 这种通信大多是在USB电缆下进行,但是也支持Wi-Fi连接. adb 还可被用来与电脑上运行的 ...
- 2.[WP Developer体验Andriod开发]Andriod Studio结合Visual Studio Emulator for Android调试Android App
0. 工欲善其事必先利其器 上一篇博客对比了一下Android和WinPhnoe的布局容器,后续篇章重点放在Android的开发上了. 说到开发就绕不开调试程序,调试Android App我们有2种选 ...
- Android 开发笔记 “android调试遇到ADB server didn't ACK以及顽固的sjk_daemon进程 ”
资源来源:http://blog.csdn.net/wangdong20/article/details/20839533 做Android调试的时候经常会遇到,程序写好了,准备接上手机调试,可不一会 ...
- [Android学习笔记]Android调试
Eclipse Debug 快捷键: [Ctrl + Shift + B]: 添加/取消断点 [F5]:进入方法中 [F6]:单步执行 [F7]:执行完毕此方法 [F8]:继续执行,直接跳到下一个断点 ...
- Android调试优化篇
为了开发出商业级的应用程序,大规模的測试是不可避免的,同一时候为了提高应用程序的执行速度,须要进行必要的优化.在Android中.提供了丰富的调试与优化工具供开发者应用,主要包含模拟器和目标端等两种场 ...
- 2.[Andriod]Andriod Studio结合Visual Studio Emulator for Android调试Android App
0. 工欲善其事必先利其器 上一篇博客对比了一下Android和WinPhnoe的布局容器,后续篇章重点放在Android的开发上了. 说到开发就绕不开调试程序,调试Android App我们有2种选 ...
- cocos2d-js 写日志log 查看日志log Android调试查看log
1 输出日志的方式,当然是cc.log了 2 如何查看日志? a)如果小程序可以先在浏览器上跑,例如用chrome,在控制台就可以看到输出的log: b)如果在真机上调试, ...
- Android调试桥-Android Debug Birdge详解
原文:http://android.eoe.cn/topic/summary Android调试桥-Android Debug Birdge Android调试桥(adb)是一个多功能的命令行功具,它 ...
随机推荐
- UIBezierPath基本使用
UIBezierPath * aPath = [UIBezierPath bezierPathWithArcCenter:point radius:5 startAngle:0 endAngle:2 ...
- 20155324 2016-2017-2 《Java程序设计》第十周学习总结
20155324 2016-2017-2 <Java程序设计>第十周学习总结 教材学习内容总结 Java的网络编程 网络编程 网络编程就是在两个或两个以上的设备(例如计算机)之间传输数据. ...
- pyqt5模块介绍
python各种库介绍 https://wiki.python.org/moin/GuiProgramming PyQt5.QtWidgets 包含控件 PyQt5.QtGui 图 ...
- Canvas画圆形
转载:https://developer.mozilla.org/zh-CN/docs/Web/API/Canvas_API/Tutorial/Drawing_shapes#圆弧 function d ...
- Django之CRM项目Day4-编辑客户 公私户 模糊查询
1.增加客户 2.编辑客户 obj = models.Customer.objects.filter(pk=edit_id).first() form_obj = CustomerForm(insta ...
- moment.js 时间戳转换
1. 一段时间以0点为标准 : 2018-03-15 00:00:00- 2018-03-21 00:00:00 let startTime = moment('2018-03-15').format ...
- Maven 那点事儿(转)
0. 前言 Jason Van Zyl,在 Java 十大风云人物排行榜上或许会看到他. 这兄弟是干嘛的? 他就是 Maven 的创始人,人们都尊称他为“Maven 他爸”. 毋庸置疑,Jason 也 ...
- Git命令用于检查特定提交的差异
假设你的提交日志如下(可以通过 git log 命名查看) commit 14af3315a2b1234daac74ece61ef913007043e06 Author: wuxianqiang &l ...
- 通过Cookie统计上次网页访问时间
servlet类: import java.io.IOException;import java.text.SimpleDateFormat;import java.util.Date; import ...
- 剑指Offer-表示数值的字符串
题目描述 请实现一个函数用来判断字符串是否表示数值(包括整数和小数).例如,字符串"+100","5e2","-123","3.1 ...