https://github.com/Genymobile/scrcpy
이 어플리케이션은 USB ( 혹은 TCP/IP ) 로 연결된 Android 디바이스를 화면에 보여주고 관리하는 것을 제공합니다.
실행파일은 git hub에 컴파일된 링크가 있습니다.
Get the app
Summary
- Linux:
apt install scrcpy
- Windows: download
- macOS:
brew install scrcpy
Build from sources: BUILD (simplified process)
windows용을 받으면
adb와 dll 몇개와 배치파일로 구성되어져 있습니다.
scrcpy-console.bat 파일을 실행키면 동작이 됩니다. 단말은 adb가 가능한 상태가 되어있어야 합니다.
구성은 scrcpy-server 와 scrcpy.exe 두개가 주된 기능을 가지게 됩니다.
소스 분석
빌드하는쪽을 따라가면 소스가 어떤형태로 되어있는지 분석이 가능합니다.
scrcpy-server
https://github.com/Genymobile/scrcpy/blob/master/release.mk
SERVER_BUILD_DIR := build-server
서버 소스는 여기에 https://github.com/Genymobile/scrcpy/tree/master/server
https://github.com/Genymobile/scrcpy/blob/master/server/src/main/java/com/genymobile/scrcpy/Server.java
public static void main(String... args) throws Exception {
Thread.setDefaultUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() {
@Override
public void uncaughtException(Thread t, Throwable e) {
Ln.e("Exception on thread " + t, e);
suggestFix(e);
}
});
Options options = createOptions(args);
Ln.initLogLevel(options.getLogLevel());
scrcpy(options);
}
scrcpy.exe
https://github.com/Genymobile/scrcpy/tree/master/app
main.c->scrcpy.c
adb로 jar파일을 push한뒤 실행시킴
https://github.com/Genymobile/scrcpy/blob/master/app/src/server.c
if (!push_server(params->serial)) {
#define DEVICE_SERVER_PATH "/data/local/tmp/scrcpy-server.jar"
server->process = execute_server(server, params);
const char *const cmd[] = { | |
"shell", | |
"CLASSPATH=" DEVICE_SERVER_PATH, | |
"app_process", |
return adb_execute(server->serial, cmd, ARRAY_LEN(cmd));
댓글 없음:
댓글 쓰기