`
ihuashao
  • 浏览: 4720066 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

谈谈智能手机软件(1):概述

阅读更多

谈谈智能手机软件(1):概述

1 手机的硬件实现方式

1.1 三种硬件方案

手机的硬件实现方式主要有3种:
  • 只用基带芯片,通常称作feature phone。
  • 基带芯片加协处理器(CP,通常是多媒体加速器)。这类产品以MTK方案为典型代表,MTK全系列的产品基本上都属于这样的方案,展讯等其他公司也在推类似的产品。这是增强了多媒体功能的feature phone。
  • 基带芯片+应用处理器(AP),也就是通常说的智能手机(smart phone)。有的方案将应用处理器和基带处理器做到一颗芯片里面,例如高通的MSM7200A。它有一个ARM11核(应用处理器)和一个ARM9核(基带处理器),两者通过共享内存通信。当然,智能手机也可以使用增强影音处理能力的协处理器。
本文的研究对象是智能手机的应用处理器上的软件,所以仅讨论智能手机,即基带+AP的方案。

1.2 智能手机

在智能手机中,手机功能的实现以应用处理器(AP)为主,基带芯片提供通信功能。可以把AP看作计算机,把基带芯片看作AP的无线modem。这个无线modem通过AT接口(相当于计算机和调制解调器之间的接口,但各厂家都有扩展命令)提供通话、短消息、上网、UIM卡等功能。本文主要讨论AP上的软件。

2 AP软件概述

2.1 什么是AP软件

本文提到的“AP软件”是指应用处理器(AP)上所运行软件的总和,本文也将其称作手机软件或智能手机软件。如果把手机看作一台电脑,手机软件就相当于电脑上的操作系统与所有常用软件的集合。所以手机软件的重要性是不言而喻的。
另一方面,手机软件是智能手机的主要成本因素。按照一位Design House老板的说法:“硬件电路应该没问题.只要软件可以搞定”。当然,AP软件不是那么容易搞定的。在讨论AP软件现状前,让我们先看看AP软件的构成。

2.2 AP软件的构成

从实现的角度看:AP软件=操作系统+中间件+应用软件。以google的android为例:
图1 Android的软件框图
当然这只是个粗略的说法,没有包括引导程序(bootloader)。从执行的角度看,AP软件总是从引导程序开始运行,装载操作系统内核后将控制权交给操作系统;操作系统装载文件系统,执行文件系统上的系统初始化程序,启动所有后台服务程序,运行一个窗口管理器,为用户提供图形用户界面。然后,就是根据用户的操作执行窗口管理器的某项功能或调用相应的程序了。

2.2.1 操作系统

智能手机使用的操作系统主要有Winodws Mobile,Symbian,Linux,还有一些其它专有系统,例如RIM公司的黑莓(BlackBerry)操作系统(http://www.blackberry.com/),苹果iPhone的MAC OS X。
图2 黑莓手机
在这些系统中,只有Linux内核是一个“”的操作系统。Winodws Mobile和Symbian的发布版本都集成了操作系统、中间件和大量应用软件。相对于黑莓、iPhone,我们通常把Winodws Mobile,Symbian,Linux称作“开放”系统,因为不同厂商都可以使用(使用成本各有不同)。
网上在提到智能手机操作系统时通常还会提到Palm OS。Palm OS原来是PDA的操作系统。2003年Palm公司收购了Handspring公司,获得了Handspring的Treo智能手机;同时将自己的软硬件部门分拆为PalmSource(软件)和PalmOne(硬件),其中PalmSource拥有Palm OS。2005年9月,一家叫爱可信的日本公司以3.24亿美元的现金收购了PalmSource。爱可信将Palm OS更名为Garnet OS。爱可信原来的主要业务是一个叫做NetFront的嵌入式浏览器,联通的彩E方案也是这家公司提供的。2006年12月,Palm以4400万美元买下了Palm OS Garnet源代码的非独占性永久授权,用于Palm Treo智能手机等产品。
上海科泰世纪公司一直在研制自己的“和欣”嵌入式操作系统,并宣布自己与TD-SCDMA产业联盟有很好的合作关系,但目前还没有大量上市的产品。“和欣”是一个专有系统,公开的资料很少。“和欣”的主要思想是将软件分解为可以自描述的构件,在使用时根据需要拼装,可以理解为嵌入式领域的SOA(面向服务架构)。SUN的jini在90年代末就提出过“发布和发现服务”的架构,可以将“和欣”看作jini的C/C++实现。最近,Google的Android方案也包含了类似的组件模型,组件(Activity)向系统注册自己的功能,每个组件要使用其它组件的服务时提出自己的要求(intent),系统根据intent在已登记的组件中确定合适的组件。可见,光有好的想法是不够的,还要有将想法付诸现实的能力。
2.2.1.1 “没有”操作系统的AP软件
有些公司在研发智能手机软件解决方案时没有使用开放的操作系统,他们可能使用了一些简单的实时操作系统(RTOS)内核,也可能采用了单任务的方案。这些公司也会向客户提供自己的SDK(软件开发包)或者方案的源代码。使用这些系统可能有以下问题:
  • 系统的稳定性没有经过充分的验证;
  • 没有广泛的第三方软件支持。
  • 如果要定制它们的功能,就要投入研发力量熟悉他们的专有方案。如果开发的产品因为稳定性方面的考虑不能上市,前期的研发投入就会有较大的浪费。

2.2.2 中间件

中间件在操作系统的基础上,为应用软件提供了开发平台。好的中间件可以提供一个完善的应用软件开发框架(Application Framework)。中间件要解决的最基本的问题就是:
  • GUI开发包。GUI就是图形用户界面。应用程序的开发者使用GUI开发包开发应用程序的图形界面。
  • 组件通信机制。中间件要为应用程序提供通信方式。
中间件的功能是很繁杂的。所谓“中间件,看不见”,应用程序主要负责与用户的交互,大量与用户交互无关的、看不见的功能都是在中间件中实现的,并封装成接口给应用程序调用。
大多数提供操作系统的公司都提供包含中间件的智能手机软件平台。只有在Linux平台,我们才需要自己定制内核,自己构造中间件和应用软件。也有一些提供Linux中间件的公司,例如韩国的MIZI Research(www.mizi.com),国内的飞漫软件(www.minigui.com)等。爱可信也提供基于Linux平台的智能手机开发平台(ACCESS Linux Platform)。

2.2.3 应用软件

应用软件包括厂家定制的用户界面(UI)和第三方提供的应用软件。智能手机的一个强项就是能够自由安装和卸载第三方提供的应用软件。不过,功能手机也可以通过J2ME或BREW开放第三方软件开发平台,只是功能上略弱一些。

2.3 AP软件的现状

目前市场上的手机还是以功能手机为主,特别是加CP的功能手机。例如:很多小公司都在使用从各种渠道获得的MTK方案。也有大公司用MTK,例如PHILIPS的399就使用了MTK的MT6227。但智能手机的市场份额呈明显的上升趋势。
图3 智能手机的市场份额
粗略估计:在出货的智能手机中,AP软件以Symbian和Winodws Mobile为主,有少量采用Linux的手机(摩托罗拉、三星等)。黑莓在国外有较大市场份额,但暂时没有引入国内。另外,还有一个使用专有系统的iPhone。
值得注意的是,Winodws Mobile在国内的出货量在不断上升。按照黄思源(http://blog.sina.com.cn/huangsiyuan)的分析,市场上有5种Winodws Mobile:
  1. “正宗”版。行货的Windows Mobile简体中文版;
  2. “水货”版。往往设备上标有欧洲运营的标志,这种设备兼具第一种的功能和相对较低的价格;
  3. “平民”版。用Windows CE装上一些应用软件,充作Windows Mobile;
  4. “李鬼”版。在其它操作系统上“临摹”的Windows Mobile,第一二层菜单相似,其它就不一样了;
  5. “押寨”版,从其它设备中“扒”下来的,找个相似的设计硬装进去。
为什么这么乱,就是因为好卖。这也从一个侧面说明了品牌的力量。

3再说智能手机

智能手机和Feature Phone究竟有什么区别?其实,Feature Phone可以实现智能手机的大多数功能。两者最本质的区别就是不同的出发点。Feature Phone是在不断扩充应用功能的无线通信终端(行业术语叫移动台),而智能手机是增加了无线通信功能的手持式电脑。
Feature Phone的软件是从通信行业的无线终端软件发展而来,是不断扩充应用功能的嵌入式软件;智能手机的软件是从计算机行业的通用操作系统按照手持设备的需求裁减、演变而来。两者的软件是不同行业、不同思维模式的程序员开发的,但是这两个行业、这两种思维模式正在不断地融合。手机其实就是所谓3C合一,即计算机(Computer)、通讯(Communication)和消费类电子产品(Consumer Electrics)融合的典型代表。
通信上有个5W,即任何人(Whoever)在任何地点(Wherever)、任何时间(Whenever)可与任何对象(人或计算机,Whomever)互通任何信息(语言、图像、文字和数据,Whatever)。这只是智能手机要实现的通信功能。
3C、5W都是十几年前的概念了,手机将扮演的更重要的角色是就是移动信息终端或者说移动信息平台。在移动状态下,人类通过手机这个终端接入信息社会这个巨大的网络;信息社会通过手机这个平台将内容发布给人类。这也就是为什么Google这样以信息服务为主的企业会重视手机平台的原因。或者说,手机除了融合计算机、通讯和消费类电子产品外,手机还在3C与信息服务业的融合中扮演着重要的角色。
Feature Phone的软件基本上都运行在CPU的特权模式,在PC程序员看来,Feature Phone的软件就是一个做了UI的宏内核。而智能手机的软件体系基本上照搬了PC的软件体系,将内核、驱动(可以编入内核,也可以独立)和应用分开,各种应用包括最基本的窗口管理器都以应用程序的形式存在,在用户空间运行。智能手机软件与PC系统软件的区别主要是在应用层面的,例如显示屏大小、输入方式;另外智能手机作为便携式设备,必须尽量减小功耗。
软件进化的核心思想之一就是复用,不要重复发明车轮。从软件上看,智能手机软件的体系架构更先进、更合理。体系架构才是智能手机软件的最大优势。体系架构使智能手机的可扩展性是近乎无穷的。
一个完善的操作系统需要长时间的积累,巨大的研发投入。我觉得在智能手机领域,相对于传统的实时操作系统(VRTX、VxWorks、ThreadX等),Windows Mobile、Linux这些从PC操作系统演变来的系统更容易获得成功。

4本文内容

使用Windows Mobile或Symbian需要微软或Symbian(http://www.symbian.com.cn/)公司的授权。黑莓和iPhone这种专有系统,别的厂家只能学习,不能使用。下面主要讨论基于Linux的手机软件。
分享到:
评论

相关推荐

    谈谈中国特色销售技巧:定义.pdf

    谈谈中国特色销售技巧:定义.pdf

    智能手机操作系统现状剖析和初窥.docx

    智能手机操作系统是现代移动设备的核心,它们为用户提供交互界面和丰富的功能。本文主要分析了当前智能手机操作系统的现状,并探讨了一个新兴的、经济实惠的解决方案——SmartNX Mobile。 首先,市场上主流的智能...

    谈谈软件测试面试问题

    1. **什么是软件测试?** 软件测试是一种系统性的过程,用来评估软件产品的质量,确定其是否符合预定的需求和标准,找出并报告潜在的错误和缺陷。 2. **软件测试的类型有哪些?** 主要包括单元测试、集成测试、...

    谈谈对软件架构的认识

    1. **自上而下的瀑布型开发过程**:这是一种传统的软件开发模式,按照顺序依次执行各个阶段,每个阶段完成后才进入下一个阶段。优点在于结构清晰,但缺点在于缺乏灵活性,一旦前期阶段出现错误,后期修改成本高昂。 ...

    软件复用:结构、过程和组织

    《软件复用:结构、过程和组织》是探讨软件开发领域中的一项重要概念,即软件复用。在当今快速发展的信息技术行业中,软件复用已成为提高效率、降低成本、保证质量和缩短开发周期的关键策略。本文将深入解析软件复用...

    软件测试1-8次课程作业答案.rar

    1、从个人理解出发,结合软件测试V模型,谈谈软件开发过程与软件测试过程之间的关系,以及它们各自的核心内容。 第三次 课程作业 1、以中国象棋中的”象”的走法为例子,请绘制出因果图和判定表,并给出相应的测试...

    人工智能与教育双向赋能:培养智能时代的高端人才.pdf

    人工智能与教育的双向赋能是一个日益受到关注的话题,其核心在于利用人工智能技术推动教育的改革与发展,同时通过教育培养出能够适应智能时代、具备高数字化生存能力的高端人才。这一过程不仅涉及到技术创新,也包含...

    谈谈软件学院高年级同学的学习方向(同济大学 JacksonWan)

    其次,嵌入式系统方向则侧重于硬件与软件的紧密集成,常见于物联网、智能设备等领域。关键知识点包括: 1. **微控制器和嵌入式操作系统**:如ARM架构的处理器,以及实时操作系统如FreeRTOS或Linux的裁剪版。 2. **C...

    软件测试:V模型问题分析[1]

    软件测试:V模型问题分析[1]软件测试在本文中我要把V模型作为不好的模型的典型来进行分析。选择V模型作为分析的典型是因为V模型是最广为人知的测试模型。最典型的V模型版本一般会在其开始部分对软件开发过程进行描述...

    大连理工大学软件学院09级人工智能(研究生)

    《大连理工大学软件学院09级人工智能(研究生)》是曹晓东老师为研究生阶段的学生精心编纂的一份教学资料,旨在深入探讨人工智能这一前沿领域的理论与实践。这份讲义涵盖了人工智能的基础概念、核心算法以及实际应用...

    谈谈对软件工程的认识

    软件工程概述 软件工程是一门实践性很强的学科,旨在提高软件的研发效率、降低软件的研发成本、保证软件的质量。软件工程的设想是非常好的,既吸取借鉴了工程建设领域的精粹,又针对自身的特点形成了一门学科体系。...

    从电脑判案谈谈法律推理与人工智能的关系-论文

    《从电脑判案谈谈法律推理与人工智能的关系》这篇论文,通过分析山东省淄博市淄川区法院的实践案例,揭示了人工智能在法律领域的应用潜力与挑战。 ### 法律推理的本质与特点 法律推理是一种独特的思维过程,它不仅...

    软件测试误区 软件测试用例 软件测试基础知识

    首先,我们来谈谈“软件测试误区”。许多人在进行软件测试时,可能会陷入以下常见误区: 1. **误以为测试就是找bug**:测试不仅仅是发现错误,更重要的是验证软件是否满足需求和预期,预防问题的发生。 2. **忽视了...

    通力直梯芯片程序 电梯调试软件

    接着,我们谈谈“电梯调试软件”。在电梯安装或维修过程中,调试软件起着至关重要的作用。它允许技术人员通过电脑连接到电梯的控制系统,进行参数设定、故障排查、性能测试等工作。通力的电梯调试软件可能具备以下...

    计算机怎样解几何题:谈谈自动推理.pdf

    在《计算机怎样解几何题:谈谈自动推理》这本书中,作者探讨了这一主题,并详细说明了计算机如何运用其基本功能解决几何问题。书中主要使用了LISP语言,这是一种在人工智能领域常用的编程语言,它的易学易用性使得它...

    从人工智能角度来认识我们自己.doc

    一个定义:“人工智能是关于知识的学科——怎样表示知识以及怎样获得知识并使用知识的科学。”而另一个美国麻省理工学院的约瑟夫·韦伯教授则干脆地指出:“人工智能就是研究、设计智能代理的科学。”智能代理是指一...

    全面的谈谈目前智能家居布线方式有哪几种

    ### 智能家居布线方式详解 随着科技的发展,智能家居已经逐渐走入我们的生活,而布线方式作为智能家居系统的基础,对于整个系统的稳定性和便捷性起着至关重要的作用。目前,根据布线方式的不同,智能家居可以分为...

    谈谈新能源双积分政策:几家欢喜几家愁.pdf

    谈谈新能源双积分政策:几家欢喜几家愁.pdf

    谈谈全息投影和人工智能最终版.pdf

    谈谈全息投影和人工智能最终版.pdf

    软件测试用例设计.rar

    《软件测试用例设计》 在软件开发过程中,软件测试是一项至关重要的环节,它确保了产品的质量和稳定性。而测试用例设计则是测试过程的核心部分,它定义了如何对软件进行有效的验证,以发现并修复潜在的缺陷。本资料...

Global site tag (gtag.js) - Google Analytics