博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Facebook 调试工具Stetho配置入门
阅读量:6500 次
发布时间:2019-06-24

本文共 3676 字,大约阅读时间需要 12 分钟。

I decided to spend a few hours on .

Stetho is a sophisticated debug bridge for Android applications.
How to enable it
It is very simple to enable Stetho.
Just add these lines to your build.gradle:

dependencies {
// Stetho core compile 'com.facebook.stetho:stetho:1.1.1' //If you want to add a network helper compile 'com.facebook.stetho:stetho-okhttp:1.1.1' }

Then in your Application you can enable the tool just adding: 

Stetho.initialize(                    Stetho.newInitializerBuilder(this) .enableDumpapp( Stetho.defaultDumperPluginsProvider(this)) .enableWebKitInspector( Stetho.defaultInspectorModulesProvider(this)) .build());

In my simple application, I have a network call with okhttp-client , a simple value in the shared preferences, and a small db with one table.

Now the last step: Run the application and just open Chrome on your pc (where the device is plugged). 
In your chrome just navigate on chrome://inspect 
As you can see in the image you can see 2 apps running in my device (I love Nexus4 for this kind of tests....)

  • Chrome
  • My Stetho Test App

How can I use it

Here you can open a magical world...clicking the inspect link.
First of all you can see the elements tab.
Here you can navigate in the elements inside your Activity......
Here a first surprise...clicking on the entry on the tab, the element is highlighted on the device !
 
The network tab. 
If you work with the Chrome Developer Tools, you know it very well. Here you can see the network calls with their data.
In my app I do a simple call with okhttp

OkHttpClient client = new OkHttpClient(); client.networkInterceptors().add(new StethoInterceptor()); Request request = new Request.Builder() .url("https://google.com") .build(); client.newCall(request).enqueue(new Callback() { @Override public void onFailure(Request request, IOException e) { //do something } @Override public void onResponse(Response response) throws IOException { //do something } });

Here the tab:

The Resources tab.
In my sample app I am setting a simple value in the SharedPreferences.

SharedPreferences.Editor editor = getSharedPreferences("TEST", MODE_PRIVATE).edit(); editor.putString("name", "Paolo"); editor.putInt("idName", 12); editor.commit();

You can check this value in the navigating in the Local Storage entry.

Also I use a simple SQLiteOpenHelper to manage a very small database with just a table.

private static final String CREATE_DATABASE = "CREATE TABLE " + TBL_USR + " ( " + TBL_USR_CLMN_ID + " INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, " + TBL_USR_CLMN_NAME + " TEXT NOT NULL, " + TBL_USR_CLMN_SURNAME + " TEXT NOT NULL, " + TBL_USR_CLMN_CODE + " INTEGER NOT NULL DEFAULT 0 " + ")"; @Override public void onCreate(SQLiteDatabase db) { db.execSQL(CREATE_DATABASE); db.execSQL("INSERT INTO " + TBL_USR + " " + "("+ TBL_USR_CLMN_NAME +" , " + TBL_USR_CLMN_SURNAME +" , " + TBL_USR_CLMN_CODE +")" + " VALUES('PAOLO1','ROSSI1', 233432 )"); db.execSQL("INSERT INTO " + TBL_USR + " " + "("+ TBL_USR_CLMN_NAME +" , " + TBL_USR_CLMN_SURNAME +" , " + TBL_USR_CLMN_CODE +")" + " VALUES('PAOLO2','ROSSI2', 103213 )"); db.execSQL("INSERT INTO " + TBL_USR + " " + "("+ TBL_USR_CLMN_NAME +" , " + TBL_USR_CLMN_SURNAME +" , " + TBL_USR_CLMN_CODE +")" + " VALUES('PAOLO3','ROSSI3', 5454331 )"); db.execSQL("INSERT INTO " + TBL_USR + " " + "("+ TBL_USR_CLMN_NAME +" , " + TBL_USR_CLMN_SURNAME +" , " + TBL_USR_CLMN_CODE +")" + " VALUES('PAOLO4','ROSSI4', 5454444 )"); db.execSQL("INSERT INTO " + TBL_USR + " " + "("+ TBL_USR_CLMN_NAME +" , " + TBL_USR_CLMN_SURNAME +" , " + TBL_USR_CLMN_CODE +")" + " VALUES('PAOLO5','ROSSI5', 1231232 )"); db.execSQL("INSERT INTO " + TBL_USR + " " + "("+ TBL_USR_CLMN_NAME +

转载地址:http://ihtyo.baihongyu.com/

你可能感兴趣的文章
cocos2d-x3.x屏蔽遮罩层屏蔽触摸button
查看>>
实战使用Axure设计App,使用WebStorm开发(1) – 用Axure描述需求
查看>>
安德鲁斯----多媒体编程
查看>>
ZOJ 1203 Swordfish 旗鱼 最小生成树,Kruskal算法
查看>>
swift版的元组
查看>>
磁盘管理 之 parted命令添加swap,文件系统
查看>>
什么是redis,redis能做什么,redis应用场景
查看>>
[关注]Visual Studio 2010 和 .NET Framework 4.0 专题
查看>>
信息系统开发平台OpenExpressApp - 支持差异保存
查看>>
linux下的webserver BOA及CGIC库的使用指南(转帖)
查看>>
[zz]在linux中出现there are stopped jobs 的解决方法
查看>>
Delphi下实现全屏快速找图找色 一、数据提取
查看>>
查询表字段信息
查看>>
Mysql中文输入出现1366错误的解决办法
查看>>
CentOS 6.4 x86_64 安装GCC 4.7.3
查看>>
logback与Log4J的区别
查看>>
关于机器学习的最佳科普文章:《从机器学习谈起》
查看>>
咏南新CS三层开发框架
查看>>
dxFlowChart运行时调出编辑器
查看>>
TDiocpCoderTcpServer返回数据记录有条数限制的问题
查看>>