(转)为何大家觉得Symbian开发比较难

(转)为什么大家觉得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>
既然是技术论坛,最好发言的时候说点稍微和技术沾边的东西。
比如别人说什么地方不好用,你就要说说你觉得他有什么优点,它的缺点你怎么看,而不是说这些空洞无物的废话。