细说移动前端Android联调
为什么要联调
A:正在疯狂coding的时候,产品MM过来,焦急的说两周前的一个页面在手机上显示略微错位,但小本上显示正常!
B:本着爱折腾的原则,作为大前端,在移动互联网时代的基本技能。
A:正在疯狂coding的时候,产品MM过来,焦急的说两周前的一个页面在手机上显示略微错位,但小本上显示正常!
B:本着爱折腾的原则,作为大前端,在移动互联网时代的基本技能。
联调的方式:
方式一:ADB Chrome extension:具体参考:这里
步骤一:ADB extension
步骤二:安装手机驱动
步骤三:手机chrome 开发者工具->启动USB网页调试
步骤四:ADB->View Inspection Targets
细节:手机驱动如果不好找就装个91或者豌豆荚吧
优缺点:配置简单,可快速开始。但ADB会闹脾气,时快时慢
优化:解决慢可以尝试用android的sdk本地搞个服务器。
基本配置->下载ADT->CMD(adb forward tcp:8888 localadstract:chromedevtoolsremote)->localhost:8888
步骤一:ADB extension
步骤二:安装手机驱动
步骤三:手机chrome 开发者工具->启动USB网页调试
步骤四:ADB->View Inspection Targets
细节:手机驱动如果不好找就装个91或者豌豆荚吧
优缺点:配置简单,可快速开始。但ADB会闹脾气,时快时慢
优化:解决慢可以尝试用android的sdk本地搞个服务器。
基本配置->下载ADT->CMD(adb forward tcp:8888 localadstract:chromedevtoolsremote)->localhost:8888
方式二:Opera Mobile
步骤一:下载Opera桌面版(低版本) 下载Opera 模拟器
步骤二:打开桌面版的Dragonfly 点击右上角的远程调试设置端口
步骤三:在模拟器中输入 opera:debug 设置端口连接。
细节:Opera桌面版高版本的调试器居然不是dragongly,下低版本(10.52)。
优缺点:简单方便,支持模拟各种机型的显示效果。但是不能选择元素方式不友好。
步骤一:下载Opera桌面版(低版本) 下载Opera 模拟器
步骤二:打开桌面版的Dragonfly 点击右上角的远程调试设置端口
步骤三:在模拟器中输入 opera:debug 设置端口连接。
细节:Opera桌面版高版本的调试器居然不是dragongly,下低版本(10.52)。
优缺点:简单方便,支持模拟各种机型的显示效果。但是不能选择元素方式不友好。
方式三:weinre(web in remote)
步骤一:安装Node.js. => 安装weinre(npm install -g weinre)
步骤二:启动服务器 weinre –httpPort 8080 –boundHost -all-
步骤三:在目标调试文件中加入:
<script src="http://本机ip:8080/target/target-script-min.js#anonymous"></script>
步骤四:localhost:8080/client 即可调试
细节:引入的script标签中必须有#anonymous,否则看不到可调试文件。
优缺点:高端上流,操作简单,可用浏览器自带的调试器调试,适合爱好不同开发者。
缺点是,方便前端开发。
优化:每次都手动引入js很不爽,效率极低。做成书签形式,每次在当前页面引入js。
javascript:(function(e){
e.setAttribute("src","http://192.168.1.5:8080/target/target-script-min.js#anonymous");
document.getElementsByTagName("body")[0].appendChild(e);
alert('has executed!');
})(document.createElement("script"));
void(0);
步骤一:安装Node.js. => 安装weinre(npm install -g weinre)
步骤二:启动服务器 weinre –httpPort 8080 –boundHost -all-
步骤三:在目标调试文件中加入:
<script src="http://本机ip:8080/target/target-script-min.js#anonymous"></script>
步骤四:localhost:8080/client 即可调试
细节:引入的script标签中必须有#anonymous,否则看不到可调试文件。
优缺点:高端上流,操作简单,可用浏览器自带的调试器调试,适合爱好不同开发者。
缺点是,方便前端开发。
优化:每次都手动引入js很不爽,效率极低。做成书签形式,每次在当前页面引入js。
javascript:(function(e){
e.setAttribute("src","http://192.168.1.5:8080/target/target-script-min.js#anonymous");
document.getElementsByTagName("body")[0].appendChild(e);
alert('has executed!');
})(document.createElement("script"));
void(0);
结语:
移动端调试虽好玩,但是太折腾,保证效率,只能作为最后法宝
遇到问题:Bug现象->本地调试->定位bug->确定是否联调
细说移动前端Android联调的更多相关文章
- 【Java分享客栈】我有一个朋友,和前端工程师联调接口被狠狠鄙视了一番。
前言 我有一个朋友,昨天和前端工程师联调一个接口,然后被狠狠鄙视了一番. 大家知道,自从前后端分离以后,像我一样一直以Java工程师为傲而自居的码圣们就砍掉了一半脊梁,从此被贴上了"Java ...
- 后端Spring Boot+前端Android交互+MySQL增删查改
2021.1.27 更新 已更新新版本博客,更新内容很多,因此新开了一篇博客,戳这里. 1 概述 使用spring boot作为后端框架与Android端配合mysql进行基本的交互,包含了最基本的增 ...
- 混合开发的大趋势之一React Native与Android联调
转载请注明出处:王亟亟的大牛之路 先安利,有空我都会更,看到的好东西都会放进来:https://github.com/ddwhan0123/Useful-Open-Source-Android 公司某 ...
- 后端Spring Boot+前端Android交互+MySQL增删查改(Java+Kotlin实现)
1 前言&概述 这篇文章是基于这篇文章的更新,主要是更新了一些技术栈以及开发工具的版本,还有修复了一些Bug. 本文是SpringBoot+Android+MySQL的增删查改的简单实现,用到 ...
- Android+Java Web+MySQL实现登录注册
1 前言&概述 这篇文章是基于此处文章的更新,更新了一些技术栈,更加贴近实际需要,以及修复了若干的错误. 这是一个前端Android+后端Java/Kotlin通过Servelt进行后台数据库 ...
- Android随笔之——Android时间、日期相关类和方法
今天要讲的是Android里关于时间.日期相关类和方法.在Android中,跟时间.日期有关的类主要有Time.Calendar.Date三个类.而与日期格式化输出有关的DateFormat和Simp ...
- Android App的设计架构:MVC,MVP,MVVM与架构经验谈
相关:http://www.cnblogs.com/wytiger/p/5996876.html 和MVC框架模式一样,Model模型处理数据代码不变在Android的App开发中,很多人经常会头疼于 ...
- Android 强烈推荐:程序员接私活那点事
今天周末在家宅着,并不是我不想运动,是因为北京的雨雪交加导致我想在家写文章,不过想想给大家写文章还是蛮惬意的,望一眼窗外,看一眼雪景,指尖在键盘上跳动,瞬间有种从屌丝程序员转变成了小姑娘们都羡慕的文艺 ...
- 微信app支付(android端+java后台)
本文讲解使用微信支付接口完成在android开发的原生态app中完成微信支付功能, 文章具体讲解了前端android如何集成微信支付功能以及后台如何组装前端需要支付信息, 话不多话, 具体看文章内容吧 ...
随机推荐
- Java栈和堆的区别
一.栈空间 1.栈空间存储数据效率高 2.栈中的数据是按“先进后出”的方式管理 3.栈空间存储空间比较小,不能存放大量的数据 4.JVM将基本类型的数据存放在栈空间 帮助理解 1.“客栈” 能提供很多 ...
- Redis3.2.8配置参数及说明
bind 127.0.0.1# 绑定的主机地址,不设置默认将处理所有请求protected-mode yes# 是否开启保护模式,默认开启,要是配置里面没有指定bind和密码,开启该参数后,redis ...
- 内网IP&外网IP/NAT
内网的计算机以NAT(网络地址转换)协议,通过一个公共的网关访问Internet.内网的计算机可向Internet上的其他 计算机发送连接请求,但Internet上其他的计算机无法向内网的计算机发送连 ...
- 构建Ruby开发环境(Windows+Eclipse+Aptana Plugin)
1.安装Ruby ①.从http://rubyinstaller.org/downloads/下载安装包:rubyinstaller-2.2.5-x64.exe,直接安装.(so easy) 2.安装 ...
- 【整理学习Hadoop】Hadoop学习基础之二:分布式
分布式系统就是将系统的应用层,数据层或其它部分构架成分布(物理和逻辑上的都可以)状(通常是网状).分布式系统通常是为了增强系统的可扩展性.稳定性和执行效率.比如在线游戏通常就是分布系统,里面所谓的 ...
- iOS NSCoding 的学习 和 使用
起初接触的轻量级 物理存储 方式 是 plist 可以存储 系统级别的 字典 数组 但是不能存储自定义的对象类 那会 用自定义对象做存储的 需求也不大 主要 是 还没建立面向对象意识,会的也少. ...
- 【Flask】Sqlalchemy 子查询
### subquery:子查询可以让多个查询变成一个查询,只要查找一次数据库,性能相对来讲更加高效一点.不用写多个sql语句就可以实现一些复杂的查询.那么在sqlalchemy中,要实现一个子查询, ...
- 物理分辨率与逻辑分辨率,pt与px
有些小伙伴们,在使用chrome的移动端调试工具调试网页的时候,会发现iphone6上的尺寸为375*667,不禁差异,iphone6的分辨率不是750*1334吗? 实际上调试器上的大小单位不是px ...
- winter 2018 02 01 关于模运算的一道题
题目:给出一个正整数n,问是否存在x,满足条件2^x mod n=1,如果存在,求出x的最小值. 分析:1.若给出的n是1,则肯定不存在这样的x; 2.若给出的是偶数,2的次幂取余一个偶数得到 ...
- Pandas的 loc iloc ix 区别
先看代码: In [46]: import pandas as pd In [47]: data = [[1,2,3],[4,5,6]] In [48]: index = [0,1] In [49]: ...