论文部分内容阅读
Android已经成为最具吸引力的开源操作系统之一,从手机到平板电脑,从智能电视到工业医疗领域,都能看见Android的身影。Android的市场份额已经超越了苹果,并仍然保持着强劲的发展势头。随着Android成为主流操作系统,人们对Android设备进行远程控制的需求也日益增多。Windows等主流操作系统都有成熟的远程桌面软件,但Android系统至今没有成熟的远程桌面方案。本文提出了一套基于流媒体的Android远程桌面方案,从显示原语,更新策略,压缩算法和缓存机制这四个方面选取了适合Android系统的远程桌面方案。与传统远程桌面方案不同的是,本系统采用了视频流传输方式,即服务器将桌面图像编码成视频流传送给客户端,客户端将视频流解码后在本地进行重绘。使用新一代视频编解码标准H.264对桌面图像进行压缩编码,采用降低分辨率和减小帧率的方法减少视频传输的带宽占用。为了提高系统兼容性和可移植性,使用FLV容器封装H.264视频数据。在控制事件传输和处理方面,客户端以约定格式向服务器发送本地键盘和鼠标事件,服务器收到控制事件后,将事件写入对应的设备文件实现输入事件的模拟。此外,为了提高系统安全性,加入了接入认证功能,并对密码进行AES加密保证密码安全。为了方便远程调试,加入了文件传输功能,客户端可将本地文件传送给远程的服务器。本文的主要工作内容有:1.研究Android图形系统原理与双Framebuffer机制,实现了对Android Front Buffer成功截取。2.研究使用开源库FFmpeg将图片转换成视频的方法,以及顺序流媒体的发布与接收的实现。包括使用inotify机制监视截屏图片变化,使用外部库x264和libx264实现H.264的编码和解码,H.264视频在FLV容器中的封装和解封装,以及使用HTTP协议进行视频数据的发送与接收。3.研究Linux输入子系统原理,在用户层实现了按键和触摸屏事件的模拟。