欢迎来到天天文库
浏览记录
ID:31431968
大小:112.00 KB
页数:7页
时间:2019-01-09
《双屏异显在android系统上的实现》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、双屏异显在Android系统上的实现 摘要:提出了一种在ARM/Android平台上实现双屏异显功能的方法。所谓双屏异显,即在同一软硬件平台上,实现同时驱动两块LCD屏幕,并且这两块屏幕所显示的内容可以不同。这种功能的实现一方面降低了硬件设备成本,另一方面对于提高消费场景的交互性具有重要意义。 关键词:Android;POS;双屏异显;LCD;消费场景 DOIDOI:10.11907/rjdk.162114 中图分类号:TP319 文献标识码:A文章编号:1672-7800(2016)012-0118-03 0引言 近年来,随着ARMSOC与Android生态组合的
2、快速发展,其应用已经从智能移动终端(如智能手机、平板电脑等消费电子领域)渗透到各行各业。但受制于芯片体系结构和操作系统架构设计,在Android平台上,通常只能实现同步双屏的一些应用,如基于智能手机的显示器应用或者基于平板电脑的投影仪应用。在这样的应用中,大屏只能作为小屏的延伸,两块不同的屏上只能显示相同的内容,专业上可称为同步双显或称双屏同显技术。但在现实应用场景中,双屏异显功能更能满足人们的需要。 本文提出了一种在Android平台上实现双屏异显的方案。该方案以瑞芯微公司推出的RK3288芯片为硬件平台,以Android为移动操作系统,通过开发的APP实现双屏异显功能。7
3、 1实现原理 Android框架中与显示相关的组件主要有Activity、Windows、WindowState、WindowsManagerService、DisplayManagerService、SurfaceManager/SurfaceFlinger、DisplayHAL(HardwareAbstractionLayer)以及LinuxKernel中显示方面的驱动等。Android平台的显示框架如图1所示。 各层模块功能说明如下[1-2]:①Activity:应用程序的主要生命周期载体,显示过程中的内容提供者;②Windows:窗体组件为应用显示的载体组件,应用的界
4、面交互将全部通过窗体组件呈现;③WindowState:窗体组件的实例,用于窗体状态运营和各属性的组成传递;④WindowsManagerService:窗口管理服务是Android系统整个运行状态中所有应用窗体的各管理服务,主要负责窗体状态的转换和上下层之间的信息传递;⑤DisplayManagerService:显示设备管理服务是管理Android系统中逻辑显示设备的服务,主要响应显示参数获取和相关状态;⑥SurfaceManager/SurfaceFinger:系统级显示管理服务,处理图形合成,显示状态切换及硬件设备参数调整等;⑦DisplayHAL(HardwareAbs
5、tractionLayer):对于硬件操作的抽象层,通过封装部分JNI的接口与Framework以及APP层进行互动;⑧KernelDriver:内核驱动处理显示硬件设备细节参数运行。 2详细设计 2.1Android平台下双屏异显设计 Android7平台在4.2版本之后新增了对于多屏的支持,主要有3种屏幕类型:主屏幕(PrimaryDisplay)、外屏幕(ExternalDisplay)和虚拟屏幕(VirtualDisplay)。其中自带屏幕一般识别为主屏幕,而HDMI将会被设为外屏幕。为了方便APP访问上述3种屏幕,Android还提供了一个统一的屏幕管理服务Dis
6、playManagerService。虽然屏幕被划分为3种类型,但是建立于它们之上的窗口合成以及渲染依然统一由SurfaceFlinger管理。这些新特性的引入确保了双屏异显的框架基础。 2.1.1Application到Framework Android的应用以Activity为基础。应用在启动时会向系统申请建立新的Activity,系统通过ActivityManagerService创建Activity并赋予相应的运行环境,系统通过调用返回给Activity一个可操作WindowState的对象用于显示。应用显示的过程将会通过系统和自己拥有的WindowState与底层进
7、行交换,而内容最终生成于WindowState指向的Surface之中。 2.1.2Framework到本地库 应用的Activity所需显示部分将由ActivityManagerService通过View->ViewRoot->Window7的关系最终向WindowsManagerService申请一个新Window。WindowsManagerService通过系统本地运行调用,最终生成一个新的Surface封装在WindowState中提供给Activity。Displ
此文档下载收益归作者所有