标签:流程 在服务器 模拟器 默认 工具 图形 buffer lin avd
由于公司项目的需要,最近花时间研究了下「电脑操控 Android 设备」的具体实现,其间踩了不少坑(说多了都是泪啊),在此记录下来供大家参考与学习。
其中涉及到最主要的技术便是 VNC (Virtual Network Computing) ,它是使用远程帧缓冲协议(RFB)远程控制另一台计算机(设备)的图形桌面共享系统,其主要包括:
VNC Server :此服务程序必须在在主(或遥控)计算机(设备)上运行。你只能作为使用者(不需要根用户身份)使用此项服务。
VNC Viewer :本地应用程序,用于远程接入运行 VNC Server 的计算机(设备)并显示其环境。你需要知道远程计算机(设备)的 IP 地址和 VNC Server 设定的密码。
网上已经有许多关于电脑控制手机(真机)的工具与教程且亲测可行,具体请参考:
但是!但是!但是!!!
坑就是从这里开始的,由于项目需求的特殊性,我需要在模拟器(Android Emulator)上实现相同的效果(后面会具体说明模拟器与真机的差别与难点),所以接下来我会详细介绍实现操控模拟器的具体操作步骤。
由于大多数「VNC Server For Android」应用都需要求手机为 Root 状态(后来发现有不需要 Root 的,但没有进行实际验证),所以第一步便是实现模拟器的 Root :
如果你使用的是原生模拟器的话(赶紧换吧,立马提升工作效率),则可以按如下操作实现 Root :
这里就要涉及到「ARM」与「X86」的概念,详情请参见:手机CPU科普 ARM构架与X86构架的优劣对比,之后便参照下面步骤实现安装:
如果你使用的是第三方模拟器 Genymotion,由于其依托 VirtualBox,所以其模拟器的架构默认为 X86,因此你需要下载可以在 X86 下运行的 VNC Server 版本:androidvncserver_x86
如果你使用的是原生模拟器,则在创建 AVD 时「CPU/ABI」选择「ARM」,
随后下载 ARM 版本 androidvncserver
使用 adb push 进去,如下:
adb push 所在路径/androidvncserver_x86 /data/local/
使用文件夹管理工具,如 Root Explorer
使用 adb
# chmod 555 androidvncserver_x86
使用文件夹管理
# /data/local/androidvncserver_x86 &
注:如果这一步出现
Initializing framebuffer device /dev/graphics/fb0…
xres=320, yres=480, xresv=320, yresv=960, xoffs=0, yoffs=0, bpp=16
Initializing keyboard device /dev/input/event3 …
cannot open kbd device /dev/input/event3
大家可以参考这里,其关键就是:
> adb shell
# /data/androidvncserver -k /dev/input/event0 -t /dev/input/event0 &
原文:大专栏 如何通过电脑操控 Android 设备 · Tang‘s Blog
如何通过电脑操控 Android 设备 · Tang‘s Blog
标签:流程 在服务器 模拟器 默认 工具 图形 buffer lin avd
原文地址:https://www.cnblogs.com/petewell/p/11597844.html