• 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,cc16cc表示设备的udid,这里每个人根据自己设备的udid来填写,查询设备udid的命令是"adb devices"。第二句是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/db/lockdown/"。截图命令"idevicescreenshot -u cc16cc /usr/local/liu.png"的意思是把udid为cc16cc这台iphone设备的屏幕截图并保存到/usr/local/目录下,命名为liu.png。但是,该截图命令不支持iOS10设备。

  • 相关阅读:
    第一章epoll
    sk_buff结构--转载
    邻居子系统1.5 neigh output
    netfilter内核态与用户态 通信 之 sockopt
    邻居子系统1.4
    邻居子系统 1.3
    邻居子系统 1.2
    邻居子系统 1.1
    linux 内核 tasklets 原理以及工作队列
    linux 内核 同步原理
  • 原文地址:https://www.cnblogs.com/baconLiu/p/6729158.html
Copyright © 2020-2023  润新知