Android屏幕共享与控制-截图实现
效果图
说明
由于长时间没写后台了,在写socket
的时候出现了问题,为了不耽误大家时间,这里跑了一个Demo
,该Demo
可以屏幕共享也可以屏幕控制。手机之间的共享与控制以及流媒体服务器的Demo
在不加班的时候给大家补上。 Demo
地址:https://github.com/android-notes/androidScreenShareAndControl
适用场景与难点
两台手机需要拓展相互控制功能,Vysor就是如此实现
难点在于必须要用usb配合实现
参考Demo
https://github.com/android-notes/androidScreenShareAndControl
该Demo已经实现屏幕共享与控制,不过场景是在电脑上控制手机,想要两台手机屏幕共享加控制的同学,稍微改改就可以了。
实现步骤
客户端A实现静默截图并上传至服务器
服务器将A上传的截图不断的推送给客户端B
客户端B拿到这些照片后去播放
客户端A静默截图
该方法必须要连接数据线adb
实现静默截图,有不需要连接usb就能静默截图的同学麻烦指出。
1、先把androidScreenShareAndControl
中的截屏部分代码复制到项目中。
2、由于main
方法无法直接在android
项目中运行。我们需要把main
方法打成dex
,然后通过adb
命令去执行
(1)首先编译项目 Rebuild Project
(2)其次在app/build/intermediates/javac/debug/compileDebugJavaWithJavac
下找到classes
文件夹。注意该目录如果不存在的话,可能在intermediates/classes/debug
文件夹下
(3)在命令行中cd
到classes
文件夹下,下一步将class
文件打包成dex
文件
(4)执行dx --dex --output=Main.dex ./
之后会在classes
文件夹下看到Main.dex
文件,注意:如果识别不了dx
命令,就使用dx
的全部路径,eg:android-sdk-macosx/build-tools/25.0.2/dx
dx --dex --output=Main.dex ./
(5)生成好dex
文件之后,开始执行dex
文件,先用adb
命令将dex
文件放入手机中的根目录
adb push Main.dex /sdcard/Main.dex
(6) 然后执行以下操作,旨在运行dex
文件
adb shell
export CLASSPATH=/sdcard/Main.dex
exec app_process /sdcard com.wanjian.puppet.Main
注:com.mirror.screen.shot
是包名
(7) 命令窗口开始打印日志,说明运行dex
文件成功。
下篇再见~