一种基于Android内核的动态生成位图图像的信息显示方法

文档序号:9249109阅读:219来源:国知局
一种基于Android内核的动态生成位图图像的信息显示方法
【技术领域】
[OOOU本发明属于移动通讯系统信息技术领域,设及一种基于Amlroid内核的动态生成 位图图像的信息显示方法。
【背景技术】
[000引Amlroid系统是谷歌公司为移动设备设计的软件平台和开放操作系统。它基于Linux2. 6内核,包括操作系统、中间件堆找、可定制的用户接口和应用程序。由于An化oid 系统的开放性,手机厂商或第=方开发者可W对其内核源码进行修改,W实现系统功能的 扩展或安全性的增强。其主要步骤包括;下载Amlroid内核源码、对源码进行修改、编译得 到内核镜像、将内核镜像刷入到手机等Amlroid设备中。使用上述方式对Amlroid系统进 行修改后,经常会遇到一个问题,就是如何将内核的一些信息显示给用户。其中的主要难点 是;和用户直接打交道的是上层应用程序,内核无法直接与用户交互;开发者不想或无法 对上层应用程序进行修改或添加,从而实现内核信息的显示。
[0003]位图图像,也称作点阵图像,是由像素点组成的。BMP是位图文件的格式,它由文件 头、位图信息头、颜色信息和图形数据四部分组成。其中文件头数据结构含有文件类型、文 件大小和像素数据起始位置等信息。对于256色位图,每个像素点使用8位二进制数表示, 该8位二进制表示的是颜色表中的一个颜色索引。颜色表用来描述位图中的颜色,它有若 干个表项,每个表项代表一种颜色。

【发明内容】

[0004]本发明的目的是为解决上述问题,提出了一种基于Amlroid内核的动态生成位图 图像的信息显示方法。
[0005]本发明的原理如图1所示,利用系统已有的可W显示图像的程序,通过在内核虚 拟文件系统中拦截应用对图片文件的读操作,在应用读取特定图片时,在内核中动态生成 位图图像返回给应用层,从而实现内核信息的显示。
[0006]本发明的目的是通过W下技术方案实现的:
[0007] 一种基于Amlroid内核的动态生成位图图像的信息显示方法,包括如下四个步 骤:
[000引 1.在系统中找到一个可W显示固定位图图像的应用程序,显示的原始图像不必是 位图,但当把原始图像替换为位图图像后,应用程序仍能正常显示。记所显示的原始图像文 件为F1,其路径为P;
[0009] 2.根据需要显示信息的多少创建一个大小合适的位图文件,记为F2,然后使用 Wi址ex软件或其他方法将巧的内容拷贝到一个unsigned char类型的字节数组中,记该字 节数组为A,数组的长度即位图文件的大小,记为L;
[0010] 3.在内核虚拟文件系统的vfs_read函数中,添加对路径P的拦截,当读取的文件 路径为P时,返回位图字节数组A中的内容;此时,原来显示图像文件FI的上层应用程序显 示的将是位图F2的内容;
[0011] 4.内核需要显示信息时,根据位图文件的格式,将所需显示的信息写入到位图字 节数组A中的数据区域。
[0012] 作为优选,在每次写入数据前,先将位图数据进行擦除,初始化为单一的背景色。
[0013] 在所述步骤2中,可W根据显示信息的不同,创建不同位深度的位图文件。位深越 大,可W显示的颜色数越多,但是占用的内存也越大,显示信息所需的时间也越长。
[0014] 在所述步骤3中,vfs_read是内核虚拟文件系统中用来读取文件内容的函数,其 函数原型为ssize_tvfs_read(structchar一user*buf,size_tcount,loff_ t*pos),file参数是所读取的文件对象,可w根据该对象获得文件的路径,进而可W判断该 路径是否为原始位图文件路径P。buf参数是用户态的缓冲区,读取的文件内容将写入该个 缓冲区,从而传递给用户层的应用程序,count是读取长度,POS是读取的位置。根据POS和 count可W得到读取的区域,对于该区域位于0~L之内的部分,则将A中相应的数据拷贝 到buf中;对于不在0~L之内的部分,则buf相应的数据置为背景色所对应的数值。
[0015] 作为优选,步骤四所述需要显示的信息包括文本信息,但不限于文本信息,原理上 包括所有能用位图显示的信息。
[0016] 作为优选,如果在所述步骤4中,需要显示的信息为文本信息,首先需要获得字符 对应的由0和1组成的字形矩阵(其中0显示背景色,1显示字体颜色),根据字形矩阵,在 位图字节数组A中的像素数据区域写入相应的颜色值。
[0017] 有益效果
[001引本发明在不修改或添加应用程序、不替换文件系统中的图片的情况下实现了内核 信息向用户的展示,达到让用户了解相关设备当前状况的目的。
【附图说明】
[0019] 图1为本发明方法的原理示意图;
[0020] 图2为本发明实施例手表监管信息界面示意图;
[0021] 图3为本发明实施例使用画图工具创建的显示位图巧的界面示意图;
[0022] 图4为应用本发明实施例显示的手表端口状态效果示意图。
【具体实施方式】
[0023] 下本结合实施例对本发明方法做进一步详细说明。
[0024] 实施例
[0025] 首先介绍一下本实施例的项目背景。An化oidWear系统是An化oid系统的一个分 支,是专为穿戴设备设计的一款智能操作系统,LGGWatch是搭载An化oidWear系统的一 款智能手表,针对LGGWatch,项目通过下载Linux内核源码,对源码进行修改编译,然后对 手表内核进行替换,完成了在内核层对手表的麦克风、藍牙和ADB端口进行控制的功能,同 时提供了用户控制接口,用户可W通过手表自带的闹钟程序实现对S个端口的开关控制。 本实施例作为该项目的一部分,实现了对手表=个端口的状态显示功能。
[0026] 本实施例使用64位Windows?操作系统,并使用VMware软件在其中安装了64位 的化un化14. 04虚拟机,内核源码的下载编译和内核替换等工作都是在虚拟机中完成的。 [0027] 下面介绍如何使用本发明的方法,实现对LGGWatch手表S个端口的状态显示。
[002引步骤一、找到显示固定图片的应用
[0029] 通过分析手表自带应用,在其中找到一个显示图片的应用,它是Settings应用下 的About中的RegulatcxryIn化rmation界
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1