电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

Crgjss浅谈手机软件开发

4页
  • 卖家[上传人]:206****923
  • 文档编号:90600340
  • 上传时间:2019-06-13
  • 文档格式:DOC
  • 文档大小:40.04KB
  • / 4 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、生活需要游戏,但不能游戏人生;生活需要歌舞,但不需醉生梦死;生活需要艺术,但不能投机取巧;生活需要勇气,但不能鲁莽蛮干;生活需要重复,但不能重蹈覆辙。 -无名1 手机软件的运行环境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会分担一些计算量

      2、繁重的工作,例如语音编解码、安全层的各种算法等。在市场推动下,手机功能在不断发展。摄像头、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、嵌入

      3、式Linux全是运行在第二块CPU上的。这些商业操作系统无法和无线通 信协议软件集成到一块CPU上。双CPU的手机功能比较多,但它们一般体积大,耗电多,成本高。现在市场上的大部分手机还是单CPU的。目前的大部分手机应用,例如Java、BREW、WAP、邮件、摄像头、闪存、MP3、蓝牙,在单CPU方案里都能实现。我认为不管3G、4G如何发展, 小巧、实用、低成本的单CPU方案总会占据较大的市场份额。微软在单CPU方案的手机市场还没有立足之地,又怎么谈的上什么引领方向呢?本文主要介绍单CPU手机,大多数论述也适用于双CPU方案的通信CPU。1.3 3G和4G3G和4G是指第三代、第四代无线通信技术,对手机而言,它们改进的是空中接口的效率,空中接口能以更大的带宽传送数据。通过手机无线上网的速度会更快。这和话音业务、手机应用软件没有直接的联系。当然,手机的嵌入式数据业务由于更高的带宽,会产生更多的可能性。不过这些可能性的实现还是会受到手机输入慢、显示屏小等条件的制约。 2 手机软件的组成2.1 概述手机软件和PC机软件一样从中断向量表开始,因为比较小,看上去更加清晰。中断向量表的第一个跳转指令

      4、当然是跳到复位的处理程序,后面是中断处理、错误处 理的跳转指令。一上电,手机就跳转到复位的处理程序,开始检查内存、初始化C运行环境,然后创建第一个任务。这个任务会按顺序创建、启动其它任务。绝大多 数手机程序都是多任务的,但也有一些小灵通的协议栈是单任务的,没有操作系统,它们的主程序轮流调用各个软件模块的处理程序,模拟多任务环境。手机软件可以粗略地分成启动模块、操作系统、协议栈、数据业务、本地存储、驱动程序、用户界面和其它应用。启动模块前面已经说过了,下面简单介绍其它部分。2.2 操作系统操作系统在手机软件只占很小一部分。它的主要功能就是提供多任务调度、通信机制。有的操作系统会提供动态内存分配,定时函数,但这些都不是必须的。例如需要动态内存分配的模块,可以自己管理一个内存池,这样更易于隔离模块和预测内存需求。大多数手机的操作系统都是一个很小的内核,例如REX、HIOS等。高通REX的源代码连C代码加汇编也不过一千多行,编译后不过是2、3K的代码量。而一般手机软件有几百到上千个源文件、超过一百万行的代码。2.3 协议栈协议栈是手机软件最复杂的部分,它的复杂性在于它和基带处理芯片的设计密切相

      5、关。只有具备芯片设计能力的企业才可能开发协议栈。协议栈会使用基带处理芯片的所有资源。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浏览器、邮件软件等,是一些比较大,又相对独立的应用模块。 基本上讲完了。大家肯定看得挺没意思吧。这些程

      6、序和微软的longhorn、metedata有什么关系呢?手机程序绝大部分是用C语言写的。但对于做应用软件的程序员要求具备面向对象、设计模式的思维能力,然后用C语言实现出来。高通的BREW就是用C语言硬生生地模仿C+,弄出很多奇怪的宏。一般应用软件的开发不用这么死板,但对各种软件设计方法的了解还是必要的。3 手机的核心技术手机的核心技术是芯片和协议栈,两者是密不可分的。芯片设计需要协议栈来验证,协议栈必须充分发挥出芯片的功能。芯片的CPU核、DSP核都可以买到现成的单元,但通信协议部分就需要自己设计了。手机比较难做好的是耗电量、恶劣信号环境的性能等。 4 第三方软件4.1 原理 “第三方软件”这个词的含义比较宽泛。本文用它来指代不是硬编码在手机里,而是可以通过数据线或网络下载到手机上,可以装载、运行,也可以删除的软件。前面讲到的软件都是完整程序的各个部分。这些部分会被放到一起编译,产生一个二进制文件,通过JTAG口(升级时可以用串口)下载到手机的flash中。手机一上电,就会从指定地址开始运行。这个地址的内容就是跳转到复位处理程序的跳转指令。哈哈,又讲回头了。第三方软件是指手机可以通过

      7、数据线或者网络下载一些可执行文件到文件系统中。然后有一个装载器可以执行这些文件。这样第三方就可以开发一些应用程序,下载到手机中来扩充手机功能。这些可执行文件现在主要有两种格式:java程序和BREW程序。java程序需要java虚拟机装载运行。BREW程序是一个很奇怪的东西,它实际就是用与编译手机程序相同的编译器编译出来的目标代码。这些目标代码必须是可以重新定位的,即不能包含全局和静态变量。装载器将程序将执行权传给给BREW程序,一种听上去更安全的说法是调用BREW程序的入口函数。这个入口函数的位置在文件中是固定的。装载器在调用 BREW程序的入口函数时会传入一个地址。通过这个地址,BREW程序能够顺藤摸瓜,找到系统提供的各种API的地址,它通过这些API访问手机的显示、 通信等功能。java程序基本上是平台无关的,针对各种平台设计的java虚拟机隔离了平台的大部分特性,除了厂家特意提供的一些OEM功能。BREW程序显然是平台相关,换一个CPU,就不认识原来的目标码了。4.2 其它 除了java、BREW外,Windows CE、SmartPhone、WindowsMobile、Symbian、嵌入式Linux这些商业操作系统当然可以提供各种创建第三方程序的方法。在 这些环境写程序和在PC平台写程序很相近,基本上体会不到嵌入式编程的特点,只是屏幕小一些,输入麻烦一些。这些第三方软件不是必需的。手机在3G的市场中只占了一个较小的部分,网络是大头。而第三方软件相对于手机来说,所占的份额就更小了。程序员有一个嵌入式移动开发的专栏,总在讲这些手机第三方软件的开发手机软件只是嵌入式软件的一部分。第三方软件在嵌入式移动开发中又能占到多少比重呢?5 结束语需要说明:关于以后的市场究竟以单CPU手机为主,还是以双CPU手机为主的问题,我倾向于单CPU手机,但这只是我个人观点。实际市场会怎么发展,殊难预料。对于一个芯片两个CPU核的方案,从软件角度看我是很赞成的。将应用软件和协议软件分开,协议软件可以更加稳定,应用软件可以自由发展,使用大量在PC环境已经成熟的技术。

      《Crgjss浅谈手机软件开发》由会员206****923分享,可在线阅读,更多相关《Crgjss浅谈手机软件开发》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2 2022年小学体育教师学期工作总结 2022年家长会心得体会集合15篇
     
    收藏店铺
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.