Android屏幕共享及远程控制【免root】
使用方式
对于mac 笔记本用户:
- Android手机开启开发者选项
- 用数据线连接Android手机和mac
- 运行lib目录下的Client,用于显示和控制
- 运行lib目录下的Install,然后点击连接按钮,若不显示请安如下方式操作
对于所有用户:
- Android手机开启开发者选项
- 用数据线连接Android手机和PC
- 使用adb命令把项目根目录下的Main.dex放到手机中 adb push Main.dex /sdcard/Main.dex
- 执行adb shell命令 adb shell
- 执行命令 export CLASSPATH=/sdcard/Main.dex
- 执行命令 exec app_process /sdcard com.wanjian.puppet.Main
- 新建命令窗口,然后执行 adb forward tcp:8888 localabstract:puppet-ver1
- 运行lib目录下的Client,用于显示和控制,点击连接按钮即可
注意:高版本的android手机需要去开发者选项中开启 允许模拟点击
屏幕共享原理
原理和Vysor相同,Android提供了两个截屏方法Surface. screenshot和SurfaceControl. screenshot, 这两个API是隐藏的,客户端没有权限调用,即使通过反射也得不到bitmap,我们可以使用adb命令 启动一个进程,让该进程调用该API就可以得到bitmap了,然后通过socket把数据发送到PC即可。
关键代码如下:
public class Main{
public static void main(String[]args){
Point size = new Point();
size.x = 1080;<