细说移动前端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如何集成微信支付功能以及后台如何组装前端需要支付信息, 话不多话, 具体看文章内容吧 ...
随机推荐
- iOS开发之计算器
本项目基于swift3.0的语法. // // ViewController.swift // 加法计算器 // // Created by 葛杨杨 on 2017/7/25. // Copyrigh ...
- centos中搭建nginx环境
原文地址 安装PCRE 源码:ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/ cd /usr/local/src wget ftp://f ...
- vim tabs
:tabnew 增加一个标签:tabc 关闭当前的tab:tabo 关闭所有其他的tab:tabs 查看所有打开的tab:tabp 或gT 前一个:tabn 或gt 后一个:tabfirst或:tab ...
- python常用模块-2
一 .time模块 表示时间的三种方式: 时间戳:数字(计算机能认识的) 时间字符串:t='2012-12-12' 结构化时间:time.struct_time(tm_year=2017, tm_mo ...
- 妙用php中的register_shutdown_function和fastcgi_finish_request
前言 在php中又两个方法都是在请求快结束的时候执行.方法名分别是 register_shutdown_function和fastcgi_finish_request.虽然执行的时机差不多,但是功能和 ...
- yuv转opencv中的IplImage
http://www.2cto.com/kf/201208/145559.html http://www.opencv.org.cn/forum.php?mod=viewthread&tid= ...
- python 运行报错 Process finished with exit code -1073741819 (0xC0000005)
发现是由于openpyxl模块导致的,去掉这个模块的内容就能运行,import openpyxl就运行不起来, 将openpyxl卸载了重装, 以及更换了不同的openpyxl版本,都不行,还是运行不 ...
- c++ boost库学习一:时间和日期
timer类 #include <boost\timer.hpp> #include "iostream" using namespace std; int _tmai ...
- ssm文件上传下载比较详细的案例
背景:ssm框架 接下来,我会介绍单文件上传,下载,多文件的上传,下载,使用ajax进行文件的上传下载,和普通的表单提交的文件上传下载. 只要做项目,总是少不了文件的操作,好了废话不多说,直接上代码! ...
- java filter 实现权限控制
import javax.servlet.*; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.Http ...