`

剖析手机软件的运行环境

 
阅读更多

目前的大部分手机应用,例如Java、BREW、WAP、邮件、摄像头、闪存、MP3、蓝牙,在单CPU方案里都能实现。我认为不管3G、4G如何发展,小巧、实用、低成本的单CPU方案总会占据较大的市场
1.1 概述
手机可以被看作袖珍的计算机。它有CPU、存储器(flash、RAM)、输入输出设备(键盘、显示屏、USB和串口)。它还有一个更重要的I/O设备,那就是空中接口。手机通过空中接口协议(例如GSM、CDMA、PHS等)和基站通信,既可以传输语音、也可以传输数据。

手机的CPU一般不是独立的芯片,而是基带处理芯片的一个单元,也称作CPU核。基带处理芯片是手机的核心,它不仅包含CPU核、DSP核这些比较通用的单元,还包含通信协议处理单元。通信协议处理单元和手机协议软件一起完成空中接口要求的通信功能。

随着芯片技术的不断发展,越来越多的外围电路可以被集成到基带处理芯片中,例如BAP,即基带模拟处理器。这样手机才可能越做越小、越做越便宜。

1.2 单CPU和双CPU
很多手机只有一个CPU,也就是基带处理芯片中的CPU核。在这个CPU上既要跑通信协议,又要实现用户界面(称作UI或MMI)。当然DSP会分担一些计算量繁重的工作,例如语音编解码、安全层的各种算法等。

在市场推动下,手机功能在不断发展。摄像头、MP3、蓝牙这些功能可以依靠硬件,对CPU的压力还不是很大,但java虚拟机、嵌入式浏览器等应用软件就会对CPU资源有较高的要求。

单CPU的首要任务是完成通信协议。通信协议软件有着很精确的定时要求,如果这个CPU还要兼顾很多应用软件的话,就难免吃力。于是双CPU手机应运而生。

顾名思义,双CPU手机就是有两个CPU的手机,一个CPU专心把通信协议做好,另一个CPU负责UI、java虚拟机、嵌入式浏览器等应用功能。两个CPU可以做在一个芯片里面,也可以分开。

市场上的实际情况是,很多手机设计公司(Design House)没有基带处理芯片的开发能力,他们购买国外公司的手机模块,自己在外面再加一块CPU。模块跑通信协议,自己加的CPU跑UI和应用软件,两者通过串行口通信。很多Design House也会购买国外方案商的开发板级方案,自己做PCB、软件上改改UI和外设驱动。

市场上的智能手机基本上全是双CPU方案,什么Windows CE、SmartPhone、WindowsMobile、Symbian、嵌入式Linux全是运行在第二块CPU上的。这些商业操作系统无法和无线通信协议软件集成到一块CPU上。双CPU的手机功能比较多,但它们一般体积大,耗电多,成本高。现在市场上的大部分手机还是单CPU的。

目前的大部分手机应用,例如Java、BREW、WAP、邮件、摄像头、闪存、MP3、蓝牙,在单CPU方案里都能实现。我认为不管3G、4G如何发展,小巧、实用、低成本的单CPU方案总会占据较大的市场份额。

1.3 3G和4G
3G和4G是指第三代、第四代无线通信技术,对手机而言,它们改进的是空中接口的效率,空中接口能以更大的带宽传送数据。通过手机无线上网的速度会更快。这和话音业务、手机应用软件没有直接的联系。

当然,手机的嵌入式数据业务由于更高的带宽,会产生更多的可能性。不过这些可能性的实现还是会受到手机输入慢、显示屏小等条件的制约。

2.手机软件的组成
2.1 概述
手机软件和PC机软件一样从中断向量表开始,因为比较小,看上去更加清晰。中断向量表的第一个跳转指令当然是跳到复位的处理程序,后面是中断处理、错误处理的跳转指令。一上电,手机就跳转到复位的处理程序,开始检查内存、初始化C运行环境,然后创建第一个任务。这个任务会按顺序创建、启动其它任务。绝大多数手机程序都是多任务的,但也有一些小灵通的协议栈是单任务的,没有操作系统,它们的主程序轮流调用各个软件模块的处理程序,模拟多任务环境。

手机软件可以粗略地分成启动模块、操作系统、协议栈、数据业务、本地存储、驱动程序、用户界面和其它应用。启动模块前面已经说过了,下面简单介绍其它部分。

2.2 操作系统
操作系统在手机软件只占很小一部分。它的主要功能就是提供多任务调度、通信机制。有的操作系统会提供动态内存分配,定时函数,但这些都不是必须的。例如需要动态内存分配的模块,可以自己管理一个内存池,这样更易于隔离模块和预测内存需求。
大多数手机的操作系统都是一个很小的内核,例如REX、HIOS等。高通REX的源代码连C代码加汇编也不过一千多行,编译后不过是2、3K的代码量。而一般手机软件有几百到上千个源文件、超过一百万行的代码。

2.3 协议栈
协议栈是手机软件最复杂的部分,它的复杂性在于它和基带处理芯片的设计密切相关。只有具备芯片设计能力的企业才可能开发协议栈。协议栈会使用基带处理芯片的所有资源。

2.4 数据业务
数据业务主要有两种:在前一种,手机相当于一个调制解调器,PC机通过手机上网,网络协议全在PC机上,手机提供数据链路。另一种就是嵌入式数据业务,手机内部包含TCP/IP/PPP等协议,有时还要实现HTTP和嵌入式浏览器。

2.5 本地存储
手机都有本地存储功能,存储电话本、短消息、用户设定等。一般手机都有一个基于flash的文件系统。早期的手机存储是基于EEPROM的。

2.6 驱动程序
硬件驱动一般指外设驱动,不过有的外设已经被集成到基带处理芯片中了。驱动程序包括键盘、电源管理模块、LCD、flash、RTC、串口、USB、SIM卡或UIM卡、射频驱动等。

2.7用户界面
用户界面(UI)又称作人机界面(MMI),它负责和用户的交互,在必要的时候调用其它模块的功能。除了手机的必备功能外,用户界面也可能包含一些相对独立的应用程序,例如日程表、游戏等。

2.8其它应用
其它应用包括Java虚拟机、WAP浏览器、邮件软件等,是一些比较大,又相对独立的应用模块。

手机程序绝大部分是用C语言写的。但对于做应用软件的程序员要求具备面向对象、设计模式的思维能力,然后用C语言实现出来。	

分享到:
评论

相关推荐

    手机人机界面MMI软件的PC模拟开发环境设计与实现

    开发和测试的的效率,提出了利用成熟而高效的(’ 软件开发平台模拟手机软件开发平台的方案。为了 较清楚地描述该方案,本文首先讨论了!!6 应用程序的体系结构,继而阐述了模拟的一般原则和需要达 到的目标,最后详细...

    手机游戏破解软件halo 2.0中文版使用本工具可以轻松破解jar手机收费游戏

    本工具运行需要java运行环境支持 请自行下载JDK安装 进入HALO 打开一个需要破解了JAR 打后开,点击工具-配置,把对JAR进行破解勾上,如果不要修改游戏就把JAVAMAGIC的修改屏幕和键位关掉. 这样破解工作就完成了 在...

    鸿力手机号码归属地查询分类软件(VB+号码归属地数据库)

    本软件可以通过导入手机号,与归属地数据库对比,生成本地文本文件,进行归属地分类软件,软件简单易用,如果有大量手机号需要归属地区分,可以用这个软件很简单的就完成操作。 本文件中包含 2017年6月版 360569条...

    手机应用软件设计和开发的方法探讨

    分析了手机应用运行环境的特点, 并针对这些特点提出相应的对策; 同时, 针对手机中应用程序显示区域小,CPU 处理速度和内存容量限制, 应用程序的实时性要求和开发环境的封闭性等特点, 提出了一些设计策略和解决方案。

    TR950单模变双模工具

    TD920_MIFI LOCKNET TOOL 是一款可以使手机由单卡变双卡,单模变双模。 一、使用环境,适用电脑系统: Microsoft Windows XP、WIN7、Vista、2000 二、软件使用步骤(以Microsoft Windows XP系统为例) 1、用...

    [详细完整版]电力监控系统.doc

    软件运行环境 3 4.3. 机房要求 4 5. 系统功能 4 5.1. 配电系统实时监测 4 5.2. 详细电参量查询 5 5.3. 运行报表 5 5.4. 变压器运行监视 5 5.5. 实时报警 6 5.6. 历史事件查询 7 5.7. 遥控操作 7 5.8. 电能统计报表 ...

    基于LINUX下智能手机的设计(毕业设计)

    本文首先对 Linux 手机的发展现状和研究背景进行了分析,其次,介绍了智能手 机的硬件平台、操作系统和软件设计。通过对硬件的配置和软件的设计实现手机信号 强度检测、运营商检测、发短信、接短信、打电话、建立...

    基于安卓的GPS移动定位及运行轨迹管理系统毕业设计(含论文)

    本论文首先对基于Android的移动定位及运行轨迹管理系统进行了需求分析,从系统的建设目标、开发环境、设计流程、功能构建等几个方面进行系统的总体设计,使用Java语言设计了基于Android的移动定位及运行轨迹管理系统...

    【基于STM32设计的户外环境检测系统】

    软件方面,户外环境检测系统运行了专门设计的监测程序,该程序能够实现数据的实时采集、处理和分析。同时,用户可以通过手机APP实时查看环境数据的变化情况,并根据需要调整阈值。 综上,基于STM32的户外环境检测...

    安卓android课程设计分析报告.doc

    运行环境 软件需要在支持安卓系统的可移动设备中正确安装才能正常运行。安卓版本需在2.2及以 上,同时建议用户如果是在手机移动设备使用的话,需确保手机支持联网服务。 3. 设计和实现上的限制 Eclipse是开发相关...

    介绍智能手机的说明文600字(1).docx

    智能手机为用户提供了足够的屏幕尺寸和带宽,既方便随身携带,又为软件运行和内容服务提供了广阔的舞台,很多增值业务可以就此展开,如:股票、新闻、天气、交通等等。这些就是大多智能手机所具备的共同特点。 那么...

    android高考宝典系统毕业设计论文

    目录 摘 要 i ABSTRACT ii 1 系统总体概况描述 1 1.1 项目背景 1 1.2 开发原因 1 1.3 开发环境及运行环境 1 ...6.1软件运行环境 56 6.2软件安装 56 6.3显示系统图标 57 6.4系统首界面 58 结 论 59 参考文献 60

    软件系统整体设计方案.docx

    开发和运行环境 21 8.1. 硬件环境 21 8.2. 软件环境 21 软件系统整体设计方案全文共25页,当前为第4页。 软件系统整体设计方案全文共25页,当前为第4页。 编写目的 本文件阐述了绿网市场系统的软件总体设计、系统...

    介绍智能手机的说明文.docx

    智能手机为用户提供了足够的屏幕尺寸和带宽,既方便随身携带,又为软件运行和内容服务提供了广阔的舞台,很多增值业务可以就此展开,如:股票、新闻、天气、交通等等。这些就是大多智能手机所具备的共同特点。 那么...

    此apk是一款可以对APP进行测试的软件,可以在任何情况下快速测试手机app的CPU、内存、流量、电量、帧率/流畅度等性能测试

    GT是直接运行在手机上得"集成调测环境"(IDTE, Integraged Debug Environment),同时它也具备离线测试能力。它可以检测得特性特征如下 CPU,内存 网络流量 流畅度/帧率 电量 持续数据采集及存储 自带数据图形分析界面...

    介绍智能手机的说明文600字.docx

    智能手机为用户提供了足够的屏幕尺寸和带宽,既方便随身携带,又为软件运行和内容服务提供了广阔的舞台,很多增值业务可以就此展开,如:股票、新闻、天气、交通等等。这些就是大多智能手机所具备的共同特点。 那么...

    微思象棋播放器 v1.2.0.rar

    播放器与专业象棋软件保持高度兼容,可将任意局面方便的复制到专业象棋软件中进行分析。 程序提供了众多程序API,便于开发人员与播放器进行通讯交互,亦可控制播放器的状态。   最新 V1.2.0 更新日志 =========...

    halo2.2中文版破解工具.rar

    软件介绍: 注意,此工具需要JDK1.5以上环境的支持。HALO2.0中文版使用说明:如果你在双击Halo.exe后没有反应,那说明你的系统没有安装JDK1.5,安装后再运行就可以了。添加的功能或者修正的问题如下:一、修正了对...

    android手机音乐播放器实训报告final.doc

    课 程 名: 软件工程综合实践 实践项目: 基于Android的手机音乐播放器 一、课程设计题目 基于Android的手机音乐播放器 二、课程设计内容(含技术指标) 本程序是基于Android开源系统技术,利用Java语言和Eclipse编辑...

    企业人事管理系统C++Builder版本和需求分析

    2.2开发和运行环境 a.开发工具:Brand C++ Bulider 6.0 + Microsoft SQL Server 2000。 b.开发环境: Windows XP 操作系统 c.运行环境:Windows 9X Windows NT或者Windows XP 2.3 任务 本系统的主要任务是用于收集...

Global site tag (gtag.js) - Google Analytics