初步接触Android,自己尝试做了几个DEMO,感觉到很兴奋。刚刚翻开书的时候,看到Android的五个部件,加上一些文字的描述,感觉很抽象,似乎这个程序不好开发,当我开始动手做了第一个demo之后,就深深的被Android的开发模式吸引了,个人理解是按照Android的开发模式开发了之后放到JAVA编译器,然后再经过DX编译器编译最后简单的部署到手机上。我曾是一个Web开发工程师,非常熟悉基于C#的网络开发,也曾经接触过普元的SOA开发,其实他们之间都有一些类似之处。ASP.net也是将aspx先转为C#的代码然后转换到MSIL中去,普元的SOA是自己扩展了Eclipse的插件,然后把一些编程模式放到工具去,通过普元的解释器解释成java代码然后转换成字节码,但是这个解释器做的相当不完善,同时java的中间编译经常出错,而且速度还跟不上来。手机是一种特殊的设备,因为它资源的有限性,使得它运行的程序都有很大的限制,开发程序的时候必须考虑到它的硬件。以Sun为主的Java阵营提出了J2ME的开发模式,充分的考虑了开放性和兼容性,于是广博的胸怀得到了业界的认可,但是却没有得到业界的大力推动,J2ME仅仅是附属于各大手机操作系统的一个小产品,它的功能仅仅在提供非主流的程序应用,并不是工程师们不想去做,而是他天生就是作为一门锦上添花的工具来设计的,http://rgruet.free.fr/public/BD-J/,应为JAVA本来就是设计在一个沙箱里头的,所以J2ME只能获得有限的能力,不管是CLDC1.0还是CLDC1.1,区别只在的CLDC支持浮点数运算,以及支持浮点数运算的相关的方法的支持,尽管MIDP的出现能够使得图形图像的变化变得更加容易,更加适合做游戏,但是还是无法变成主流的MMI的开发语言。由于本人对MMI的基础才刚刚开始,对MMI的理解还不够深刻,但是觉得Java在手机MMI的出现还是不太现实的,因为毕竟JAVA的执行还必须有一个VM的支持,一般来说这个VM是独立于手机的操作系统的,本来手机的操作系统就很受局限,主要有多任务的操作系统和非多任务的操作系统,有的可能是简单的任务调度系统,在这样的机器上就不可能对VM以及java有太多的幻想。现在出现的主流的智能手机的操作系统像Nokia的Symbian,MS的windows phone/ windows mobile,Plam的PlamOS,Moto使用的ucLinux,BlackBerry的blackberry,IPhone的mac,Android大系的Android系统大部分是基于C/C++来开发的,MMI似乎都没有用java的,这就是由于主流的Java移动开发的天生的定义而导致的。无论是智能机还是非智能机,对于java的描述都是Java扩展,这个扩展就意味着java不能登大雅之堂。结合我们对java的用户体验来说,java的程序的用户体验一般来说都是比较糟糕的,就移动开发而言,每次运行java程序,都需要一个较长的加载时间和退出的时间,相比起其他程序,这在用户体验中就相当的不利,而且遇到异常的是总是哐当一下就弹出一个莫名的窗口死掉了,这样的人机交互是相当糟糕的。这或许跟Sun推行的Java策略在市场上不太好的缘故,对Java缺乏一个大的愿景,不断的有组织开会提议加一个JSR,然后就费了很长时间制定一个JSR,而且这个JSR往往在敲定的时候又已经落伍了。前段时间看到一幅漫画,心中真是难受,那幅漫画说的是Duke(Java的吉祥物,有个红鼻子的小家伙)站在Sun的墓碑前掉泪。虽然Java作为现在最广泛使用的编程语言,就移动这一块来说,真的很有局限。