问题
对atxserver二次开发过程中,接入锤子手机,远程操作手机界面无法显示。检查minicap的websocket连接,成功建立,没有关闭,所以应该是手机端没有回传图片,怀疑是minicap有问题,于是手动尝试minicap能否使用。
使用命令测试minicap是否可用,可用会输出ok:adb shell LD_LIBRARY_PATH=/data/local/tmp /data/local/tmp/minicap -P 1080x2340@1080x2340/0 -t
日志如下:
PID: 29808
INFO: Using projection 1080x2340@1080x2340/0
INFO: (external/minicap/src/minicap_30.cpp:243) Creating SurfaceComposerClient
INFO: (external/minicap/src/minicap_30.cpp:246) Performing SurfaceComposerClient init check
INFO: (external/minicap/src/minicap_30.cpp:257) Creating virtual display
INFO: (external/minicap/src/minicap_30.cpp:263) Creating buffer queue
INFO: (external/minicap/src/minicap_30.cpp:266) Setting buffer options
INFO: (external/minicap/src/minicap_30.cpp:270) Creating CPU consumer
INFO: (external/minicap/src/minicap_30.cpp:274) Creating frame waiter
INFO: (external/minicap/src/minicap_30.cpp:278) Publishing virtual display
Vector<> have different types (this=0x7fecbce550, rhs=0x7fecbce6a0)
Aborted
解决
我来简述下个人的理解哈。
基于AOSP开发操作系统时,在libgui.so中做了一些微调,导致在minicap-shared中使用不同大小的类型定义。所以打算在设备上预加载libgui.so, 基于AOSP分支编译所得。
最终,直接下载大佬编译好的minicap.so进行替换即可。
编外
过程中认识了一些概念。
什么是AOSP?
什么是ARM?
查看手机cpu版本:adb shell getprop ro.product.cpu.abi | tr -d '\r'
查看sdk版本adb shell getprop ro.build.version.sdk | tr -d '\r'