使用Chrome来调试你的Android App

转载 2016年06月02日 09:07:52

博客源址http://stormzhang.com/android/2015/03/05/android-debug-use-chrome/

个人一直对Chrome情有独钟,Chrome除了更快之外,对开发者的支持更友好。内置强大的Developer Tools,相信Web开发简直爱不释手!而且Chrome Store里提供各种各样的插件,没有你用不到,只有你想不到。现在任何事基本Chrome全部办的到,有时候就在想,如果可以用Chrome调试Android App该多方便,而如今Facebook刚刚开源了一个工具Stetho,从此Chrome调试Android不再是梦。

调试工具

在Android开发中除了一些官方自带的一些调试工具外,还有两个工具我认为是必备的。

  • 抓包工具

windows平台最好用的应该是Fiddle, mac上最好用的应该是Charles。这个应该是App开发必备,不管是Android还是iOS。

  • Sqlite查看

这个工具就多了,除了自带的sqlite3工具之外,还是需要一些GUI方面的工具更方便,就不一一列举了,大家自行搜索找到自己喜欢的工具就行了,有一些浏览器插件,也有一些各个平台的客户端。需要知道的是如果想查看App内的sqlite文件需要root。

Stetho

抓包工具虽然好用,但是每次都要在手机设置代理,也挺麻烦的,查看sqlite文件必须要root这点更麻烦。但是有了stetho,这些工具全部自带了,使用方便,无须root,下面就来看下官方demo介绍的使用用法。

  • 首先Gradle进行依赖
dependencies {
  compile 'com.facebook.stetho:stetho:1.0.1'
}
  • 然后在你的App的Application类里进行配置
public class MyApplication extends Application {
  public void onCreate() {
    super.onCreate();
    Stetho.initialize(
      Stetho.newInitializerBuilder(this)
        .enableDumpapp(
            Stetho.defaultDumperPluginsProvider(this))
        .enableWebKitInspector(
            Stetho.defaultInspectorModulesProvider(this))
        .build());
  }
}

然后就可以运行App进行调试,基本上可以满足调试需求了。

  • Chrome调试

打开Chrome,输入 chrome://inspect 然后就可以在列表里看到有你的app可以用stetho进行调试的app,facebook官方也提供了一个基本的sample,以下是它的sample提供的调试截图

基本功能使用

  • 检测网络状态

  • 查看App本地数据库并且可以直接执行SQL

  • 查看App本地的SharedPreference文件并可以直接编辑

注意事项

值得注意的是如果你只是简单的进行配置下,检测网络状态的是没法查看,有两种方式:

  • 使用OkHttp

这是最简单的一种方式,要求OkHttp的版本在2.2.x+,只需要添加如下代码, 这也是目前最简单的方法

OkHttpClient client = new OkHttpClient();
client.networkInterceptors().add(new StethoInterceptor());
  • 使用HttpURLConnection

如果你使用的自己写的或者其他http library底层是用HttpURLConnection实现的,你需要使用StethoURLConnectionManager来进行集成。然后必须声明Accept-Encoding: gzip的请求headers。具体用法见facebook stetho源码的sample。

其中你可能会依赖如下network helpers.

dependencies {
  compile 'com.facebook.stetho:stetho-okhttp:1.0.1'
}

或者

dependencies {
  compile 'com.facebook.stetho:stetho-urlconnection:1.0.1'
}

最后,提供一个facebook stetho demo的一个下载。

Stetho Sample

相关文章推荐

android 调试工具之facebook stetho介绍

概述Stetho 是 Facebook 开源的一个 Android 调试工具。是一个 Chrome Developer Tools 的扩展,可用来检测应用的网络、数据库、WebKit 、SharePr...

使用谷歌浏览器调试PC网页、手机APP

谷歌即为chrome浏览器,对于开发前端页面有很大的优势。 一、谷歌调试PC网页 (1)首先打开chorme浏览器,输入https://www.baidu.com进入百度页面,在空白页面右击,选中“检...

Android 调试 Web JavaScript / 微信 Web

1、Chrome 浏览器调试准备工作 电脑端、手机端安装 Chrome 浏览器 电脑上安装好 Android SDK ,确认方式为 adb 命令可正常使用 (Android 程序猿可略过…) 建立调试...

android采用Chrome Intent方式实现从浏览器启动应用

介绍通过chrome intent的方式来从浏览器启动应用,并传递参数

Appium自动化测试--使用Chrome调试模式获取App混合应用H5界面元素

使用Chrome调试模式获取App混合应用H5界面元素

JavaScript学习 - Http报文简单解析及session和cookie的使用

HTTP请求报文解剖 HTTP请求报文由3部分组成(请求行+请求头+请求体): 下面是一个实际的请求报文: ①是请求方法,GET和POST是最常见的HTTP方法,除此以外还包括DELETE、...
  • wolflz
  • wolflz
  • 2015年04月26日 21:20
  • 3546

会话状态保持,JSESSIONID,COOKIE,URL重写

今天说说:会话状态保持,JSESSIONID,COOKIE之间的关系在服务器端,我们用惯了session.setAttribute("",userInfo)这样的一行代码,估计你很少想到:服务器与浏览...
  • collonn
  • collonn
  • 2010年06月28日 11:20
  • 38152

Android开发 使用Chrome来调试你的Android App

个人一直对Chrome情有独钟,Chrome除了更快之外,对开发者的支持更友好。内置强大的Developer Tools,相信Web开发简直爱不释手!而且Chrome Store里提供各种各样的插件,...
  • xhf_123
  • xhf_123
  • 2015年11月24日 17:34
  • 658

使用Chrome调试web app

最近接到了一个完全用HTML5开发的项目,由于这个APP运行的时候需要调用Android原生代码,所以HTML5页面不能单独拿出来在Chrome中调试,所以只能用Chrome直接连接手机进行调试,下面...

Android 4.4 KitKat 使用Chrome DevTools 远程调试WebView

至android4.4 发布以来,各个收藏、
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:使用Chrome来调试你的Android App
举报原因:
原因补充:

(最多只允许输入30个字)