(需要了解开发细节和demo的朋友可以私信我或者加微信Kingthink)
一、背景
有一天,手机屏幕摔坏掉,我只能看那寥寥可数的开机、Power键,欲哭无泪,
我想要有一款PC端控制软件在必要时就能解围;
有一天我想控制多台手机完成相同的内容(比如:刷微博,刷朋友圈),
然后完美自动完成类似活动,比如:在指定的时间给指定的 码发送一条暧昧短信,或者在指定的时间下载一个酷爽APK并安装又或者在忙的时候自动刷新新闻,这样我在没有wifi的地方也能看一天的新闻了.
二、需求分析
-
1. 手机通过USB与PC端连接,无需安装APK,无需做其他多余操作,开启PC端软件,直接显示联机控制
-
2. PC端显示等比例手机图像,在PC端实现与点击、划屏、长按等一系列屏幕操作
-
3. PC端键盘输入转换到手机软键盘输出,从而实现某些APP登录功能
-
4. 直接从PC端安装已经下载好的APK文件,直接运行启动
-
5. PC端可以搜索到当前wifi热点,同时能连接选择的wifi
-
6. PC端显示收到的短信信息
-
7. PC端软件控制手机拨打电话和接听来电(PC端支持实时来电提醒功能)
架构设计
连接层代码设计
- 手机USB连接电脑后通知应用层,创建连接链路
- 向控制层注册事件
typedef struct android_usb_connection_s android_usb_connection_t;
struct android_usb_connection_s
{
android_socket_t socket; // 虚拟套接字
usb_snd_buffers *snd_buffer; // 控制层用户态发送缓冲区
usb_rcv_buffers *rcv_buffer; // 控制层用户态接收缓冲区
android_pool_t *pool; // 资源池对象,统一管理连接相关资源创建和释放
android_log_t *log; // 全局日志对象
android_process_handles handles; // process集合
};
uint_t
register_contorl_event(android_usb_connection_t *conn);
控制层代码设计
- 接收用户的屏幕控制消息
- …
ADB协议打包
- 修改ADB Server层代码,自定义信令逻辑
- 优化服务端逻辑代码,加入中继模式
- demon端协议封包层不变
细节方面我会分多篇文章进行介绍, 需要了解开发细节和demo的朋友可以私信我或者加微信。
微信二维码长这样

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!