初涉手机软件开发,以前没有经验,我该怎么开始

shooper 2007-05-27 06:36:55
马上要转到手机软件开发领域,以前没有这方面的经验,这两天再网上找资料,但发现很难下手,请各位大侠给我指的方向,我该怎么准备呢,怎么学呢?
...全文
1121 15 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
MobileFox 2007-06-08
  • 打赏
  • 举报
回复
看看这个,手机开发-新手入门-资源索引 http://www.kudev.net/bbs/thread-693-1-1.html
shooper 2007-06-01
  • 打赏
  • 举报
回复
鍐嶉《涓€涓嬶紝
shooper 2007-06-01
  • 打赏
  • 举报
回复
璋㈣阿鍚勪綅澶т緺锛岃繖鍑犲ぉ
awai827 2007-06-01
  • 打赏
  • 举报
回复
不管大家都怎么说,还是得从基础做起,首先找本比较基础的书,从手机开发的知识开始熟悉,大概一周左右(太长了没用)。然后就尝试学习人家做的例子,最后达到自己能够有想法,有办法啊。
路怎么走,还得看自己啦
Series 60应用程序开发可以作为第一本书啦
不过这都是Symbian的
jackyqjy 2007-05-31
  • 打赏
  • 举报
回复
盯着一个平台搞懂了再说吧,在理解的基础上有机会再接触其他平台,mtk,brew,ti,adi......平台任你选啊:)
叶子哟 2007-05-31
  • 打赏
  • 举报
回复
主要看你的方向了以及原来的基础
是j2me,symbian等
可以试试Carbide
coolnan 2007-05-31
  • 打赏
  • 举报
回复
呵呵,不错,至少知道手机开发是怎么回事了。
rz_hansen 2007-05-31
  • 打赏
  • 举报
回复
何必这么麻烦,告诉你一个好的工具,不用管是面向什么平台开发的,现在越来越多的人都用他了:http://download.csdn.net/source/180559
jackyqjy 2007-05-31
  • 打赏
  • 举报
回复
楼上的,纠正一下你对mtk的认识。联发科公司能够发展壮大,自有他的道理,尤其值得称道的是他的整合能力,这方便他有比其他公司无法比拟的优势。至于说黑手机,还是抓住了mtk高整合,低修改,快出货的特点。之所以口碑不好,是一些黑心厂商无视软件的质量,利益熏心,捞一票就走。个人认为,从程序员的角度看mtk,它还是有很多可取性的。
xiaoyao888 2007-05-31
  • 打赏
  • 举报
回复
mtk啊,绝对国内市场占有率第一,黑手机都是mtk,其他平台根本没法比啊
不过在这里当然还是要建议基于symbian的平台,现在主要就是S60了,UIQ也可以考虑
shooper 2007-05-28
  • 打赏
  • 举报
回复
平台未知,我先看看C语言吧
anel 2007-05-28
  • 打赏
  • 举报
回复
从helloworld开始,需要耐性,慢慢啃
laiwusheng 2007-05-27
  • 打赏
  • 举报
回复
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环境已经成熟的技术。
laiwusheng 2007-05-27
  • 打赏
  • 举报
回复
huboy 2007-05-27
  • 打赏
  • 举报
回复
什么平台?
ECShop是Comsenz公司推出的一款B2C独立网店系统,适合企业及个人快速构建个性化网上商店。系统是基于PHP语言及MYSQL数据库构架开发的跨平台开源程序。   ECShop悉心听取每一位商家的需求与建议,不仅设计了人性化的网店管理系统帮助商家快速上手,还根据中国人的购物习惯改进了购物流程,实现更好的用户购物体验。   经过近两年的发展,ECShop网店系统无论在产品功能、稳定性、执行效率、负载能力、安全性和SEO支持(搜索引擎优化)等方面都居国内同类产品领先地位,成为国内最流行的购物系统之一。   灵活的模版机制   ECShop开发了独有的高效模板引擎(2.15以前版本使用smarty模板引擎),并结合了Dreamweaver的模板和库功能,使得编辑制作模板变得更简单。   开放的插件机制   支付、配送,会员整合都是以插件形式实现。商家可以随时增加或变更的支付方式和配送体系。ecshop支持大部分php开发的论坛系统,包括discuz,phpwind等,只需在后台做简单参数配置,即可完成会员整合。   功能 AJAX 化   ECSHOP 使用目前流行的 AJAX 技术,批量数据编辑变得更迅速,方便。   促销功能   ECSHOP提供了积分、红包、赠品,夺宝奇兵等多种促销方法。   高效率的代码和执行性能   通过优化代码与数据库结构,配合ecshop独家设计的缓存机制,在不考虑网速的情况下,网店动态页面与纯静态页面访问速度相当。   常规功能的更完善实现   针对常规功能尤其是后台管理和购物流程,ECShop进行了更简洁的设计,实现更好的用户体验。   搜索引擎优化   在 SEO (搜索引擎优化)上,ECShop独家支持两种 URL 重写方式,并且是同类软件中第一家支持 google / yahoo / microsoft 三家共同发布的 sitemaps 0.9 网站索引规范,能够为站点被搜索引擎收录做到最大限度的支持和帮助。   内置手机短信网关   ECShop内置手机短信网关,支持会员信息群发,订单提醒等功能。   多语言支持   支持简体,繁体,英文。   源代码开放   用户可根据自己的需求对ECSHOP进行定制,扩展。   ECSHop历史   ECShop 2005年底,2006年初,高春辉和李梁(时任手机之家总经理),因为在给朋友建网上商城的时候,发现没有一个好用的商城软件,萌生了自己制作一个的商城软件的想法。   2006年3月,从零开始招兵买马,团队组建出来,2006年6月,ECShop推出第一个版本1.0,但应为功能比较单一,最终使用的用户没有超过10个。   2006年6~7月,高春辉开始全面介入ECShop的开发管理工作,大大的加速了ECShop的开发进度,在推出 2.0版本之后,陆续推出了2.0.1,2.1,2.1.1.,2.1.2,2.1.3等版本后,用户群逐步扩大,安装量突破5万。   2007年5~6月,ECShop管理层与康盛世纪接触,最终确定,将ECShop卖给康盛世纪。   2007年6~7月,ECShop完成了一个重要的项目摩托罗拉手机商城 http://www.motostore.com.cn/.   2007年9月,ECShop团队全部迁至康盛世纪上班,交易完成。   2007年9月,ECShop分为两个团队,ECShop|(买否网)Maifou.com ,(卖否网)Maifou.net;ECMall.   ECShop团队介绍:   高春辉   著名第一代互联网人,1989年接触电脑,1997年创建了当时访问量最高的个人主页“ 高春辉的个人网站”,被评为中国十大个人网站第一名。1999年受金山公司邀请,共同发起金山卓越网并担任总经理。2002年创立手机之家。ECSho创始人,ECShop灵魂,主要负责产品规划、定义,带领开发团队。   李梁   擅长团队管理、运营,多年互联网公司从业经验。中科院软件工程硕士在读,曾供职于方正技术研究院、263网络,后加盟手机之家,任手机之家总经理,将手机之家带入一个高速发展的时期。ECSho创始人,主要负责团队管理,公司运营、管理、DB等工作。   刘伟   早年即开始从事互联网开发工作,2001年曾著有《狂人日记:狂人部落网站建设实录》一书,2004年先后与搭档开发 UltraCMS 、UltraShop并运营,有丰富的互联网产品规划及研发能力。ECShop创始人之一,核心团队成员,任ECShop技术总监。   成功案例   摩托罗拉 http://www.motostore.com.cn/   2007年8月29日,摩托罗拉公司牵手ECShop对外开通了其网上商城系统,此举意味着这个全球五百强企业之一的通讯巨头正式涉

3,119

社区成员

发帖
与我相关
我的任务
社区描述
塞班系统(Symbian系统)是塞班公司为手机而设计的操作系统,它的前身是英国宝意昂公司的 EP ( Electronic Piece of cheese)操作系统。
社区管理员
  • Symbian社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧