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/"。

上一篇:OpenGL ES 3.0之Shading Language(八)


下一篇:SVN版本控制——SVN 合并的六种方式