移动开发:使用桌面chrome调试安卓设备上的chrome和cordova app(webview)



调试安卓设备上的chrome浏览器或Cordova应用:


移动开发:使用桌面chrome调试安卓设备上的chrome和cordova app(webview)_第1张图片
要求:
1、一台安装有chrome for android或cordova app的安卓设备(如果你是调试Cordova app或webview,就不用装chrome了)
2、安卓设备的usb数据线
3、安装有chrome的电脑(需要安装有安卓设备的usb驱动)

步骤:
1、安卓设备打开USB调试

2、将安卓设备用USB数据线连接至电脑

3、电脑上,点击Chrome 菜单 > 工具 > 检查设备,如下图:
移动开发:使用桌面chrome调试安卓设备上的chrome和cordova app(webview)_第2张图片
确保"Discover USB devices"打上勾,如下图
移动开发:使用桌面chrome调试安卓设备上的chrome和cordova app(webview)_第3张图片
Chrome 45+ 没有了“检查设备”调试手机的功能,其实有秘密通道,地址栏输入chrome://inspect/#devices 回车,就可以了 


4、只要安卓设备上打开chrome(或者cordova app),就可以在电脑的chrome上看到连接的设备和打开的页面了,找到你要调试的页面,点击"inspect",就可以了,如下图
移动开发:使用桌面chrome调试安卓设备上的chrome和cordova app(webview)_第4张图片
使用上和电脑端chrome开发者工具没什么不同。支持js断点调试哦
注意:第一次使用时候,开发者工具会显示一片白,解决办法是需要一次(国内,你懂的)

调试Android webview:


注意只有Android 4.4 (KitKat)及以上的webview才支持远程chrome调试。或者使用了CrossWalk内核插件的apk才可以用chrome调试。

1、如果是Cordova/Phonegap 3.X的,找到这个文件
C:\Users\{用户名}\.cordova\lib\android\cordova\{版本如3.4.0}\framework\src\org\apache\cordova\CordovaWebView.java
661行 修改:
[java]  view plain  copy
  1. @SuppressLint("NewApi")  
  2.  private void loadConfiguration() {  
  3.     if ("true".equals(this.getProperty("Fullscreen""false"))) {  
  4.         this.cordova.getActivity().getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);  
  5.         this.cordova.getActivity().getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);  
  6.     }  
  7.     if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {  
  8.         this.setWebContentsDebuggingEnabled(true);  
  9.     }  
  10. }  

重新build你的项目,打包安装到手机上,然后接下来的就和上面调试chrome是一样的了。

2、如果是Cordova/Phonegap 4.X+的,直接build出来的是debug的apk,可以直接使用chrome调试;
如果你要调试的是带数字签名的release版本,可以在AndroidManifest.xml中设置android:debuggable属性,如下:
[html]  view plain  copy
  1. <application   
  2.     android:hardwareAccelerated="true"   
  3.     android:icon="@mipmap/icon"   
  4.     android:label="@string/app_name"   
  5.     android:supportsRtl="true"  
  6.     android:debuggable="true">  
当然这种方式最好不要用,而由打包方式来决定其值。




这里有更详细的操作步骤:
《 移动端Web开发调试之Chrome远程调试(Remote Debugging)》

调试安卓设备上的chrome浏览器或Cordova应用:


移动开发:使用桌面chrome调试安卓设备上的chrome和cordova app(webview)_第5张图片
要求:
1、一台安装有chrome for android或cordova app的安卓设备(如果你是调试Cordova app或webview,就不用装chrome了)
2、安卓设备的usb数据线
3、安装有chrome的电脑(需要安装有安卓设备的usb驱动)

步骤:
1、安卓设备打开USB调试

2、将安卓设备用USB数据线连接至电脑

3、电脑上,点击Chrome 菜单 > 工具 > 检查设备,如下图:
移动开发:使用桌面chrome调试安卓设备上的chrome和cordova app(webview)_第6张图片
确保"Discover USB devices"打上勾,如下图
移动开发:使用桌面chrome调试安卓设备上的chrome和cordova app(webview)_第7张图片
Chrome 45+ 没有了“检查设备”调试手机的功能,其实有秘密通道,地址栏输入chrome://inspect/#devices 回车,就可以了 


4、只要安卓设备上打开chrome(或者cordova app),就可以在电脑的chrome上看到连接的设备和打开的页面了,找到你要调试的页面,点击"inspect",就可以了,如下图
移动开发:使用桌面chrome调试安卓设备上的chrome和cordova app(webview)_第8张图片
使用上和电脑端chrome开发者工具没什么不同。支持js断点调试哦
注意:第一次使用时候,开发者工具会显示一片白,解决办法是需要一次(国内,你懂的)

调试Android webview:


注意只有Android 4.4 (KitKat)及以上的webview才支持远程chrome调试。或者使用了CrossWalk内核插件的apk才可以用chrome调试。

1、如果是Cordova/Phonegap 3.X的,找到这个文件
C:\Users\{用户名}\.cordova\lib\android\cordova\{版本如3.4.0}\framework\src\org\apache\cordova\CordovaWebView.java
661行 修改:
[java]  view plain  copy
  1. @SuppressLint("NewApi")  
  2.  private void loadConfiguration() {  
  3.     if ("true".equals(this.getProperty("Fullscreen""false"))) {  
  4.         this.cordova.getActivity().getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);  
  5.         this.cordova.getActivity().getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);  
  6.     }  
  7.     if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {  
  8.         this.setWebContentsDebuggingEnabled(true);  
  9.     }  
  10. }  

重新build你的项目,打包安装到手机上,然后接下来的就和上面调试chrome是一样的了。

2、如果是Cordova/Phonegap 4.X+的,直接build出来的是debug的apk,可以直接使用chrome调试;
如果你要调试的是带数字签名的release版本,可以在AndroidManifest.xml中设置android:debuggable属性,如下:
[html]  view plain  copy
  1. <application   
  2.     android:hardwareAccelerated="true"   
  3.     android:icon="@mipmap/icon"   
  4.     android:label="@string/app_name"   
  5.     android:supportsRtl="true"  
  6.     android:debuggable="true">  
当然这种方式最好不要用,而由打包方式来决定其值。




这里有更详细的操作步骤:
《 移动端Web开发调试之Chrome远程调试(Remote Debugging)》

你可能感兴趣的:(Android开发随笔)