源于和pAnic在七猫的《》的评论中的讨论。我觉得自己总结的不错,以后可以再回头看看,看看想法有没有变化:
>>> pAnic的发言:
>>>我有一点不明白,就是手机等开发,市场上净是java的产品,按理说这应该是嵌入式开发,C应当有相当市场份额的。。
>>>而且Java开发的GUI和游戏,运行效率实在有点不敢恭维,经常连屏幕刷新都看得到--b
--------
我的解释如下:
1)手机开发,平台全是C;MMI绝大多数也是C做的,或者是用其他工具设计然后再generate成C代码,然后用C编译器编译。原因很简单,由于手机市场竞争极为残酷,要拼价格战就要降成本,要降成本ARM就要用低端的,现在芯片套片也逐渐向All-In-One方面发展,所以...
如果纯粹用java开发,不用别人打击他,他自己就跨了。
2)对于协议栈部分,更是非C不可。这个部分的性能治标都是ms级的,那个用户也无法忍受拨个电话好几秒都不通。
3)手机上的java是趋势,目前来看不可取代,但java主要用作增值服务,比如游戏、二次开发接口等。因为java的可移植性的优势不仅仅在目标发布阶段,在开发阶段更具有优势。如果用C的话程序必须要进行目标单板上的验证(集成测试?不太确定),但是java完全可以在windows上开发好,然后直接down在手机上用就Okey了。
4)目前手机上的单板调试工具比起windows和linux软件开发的调试手段来说及其落后,基本上都是依赖最原始的trace、assert、或者注释代码行等手段来调试。这也是用C开发比较慢的原因。至于驱动程序就更不用说了,是没法模拟的。
--------------------next---------------------
传统手机(权且这么称呼)开发,以c为主,arm asm为辅(我是没用过其他语言来搞),我以为原因在于此类系统中操作系统和应用的界限不明显,操作系统往往以静态库混合源码形式存在(应用完成后和操作系统一起编译,生成一个映像烧入芯片),在一些代工的公司,换个项目就接触到新的操作系统是很常见的,这就意味着c从效率和兼容性方面是最好的选择
引用Diviner朋友的话:“要真那样做的话,就苦了做手机开发的人了,每个类型的手机都是一套API,会死人的...”,确实有这个问题,一开始开发者恐怕不太能适应,但有了两三个项目的经验后就会(只要悟性一般皆可胜任,敝人便是一例,呵呵)发现不同操作系统的差异多半表现为系统接口名字不同而已,熟悉了rtos的任务调度等系统共性后也不会有太大问题了,万变不离其本嘛,呵呵
可以看到,在此类手机上java是无用武之地的(在出厂之前),目前市场上没有自称“智能手机”的——就是没有标明采用wince、symbian等的——基本属于上述“传统手机”(不排除例外情况)
随着技术的发展,操作系统的地位逐步提高了,智能手机应运而生,操作系统被提到了台面上,手机出厂之后,软件可以动态的装入系统,于是手机后期开发进一步被扩展,如今的嵌入式开发更加容易,网络上也越来越多的出现关于它的信息,故此panic兄有“就是手机等开发,市场上净是java的产品”此一问也在情理之中,这是一个新的市场,手机更像一台“通用计算机”了,在这个平台上开发产品和在pc上开发的差距也越来越小了,一旦操作系统被几家公司垄断,那么开发此类软件的公司甚至都不需要硬件开发人员就可以搞定手机开发了,这在传统手机行业是不敢想象的,应该说这个行业和传统嵌入式开发行业还是有区别的,且区别不小
--------------------next---------------------
阅读(432) | 评论(0) | 转发(0) |