日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

android调试神器Stetho

發布時間:2025/3/15 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android调试神器Stetho 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言:

在我們平時開發中,經常會用到網絡請求,sharepreference或者是數據庫,但是要做調試的時候卻很麻煩.網絡請求需要用抓包,數據庫調試起來就更麻煩了,需要root手機,并且頻繁的打開DDMS導出數據庫,然后才能打開.所以facebook開源了一款工具,可以通過Chrome對安卓程序進行一系列的調試

項目DEMO源碼

https://github.com/yulyu2008/StethoDemo

1.簡單使用

1.1添加grade

compile ‘com.facebook.stetho:stetho:1.1.1’

只有stetho庫是必須的,想查看網絡請求的話,需要使用下面的兩個庫之一(看你的網絡庫用的是okhttp還是urlconnection)

compile ‘com.facebook.stetho:stetho-okhttp3:1.3.1’?
或者?
compile ‘com.facebook.stetho:stetho-urlconnection:1.3.1’

1.2初始化

public class XiayuApplication extends Application {@Overridepublic void onCreate() {super.onCreate();Stetho.initialize(Stetho.newInitializerBuilder(this).enableDumpapp(Stetho.defaultDumperPluginsProvider(this)).enableWebKitInspector(Stetho.defaultInspectorModulesProvider(this)).build());//注意:下面這段話是為okhttpclient配置攔截器,只有用這個okhttpclient請求數據才能被攔截OkHttpClient client = new OkHttpClient.Builder().addNetworkInterceptor(new StethoInterceptor())//添加Stetho的攔截器.build();//使用自定義的OkHttpClientOkHttpUtils.initClient(client);

1.3模擬網絡請求代碼,數據庫使用等代碼

這里只貼出SharedPreferences模擬代碼

public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);SharedPreferences sp = getSharedPreferences("config", 0);SharedPreferences.Editor edit = sp.edit();edit.putString("name", "xiayu");edit.putBoolean("handsome?", true);edit.commit();} }

這里貼出網絡請求模擬代碼(這里用的是Okhttputils模擬網絡請求,記得要初始化,初始化方法在上面的XiayuApplication 代碼中有)

public void net(View v) {OkHttpUtils.get().url("https://api.douban.com/v2/movie/top250").addParams("start","0").addParams("count","10").build().execute(new StringCallback() {@Overridepublic void onError(Call call, Exception e, int id) {System.out.println("請求失敗");}@Overridepublic void onResponse(String response, int id) {tv.setText(response);System.out.println("請求成功");}});}

1.4使用Stetho進入調試

在Chrome瀏覽器中輸入 chrome://inspect/#devices

在這里能夠看到你的項目,點擊inspect進入調試

在Resources這里能夠看到SharedPreferences以及數據庫中存儲的數據(數據庫在Web SQL里面)

在Network這里能夠看到http請求

2.高級使用(debug包中能夠調試,release包中不允許調試)

如果只是按照上面的配置,那么無論是在debug包中,還是在正式發布的release包中都能夠調試,那么會把調試功能都暴露在正式版本中,所以接下來是介紹如何只在debug版本中開啟調試

2.1跟換gradle配置

將compile換成debugCompile ,這樣在debug版本中才會依賴這些框架

debugCompile 'com.facebook.stetho:stetho:1.1.1' debugCompile 'com.facebook.stetho:stetho-okhttp3:1.3.1'

2.2更換初始化的配置

在src目錄下新建一個debug目錄,并創建一個debug的Application和AndroidManifest

debug的Application繼承項目中的Application,并對stetho做初始化

public class MyDebugApplication extends XiayuApplication{@Overridepublic void onCreate() {super.onCreate();Stetho.initialize(Stetho.newInitializerBuilder(this).enableDumpapp(Stetho.defaultDumperPluginsProvider(this)).enableWebKitInspector(Stetho.defaultInspectorModulesProvider(this)).build());}}

debug的AndroidManifest配置如下

<?xml version="1.0" encoding="utf-8"?> <manifest package="com.xiayu.stethodemo"xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"><applicationandroid:name="debugapp.MyDebugApplication"tools:replace="android:name"/></manifest>

這樣就大功告成了, 以后調試就變得 so easy了

3.項目DEMO源碼

https://github.com/yulyu2008/StethoDemo

注意:如果你能夠看到你的項目,但是點擊inspect后彈出的窗口一直顯示空白的話,可能你的調試被攔截了,這個情況需要開啟vpn才能夠調試(如果自己沒有vpn,可以考慮使用免費的vpn藍燈–lantern,這里就不介紹怎么使用vpn了)

4.補充

經過測試,只有在第一次打開調試界面的時候需要vpn,之后使用的時候就不需要vpn了,如果沒有vpn的可以自己下一個藍燈–lantern


原文地址: http://blog.csdn.net/yulyu/article/details/54980871

總結

以上是生活随笔為你收集整理的android调试神器Stetho的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。