mgx也就是mpkg是用系统语言编写的,这个程序是直接在linux上运行的 .而java用的是java语言,系统本身不识别,要经过嵌入到系统里的java环境来解读,然后系统才可以识别 这就是我们说的手机支持java2.0的功能,这个java2.0就相当于一个mgx软件, 简单的说,我们系统不能播放ape,但是装了rockbox就可以了,rockbox和java2.0一样,算是linux上比较大的软件了,但是由于它可以独立于linux系统外来运行,因此也称作为一个嵌入linux的系统,比如e6上的opie系统就是这样子 也就是说mgx是直接在linux上运行的,而java则相当不是一个可执行文件,只能算是个数据库,真正运行的是java2.0kvm的linux下可执行程序 在给个最简单的比喻:java2.0和java软件的关系好比是‘gba模拟器’和‘gba游戏’的关系 . 再说一下他们的不同:mgx程序相当系统的一部分,可以完美融入到系统中,有最大权限,可任意调用数据库和其他应用程序,并且稳定性高,执行速度快。 而java则是必须建立在java2.0环境下的,这个环境是专门为手机软件制造的,和电脑的java环境有很大差别,电脑商很多大程序都是用java语言编写的,对于手机上的java2.0来说不免就显得有诸多限制了;首先就是权限问题,java软件没有权限调用数据库,因此很多需要读取写入数据的软件在没有授权的情况下是不可以完美运行的;另外主要是受到了java2.0平台的限制,手机上的java2.0是现在手机java软件的一个通用平台,他本身就有各种限制各种问题在制约着java软件的发展,java2.0是根据现有手机硬件情况等问题研发的手机间可以跨系统的通用平台,现在java2.0版本主要是对声音文件的处理很鸡肋,他对小游戏和小软件里的声音处理几乎仅限于mid等一些小音频文件,因为他是以打包数据库的方式运用在java2.0平台的,太大了会读取不了,最重要的莏ava平台和linux是区分开来的,java有自己独立的分配内存,我们现在的内存是扩展到4兆,所以大于4兆的文件是无法运行的。但是市面很多java功能的手机分配的运行内存都是在1兆一下,因此只能运行1兆以下的java软件:java软件为了扩展市场,很多游戏都是非常的小,都控制在800kb以内,。我们在没有修改java堆键的时候java的运行内存为2兆,在运行飞信3.0的时候大约600kb,但是java是打包方式存在的,文件越多解压后占用空间越大,飞信3.0还有大量动态数据库文件,所以2兆运行内存显然不够无法运行,但是堆践修改为4兆后就可以正常运行了:还有我们的多个java打包时也不能超过运行内存,因而你用打包软件打包好的多个java无法运行。 java是被动运行的,因为他只是个数据库,mgx是主动运行的,比如mgx可以做到你打开短信时显示你新安装的输入法软件,这就是主动性,因为他和系统‘融合’了,而java不可能做到!因为java只能在java平台的那一个窗口下运行,碧丛linux上的文件他关联不了,也就是说在linux系统下他起不了作用,窗口一关他就over了,就没作用了! 对了有的java对系统有控制和搏慧缓修改作用,这个完全取决于java2.0这个‘软件’和linux系统的融合性,能否起到作用完全看他怎么控制系统了,这个在各个系统上都是不一样了,要看生产厂家都给了他什么‘天赋’ 主要就是他们是两个系统,相互融合比较困难,java必须在java2.0的运行下才可以运行,就好比你把gba模拟器关掉,势必gba游戏不可能继续运行,对他的再调用就显得相基模当困难了.
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)