Android debugging tool and android debugging
StethoIt is an open-source debugging tool for Facebook's Android platform. Stetho can view the App layout, Sqlite, SharedPreference, and Network through Chrome without the root phone. It also supports creating Dump files.
It is very important to use Stetho to understand that Stetho is a debugging tool. In theory, it can only be used for debugging packages. If it is applied to the Release package, all your app data will be exposed. Our code is implemented with this as the center.
Core code implementation: First add Stetho reference
Add the dependency of Stetho directly to the Gradle file.
compile 'com.facebook.stetho:stetho-okhttp:1.1.1'debugCompile 'com.facebook.stetho:stetho:1.1.1'
The dependency of Stetho only needs to be packaged in Debug mode, but not in Release mode.
Stetho-okhttp is the dependency required to obtain Network data. Because there is dependency in the project, only dependencies of all modes can be added. See the following code.
Create an AndroidManifest and Application for the Debug package in a specific location.
As shown in, create the debug folder under the src directory of the main project. If you do not need the Dump function, you only need to create the AndroidManifest file and Application file.
In AndroidManifest, specify that Debug starts the app from DebugApplication.
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" package="com.debug.xsldebug"> <application tools:replace="android:name" android:name=".activity.message.XSLDebugApplication" /></manifest>
DebugApplication inherits the original Application of the Application and adds the Stetho initialization code.
<pre name="code" class="java">public class XSLDebugApplication extends XSLApplication { @Override public void onCreate() { super.onCreate(); Stetho.initialize( Stetho.newInitializerBuilder(this) .enableDumpapp(Stetho.defaultDumperPluginsProvider(this)) .enableWebKitInspector(Stetho.defaultInspectorModulesProvider(this)) .build()); } private static class XSLDumperPluginsProvider implements DumperPluginsProvider { private final Context mContext; public XSLDumperPluginsProvider(Context context) { mContext = context; } @Override public Iterable<DumperPlugin> get() { ArrayList<DumperPlugin> plugins = new ArrayList<DumperPlugin>(); for (DumperPlugin defaultPlugin : Stetho.defaultDumperPluginsProvider(mContext).get()) { plugins.add(defaultPlugin); } plugins.add(new XSLDumperPlugin()); return plugins; } }}
After the preceding settings, the app supports the basic functions of Stetho. You can use Chrome's device check or directly access chrome: // inspect/# devices to find the currently connected device.
To support viewing Network information, perform the following additional configurations:
Using the Okhttp network framework, you can easily integrate Stetho. If HttpURLConnection is used, it will be a lot of trouble. Our network framework is Okhttp2.2 +, so we can easily integrate Stetho.
Public String okHttpPost (String url, List <BasicNameValuePair> nameValuePairs) {String result = StringUtils. EMPTY_STRING; OkHttpClient client = OkHttpClientFactory. createDefault (); if (BuildConfig. DEBUG) {// Add Stetho-okhttp support client in the debug package. networkInterceptors (). add (new com. facebook. stetho. okhttp. stethoInterceptor ();} Request request = new Request. builder (). url (url ). post (getFormEncodingBuilder (nameValuePairs ). build ()). build (); try {Response response = client.newcall(requestcmd.exe cute (); if (response. isSuccessful () {return response. body (). string () ;}} catch (Exception e) {e. printStackTrace ();} return result ;}
Only the Debug package must support Stetho and the Release package is not required. But even the Release package will Build this line of code, so in the initial dependency, Stetho-Okhttp depends on Compile instead of debugCompile.
Preview:
1. view the Layout
2. Check Sqlite and execute SQL statements. Note: The command line is not in the Console window.
3. View Network requests.
4. Create Dump. In fact, this function has not been tried, because there is no need for dump.
Liang Jianbin of Apricot Forest R & D
Copyright Disclaimer: all of the above content is shared by xingshu Lin every week. We hope to share with a wider audience of technical staff the experience that xingshu loves work and technology and grow with everyone. If you have any questions, you can use the QQ Group apricot forest development space (246078103) to communicate with the technical staff. This article is the original article of the blogger and cannot be reproduced without the support of the blogger.