android webview远程调试
H5的调试的方式一般用chrome的emulator就好,可是遇到APP就拙计了。这时候还得用远程调试,远程调试很给力,不过目前网上还没有好的文章讲解,要好好的把其配置下来还是非常有难度的,今天折腾了半天,终于弄好,分享一下
配置需求
话说其配置也是非常有考究的,和ios开发一样,都是有门槛的货,告诉大家屌丝误入,不过这个条件作为屌丝的我也算是打了擦边球,唯一要求就是android系统要4.0以上才支持
app代码
如果需要调试那么,代码中一定要先在,apk生成前的开发包中的manifest.xml文件中加入如下两句
{
"name": "My extension",
…
"permissions": [
"debugger",
],
…
}
重点是permissions和其他的功能一样都要注册一下先,参考https://developer.chrome.com/extensions/debugger
然后还要在Main文件里加上这个句,表示在android中启动这个功能,话说app的开发有点废柴,这种代码又难记又和功能耦合的紧,非ctrl+c,ctrl+v如何破,详情https://developer.chrome.com/devtools/docs/remote-debugging#debugging-webviews
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
if ( 0 != ( getApplcationInfo().flags &= ApplicationInfo.FLAG_DEBUGGABLE ) ) {
WebView.setWebContentsDebuggingEnabled(true);
}
}
安装设备驱动
插上设备的USB后进行OEM的安装,很多自动更新驱动不要信啊,从这里下驱动http://developer.android.com/tools/extras/oem-usb.html 安装方式【以win7为例】
- 1.链接设备
- 2.点击我的电脑右键选择管理
- 3.选择设备管理器
- 4.找到相应的设备后
- 5.点击右键选择更新驱动软件
- 6.选择浏览计算机以查找驱动程序软件 (根据这里面的说明安装http://developer.android.com/tools/extras/oem-usb.html)我由于是googleNesus系列就用了http://developer.android.com/sdk/win-usb.html)
- 7.点击下一步安装驱动
这些比较简单,但是需要注意的是是除了原生的驱动也许还有interface之类的驱动也得完美无缺的装上。我的nexus就得这样搞得我第一次以为我的机器不支持远程调试呢。 (根据这里面的说明安装http://developer.android.com/tools/extras/oem-usb.html)我由于是googleNesus系列就用了http://developer.android.com/sdk/win-usb.html
调试hybrid
输入网址chrome://inspect/#devices 打好勾,然后hybrid的页面自然呈现了,点击inspect就可以了 理论上是这样的,不过,如果您的效果是ok的,我就跪了,今天研究了半天主要遇到这个槛了。找了一下原因原来是有两个变量undefined
ncaught ReferenceError: InspectorFrontendAPI is not defined
Uncaught ReferenceError: WebInspector is not defined
找了半天确实stackoverflow上有一篇一样的问题,但是没人回答… http://stackoverflow.com/questions/21801324/inspectorfrontendapi-is-not-defined-during-chrome-remote-debugging 后来发现不回答却是是这样的,通过抓包工具,了解到,原来是请求被拒了,这只有伟大的天朝能干的出来。 我用了三种代理的方式翻墙,facebook都看腻了还是访问不到,facebook已经被我上的快玩坏了。 最后还是靠vpn解决了,(推荐greenvpn免费) 不过还好这个访问的是配置文件,也就是说执行完一次如果保存成功,将不再继续访问了。 好了,大功告成,慢慢打断点调试吧.
参考文章
https://developer.chrome.com/devtools/docs/remote-debugging
https://developer.chrome.com/devtools/docs/debugger-protocol
https://developer.chrome.com/extensions/debugger
http://developer.android.com/tools/extras/oem-usb.html
http://developer.android.com/tools/device.html
android webview远程调试的更多相关文章
- Android Stadio调试gradle 插件 || Android Stadio 远程调试 || Anroid APT调试
有时候,自己开发了gralde插件,想调试一下.毕竟打印log 成本太高.效率太低.怎么做呢? 第一种方法: 1.执行gradlew 命令的时候,加上几个参数:-Dorg.gradle.debug=t ...
- android:如何通过chrome远程调试APP中的webView的h5代码
今天出现一个问题,在老板的Mate9 Pro上,我们APP的所有H5页面都是一片空白,但是在其他手机上都是好的,那么我们就怀疑是h5报错了,但是到底是什么错,无法得知,所以就想要可以像在pc的chro ...
- Mobile Web 调试指南(2):远程调试
原文:http://blog.jobbole.com/68606/ 原文出处: 阿伦孟的博客(@allenm ) 第一篇中讲解了如何让手机来请求我们开发电脑上的源码,做到了这步后,我们可以改完代码立即 ...
- 安卓手机移动端Web开发调试之Chrome远程调试(Remote Debugging)
一.让安卓打debug模式的apk包 二.将电脑中的chrome升级到最新版本,在chrome浏览器地址栏中输入chrome://inspect/#devices: 在智能手机还未普及时,移动设备的调 ...
- chrome 远程调试(转)
http://www.tuicool.com/articles/ZJfeAzi 由于 appspot.com被墙,一般调试不成功. 随着智能手机的普及,移动设备的浏览器功能越来越强大,我们用手机上网时 ...
- 使用chrome远程调试设备及调试模拟器设备
使用chrome开发工具远程在Android上远程调试 准备工作 开始远程调试之前,需要做好如下准备: 在你电脑上安装Chrome 32 或者更新的版本 一根连接Android设备的USB线 手机系统 ...
- chrome 远程调试相关问题
1.使用chrome remote debug时打开inspect时出现一片空白 2.如何不用FQ可以享受Chrome for android的远程调试功能 3.chrome://appcache-i ...
- Android WebView File域同源策略绕过漏洞浅析
0x00 我们首先讲一个webView这种方法的作用: webView.getSettings().setAllowFileAccessFromFileURLs(false); ...
- 真机远程调试 ( IOS Android 以及微信,weex)
1.以前cordova远程调试,Android的直接连接USB后,用chrome打开chrome://inspect网址 IOS的打开Safari的developer下. 这是因为cordova的we ...
随机推荐
- YUV格式分析
转自:http://www.cnblogs.com/armlinux/archive/2012/02/15/2396763.html Andrew Huang <bluedrum@163.com ...
- MongoDB由于目标计算机积极拒绝,无法连接
遇到这个问题的时候,可以通过以下步骤解决: 1.打开Mongo安装包:进入Mongo下的data文件夹下的db文件夹,找到Mongod.lock,删除. 2.在命令行中输入: mongod.exe - ...
- nil、Nil、NULL、NSNull的区别
nil:指向一个对象的空指针,对objective c id 对象赋空值. Nil:指向一个类的空指针,表示对类进行赋空值. NULL:指向其他类型(如:基本类型.C类型)的空指针, 用于对非对象指针 ...
- Uva 242 邮票和信封
题目链接:https://vjudge.net/contest/146179#problem/D 题意: 信封上最多贴S张邮票.有N个邮票集合,每个集合有不同的面值.问哪个集合的最大连续邮资最大,输出 ...
- Selenium的PO模式(Page Object Model)|(Selenium Webdriver For Python)
研究Selenium + python 自动化测试有近两个月了,不能说非常熟练,起码对selenium自动化的执行有了深入的认识. 从最初无结构的代码,到类的使用,方法封装,从原始函数 ...
- MySQL常用语句
第1章 SQL结构化语言 1.什么是SQL? SQL,英文全称Structured Query Language,中文意思是结构化查询语言,它是一种关系型数据库中的数据进行定义和操作的语言方法,是大多 ...
- tomcat源码分析(一)从tomcat架构说起
p { margin-bottom: 0.25cm; line-height: 120% }
- intel82599在centos6.5下编译安装
.intel驱动下载地址:https://sourceforge.net/projects/e1000/files/ixgbe%20stable/ .编译安装步骤 yum install kernel ...
- 游戏对象消失三种方法的区别?(enabled/Destroy/active)
gameObject.renderer.enabled=fasle是控制一个物体是否在屏幕上渲染或显示 而物体实际还是存在的 只是想当于隐身 而物体本身的碰撞体还依然存在的GameObject.De ...
- javascript回文和类名的检测方法
回文** //"123"变为"123321" //"abc321"变为"abcd321123cba" ...