首页>
知识库>
详情

Android随想

2020-06-30 来源:CloudBest 阅读量: 4
关键词:

初步接触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作为现在最广泛使用的编程语言,就移动这一块来说,真的很有局限。

操作系统和VM的结合是Java受阻的原因之一,.Net战略的优势也在于在Windows Mobile里头有一个很好的CLR。或许你有一个这样的用户体验,在Windows上运行的程序,Java写的往往要感觉比.net写的运行得慢,就是因为CLR是对操作系统和硬件做了优化的,而JVM必须支持通用的操作系统和通用的硬件,毫无疑问地说,Eclipse是一个非常优秀的使用java来写的IDE。因此MS的Windows Mobile的优势在于,只要.Net Framework有什么新的东西,对应的CF就有新的东西,而且Windows的UI已经让人非常习惯了。

对于Java来说,除了Sun推出一个Solaris的移动版,有可能会使得Java变成手机移动开发的主力军,但是他没有。所以希望Symbian,ucLinux去完成这件事,事实证明,这个使命没有完成。就用户体验来说,对于许多中低端的用户会非常喜欢Nokia,就一个终端用户而言,不期待能用手里微薄的工资买一个iPhone,Nokia的高端机,Nokia的市场战略非常出色,就我自己而言,用过几大牌子的手机,最后还是愿意情归Nokia,就是因为它的MMI做的人性化。从网上的消息得知,Android的机器的售价应该是iPhone的一半,或者还能有所下降,相信它的市场会因为它友好的MMI见长。

Android在MMI开发中引入了Java,这个时候的Android并没有拘泥于J2ME的一些死板的JSR,构建在Linux上的Android使用了一个相当优秀的操作系统,就内核而言Linux无疑是业界承认是相当稳定的。见网上的一篇帖子,说有公司对比了Android内核和标准的2.6.25版本的Linux内核,发现了Google修改了75个文件,增加了88个文件,该公司还对这些文件都做了对应的注释,其中为Glodfish增加了44文件,这个是虚拟机的虚拟CPU,模仿的是ARM926t;为YAFFS2修改了35个文件,因为增加了对NANDFLASH的支持;为蓝牙修改了10个文件;为调度器修改了进程调度和时钟相关策略,5个文件;为Android的新子系统增加了28个文件,有IPC Binder,运行的进程能为其他进程提供服务,这个功能已经在Plam的软件里被使用了;Low Memory Killer是在内存紧张的时候根据策略关闭某些程序的功能,内核有实现,Google重写了;Ashmem,匿名共享内存,多个程序可以使用这个