1、基于armlinux平台的模拟手机设计学士学位论文摘要随着社会的发展,人们的通讯方式越来越多,不仅仅是写信,发邮件,上网。手机的流行已成为了一种趋势。同时手机的普及也给人们的生活带来了很多的便利,如:可以随时随地连接英特网,可以随时和朋友,亲人联系,同时还能拍照,听歌,看文档。同时也兼有计算器,手表,相机的功能。基于Arm-Linux平台的模拟手机设计从理论上来说具备基本的手机功能,能进行通话,电话本管理,信息管理,MP3、MP4功能,具备记事本,计算器,图片查看,号码归属地查询等小功能,同是还能连接英特网,实现了简单的游戏,特别的是此系统能实现跨平台运行,可以交叉编译。如果能烧入开发板上面,
2、将能够和手机媲美。同时它能运行在ARM9,ARM11等开发板上面,进行一系列的模拟实验。关键词:Arm-Linux平台;模拟手机设计;ARM9;ARM11AbstractWith the development of society, peoples communication mode is more and more, just write, email, Internet access. The popular mobile phone has become a trend. Meanwhile the popularity of cell phone also give people
3、life brought a lot of convenience, such as: connect the Internet can at any time anywhere, can at any time and friends, family contact, but also photos, music, see documents. Also with calculator, watches, the camera functions.Based on the Arm - Linux platform from theory for analog phones have the
4、basic design of the mobile communication function, can this management, telephone, information management, MP3, MP4 functionality, have notepad, calculator, picture viewer, number where inquiry on small function, is also can connect with the Internet, realized simple game, special is the system can
5、realize cross-platform operation, can cross-compiling. If can spread on development board, will be able to and cell phone rival. At the same time it can run on ARM9, such as ARM11 above development board, carries on a series of simulation experiment.Key words: arm-linux platform; analog phone design
6、; arm9; arm11第1章 绪论1.1 引言手机的质量是一个手机厂商的生命线,如果没有一个让人们用着放心,用着满意的手机质量,那么这个手机厂商将无立身之地。当然这里所说的手机质量包括硬件和软件两方面。因此,提高手机的质量是一个手机厂商的重中之重。基于Arm-Linux平台的模拟手机设计从理论上来说具备手机的基本功能。同时此系统能实现跨平台运行,可以交叉编译。同是也能在开发板上进行一系列的模拟实验。1.2 课题背景1.2.1 国外研究现状目前,全球手机厂商的竞争已是异常的激烈,然而拥有一个好的手机操作系统已成为各大厂商的首选。根据市场调查公司Ovum表示,手机制造商陆续采用含有先进的图形与
7、影音处理能力 高效能硬件,逐渐从ARM-11系列处理器过度到ARM Cortex A8,且Qualcomm(高通)Snapdragon芯片也正在紧锣密鼓的筹备中。相对于Symbian和Windows Mobile,现状登场的Android要更显年轻。Android是基于Linux内核的软件平台和操作系统,早期由Google开发,后由开放手机联盟Open Handset Alliance开发。它采用了软件堆层的架构,主要分为三部分。低层以Linux内核工作为基础,只提供基本功能,其他的应用软件则由各公司自行开发,以Java作为编写程序的一部分1.2.2 国内研究现状国内手机市场热点频涌,产销量迈
8、上新的台阶。彩屏手机、彩信手机、智能手机已逐渐成为市场主流,高像素照相手机、运营商定制手机、双模双卡手机开始纷纷登台亮相。与此同时,国内手机产销量经过二季度的短暂徘徊,三季度又出现恢复性增长,目前已占得全球三分天下。随着国外手机系统的出现,中国移动OMS智能系统应运而生,OMS是中国移动深度定制的手机操作系统,该系统是基于Linux内核、采用Android源代码进行重新开发的一套系统,在用户界面以及功能上与此前的Google手机有很大不同。在功能方面,OMS深度集合了中国移动现有的各项业务,包括飞信、快讯、139邮箱、移动梦网等数据服务。在用户体验方面,OMS同样也汲取了iPhone,Andr
9、oid,Black Berry等多种移动终端的优势,并结合中国人自己的行为习惯和喜好方式,设计出了完全区别于Android的用户界面,其最大的特点就是采用大屏触摸式设计风格。1.3 研究方法广泛搜集研究资料,参考国内手机系统设计的成果,分析他人的设计方法和思想,对该系统的工作模式及其体系结构进行探讨,对系统进行概要设计。认真请教导师,在导师的指导下利用在大学所学的知识认真仔细做好需求分析,做好详细设计的准备。应用相关的理论、技术编码,如Sqlite数据库理论,C+语法,Qt界面布局,交叉编译。最后运用构建知识将程序移植到mini2440上进行测试,并优化性能。开发过程中主要用到的开发工具有QT
10、 Creator4.6,ARM9,超级终端,设备驱动等。该系统预期实现的功能有:登陆功能,通信录管理,通话记录,信息服务,情景设置,多媒体,小工具,娱乐,客户服务,谷歌地图。1.4 论文结构说明本文从软件开发的角度并结合详细的图示和相关关键代码阐述了关于开发基于Arm-Linux平台的模拟手机设计的背景、意义、系统的需求分析,概要设计,详细设计,并对数据库进行了分析,从数据库的用户需求,概要设计,E-R图设计,逻辑设计,物理设计,都进行了详细的阐述。一个好的软件开发过程是漫长的,本系统从设计到完成编码用了差不多三个月的时间,由于本人软件工程知识理解有限,难免会在使用的过程中产生开发过程中隐藏的
11、问题,本文提供了该软件的基本运行,测试环境的搭建和调试方法,并提供了相关说明。由于作者水平和经验的限制,加之编写时间仓促,本文可能存在不当之处,敬请批评指正。第2章 需求分析2.1 系统功能分析基于Arm-Linux平台的模拟手机设计系统统过给定的密码登录页面进行操作。登录判定上首次基于数据库验证。使用者可以在登录成功后对密码进行修改,并同时可以选择进行一系列操作,通话记录,信息服务,情景设置,多媒体,小工具,娱乐,客户服务。该系统的功能需求可归纳为:1. 用户通过密码进入主功能模块;2. 实现电话薄的基本管理;3. 记录本地的通话情况;4. 五子棋小游戏的简单实现;5. 背景,语言,时间的简
12、单设置;6. 媒体播放器的简单实现;7. 计算器,记事本,系统实时监控,号码归属地查询,货币兑换等小工具的使用;8. 浏览器的实现;9. 简单客户信息的查看;2.2 可行性分析2.2.1 技术可行性分析根据自己四年所掌握的知识,熟练掌握的语言有:C , C+,Linux C,同事具备对数据库的基本使用能力,能用Sql, Mysql, Sqlite,进行程序开发。同时,对嵌入式进行过系统的学习,懂得汇编语言,交叉编译,文件系统配置,驱动移植,并且能熟练运用QT进行程序开发。QT 是一个跨平台应用程序和 UI 开发框架。使用 QT 您只要一次性开发应用程序,无需重新编写源代码,便可跨不同桌面和嵌入
13、式操作系统部署这些应用程序,Qt Creator 是 Qt 被 Nokia 收购后推出的一款新的轻量级集成开发环境(IDE)。此 IDE 能够跨平台运行,支持的系统包括 Linux(32 位及 64 位)、Mac OS X 以及 Windows。根据官方描述,Qt Creator 的设计目标是使开发人员能够利用 Qt 这个应用程序框架更加快速及轻易的完成开发任务综上所述,技术上开发条件具备。2.2.2 经济可行性分析本系统的开发成本包括开发时间、软件、硬件。开发时间为三个月,由本人利用毕业设计的时间完成。软件成本为现有软件,已经网上找到的免费开发工具。完全可以胜任开发要求。硬件成本是已有的一台
14、笔记本电脑,相关现有的外围设备,当然,演示的时候可能不能进行实践的操作。开发本系统的经济条件基本具备,可以开发。第3章 概要设计3.1 系统目标基于Arm-Linux平台的模拟手机设计,能进行简单的手机功能,通过这个系统,能进行通话,休闲,娱乐,学习等基本功能。3.2 系统模块图通过需求分析可得到模拟手机设计系统的模块由九大部分构成,它们分别是登录模块、通讯管理、通话记录、信息服务、情景设置、多媒体、小工具、娱乐、客户服务。功能模块图如图3.1所示。图 3.1 系统模块图3.3 系统功能流程图图 3.2 系统功能流程图第4章 数据库设计4.1 数据库需求分析数据库需求分析就是要了解在这个系统中
15、,用户需要查询、更新、删除和保存哪些数据,收集基本数据、数据结构以及数据处理的流程,组成一份详尽的数据字典,为后面的具体设计打下基础8。4.2 数据库概要设计概念设计是整个数据库设计的关键。它的目的是将需求说明书中关于数据的需求,综合为一个统一的DBMS概念模型。首先根据单个应用的需求,画出能反映每一应用需求的局部E-R模型。然后将这些E-R模型图合并起来,消除冗余和可能存在的矛盾,得出系统总体的E-R模型。E-R图(Entity-Relationship图,实体-关系图)是由P.P.Chen于1976年首先提出。它提供不受任何DBMS约束的面向用户的表达方法,在数据库设计中被广泛用作数据建模
16、的工具。E-R数据模型问世后,经历了许多修改和扩充。E-R模型的构成成分是实体集、属性和联系集,其表示方法如下:1. 实体集用矩形框表示,矩形框内写上实体名。2. 实体的属性用椭圆框表示,框内写上属性名,并用无向边与其实体集相连。3. 实体间的联系用菱形框表示,联系以适当的含义命名,名字写在菱形框中,用无向连线将参加联系的实体矩形框分别与菱形框相连,并在连线上标明联系的类型,即11、1M或MM。本系统中的实体以及实体的属性如图4.1-图4.4所图4.1 用户图4.2 通讯人图4.3 号码图4.4 短信4.3 数据库物理设计本系统采用QT里面自带的一种小数据库,不需要另外再去安装。具体部分实现如
17、下:QSqlDatabase db; /创建数据库对象 db = QSqlDatabase:addDatabase(QSQLITE); /设置数炤库类型db.setDatabaseName(info.db); /设置数据库的名字QSqlQuery query; /声明一个对象 query.exec(create table password(id int primary key, pass varchar(6); /建表query.exec(insert into password values(1, 123); /插入数据query1.exec(select * from password)
18、; /查询 stModel = new QSqlTableModel(this, db); /创建数据模型 stModel-setTable(peoples); /模型关联students表stModel-setEditStrategy(QSqlTableModel:OnManualSubmit); /设置模型编辑策略 stModel-select(); /执行默认查询ui-viewInfo-setModel(stModel); / viewInfo 关联模型stModel-insertRow(dwMapper-currentIndex() + 1); /增stModel-removeRow(
19、dwMapper-currentIndex(); /删除dwMapper-submit();stModel-submitAll(); /修改第5章 系统详细设计5.1 登录详细设计5.1.1 登录流程本系统登录流程如图5.1所示。图5.1登录流程5.1.2 登录页面登录代码设计/密码匹配 while(query1.next() if(strcmp(query1.value(1).toString().toLocal8Bit().data(), pass.toAscii().data() = 0) spass = ; pass = ;Menu *m = new Menu(this); this-
20、hide(); m-setWindowFlags(Qt:Window|Qt:FramelessWindowHint); m-show(); else QMessageBox:warning(this, Error, 密码不对!); return;/将密码转换成*显示if(strlen(pass.toAscii().data() - strlen(ui-lineEdit-text().toAscii().data()!= 0) for(int num = 0; num lineEdit-text().toAscii().data(); num+) if(ui-lineEdit-text().to
21、Ascii().data()num != *) pass.append(ui-lineEdit-text().toAscii().data()num); spass.append(*); ui-lineEdit-setText(spass); 登陆界面: 图5.2 登录设计 5.2 通讯录管理功能详细设计5.2.1 通讯录管理的流程图图5.3 通讯录管理流程5.2.2 通讯录管理的设计 部分代码设计: QString name = ui-lineEditName-text();QSqlDatabase db;if(!db.isOpen() db = QSqlDatabase:addDataba
22、se(QSQLITE); / 设置数据库类型 db.setDatabaseName(info.db); / 设置数据库名 if(!db.open() QMessageBox:warning(this, Error, 打开失败!); return; QSqlQuery query;if(!query.exec(select * from peoples) QMessageBox:information(this, 提示, query.lastError().text(); while(query.next() query.value(0).toString().toLocal8Bit().dat
23、a(); if( !strcmp(name, query.value(1).toString().toLocal8Bit().data() ) ui-lineEditNum-setText(query.value(2).toString(); ui-lineEditOther-setText(query.value(3).toString(); flag = false; break; 通讯录管理的部分界面: 图5.4 通讯录管理页面设计5.3 情景设置5.3.1 语言设置目前设置了2中语言的转换:中、英文,将来可能添加多语言。语言设置的过程是:1. 在工程中 .pro 中添加 transla
24、tions = MyPhone_ch.ts (ts前面的名字可以不同);2. 通过终端进入项目的目录 执行lupdate .pro 命令 (这时,MyPhone_ch.ts中内容更新了,被tr()标注的字符串被提取出来了);3. 执行 linguistMyPhone_ch.ts,进行编辑,对提取的每个串进行翻译,也就是键入对应字串。在左边面板中列出所有可供翻译的字串,单击之,右边编辑区会显示出来;4. 在“File”菜单下,单击Release项,这会生成我们需要的.qm文件; 语言设置的部分代码:QTranslator translator(this); /声明一个翻译类的对象translat
25、or.load(Myphone_ch,.); /将配置文件加载进来qApp-installTranslator(&translator); /在所有界面插入配置文件语言设置的界面: 图5.5 语言切换界面 5.3.2 背景设置背景设置就是皮肤设置,借用css 的灵感, Qt也支持Qt自己的css, 简称qss。同css 相似,qss的主要功能与最终目的都是能使界面的表现与界面的元素分离,即质与形的分离,就如同一个人可以在不同的时候穿上不同的衣服一样,css机制的引入,使得设计一种皮肤与界面控件分离的软件成为可能,应用程序也能像web界面那样随意地改变外观。详细内容请参考: 。Qss的简单使用:
26、 QFile qss1(test.qss);qss1.open(QFile:ReadOnly);qApp-setStyleSheet(qss1.readAll(); qss1.close();5.3.3 日期查询 图5.6 日期查询5.3.4 开机PIN密码的设置 图5.7 PIN的设置5.4 多媒体5.4.1 本系统支持视频,音频的播放,具体部分实现如下:mObject = new Phonon:MediaObject(this); aOutput = new Phonon:AudioOutput(Phonon:MusicCategory, this); /音频 vWidget = new
27、Phonon:VideoWidget(ui-frameVideo); /视频 vWidget-setAspectRatio(Phonon:VideoWidget:AspectRatioAuto); /让解码器找到长宽比从媒体文件自动(这是默认的) vWidget-setScaleMode(Phonon:VideoWidget:FitInView); /这个录像将安装角度来填补保持长宽比 sSlider = new Phonon:SeekSlider(ui-frameProcessVideo); vSlider = new Phonon:VolumeSlider(ui-frameProcessL
28、isten); /声音进度条 Phonon:createPath(mObject, aOutput); Phonon:createPath(mObject, vWidget); /关联视频与 mObject对象 sSlider-setMediaObject(mObject); /播放进度条与播放位置关联 vSlider-setAudioOutput(aOutput); /声音进度条与音频关联 sSlider-setMinimumWidth(ui-frameProcessVideo-width(); /设置长度 播放进度条 vSlider-setMinimumWidth(ui-frameProc
29、essListen-width(); /设置长度 音量大小进度条5.4.2 实现的界面: 图5.8 视频播放 5.5 小工具5.5.1 计算器支持普通的数学运算功能,能进行 +,-, *、 %。同时还能进行二进制,十进制,十六进制的转换。计算器的部分代码如下:/以下是转换为二进制的部分代码:if(T_D_H = 10) /当前是十进制 number = ui-txtEdit-text().toDouble(); number1 = (int)number; pnumber = number - number1; while(number1) listt+= number1%2; number1
30、 /= 2; t-; while(t != -1) switch(listt) t-; if(pnumber != 0.0) /当前的十进制有小数部分 int pn = 3; temp.append(.); while(pn-) else if(T_D_H = 16) /当前是十六进制 strcpy(clist,ui-txtEdit-text().toLocal8Bit().data(); for(int t = 0 ; t txtEdit-setText(temp);T_D_H = 2;/以下是转换为十六进制的部分代码if(T_D_H = 2) else if(T_D_H = 10) j = 1; num = int(ui-
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1