细说移动前端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如何集成微信支付功能以及后台如何组装前端需要支付信息, 话不多话, 具体看文章内容吧 ...
随机推荐
- Django进阶项目
本来想上午轻轻松松搞定,没想到还是出了其他的问题,好在最后都解决了 在middleware.py当中 # -*- coding:utf-8 -*- __author__ = 'feimao' impo ...
- centos7+cobbler安装
cobbler工作流程 1.安装软件包: yum -y install httpd dhcp tftp python-ctypes cobbler xinetd cobbler-web pykicks ...
- Python异步非阻塞IO多路复用Select/Poll/Epoll使用,线程,进程,协程
1.使用select模拟socketserver伪并发处理客户端请求,代码如下: import socket import select sk = socket.socket() sk.bind((' ...
- 面对 to B 业务该如何构建研发管理体系?
未来离我们越来越近,而过去并未走远,我们发现科技公司2B业务兴起,腾讯认为互联网下半场属于产业互联网,需要进行一次重要的战略升级.它们在国庆节最后一天进行新一轮组织架构调整,最亮眼的就是新成立云与智慧 ...
- Oracle表与约束关系
手动回收表的存储方式: SQL> alter table aux_emp deallocate unused; //回收所有未使用的存储空间 表已更改. 回收aux_emp的存储空间,保留50K ...
- SpringBoot整合Redis集群
一.环境搭建 Redis集群环境搭建:https://www.cnblogs.com/zwcry/p/9174233.html 二.Spring整合Redis集群 1.pom.xml <proj ...
- js判断一个数组是否包含一个指定的值
今天看了一下 有好几种方法 总结一下 1:array.indexOf 此方法判断数组中是否存在某个值,如果存在返回数组元素的下标,否则返回-1 let arr = ['something', ...
- Ag-grid控件使用pine:left后,配合iview下拉框,会出现闪烁
Ag-grid控件使用pinned:left后,配合iview下拉框,会出现闪烁 引起原因:下拉图标的反转动画 目前解决方案: 添加一个全局样式: 禁用动画,其他地方也是如此, 影响控件有:gz-tr ...
- iOS获取设备IP地址
项目用到要获取iOS设备的IP地址,有2种方法: 1)第一种比较简单,但是只有当你的设备连接到WIFI时才能获取到IP地址,倘若你的设备用的是流量,那就不行.代码如下: #import <ifa ...
- SOA 面向服务架构 阅读笔记(一)
Service Oriented Architecture 面向服务架构 学习笔记(一) 1.业务自由 1.1 在很多企业中,业务和IT技术是各自独立的,无法使用通用的统一语言进行管理. 1.2 ...