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远程调试的更多相关文章

  1. Android Stadio调试gradle 插件 || Android Stadio 远程调试 || Anroid APT调试

    有时候,自己开发了gralde插件,想调试一下.毕竟打印log 成本太高.效率太低.怎么做呢? 第一种方法: 1.执行gradlew 命令的时候,加上几个参数:-Dorg.gradle.debug=t ...

  2. android:如何通过chrome远程调试APP中的webView的h5代码

    今天出现一个问题,在老板的Mate9 Pro上,我们APP的所有H5页面都是一片空白,但是在其他手机上都是好的,那么我们就怀疑是h5报错了,但是到底是什么错,无法得知,所以就想要可以像在pc的chro ...

  3. Mobile Web 调试指南(2):远程调试

    原文:http://blog.jobbole.com/68606/ 原文出处: 阿伦孟的博客(@allenm ) 第一篇中讲解了如何让手机来请求我们开发电脑上的源码,做到了这步后,我们可以改完代码立即 ...

  4. 安卓手机移动端Web开发调试之Chrome远程调试(Remote Debugging)

    一.让安卓打debug模式的apk包 二.将电脑中的chrome升级到最新版本,在chrome浏览器地址栏中输入chrome://inspect/#devices: 在智能手机还未普及时,移动设备的调 ...

  5. chrome 远程调试(转)

    http://www.tuicool.com/articles/ZJfeAzi 由于 appspot.com被墙,一般调试不成功. 随着智能手机的普及,移动设备的浏览器功能越来越强大,我们用手机上网时 ...

  6. 使用chrome远程调试设备及调试模拟器设备

    使用chrome开发工具远程在Android上远程调试 准备工作 开始远程调试之前,需要做好如下准备: 在你电脑上安装Chrome 32 或者更新的版本 一根连接Android设备的USB线 手机系统 ...

  7. chrome 远程调试相关问题

    1.使用chrome remote debug时打开inspect时出现一片空白 2.如何不用FQ可以享受Chrome for android的远程调试功能 3.chrome://appcache-i ...

  8. Android WebView File域同源策略绕过漏洞浅析

       0x00     我们首先讲一个webView这种方法的作用: webView.getSettings().setAllowFileAccessFromFileURLs(false);     ...

  9. 真机远程调试 ( IOS Android 以及微信,weex)

    1.以前cordova远程调试,Android的直接连接USB后,用chrome打开chrome://inspect网址 IOS的打开Safari的developer下. 这是因为cordova的we ...

随机推荐

  1. 设置myeclipse新建jsp文件默认编码为UTF-8

    有三个地方需要改编码设置: 1. window-->preference-->general-->contenttype 然后在content types中展开每一个子项,并在Def ...

  2. SVN批处理

    前言 我们在项目开发中,使用的版本管理工具有svn git等.这里介绍一下用 bat命令操作svn .这样会给我们带来很大的方便. bat命令 Python等大家一定要掌握哈,会给你带来很多的方便.其 ...

  3. spring配置文件

    pom文件: <properties> <commons-lang.version>2.6</commons-lang.version> <slf4j.ver ...

  4. mysql 查询表,视图,触发器,函数,存储过程

    1. mysql查询所有表: SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = '数据库名' AND  TAB ...

  5. 【前端】Ember.js学习笔记

    Model 在默认情况下,model钩子返回的值,会设置为关联的控制器的model属性.例如,如果App.PostsRoute通过model钩子返回了一个对象,这个对象会设置为App.PostsCon ...

  6. [poj2247] Humble Numbers (DP水题)

    DP 水题 Description A number whose only prime factors are 2,3,5 or 7 is called a humble number. The se ...

  7. Android 秒级编译 Freeline

    http://mp.weixin.qq.com/s?__biz=MzA4NTQwNDcyMA==&mid=2650662410&idx=1&sn=c654fa7b0cc8c91 ...

  8. python 初级1

    List:Python内置的一种数据类型是列表:list.list是一种有序的集合,可以随时添加和删除其中的元素. 构造list非常简单,按照上面的代码,直接用 [ ] 把list的所有元素都括起来, ...

  9. 过目不忘JS正则表达式

    正则表达式,有木有人像我一样,学了好几遍却还是很懵圈,学的时候老明白了,学完了忘光了.好吧,其实还是练的不够,所谓温故而知新,可以为师矣,今天就随我来复习一下这傲娇的正则表达式吧. 为啥要有正则表达式 ...

  10. 如何为数据源向导填加一种自定义的数据源类型(win示例)

    https://www.devexpress.com/Support/Center/Example/Details/T310160