Some APIS have been removed since Android 12
- View.getDrawingCache()
- 读取/dev/graphics/fb0
- adb shell screencap/screenshot -p xxx.png
- 反射调用Surface.screenshot()/SurfaceControl.screenshot()
- MediaProjection,VirtualDisplay(Android Version >= 5.0)
最后两种方式也是Vysor这款软件所采用的。
- 对于@hide标记的class,在/system/framework/framework.jar中是存在的。但是在开发中引入Android Sdk的时候,引用的为sdk/platforms/android-X/android.jar(例如X为21),这里面被标记为@hide的class已经不存在了。例如SurfaceControl.java。
- 对于@hide标记的field和method,可通过反射进行调用。
adb shell am start -n com.android.browser/com.android.browser.BrowserActivity
adb shell pm list packages
package com.wise.main;
public class HelloWorld {
public static void main(String[]args){
System.out.println("Hello, world!");
}
}
dx --dex --output=D:\HelloWorld.dex HelloWorld.class
adb push D:\HelloWorld.dex /sdcard
adb shell
export CLASSPATH=/sdcard/HelloWorld.dex
exec app_process /system/bin com.wise.main.HelloWorld
- 运行ComputerClientFrame.java
- 点击Phone -> Prepare
- 点击Phone -> Connect Phone
- 如果使用鼠标进行点击操作,打开开发者选项里面的“模拟点击”
发送
手机屏幕的宽:DataOutputStream
手机屏幕的高:DataOutputStream
手机图像大小:DataOutputStream
手机图像字节数组:BufferedOutputStream
接收
字符串:BufferedReader
UP302#492:操作类型x#y
UP
DOWN
MOVE
MENU
HOME
BACK