• Facebook 调试工具Stetho配置入门


    I decided to spend a few hours on Stetho.
    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  +" , " + TBL_USR_CLMN_SURNAME +" , " + TBL_USR_CLMN_CODE  +")" + "  VALUES('PAOLO6','ROSSI6', 4443343 )");
    
        }

    You can navigate on the data on the WebSQL entry.

    And you can run queries on your db...(!)

    Of course it is only a first glance at this tool but it is enough to check the power of this debug tool. 

    转自:http://gmariotti.blogspot.it/2015/07/a-first-glance-at-stetho-tool.html

  • 相关阅读:
    Postman安装出错.NET Framework 4.5 failed to install
    给小白的资源
    windows update自启动解决方法
    Fragment简介及使用
    samba修复
    我的Android知识结构图——20200507停止更新,后续通过标签或分类继续完善结构图
    Android_适配器(adapter)之BaseAdapter
    Android_适配器(adapter)之SimpleAdapter
    Android_适配器(adapter)之ArrayAdapter
    Linux部分场景非常有用的命令集1_chattr&ldd&xargs&screen&ssh&磁盘&du
  • 原文地址:https://www.cnblogs.com/spring87/p/4677291.html
Copyright © 2020-2023  润新知