個人一直對Chrome情有獨鍾,Chrome除了更快之外,對開發者的支援更友善。內建強大的Developer Tools,相信Web開發簡直愛不釋手!而且Chrome Store提供各式各樣的插件,沒有你用不到,只有你想不到。現在任何事基本Chrome全部辦的到,有時候就在想,如果可以用Chrome調試Android App該多方便,而如今Facebook剛剛開源了一個工具Stetho,從此Chrome調試Android不再是夢。
調試工具
在Android開發中除了一些官方自帶的一些調試工具外,還有兩個工具我認為是必備的。
1.抓包工具
windows平台最好用的應該是Fiddle,mac上最好用的應該是Charles。這應該是App開發必備,不管是Android還是iOS。
2.Sqlite查看
這個工具就多了,除了自帶的sqlite3工具之外,還是需要一些GUI方面的工具更方便,就不一一列舉了,大家自行搜索找到自己喜歡的工具就行了,有一些瀏覽器插件,也有一些各個平台的客戶。要知道的是如果想查看App內的sqlite檔需要root。
Stetho
抓包工具雖然好用,但是每次都要在手機設定代理,也挺麻煩的,查看sqlite文件必須要root這點更麻煩。但有了stetho,這些工俱全部自備了,使用方便,無須root,下面就來看下官方demo介紹的使用用法。
1.首先Gradle進行依賴
dependencies { compile 'com.facebook.stetho:stetho:1.0.1' }
2.然後在你的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進行調試,基本上可以滿足調試需求了。
3.Chrome調試
打開Chrome,輸入chrome://inspect 然後就可以在列表裡看到有你的app可以用stetho進行調試的app,facebook官方也提供了一個基本的sample,以下是它的sample提供的調試截圖
基本功能使用
1.檢測網絡狀態
2.查看App本地資料庫並且可以直接執行SQL
2.查看Appc直接編輯注意事項值得注意的是如果你只是簡單的進行配置下,檢測網絡狀態的是沒法查看,有兩種方式:1.使用OkHttp這是最簡單的一種方式,要求OkHttp的版本在2.2.x+,只需要添加如下程式碼, 這也是目前最簡單的方法OkHttpClient client = new OkHttpClient(); client.networkInterceptors().add(new StethoInterceptor());2.使用HttpURLConnection如果你使用的自己寫的或者其他http library底層是用HttpURLConnectionLConnectionLConnection實現的,你需要使用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' }更多使用Chrome瀏覽器調試Android App詳解相關文章請關注PHP中文網!