基于Linux的Andriod手机检测软件的设计与实现
2016-04-13李鑫
李 鑫
(石家庄职业技术学院 电气与电子工程系, 河北 石家庄 050081)
基于Linux的Andriod手机检测软件的设计与实现
李鑫
(石家庄职业技术学院 电气与电子工程系, 河北 石家庄050081)
摘要:使用最为流行的C/S模式,采用+Bmob开源数据库,设计了一款手机检测软件.为防止出现数据篡改问题,使用proc系统进行硬件信息检测.它具有首页面、加速和系统检测、添加测评信息、读取手机硬件信息等功能.
关键词:Linux;Andriod;proc系统;Java
随着我国经济持续稳定的增长和移动通信服务的发展,移动通信市场增长迅速,智能手机日渐普及,人们对手机的要求也越来越高.有的手机生产厂家为了抢占市场,在手机推出时就存在虚标硬件参数及蒙骗消费者的行为.为此,市场亟需一款能够检测与手机相关的所有信息(软件和硬件),特别是cpu、内存、摄像头、MAC地址等,且不存在信息被篡改可能的软件.如果消费者拥有这种专业而易用的检测软件,就能够对手机的配置一目了然.在这种情况下,笔者设计了一款基于Linux的Andriod手机检测软件,以满足消费者的需求.
1手机检测软件的整体设计思想
本手机检测软件使用市面最流行的C/S模式进行开发.客户端与服务器端的通信使用xmpp协议,其中,客户端使用smack包,服务器端采用openfire开源系统.通过客户端对通信协议及过程进行监听、适配和服务.使用IfoList中的监听器检测通信中的活动值,每个活动值都在配置文件(mactiv.xml)中显示,界面的显示标准由对应的配置文件设定.
为防止出现数据篡改问题,使用proc系统进行硬件信息检测.Linux内核提供了一种通过proc文件系统访问内部数据结构、改变内核设置的机制.Proc文件系统是Linux系统中的一个虚拟文件系统,其下的文件并不真实存在,只虚拟存在于系统内存中,因此并不占用外存空间[1].很多技术文档也将其称为伪文件系统.它以文件系统的方式为访问系统内核数据的操作提供接口[2].用户和软件程序可以通过proc得到系统的信息,并可以改变内核的某些参数.由于系统的信息(如进程)是动态改变的,所以用户或软件程序读取proc文件时,是动态从系统内核中读出所需信息并提交的[3].
使用Java语言调用Linux中的命令编写shell脚本是将Android手机与Linux命令连接起来的关键[4].通常情况下,借助Java语言调用shell脚本需要使用process类.process类提供进程I/O接口、执行接口、中断接口、等待接口及检查接口的方法.当检测功能需要测定开发环境时,使用getRuntime()检测Java虚拟机的运行环境,使用exec()设置需要执行的命令.
2手机检测软件的数据库设计
本软件采用+Bmob开源数据库.在整个设计过程中,使用Visio插件设计系统的E-R图并导出关系图,根据关系图设计相应的表,并确定表的结构.根据系统实际需求,对表进行进一步设计,例如,添加“购机圈评论”的存储过程、“分享至”的触发器等.在设计过程中,实时进行测试,用真实的手机检测数据不断对数据库进行优化,以增强数据库的健壮性和可维护性.
3手机检测软件的功能概述
本文所设计的手机检测软件是Eclipse 3.5+Java语言的支持、Android Development Tool的插件和Android SDK 2.1版本全面结合的产物.它适用于Android 4.2以上并且屏幕分辨率≥480×800 的手机.
(1)首页面
首页面展示软件的全部功能,包括购机圈、安卓手机工具、手机硬件信息、帮助和关于.
(2)加速、系统检测
它能检测手机中正在运行的软件及内存占用情况,能检测硬件系统的基本信息、CPU信息、内存信息、分辨率信息、手机像素等;它也能关闭不必要的软件程序,加快系统的运行速度.
(3)测评信息添加
它能选择测评手机的型号,并能添加评价、可扩展性评价、购买商家、购买体验、商家满意度评价及其他硬件信息.其中,手机硬件信息由Linux命令读出.
它可按机型进行测评信息查询,也可输入关键字查询相关信息.
它还可以将特定信息分享到QQ、微信、我的电脑等软件中.
(4)手机硬件信息
手机硬件信息功能是本软件的特色功能,使用命令直接调用Linux proc文件系统,读出Android系统手机的硬件参数,包括处理器详情、负载详情、硬盘IO检测、内存详情等,保证所读参数真实可靠,且不能修改.
4手机检测软件的设计难点与特色
4.1难点
在Android开发环境下使用Linux内核提供的proc文件系统,通过命令对proc 文件系统进行调用.Proc作为Linux的虚拟文件系统,既有读取者也有写入者,为保证软件访问proc系统时读取信息的完整性和一致性,在读取proc文件时,调用struct proc_dir_entry->read_proc,read_proc的原型为:typedef int (read_proc_t)(char *page, char **start, off_t off, int count, int *eof, void *data). 这种实现方式,内核会将内部数据复制到page指向的缓冲区中.缓冲区最多只有一个page大小,所以当内部数据大于一个page时,就需要第二个参数start和off的帮助.通过偏移off,可进行多次调用.内部数据输出完毕时,必须将eof设置为1,表示所有数据都已经输出.这对于内部数据小于一个page的情况比较适合.由于可以一次输出,内部数据只需要用一个锁保护就可以保证数据的一致性.[5]
4.2特色
与传统硬件检测软件不同,该软件使用Linux命令调用proc文件系统直接检测硬件参数,能够更准确地将硬件信息检测出来,数据真实、可靠.软件读取信息的完整性和一致性能保证读取信息的准确度和不会被任意篡改.
5结语
本文设计的手机检测软件使用Linux命令检测硬件信息,数据真实可靠,不能随意篡改;操作简便,检测结果通俗易懂,必将吸引众多的使用者和商业投资者.
参考文献:
[1]孙纪坤,张小全.嵌入式Linux系统开发技术详解——基于ARM[M].北京:人民邮电出版社,2007:78-79.
[2]李超.面向流媒体应用的实时可执行概率获取技术研究[D].长沙:国防科学技术大学,2010.
[3]金士尧,张冬松,吴飞.超级计算机系统实时节能控制技术的理论与实践研究[J].计算机工程与科学,2012,34(8):24-31.
[4]李亚锋,欧文盛.ARM嵌入式Linux系统开发从入门到精通[M].北京:清华大学出版社,2007:112-114.
[5]杨水清,张剑,施云飞.ARM嵌入式Linux系统开发技术详解[M].北京:电子工业出版社,2007:53-54.
责任编辑:金欣
Designing and implementation of the Linux-based software for Android phone inspection
LI Xin
(Department of Electrics and Electronics, Shijiazhuang Vocational Technology Institute, Shijiazhuang, Hebei 050081, China)
Abstract:An Android phone inspection software is designed by using the most popular C/S mode and +Bmob open source database. To prevent data from tampering, the proc system is applied for hardware information detection. The device has such functions as home paging, accelerated system testing, addition of evaluation information, and reading of the phone hardware information.
Key words:Linux; Android; proc system; Java
收稿日期:2015-12-07
作者简介:李鑫 (1982-),女,河北石家庄人,石家庄职业技术学院讲师,硕士,研究方向:计算机网络、信息系统开发.
文章编号:1009-4873(2016)02-0034-02
中图分类号:TP311.52
文献标志码:A