`
xinlanzero
  • 浏览: 253055 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

(转)为什么大家觉得Symbian开发比较难?

阅读更多

时 间: 2010-12-18 07:30| 发布者: vnking| 来 源: CSDN|

 

本人也搞了两个月的Symbian,从做自己的商业应用来说,基本上已经克服了需要面对的技术难题。
如果你感觉到Symbian比较难,原因有几个方面:
1、Symbian没有像VC一样的高度集成的开发环境,版本太多并且又各有不同。为了搭建一个合适的开发环境,我自己至少安装了100遍以上,时间折腾接近一周。为了进行真机测试,我也买了5部Nokia手机,代价真的好大。
2、个人的C++功力问题,如果你的C++知识比较全面,对付Symbian还可以,否则对系统架构的理解就有难度。平心而论,Symbian的C++架构要优于VC,但是如果在PC上的开发采取过多的经验主义和功利主义,限入VC太深,不能将C++的知识和开发工具分开理解,在学习Symbian时就摆脱不了VC的陋习和阴影。建议要不断学习关于C++的理论知识,从全局和宏观的角度去理解,不要只懂实际用到的一小部分。
3、中文资料的问题,关于Symbian的中文资料真的很少,我跑过深圳广州的各大书店和图书批发市场,看到书就买也只能买到三本。至于程序员的英文问题,当然如果你的英文程度很高,这方面的难题就少了许多。不过根据本人经验,语言很好和编程序很好似乎是一对矛盾,前者是感性思维,后者是理性逻辑,我从来没有看到以中文为母语的人,他的英文和编程序都很好,两者都不好倒是遍地都是。所以从公司的管理角度,我建议老总们在开发部的建设上,将男程序员和女翻译员进行合理搭配,绝对能取得最高的生产力。 <script></script>
4、手机本身的应用问题,因为手机上的应用跟电脑上的应用有很多的不同,所以当转向手机上进行开发时,你在电脑上的工作成果几乎不太可能简单移植过来,所有的工作都要从头开始。而理解手机上的API和SDK工作量就够大了(加上语言问题),手机上的开发效率要远远低于电脑中的开发。所以我提醒程序员,一定要判断好你的工作量,不要接在电脑上感觉工作量不大但是在手机上要忙得想死的项目,对企业的管理也是如此,无法预计开发成本和开发周期是失败的根源。
5、计算机语言的问题,手机上有较大商业价值的开发项目基本上要用C/C++语言,JAVA的效率只能限制在小玩意方面。所以手机缺乏BASIC是一种遗憾,不能使用GOTO语句就像武林高手不能用暗器。其实我们做应用程序,并不想了解太多底层的东西,把注意力集中在我们的商业领域才能令我们的项目更有成功的保证,公司招聘员工也不需要太高难,最好是中专毕业就能做手机开发,这样才能把手机上的应用做出更大的价值。我有一个梦想:希望在手机领域看到中国的BASIC,我订购第一份拷贝。

我也来说两句,symbian难用的原因API没什么条理,不成熟,做得很烂.原因可能有二,1.为了某个商业目的,2.symbian工程师水平太低.

楼主分析的不错。
众所周知,从C到C++是一种飞跃,而template方式编程又更进一步。Windows API都是C API函数接口(MFC等类库绝大多数是一些包装类库),远比Symbian 的C++形式的API接口简单。也就是说Windows下掌握C即可进行开发,而Symbian需要的却是(优良的)C++基础。其难度就不言自明了。
说得是哦,偶折腾半天还没有掌握的好~! <script></script>
楼主厉害~!
C API拿来就可以用
C++接口要遵循复杂的继承派生关系等,必须了解整个框架的结构层次
所以就复杂得多了
举几个例子说吧:
1.重启函数UserSvr::ResetMachine( EStartupWarmReset )实际无法见效,于是Nokia的工程师建议kill phone task.在symbian无效或异常反应的api随处可见,你不得不另找他径
2.让ListBox能多选,symbian的做法不是做EnableMultSele(),而是让开发者按规定步骤(文档未说明)实现.
3.CTelephony::NotifyChange鉴听电话状态,却无法鉴听二次来电,于是Nokia的工程师建议另外做AO实例:iLine->NotifyIncomingCall.这样使得程序复杂.似乎功能概念划分不清.
4,ETel不提供提出来电号码的api,你需要在网上下载etelmm;CTelephony不提供拒接来电的API,你不得不采用替代方案:模拟红键
这与c++有关吗?这些API正常的程序员都知道低劣,在nokai论坛有人说足足4年才习惯symbian平台.不管如何辩解,要一个大面积范围开发周期很长的平台,不是一个好的平台.

学习啊

我记得有人说过,symbian是减轻底层开发人员(参与开发symbian的人)的痛苦,而增加上层开发人员(在symbian上开发的人)的痛苦。
感觉很混乱
相对windows mobile 来说  <script></script>
就更不用说了!
任何事物有缺陷在所难免,在理解与使用方面存在缺陷也是完全可能的。不应该不顾后者的缺陷,而只是指责前者的缺陷。
通过某个所谓“正常的程序员”判断而得出结论是否正常这似乎并不大正常。
针对anel 的贴发表点点看法,
3.CTelephony::NotifyChange鉴听电话状态,却无法鉴听二次来电,于是Nokia的工程师建议另外做AO实例:iLine-> NotifyIncomingCall.这样使得程序复杂.似乎功能概念划分不清. 
这个你做个循环调用,是可以用的, 记得我以前的一项目都做到了, 多次监听。我们做的是第一次通话结束,然后再打进, 没考虑在忙音时再来电的情况。

先把call挂起,对吧!
symbian似乎不喜遵守高内聚低耦合的原则,别人的平台要实现一个功能就能找到对应的一个api,而symbian实现一个功能就要数个api搭配来实现,而且事事要开发者干预,如3rd的listbox,位置大小改变后,滚动条就异常.这是增加开发难度和时间的原因.
认真学习中。。。。。
顶,现在正在努力适应中
1.大多数可能熟悉的是vc,而不是c++,对symbian来说可能不是件好事,先入为主的观点很难改变。
2.symbian平台的设计者也许没有揣摩应用开发者的心理,微软在这个方面做得简直太牛了。 <script></script>
3.微软的开发环境知识setup。exe就搞定了,symbian的配来配去的一个环境折腾一个月,不同的终端上还不一定运行一直,要不nokia软件成本高呢。
4。nokia永远是设备厂商,做软件还是差强人意,微软做了那么多年软件,咋个架构讨好开发者知道的一清二楚。
和标准C、C++兼容得不是很好。跨平台做起来特别麻烦
既然你们都做symbian,就帮我介绍symbian工程师:
联系方式:jennie_hanjing@sohu.com
symbian上的数据类型和标准c/c++不一样啊,很多以前跨平台的code都没法直接拿来用了,
开发成本太高了啊
预言:
symbian就象当初的苹果一样,迟早被淘汰。
mark....
楼上的“symbian就象当初的苹果一样,迟早被淘汰。”估计会是什么时候啊?
JAVA的效率只能限制在小玩意方面。```````````````````
symbian,作为一个操作系统,还有很长的路要走。应该向微软学习学习

我同意第二点,是水平的问题,总体来说,竞争力比较弱
唉,光搭工程目录用了一个多月,发现有人说symbain好用,不知这些高手能否介绍使用经验心得
分析的很透彻,学习了
谁说C到C++ 是一种飞跃。。
个人认为只是用途不同罢了,做嵌入式的人还是钻研C吧,平台的相关性比较小。。
咳,以前没有学过VC,只学过C/C++,毕业以后直接就做的Symbian,难啊。
学校老师估计没有人会教授Symbian C++,所以应届毕业生还需要再学习。 <script></script>
不知道那所学校愿意开这门选修课?我们应聘做老师。

Symbian的各个动作都表明他们很不友好。
拿微软和Symbian比,我认为不是水平高低的问题,出发点不同,欧洲人和美洲人思维方式还有些不一样
Symbian是欧洲产品,他们的工程师设计API时就特别的精细和巧妙,再者还因为Symbian是手机上用的,为了稳定性必须要牺牲一些东西,Symbian的工程师为了追求API的精巧和系统的稳定性,在相关方面做了大量的工作
微软的Windows Mobile好像本是电脑上的一套东西,搬到了手机上,API好用,也许是因为大家都是Windows程序员出身比较多的原因,稳定性和效率确实和Symbian还有点距离,也许Symbian的工程师也在谴责Windows mobile的API太过粗糙,不负责任
了解下……

没有看出来symbian和windows相比有什么优点,开发工具bug爆多,程序框架结构乱其八糟,要写一个界面,不光要包含c++头文件,还要加上一堆乱其八糟的hrh rsg之类的文件,导致代码重用性很差,不得不为每个程序修改很多东西。而且这些乱其八糟的文件还是各种乱其八糟的其他工具生成的,你不熟悉的话,还真不知道哪里去找这些东西,由什么东西生成这些。
看看vc怎么处理资源文件的,整个程序看不到什么cpp文件还包含一些乱其八糟的东西,比symbian那种乱其八糟的代码好多了。 <script></script>
开发工具及其落后,还导致很多工作只能手工编辑资源文件,编辑代码,算了这些不用了。
symbian和windows不是一个档次的东西,symbian现在市场大,不是因为他做得好,只是因为诺基亚手机做得好,大家买手机,根本不关心他上面能跑多少应用程序,只是关心一些外观,重量,最多还关心下拍照什么的。我觉得以后如果大家真正重视智能手机的智能方面,真正关心手机上能跑多少程序,程序好不好用这些问题了,windows mobile手机肯定超过symbian手机。
反正用了一个月symbian,我可以说,我这辈子真没有见过这么垃圾的开发工具。
我程序也写了八九年了,unix,linux,windows都用过,从来没有哪个东西让我感到如此莫名其妙,这根本不是什么为了效率之类的问题,根本就是水平太差,东西做的臭。
比如那个ui desingn,简直不是人用的,bug太严重了,根本不敢用,能把你写了很久的代码彻底弄完蛋,一编译就报告各种java错误,不是程序错了,是开发工具错了。模拟器上跑程序,还能让模拟器崩溃,算了,不说了,太差了,问题太多了。现在基本都全部自己手工编辑,只是用它编译,不敢用它的任何附加功能了。
我也想知道,正在找這方面的資料~~~~~
我也想了解,谢谢LZ.
最为一个10年以上经历的开发人员,我同意你们的说法,不过symbian 我还是越用越喜欢
习惯期很不爽,被它洗脑后好像没有你们说的那么差 <script></script>
呵呵,我是从c过渡过去的,没有那么恶劣的感觉

windows mobile手机肯定超过symbian手机?? 何以见得?想象下,如果当初 NOKIA用的是windows mobile. 微软件用的Symbian 说不定现在排在前面的是windows mobile这个"手机上"的系统了. 一个好的工具看是在什么人手上适合用.
用过j2me,windows mobile开发过手机程序,
但.学symbian,环境都搭不好,看来入门比较难呀

正准备学习,看来困难很大啊!!
没觉有多难,研究下框架就容易了!
浮躁。
windows mobile和symbian进行比较?
mobile有多少台机器出货?多普达都快死翘翘了!
还有啊,各位,争论这个有什么用?如果觉得symbian不好,赶紧转行,还有那个说自己做了十年程序的,又做unix又做Linux的。真酷!可是你为什么现在改行做symbian了呢?还不是市场因素?技术离开了市场,什么都不是!!!!
奉劝各位,摆正心态。symbian,不错。windows mobile也不错。你们不要怀疑我有没有资格说这话,我两种操作系统都做过。linux也接触了。我现在对linux一头雾水,摸不着头脑!

1 我觉得symbian入手比较难,使因为symbian的结构过于复杂,一个简单的helloworld就有那么多的文件, <script></script>
  新手当然看起来一头雾水了……
2 我觉得一开始接触symbian,不能太注重函数了,一些函数不要往死里抠了,以后慢慢就了解了。
3 symbian的平台做的这么复杂,我觉得有他自己的理由吧,他不想谁都可以使用重要的API,不能随便的什么功能都
  实现了,那还要nokia那些手机公司干什么 ?而且,现在感觉在S60上开发程序越来越麻烦了,还要申请一堆东西。
4 S60这一层封装的也不是很好,如果,S60封装的好点的话,大家用起来也不会那么麻烦了。
以上,只是自己的一些想法,不对的地方大家留情了:0
入门难,那就表示跟你竞争的人会少,你掌握了这个,至少不会饿死,这就是现在为什么symbian工程师薪水都比较高的原因。
至少从现在看来,还没有一个系统能撼动symbian的地位,从nokia对待symbian的态度来说,我个人认为它仍然是现在所能看到的比较有前途的手机系统。
所以大家还是多多认真地学习,不要看个一个月就开始骂脏话,任何一种开发都有可用之处,关键看你自己的掌握水平。
埋头继续学习中...........

saltedfish

说这些废话没用,我至少还说了为什么觉得他不好用,你一点都没有说。说不好听一点,你说的都是废话。 <script></script>
既然是技术论坛,最好发言的时候说点稍微和技术沾边的东西。
比如别人说什么地方不好用,你就要说说你觉得他有什么优点,它的缺点你怎么看,而不是说这些空洞无物的废话。
分享到:
评论

相关推荐

    《SymbianC++开发经验》与《Windows Mobile开发实例》

    这份中文的资料简洁明了,对symbian开发的基础作了比较详细的总结,对初学者很适用,个人感觉是很不错的symbian开发的入门书籍(前提是已经熟悉C++)。 感觉非常的实用,推荐,但是适用于有语言基础,因为 我最近研究...

    Symbian系统

    这一操作系统最初由Symbian有限公司开发,旨在为手机和其他便携式设备提供一个标准化的开放平台,允许开发者为该平台创建各种应用程序和服务。 ### 特点与优势 - **32位操作系统**:Symbian系统是一个纯32位的操作...

    【超级矿工Superminers】95关完整版+塞班手机冒险闯关类小游戏+男女皆宜经典耐玩的游戏源码

    曾经经典的诺基亚塞班手机,我用过7610,n70,n85,n93,当中有一款怀念游戏,叫《超级矿工》,找了很久 终于找到了,转载分享给大家! (玩的时候可能会感觉有点卡 是正常现在 因为当年这款游戏也是这个样子,只...

    jQuery Mobile 开发跨平台移动应用

    ### jQuery Mobile 开发跨平台移动应用 #### 一、jQuery Mobile 概述 **1.1 本地应用还是Web应用** 随着移动互联网的发展,开发者面临着一个重要的选择:应该开发原生应用(Native App)还是Web应用?原生应用...

    使用C++开发S60 v2.0应用程序入门

    ### 使用C++开发S60 v2.0应用程序入门 #### 概览 本文档旨在为初学者提供一套全面的指南,帮助他们了解如何使用C++语言开发S60 v2.0平台上的应用程序。S60是基于Symbian操作系统的一个用户界面层,主要应用于...

    Symbian c++游戏的可用性指南

    本文档旨在为开发者提供关于如何在Symbian操作系统上开发Series 60设备中的C++游戏的指南,强调了用户体验的重要性,并提供了具体的指导原则。文档中提到了通过对三家不同开发商的四款Symbian游戏进行研究来提炼出...

    Symbian运行环境-概念篇

    ### Symbian运行环境-概念篇 #### 运行环境的需求 **与同一运行环境的其他变种关系密切** 移动运行环境通常是源自于其他平台上的相同运行环境的一个子集。例如,Flash Lite 是从在桌面计算机上运行的 Flash 发展...

    symbian head&lib

    Symbian OS是一款专为智能手机设计的操作系统,以其高度可定制性、稳定性和低功耗特性在移动设备领域享有盛誉。本文将详细解释Symbian开发过程中常用的一些头文件与库文件之间的关系及其用途,帮助开发者更好地理解...

    Hello LWUIT——LWUIT开发指南1

    《Hello LWUIT——LWUID开发指南1》 本文主要探讨的是LWUIT( Lightweight User Interface Toolkit )的开发技术,LWUIT是Java ME平台上的一款轻量级用户界面库,用于创建美观、功能丰富的移动应用程序。LWUIT提供...

    S60 Qt 开发环境配置指南

    JRE Java runtime, S60 SDK 需要1.5以上的版本,我一向觉得Java版本管理混乱,下载最近的就好了 http://www.java.com/zh_CN/download/manual.jsp S60 5th SDK, 之所以选择第五版,是因为这是支持触摸操作的版本,...

    symbian函数或类与头文件和LIB库对照表

    ### Symbian函数或类与头文件和LIB库对照表 #### AgnDateTime - **描述**:`AgnDateTime` 类提供了日期时间的...这些类和函数涵盖了从用户界面设计、日程管理到文件操作等多个方面,是Symbian开发中不可或缺的一部分。

    QT_Nokia内部培训资料

    - **Qt for Symbian 4.7**:针对Symbian系统的Qt版本,提供了基于Symbian API的Qt功能,以便开发者能够更容易地在该平台上开发应用程序。 - **Qt本质**:Qt不仅仅是GUI框架,它还包含了一系列库和工具,用于简化C++...

    各大手机系统模拟器

    PC上的手机模拟器大全(安卓/苹果/黑莓/塞班/微软) 当今都是智能手机的天下,智能手机也就是拥有自己的操作系统。目前市面最流行的五大手机系统要数谷歌的Android、诺基亚的Symbian、黑莓的BlackBerry、苹果的IOS、...

    怎么使用Qt处理解压文件和V5平台的一些问题

    在塞班手机上面开发应用的时候需要解压ZIP,所以使用了Quazip这个东西,我觉得还是蛮头疼的,附带有一些关于塞班V5用Qt开发的时候应该注意的几个初级入门问题

    Android程序设计基础

    当我向别人说起Android时,他们的第一个疑问通常是:我们为什么还需要另一个移动标准?它有何惊人之处?  虽然Android的一些特性并非首创,但它是第一个将以下特性结合在一起的环境。  基于Linux,真正开放、...

    S40 读书软件anyview

    尽管硬件配置相对较低,但通过优化设计,AnyView能够在这些设备上流畅运行,为用户带来舒适的阅读体验。 AnyView的主要特点在于其强大的文件兼容性。它能够支持多种格式的电子书,如EPUB、PDF、TXT等,这使得用户...

    Python(面向对象编程语言) v3.4.0.zip

    这是为什么 Python如此优秀的原因之一——它是由一群希望看到一个更加优秀的Python的人创造并经常改进着的。 高层语言————当你用Python语言编写程序的时候,你无需考虑诸如如何管理你的程序使用的内存一类的...

    cordova入门基础教程及使用中遇到的一些问题总结

    像我们公司现在的APP,大多都是H5页面,感觉原生都没什么事情做了。可想而知学习CORDOVA的重要性! CORDOVA是一个非常强大的跨平台移动应用开发框架,学习和掌握CORDOVA可以帮助开发者快速开发跨平台的移动应用。

    主题管理类引擎 NOKIA主题的管理

    【主题管理类引擎:NOKIA主题的管理】 在移动设备的世界中,用户界面和个性化体验是吸引用户的重要因素之一。...虽然现在Symbian的市场份额已经不如以往,但其留下的技术经验和知识仍然对移动开发有着一定的启示作用。

Global site tag (gtag.js) - Google Analytics