内核设置Android显示比例,一种基于Android的分辨率自动调整方法及系统技术方案...

【技术实现步骤摘要】

一种基于Android的分辨率自动调整方法及系统

本专利技术涉及一种基于Android的分辨率自动调整方法及系统。

技术介绍

Android(安卓)系统是一种基于Linux平台的开源操作系统,目前被广泛应用于手机、平板等智能便携式数码设备中,随着Android办公类应用的日益成熟,Android设备也朝着办公终端方向发展,由单一触摸屏的输出,迈向更加多样的外接显示输出。由于Android系统之前是基于单一触摸屏输出而设计,内核中已经固定了固定的输出比例,不能进行修改,如常见的手机屏幕分辨率有480*800,平板类的屏幕分辨率有1920*1080,如果将这样的固定输出的显示比例一旦接入到比例不一致的VGA/HDMI显示器中,就会出现整体的画面会被拉伸或挤压变形,无法适应市面上多样化的显示器的接入需求。

技术实现思路

本专利技术要解决的技术问题之一,在于提供一种基于Android的分辨率自动调整方法,实现了应用程序中分辨率与CPU输出分辨率的一致性,有效解决了不同外接显示器显示时出现的屏幕拉伸或压缩问题。本专利技术要解决的技术问题之一是这样实现的:一种基于Android的分辨率自动调整方法,包括如下步骤:步骤10、在Android文件系统的起始空白区域划分一存储扇区;步骤20、通过BootLoader程序读取存储扇区内的数据,并将该数据作为Kernel(操作系统内核)程序的启动参数传给内核;步骤30、启动Kernel程序,解析BootLoader程序传入的参数,得到历史分辨率,并初始化LCDC(液晶显示控制器)驱动,将历史分辨率赋值给CPU输出分辨率;步骤40、通过显示器驱动获取当前外接显示器的最佳分辨率,并将当前外接显示器的最佳分辨率写入存储扇区;步骤50、判断历史分辨率与当前外接显示器的最佳分辨率是否一致,若一致,则进入步骤60,否则,返回步骤20;步骤60、启动Android主服务,在Android主服务中,启动显示服务,获取CPU输出分辨率,把CPU输出分辨率赋值给Android框架层的display-size。进一步的,所述存储扇区大小为512字节。进一步的,所述步骤40具体包括:步骤41、通过显示器驱动获取当前外接显示器的EDID(扩展显示标识数据)信息,从EDID信息中获取当前外接显示器的最佳分辨率;步骤42、把当前外接显示器的最佳分辨率写入存储扇区内,替换存储扇区中原有的数据。本专利技术要解决的技术问题之二,在于提供一种基于Android的分辨率自动调整系统,实现了应用程序中分辨率与CPU输出分辨率的一致性,有效解决了不同外接显示器显示时出现的屏幕拉伸或压缩问题。本专利技术要解决的技术问题之二是这样实现的:一种基于Android的分辨率自动调整系统,包括:存储扇区建立模块:用于在Android文件系统的起始空白区域划分一存储扇区;存储扇区读取模块:用于通过BootLoader程序读取存储扇区内的数据,并将该数据作为Kernel(操作系统内核)程序的启动参数传给内核;CPU输出分辨率设置模块:用于启动Kernel程序,解析BootLoader程序传入的参数,得到历史分辨率,并初始化LCDC(液晶显示控制器)驱动,将历史分辨率赋值给CPU输出分辨率;当前外接显示器信息获取与存储模块:用于通过显示器驱动获取当前外接显示器的最佳分辨率,并将当前外接显示器的最佳分辨率写入存储扇区;判断模块:用于判断历史分辨率与当前外接显示器的最佳分辨率是否一致,若一致,则进入显示尺寸确定模块,否则,进入存储扇区读取模块;以及显示尺寸确定模块:用于启动Android主服务,在Android主服务中,启动显示服务,获取CPU输出分辨率,把CPU输出分辨率赋值给Android框架层的display-size。进一步的,所述存储扇区大小为512字节。进一步的,当前外接显示器信息获取与存储模块具体包括:当前外接显示器信息模块:用于通过显示器驱动获取当前外接显示器的EDID(扩展显示标识数据)信息,从EDID信息中获取当前外接显示器的最佳分辨率;以及存储扇区数据更新模块:用于把当前外接显示器的最佳分辨率写入存储扇区内,替换存储扇区中原有的数据。本专利技术具有如下优点:本专利技术实现自动检测外接显示器的显示比例,获取外接显示器的最佳分辨率,并通过修改CPU输出分辨率,确保应用程序中分辨率与CPU输出分辨率一致,本专利技术可支持市面上所有显示比例的正常输出,能够自动适应不同外接显示器的不同分辨率显示相应比例的界面,有效解决了显示中出现的屏幕拉伸或压缩问题。附图说明下面参照附图结合实施例对本专利技术作进一步的说明。图1为本专利技术方法执行流程图。图2为本专利技术系统逻辑结构示意图。具体实施方式请参阅图1,一种基于Android的分辨率自动调整方法,包括如下步骤:步骤10、在Android文件系统的起始空白区域划分一存储扇区,所述存储扇区大小为512字节,用于存储外接显示器的最佳分辨率;步骤20、通过BootLoader程序读取存储扇区内的数据,并将该数据作为Kernel程序的启动参数传给内核;步骤30、启动Kernel程序,解析BootLoader程序传入的参数,得到历史分辨率,并初始化LCDC驱动,将历史分辨率赋值给CPU输出分辨率,由于显示器驱动晚于LCDC驱动初始化,所有之后才能对设置的CPU物理分辨率进行判断;步骤40、通过显示器驱动获取当前外接显示器的最佳分辨率,并将当前外接显示器的最佳分辨率写入存储扇区;该步骤具体包括:步骤41、通过显示器驱动获取当前外接显示器的EDID信息,EDID信息中包括了外接显示器适合的分辨率和最佳分辨率信息,从EDID信息中获取当前外接显示器的最佳分辨率;步骤42、把当前外接显示器的最佳分辨率写入存储扇区内,替换存储扇区中原有的数据;步骤50、判断历史分辨率与当前外接显示器的最佳分辨率是否一致,若一致,则进入步骤60,否则,返回步骤20;步骤60、启动Android主服务,在Android主服务中,启动显示服务,获取CPU输出分辨率,把CPU输出分辨率赋值给Android框架层的display-size,把display-size设置成与Android应用程序获取到的CPU输出分辨率一致的分辨率,由于display-size是通过ActivityManager设置的一项系统属性,作用于Android显示框架中,由ActivityManager管理,影响到Android四大组件之一的Activity,也就影响到UI布局文件,使得应用程序的UI能够根据显示器规格也显示出相应适配的界面。请参阅图2,一种基于Android的分辨率自动调整系统,包括存储扇区建立模块、存储扇区读取模块、CPU输出分辨率设置模块、当前外接显示器信息获取与存储模块、判断模块以及显示尺寸确定模块:存储扇区建立模块:用于在Android文件系统的起始空白区域划分一存储扇区,所述存储扇区大小为512字节,用于存储外接显示器的最佳分辨率;存储扇区读取模块:用于通过BootLoader程序读取存储扇区内的数据,并将该数据作为Kernel程序的启动参数传给内核;CPU输出分辨率设置模块:用于启动Kernel程序,解析BootLoader程序传入的参数,得到历史分辨率,并本文档来自技高网...

231142464.gif

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值