精华内容
下载资源
问答
  • 手机软件开发

    千次阅读 2007-06-04 12:39:00
    手机软件开发hanwl 发表于 2007-1-13 23:42:00 1 手机软件的运行环境 1.1 概述 手机可以被看作袖珍的计算机。它有CPU、存储器(flash、RAM)、输入输出设备(键盘、显示屏、USB和串口)。它还有一个更重要的I/O设
     
    

    手机软件开发

    hanwl 发表于 2007-1-13 23:42:00

    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会分担一些计算量繁重的工作,例如语音编解码、安全层的各种算法等。
    在市场推动下,手机功能在不断发展。摄像头、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方案总会占据较大的市场份额。微软在单CPU方案的手机市场还没有立足之地,又怎么谈的上什么引领方向呢?
    本文主要介绍单CPU手机,大多数论述也适用于双CPU方案的通信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浏览器、邮件软件等,是一些比较大,又相对独立的应用模块。

    基本上讲完了。大家肯定看得挺没意思吧。这些程序和微软的longhorn、metedata有什么关系呢?手机程序绝大部分是用C语言写的。但对于做应用软件的程序员要求具备面向对象、设计模式的思维能力,然后用C语言实现出来。
    高通的BREW就是用C语言硬生生地模仿C++,弄出很多奇怪的宏。一般应用软件的开发不用这么死板,但对各种软件设计方法的了解还是必要的。

    3 手机的核心技术

    手机的核心技术是芯片和协议栈,两者是密不可分的。芯片设计需要协议栈来验证,协议栈必须充分发挥出芯片的功能。芯片的CPU核、DSP核都可以买到现成的单元,但通信协议部分就需要自己设计了。手机比较难做好的是耗电量、恶劣信号环境的性能等。

    4 第三方软件

    4.1 原理

    “第三方软件”这个词的含义比较宽泛。本文用它来指代不是硬编码在手机里,而是可以通过数据线或网络下载到手机上,可以装载、运行,也可以删除的软件。
    前面讲到的软件都是完整程序的各个部分。这些部分会被放到一起编译,产生一个二进制文件,通过JTAG口(升级时可以用串口)下载到手机的flash中。手机一上电,就会从指定地址开始运行。这个地址的内容就是跳转到复位处理程序的跳转指令。哈哈,又讲回头了。
    第三方软件是指手机可以通过数据线或者网络下载一些可执行文件到文件系统中。然后有一个装载器可以执行这些文件。这样第三方就可以开发一些应用程序,下载到手机中来扩充手机功能。
    这些可执行文件现在主要有两种格式: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环境已经成熟的技术。
    展开全文
  • MTK手机软件开发教程 MTK手机软件开发教程 MTK手机软件开发教程
  • 安卓手机软件开发

    2013-07-05 09:05:32
    安卓手机软件开发        netstat -aon|findstr "5037"    tasklist|findstr "4808"     http://blog.csdn.net/feng4656/article/details/9198161

    安卓手机软件开发

     

     

     

     netstat -aon|findstr "5037"

     

     tasklist|findstr "4808"

     

     

    http://blog.csdn.net/feng4656/article/details/9198161

    展开全文
  • 现在以手机app为代表的移动互联网已经超过传统的PC,成为企业营销创业赚钱不可忽视的重要渠道,手机软件开发app成为传统企业转型的关键。app开发具体需要哪些流程和周期呢?今天给大家分享一下app开发流程的6个步骤...

    现在以手机app为代表的移动互联网已经超过传统的PC,成为企业营销创业赚钱不可忽视的重要渠道,手机软件开发app成为传统企业转型的关键。app开发具体需要哪些流程和周期呢?今天给大家分享一下app开发流程的6个步骤。

    在这里插入图片描述

    1、项目确定

    在进行app开发前,首先就要进行内部的沟通,规划确定项目的可行性,建立app项目小组。

    2、需求规划

    梳理清楚用户的需求非常关键。要结合大量的市场分析及经验,明确app可以满足用户的哪些真实需求,最好通过用户的语言进行产品使用场景描述。之后根据用户的需求,形成系统性的功能模块,根据用户使用流程、业务流程等逐步完善。

    3、规划设计

    对手机app的各个功能模块进行划分,明确核心基本功能,制作设计app原型图、时序图等。UI设计师设计app页面的最终效果图,并切图成为可以填充的app素材。
    在这里插入图片描述

    4功能开发

    手机软件开发app的一阶段,过去需要最少5名以上的技术人员进行开发。现在使用无代码在线制作平台,普通人零基础也能制作app。

    5、测试发布

    app开发之后可以在内部种子用户间进行多人详细的测试,发现问题不断修改、完善。把最终版提交到应用市场上线。

    6、运营维护

    借助无代码app制作平台,软件系统由该平台统一维护。根据用户市场的反馈意见,用户自己也能对app的功能界面进行个性化调整修改。
    在这里插入图片描述

    展开全文
  • 现在移动软件开发发展很快,存在着很多机会,希望大家能够把握住... 下面把手机软件开发环境简单介绍一下,大家可以选择适合自己的开发环境:1、 厂商固化程序在手机出厂以前,厂商会开发一些特定的应用,并将这些应...

    现在移动软件开发发展很快,存在着很多机会,希望大家能够把握住其中的机会,成就自己的事业。

    下面把手机软件开发环境简单介绍一下,大家可以选择适合自己的开发环境:

    1、 厂商固化程序

    在手机出厂以前,厂商会开发一些特定的应用,并将这些应用固化到手机中。

    这个环境只有在手机厂商的研发中心才可以用到,不够通用。

    2、 J2ME技术

    当今手机软件开发的主要方向之一,比较通用,使用Java语言,具备Java的优势,支持的厂商众多,比如Nokia、Siemens、Motorola等等。

    SUN公司提供了通用的开发工具J2ME Wireless Toolkit,各厂商也有自己的扩展SDK。

    3、 BREW技术

    高通公司的CDMA体系下的一种开发技术,使用C++进行开发,SDK可以和VC等IDE集成。现在联通的高端手机支持该功能。

    4、 Symbian平台开发

    Symbian是高端手机中运行的操作系统,提供C++和J2ME的SDK。Nokia的高端机器大部分使用该操作系统。

    5、 Windows Mobile平台开发

    国内多普达的机器大部分采用该平台,可以使用VB、C++和.net的技术进行开发。

    6、 嵌入式Linux平台开发

    了解不多。


    来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10294527/viewspace-126972/,如需转载,请注明出处,否则将追究法律责任。

    转载于:http://blog.itpub.net/10294527/viewspace-126972/

    展开全文
  • 手机软件开发还是要以人为本  移动应用的开发技术已经相当成熟,这是每一个行业人士都承认的事实。但是,手机软件开发(添美科技)并不是任何一家移动应用开发公司都可以轻而易举的开发出一款很受欢迎的移动应用来。...
  • MTK手机软件开发

    2009-10-09 11:30:00
    MTK手机软件开发 收藏 document.body.oncopy = function() { if (window.clipboardData) { setTimeout(function() { var text = cl
  • 手机这个行业的软件开发模式变化,很快,目前主流手机软件平台... 手机软件开发如何能满足不断变化的市场需求,引入敏捷开发可以解决在手机软件开发中,需求多变,计划安排,沟通和反馈,分工等很多问题!   1 传统
  • 安卓手机软件开发        netstat -aon|findstr "5037"    tasklist|findstr "4808"     http://blog.csdn.net/feng4656/article/details/9198161
  • 手机软件开发环境介绍,大家可以选择适合自己的开发环境:1、 厂商固化程序在手机出厂以前,厂商会开发一些特定的应用,并将这些应用固化到手机中。这个环境只有在手机厂商的研发中心才可以用到,不够通用。2、 ...
  • 求教小弟虚心求教,哪位给我讲讲Symbian S60平台手机软件开发的相关内容,最好能指导一下小弟。我正在准备制作一个课题,有关手机软件开发的,正要补充相关知识。走过路过的能推荐点东西的也谢谢了!!!1
  • 高通Android手机软件开发培训

    千次阅读 2009-12-10 20:43:00
    为期两天的高通Android手机软件开发培训结束了。这次高通针对QSC7x27/7x25/QSD8x50的基带芯片进行了两天的Android手机软件开发培训。参加人员都是我这样的各个OEM厂商的软件开发人员。这次难得的机会是我转到底层...
  • 《专业考证培训及考证》课程...它面向软件设计与开发、软件技术支持以及软件测试三个岗位,主要讲解《Java程序设计》、《Android手机软件开发》等课程,在《Android软件开发》技术的基础上再加以提升,从而使学生...
  • <br />Android手机软件开发的前景   今天是3G的年代,中国拥有超过7亿的手机用户,而全球更是将近50亿,这样一个庞大的用户市场。而随着运营商语音话费的下降,手机上的各类增值应用已经成为了这个...
  • 基于JNI的嵌入式手机软件开发实例 下面通过一个实例来描述运用JNI技术在手机上操纵摄像头,捕捉视频并存储图片的过程。 (1)活动/状态图  图2为捕捉视频并存储图片的活动/状态图  根据图2的活动/状态,...
  • 安卓手机软件开发学习培训能给大学生带来高薪工作吗?这都是想要学习的人所要关心的问题,现在千锋给大家详细分享一下。  当今社会所需要的人才水平在不断增加,就业压力也在不断增加。在如今的就业环境之下,...
  • Android手机软件开发界面跳转一例

    千次阅读 2011-11-17 13:57:44
    Android手机软件开发界面跳转一例 开发环境配置: window server 2008 Eclipse 3.7 JDK1.6 Android2.2 ADT14 //应用程序配置xml文件 //AndroidManifest.xml //-------------------------------------------------...
  • 手机软件开发环境种类介绍

    千次阅读 2005-04-10 20:36:00
     下面把手机软件开发环境简单介绍一下,大家可以选择适合自己的开发环境:1、 厂商固化程序在手机出厂以前,厂商会开发一些特定的应用,并将这些应用固化到手机中。这个环境只有在手机厂商的研
  • 31嵌入式开发更应该注意资源(内存)的消耗和程序的运行速度;   32具有一定集成度并可以重复使用的软件组成单元称为软构件(Software Component)   33显示功能的统一接口函数 字符串、图片和绘图...
  • 手把手教你iPhone 3G手机软件开发

    千次阅读 2010-01-29 18:35:00
    手把手教你iPhone 3G手机软件开发iPhone, 手机, 软件开发, 手把手“iPhone是一款革命性的、不可思议的产品,比市场上其它任何移动电话整整领先了五年,”苹果公司首席执行官史蒂夫·乔布斯如是说,“手指是我们与生...
  • 就业严冬新出路:手机软件开发工程师 乐成数字通信学院专家研究表明,由于3G(http://www.ldic.com.cn )人才目前缺口非常大,但是目前市面上从事3G人才培训的机构可以说是凤毛麟角,所以乐成数字通信学院和信部部...
  • 手机软件开发平台

    2010-12-07 11:47:00
    目前,智能手机开发平台 主要有:JAVA、BREW和 .NET。    1、JAVA     目前在在移动领域广泛使用开发平台是Sun开发的J2ME(Java 2 Micro Edition),即用于嵌入式系统...
  • //Android手机软件开发简单计算功能一例 //应用界面 //res/layout/cal.xml //------------------------------------------------- android:id="@+i
  • 与其说事先掌握好什么知识,不如说有没有不断学习掌握新知识的心态和...测试是手机软件开发的另外一个重要领域,分为协议测试、白箱测试以及系统测试。 应用软件包括游戏、WAP浏览器,Web浏览器、e-mail信箱管理器、M
  • MTK 手机软件开发

    2008-08-22 01:27:00
    现在做手机开发: MTK平台下实现短息自动回复代码: #include "MMI_features.h"#include "PixtelDataTypes.h"#include "GlobalDefs.h"#include "CommonScreens.h"#include "stdC.h"#include "L4Dr1.h"#include ...
  • 浅谈手机软件开发

    2011-04-15 11:45:00
    1 手机软件的运行环境 1.1 概述 手机可以被看作袖珍的计算机。它有CPU、存储器(flash、RAM)、输入输出设备(键盘、显示屏、USB和串口)。它还有一个更重要的I/O设备, 那就是空中接口。手机通过...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 15,799
精华内容 6,319
关键字:

手机软件开发