使用Xposed强制androidwebView开启debug
2016-11-01 09:59
561 查看
从 https://developer.chrome.com/devtools/docs/remote-debugging 我们可以知道在android 4.4+可以通过在apk中使用下面的代码开启webview的chrome远程调试
但我们开发中接触的apk往往是第三方的,没谁会为我们开启webContentsDebuggingEnabled。而Xposed能强制做到这一点
Xposed能够勾住(Hook) Android应用程序对象的方法,实现AOP,一个简单的例子:
上面的代码可以为QQ打开WebView的webContentsDebuggingEnabled
Xposed工作原理可以参考文档: https://github.com/rovo89/XposedBridge/wiki/Development-tutorial
没有详细的API页面, 因为API也就几个,可以查看源代码: https://github.com/rovo89/XposedBridge/tree/master/src/de/robv/android/xposed
1、需要android 4.4+ Root手机
2、安装 Xposed框架
3、已开启QQ WebView的Apk: webviewdebughook.Apk
原创文章转载请注明:
转载自AlloyTeam:http://www.alloyteam.com/2015/04/%e4%bd%bf%e7%94%a8xposed%e5%bc%ba%e5%88%b6androidwebview%e5%bc%80%e5%90%afdebug%e6%a8%a1%e5%bc%8f/
1 2 | WebView.setWebContentsDebuggingEnabled(<span class="keyword">true</span>); |
Xposed
Xposed能够勾住(Hook) Android应用程序对象的方法,实现AOP,一个简单的例子:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | <span class="keyword">public</span> <span class="keyword">class</span> WebViewHook <span class="keyword">implements</span> IXposedHookLoadPackage { <span class="comment">// handleLoadPackage 会在android加载每一个apk后执行</span> <span class="keyword">public</span> void handleLoadPackage(LoadPackageParam lpparam) throws Throwable { <span class="comment">// 可以从lpparam中获取当前apk的名字</span> <span class="keyword">if</span> (! lpparam.packageName.equals(<span class="string">"com.tencent.mobileqq"</span>)) { <span class="keyword">return</span>; } XposedBridge.log(<span class="string">"WebViewHook handleLoadPackage: "</span> + lpparam.packageName); <span class="comment">// 勾住 WebView 所有的构造器</span> XposedBridge.hookAllConstructors(WebView.<span class="keyword">class</span>, <span class="keyword">new</span> XC_MethodHook() { @Override <span class="keyword">protected</span> void beforeHookedMethod(MethodHookParam param) throws Throwable { <span class="comment">// 打开webContentsDebuggingEnabled</span> XposedHelpers.callStaticMethod(WebView.<span class="keyword">class</span>, <span class="string">"setWebContentsDebuggingEnabled"</span>, <span class="keyword">true</span>); XposedBridge.log(<span class="string">"WebViewHook new WebView(): "</span> + packageName); } }); } } |
Xposed工作原理可以参考文档: https://github.com/rovo89/XposedBridge/wiki/Development-tutorial
没有详细的API页面, 因为API也就几个,可以查看源代码: https://github.com/rovo89/XposedBridge/tree/master/src/de/robv/android/xposed
馋图
拿来主义
1、需要android 4.4+ Root手机2、安装 Xposed框架
3、已开启QQ WebView的Apk: webviewdebughook.Apk
原创文章转载请注明:
转载自AlloyTeam:http://www.alloyteam.com/2015/04/%e4%bd%bf%e7%94%a8xposed%e5%bc%ba%e5%88%b6androidwebview%e5%bc%80%e5%90%afdebug%e6%a8%a1%e5%bc%8f/
相关文章推荐
- 强制开启android webview debug模式使用Chrome inspect
- 强制开启android webview debug模式使用Chrome inspect
- Android强制使用WebView不调用系统或外部浏览器
- Android使用原生组件WebView加载网页和数据的方法
- Android中WebView控件的使用
- android WebView使用cmwap无法联网解决办法
- webView控件基本使用(android)
- android webView 使用方法
- Android中使用WebView, WebChromeClient和WebViewClient加载网页
- Android客户端开发即WebView组件的使用详解
- android 使用webview.copyBackForwardList()来进行判断是否是在当前页打开的链接
- android.webkit.WebView 体验1: 使用html作为UI
- android 学习心得---webview使用得到网页加载时间
- android.webkit.WebView 使用 SINGLE_COLUMN layout algorithm 导致程序意外退出的解决办法
- android 中webView的使用
- Android——WebView组件的使用详解
- android开发中WebView的使用(附完整程序)
- android: 如何开启webview的LBS功能
- android WebView使用cmwap无法联网解决办法
- Android——WebView组件的使用详解