西西河

主题:【求助】手机编程 -- earthcolor

共:💬46 🌺8 新:
分页树展主题 · 全看 下页
  • 家园 【求助】手机编程

    有个朋友询问手机编程的问题。我虽然是计算机专业,也听说过手机编程,可自己从来没有直接动手写过。

    朋友不是计算机专业,需要一些介绍资料。如果各位对这方面有了解,请推荐一些资料。谢谢!

    • 家园 我的建议

      先学习一些手机编程的基础知识为好。

      1. 熟悉手机的硬件软件结构,了解软硬件结构关系。

      2. 熟悉手机协议站,了解手机与基站通信功能。

      这些都可以摆渡到。

      3. 精通c语言,最好精通嵌入式开发,如果有linux c开发的经验最好。

      只要这些知识,完全可以很短的时间内上手手机软件开发了,然后在工作在学习。

      手机开发和很多嵌入式开发是一样的,没必要专门学习。

    • 家园 目前手机操作系统的两大主要阵营

      1.以NOKIA为首的Symbian平台,走的是java的路子

      2.微软的Windows Mobile,走微软windows体系的路子。

      各有所长,关键取决于自己规划的工作发展方向。

      将来的趋势是计算机小型化,多功能化,手机和GPS功能将融入进去,或者说手机计算机化,不过个人认为计算机加个通讯功能好像比手机加计算机功能要容易些。

      从这点上看好像微软更有些优势。

      • 家园 03年的时候似乎还有一个brew,高盛推出的。

        现在已经烟消云散了吗?

        当时看过一下,用c而且要模拟出面向对象的风格,有点别扭,哈哈。

      • 家园 总有一天,PC和MP会正面交战

        其实从苹果开始介入手机产业开始,苗头就已经很明显了。

        PC现在是越做越小,MP是越做越大,总会出现一个交集的时候。

        到时候,估计是传统的手机系统提供商的惨败的时候,因为他们的开发环境基本上都是从PC上继承的,没什么太大的创意。等MP的硬件上到了一定的基础之后,MP的技术积累将赶不上PC的转型。

        我是这么觉得的。

      • 家园 你搞错了

        其实现在两大主流系统是symbian和MTK.

        1. symbian阵营的主流不是java, nokia主要支持的是native的方式, 对java支持不如索爱和moto,不论是性能还是功能扩展都问题多多。

        2. 对java支持最好的是moto, moto的linux系统是才是以java为主要开发语言的,易用性,扩展方面都做得很好,可以和native方式相比,但是市场份额太低。

        3. wm的市场份额已经逐步下降,在北美排名已经跌了1位了,虽然未来很长一段时间之内还会是主流。

        就目前来说,除了wm,其他平台的应用开发和桌面系统还是有巨大差距的,而趋势确实是手机pc化, google和apple的机会会更大。

        • 家园 你一定是在国内做软件的。国外基本没有MTK的太大市场。

          MTK的应用,也需要在MTK平台上预置JVM,但是据我所知,现在MTK手机出厂内置JVM的不到15%,也就是说,绝大多数的MTK手机“包括啥啥山寨机”基本上是出厂即固定,除非刷内存,否则装新应用的可能性几乎为零。

          现在有不少人在动MTK预置的脑筋。比如说某些小厂,弄个MTK开发平台,找几个人开发一个应用,然后烧在芯片里 作为Native应用卖掉......

        • 家园 你们都搞错了

          手机系统从低到高:硬件(双核(AP+BP)或单核)-》BSP+电话栈-》OS-》应用程序接口-》应用程序。

          MTK方案是单核CPU无MMU(内存控制器)+Nucleus(OS+电话栈)+C应用程序接口+Native C应用程序。

          Nokia、Sony,Moto低档机用Nucleus和MTK方案相似。中高档机大多数是双核(TI OMAP (AP)+Modem(BP))可用各种高级OS.不论任何高级OS,都需要BSP,也就是硬件驱动层。GSM/CDMA Modem固件负责处理电话栈1到3层。3层以上由AP处理。驱动上面是OS.

          如果用Symbian OS。Symbian是纯C++。应用程序接口可以是S60或UIQ。应用程序是纯C++。

          如果用Linux OS(ALP,LiMo,LiPS,Android,Qtopia...),应用程序接口可以是QT或其他。应用程序是C++、C。

          如果用WinMo OS,应用程序接口是Win32.是C++/C。之上可以是MFC,/.NET CF/...。应用程序是C++/C/VB/C#/...

          以上所有的系统都可以运行JavaVM。然后就可以运行Java程序了。标准是MIDP。

          真正的纯Java系统是RIM的blackberry。完全是用Java写的。

          其他系统象Qualcomm的BREW等用户太少,不谈也罢。

          所以,手机开发分几个层次。基本上OS部分和应用程序接口大家都插不上手。能做的也就是BSP和应用程序。BSP需要硬件,而且调试困难。所以大家也就玩玩应用程序吧。

          打中文太累。如果大家不在乎读英文,我可以多罗嗦几句。

          • 家园 深刻

            问题是硬件驱动层和固件的编写和楼主讨论的手机编程不是一个问题。

            按我理解,楼主的问的是在OS上的应用程序的编写。

            固件和驱动,做的人要少的多了。

            (前天午休时忙,只回复了个两个字的标题,今日补充一下。)

          • 家园 老大,虽然我没细说,但是我不认为我搞错了

            我纯是从应用开发的角度来说, 可能说法有差异, 比如你说的应用程序接口,现在好像习惯叫xx平台多一些,比如win32平台。

            moto的linux 是改造过的,对java支持很好,在应用开发这个级别,java在其中相当于s60上的c++,有很多扩展可以用。

            我从去年开始转到手机上搞点企业应用,平常也喜欢玩手机,以前自己玩做过一些小东西,理论上现在大部分手机都内置kvm,所以理论上这些手机都可以用java来玩点东西,但实际开发起来诸多限制,一些应用级别的开发都无法完成,而用c++就无此问题,但是用c++每个平台都要学习API,也很烦。

            kjava其实是相当无聊的东西, 如果不做游戏的话,UI这块基本就等于从像素点开始做起,烦不胜烦。

            android不跑kjava ,这点还算是开窍了。

            我比较有兴趣听详细介绍 Nucleus这东西 ,目前貌似做一些定制的行业用机这个可行性最高,另外现在电信收购cdma以后,我对brew也有点兴趣,想顺便请教一下,把midp2的东西移植到brew上有多大工作量? 能给介绍一点捷径就好了。

          • 家园 这个最精确,一定是业内人士,呵呵。
          • 家园 多讲讲!感觉这篇是最细的一个帖子!

            英文也可以!

分页树展主题 · 全看 下页


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河