Java实现Android,iOS设备实时监控
Java实现Android设备实时监控
设计思路:
第一,启动一个实时截图线程,负责实时截取Android设备屏幕,保存到本地路径。
第二,在JSP页面,定义一个img对象,实时更换img对象的src属性。
这样,每次截图线程截取新图片时会替换掉旧图而JSP页面实时读取新图。就可以达到实时监控手机界面的效果。
关键技术:
这里面的关键技术有两点:
1)ADB截图命令:在使用adb前,必须要按在电脑上安装adb,具体教程自己百度。这里描述截图命令:
adb -s cc16cc shell screencap -p /sdcard/liu.png
adb -s cc16cc pull /sdcard/liu.png /usr/local/lib/jian.png
tips:
这里解释一下这两句话。这两句命令是终端执行命令,第一句是让adb 对设备udid为cc16cc这太设备进行截图并把图片保存到sd卡,命名为 liu.png。-s 这个参数是表示后面接设备的udid。第二句是adb吧sd卡下面的liu.png这张图推送到电脑/usr/local/lib这个目录下并命名为 jian.png。这样就完成了一次截图。
2)JSP页面实时加载图片: jsp页面实时加载图片,这里说几个关键函数:
setInterval("getScreen();",50) 这个函数的作用是每隔50毫秒执行一次getScreen()这个函数。
function getScreen(){
$(#screenPic).attr("src","<%=basePath%>/resources/screenshot/jian.png?a=Math.random()")
}
tips:
这段代码的意思是每隔50毫秒去调用一次getScreen()这个函数,getScreen()函数负责替换id=screenPic这个img标签的src值。写 a=Math.random()是因为一个img对象替换src值后,由于浏览器缓存的原因,img对象的图片并没有被替换,所以要用这种方式处理。当然, 这个a不是固定的,可以随意写。
Java实现iOS设备实时监控
设计思路:
iOS实时监控的设计思路有Android的设计思路是相同的。
关键技术:
iOS的实现方式与Android相同,这里的区别在于iOS实时截图的实现。
1)idevicescreenshot截图命令:idevicescreenshot -u cc16cc /usr/local/liu.png
idevicescreenshot截图工具要依赖于ideviceinstaller,而ideviceinstaller要依赖于libimobiledevice。下面是安装教程。
a) brew install libimobiledevice
b) brew install -HEAD ideviceinstaller
tips:
iOS实时监控截图必须在Mac环境下进行,如果在依赖安装完成后截图命令出错可在终端执行"sudo chmod -R 777 /var/lib/lockdown/"。
Java实现Android,iOS设备实时监控的更多相关文章
- shell+钉钉机器人完成java程序中断后自启动和实时监控
java实时程序在运行过程中偶尔出现异常信息中断的情况,通过shell脚本即可完成自启动. 以下为监控一个实时的java程序的shell脚本. 通过每10秒检查一次java程序的进程,来判断程序是否处 ...
- c# c++ oc java || mac android ios
Unity 使用C/C++ 跨平台终极解决方案(PC,iOS,Android,以及支持C/C++的平台) http://blog.csdn.net/fg5823820/article/details/ ...
- iOS开发——实时监控网速(仅作参考,发现一点问题)
开发中用到获取网速的地方,应该就两种: 1.下载速度,这种可以直接在接受数据的地方统计计算.这个就不讲了. 2.获取手机网卡的数据,可以监控网卡的进出流量,下面就是. #import "Vi ...
- Bodymovin:Bodymovin和Lottie:把AE动画转换成HTML5/Android/iOS原生动画
转自:https://www.cnblogs.com/zamhown/p/6688369.html 大杀器Bodymovin和Lottie:把AE动画转换成HTML5/Android/iOS原生动画 ...
- 大杀器Bodymovin和Lottie:把AE动画转换成HTML5/Android/iOS原生动画
前段时间听部门老大说,Airbnb出了个移动端的动画库Lottie,可以和一个名叫Bodymovin的AE插件结合起来,把在AE上做好的动画导出为json文件,然后以Android/iOS原生动画的形 ...
- fiddler 进行Android/IOS代理配置抓包
1.准备:Android+IOS设备 下载:fiddler抓包工具,不是最新版的链接: 链接:https://pan.baidu.com/s/1BaBfu2H4xgpsh1wmkfC8aQ ...
- React++ node.js ++SQL Sever ++MySQL++ python ++ php ++ java ++ c++ c#++ java ++ android ++ ios ++Linux+
"C语言在它诞生的那个年代,是非常不错的语言,可惜没有OOP.当项目臃肿到一定程度,人类就不可控了. 为了弥补这个缺陷,C++诞生了.而为了应对各种情况,C++设计的大而全,太多复杂的特性, ...
- EasyCamera Android安卓移动视频监控单兵设备接入EasyDarwin开源流媒体云平台
前言 随着Android系统的不断更新和发展,现在越来越多的硬件产品选择用安卓系统作为运行环境,电视机,机顶盒.门禁.行车记录仪.车载系统.单兵设备等等,Android系统底层还是Linux,但对上层 ...
- Android(Linux)实时监控串口数据
之前在做WinCE车载方案时,曾做过一个小工具TraceMonitor,用于显示WinCE系统上应用程序的调试信息,特别是在实车调试时,用于监控和显示CAN盒与主机之间的串口数据.因为需要抢占市场先机 ...
随机推荐
- 《你不知道的JavaScript》整理(六)——强制类型转换
JavaScript中通常分为两种类型转换,"隐式强制类型转换"(implicit coercion)和"显式强制类型转换"(explicit coercion ...
- Cocos2d-x中的CC_CALLBACK_X详解
Cocos2d-x 3.x版本用CC_CALLBACK_0,CC_CALLBACK_1,CC_CALLBACK_2和CC_CALLBACK_3的宏来定义回调方法类的. 3.x版本的例子: child- ...
- move.js 源码 学习笔记
源码笔记: /* move.js * @author:flfwzgl https://github.com/flfwzgl * @copyright: MIT license * Sorrow.X - ...
- 每天一个Linux命令 8
yum 光盘yum源搭建好处:不需要上网,省去许多网络yum源下载所需的时间,安装速度会大大增加.缺点:yum源不一定是最新的 1.打开虚拟机,加载光盘镜像,进入Linux系统,挂载光盘.2. 让网络 ...
- 1856: [Scoi2010]字符串
1856: [Scoi2010]字符串 Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 847 Solved: 434[Submit][Status] D ...
- git 由http切换成git
项目中经常会遇到http 的git 协议为了安全切换成ssh 的git 协议. 这个时候,只要使用如下命令变更 remote 字符串就好了. git remote set-url origin git ...
- 一个小时学会jQuery
前一段时间录了一套关于jQuery的视频分享给大家,可以在下载区下载到,本来想配合文字一起的,后面发现视频+帮助文档也是非常好的学习方法. 一.jQuery简介与第一个jQuery程序 1.1.jQu ...
- 运行错误:应用程序无法启动因为并行配置不正确。the application has failed to start because its side-by-side configuration is incorrect 解决方法
问题描述: 当电脑同时安装VS2008和VS2008 SP1时,编译出来的Visual C++程序的manifest 文件会默认引用VS2008的MFC版本和CRT版本.如下: <depende ...
- Java开发过程中开发工具Eclipse中导入jar包的过程
欢迎欣赏我的第二篇随笔.我们在创建好一个动态网站项目之后,如果没有部署maven的情况下,你可以按照以下的方法,直接把要用的jar包导入你的工程中,而不用再部署maven. 例如在使用JDBC编程时需 ...
- Linux 下使用网易的SMTP服务器 发送邮件
最近在研究服务器高可用集群 (HA)…… 尝试配置keepalived, 却发现其全局配置(global_defs )中发送邮件的SMTP服务器配置只有简单 smtp_server 一个选项. 那么, ...