搜索
bottom↓
回复: 88

转帖一个很精彩大讨论:为什么 Android 采用“效率低下”的JAVA做开发语言 以及JAVA虚

[复制链接]

出0入0汤圆

发表于 2010-6-23 11:54:21 | 显示全部楼层 |阅读模式
原帖地址在http://www.hiapk.com/bbs/thread-155312-1-2.html

在hiapk网的milestone分坛,这是一个消费者论坛,就是大家都是买手机的,开发人员很少

原楼主标题:《今天突然知道了一件事,让我彻彻底底的否定了milestone和android的前途!》

、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
2010-3-27
1楼 lz

今天突然知道了一件事,让我彻彻底底的否定了milestone和android的前途!》

那就是android软件竟然用java开发,这不是自寻死路吗。不知道android开发者是怎么想的,java那个垃圾得,NC了,竟然不用C++,java写的烂东西怎么能和NOKIA的C++的QT相比呢。唉,就此一点就彻底否定了android,失败是迟早的事。


在众多无知的,自娱自乐的安饭的攻击下,我回去恶补了一下android的知识,结果发现google自己搞了一套什么所谓的Dalvik virtual machine。那个设计垃圾得。绝对不是吹,我拍脑袋都能想出来。唉,就那个架构,还开发3D游戏,还开发桌面级的应用,歇吧,等NOKIA的symbian3, MS的WP7出来了,让你Android看看什么叫应用,倒时候可把你的眼睛睁大了!

9楼 lz
java的效率很低啊。而且现在程序高手一般都讨厌java,其实他们看不起java也是有道理的,java真的很垃圾。相信我,希望MOTO早点醒悟吧,不要在android上投入太大,还是多在WP7和SB3上下点功能吧。

android的SDK是java开发的,这个没有错啊。我今天刚看了andorid的开发方式,唉,都看不下去了,一看到eclipse,java就伤心啊,google那帮人怎么会想到用java呢。天啊,这不是自掘坟墓吗,多好的linux内核,就被遭塌了。



12楼 flf07
技术先进的不一定有市场。

想当初比windows系统技术先进的多了,可现在呢。

市场决定一切。

xhh325

纯语言而言,JAVA的执行效率确实不如C++。
但这只是一方面,现今的硬件资源已经很充裕了,
牺牲一点资源消耗,从而获得架构、安全、扩展、健壮等方面的优势难道不更好么?
更何况如果runtime做得好的话,除了资源占用大点,效率方面基本没什么损失。
.net不就是这样么,加载的时候慢点,运行的时候并不慢。
而且android应用运行环境并不是Sun Java。
所以楼主说法是没有根据的,如果有请拿出数据来。

另外,再复制一大堆东西给LZ看看..
虽然现在NDK不是很完善,但难保以后会怎么样.
JAVA和C/C++同时开发三方应用?呵呵

1、前言
        6月26日,Google Android发布了NDK,引起了很多发人员的兴趣。NDK全称:Native Development Kit。下载地址为:http://developer.android.com/sdk/ndk/1.5_r1/index.html。

2、误解
        新出生的事物,除了惊喜外,也会给我们带来一定的迷惑、误解。

2.1、误解一:NDK发布之前,Android不支持进行C开发
        在Google中搜索“NDK”,很多“Android终于可以使用C++开发”之类的标题,这是一种对Android平台编程方式的误解。其实,Android平台从诞生起,就已经支持C、C++开发。众所周知,Android的SDK基于Java实现,这意味着基于Android SDK进行开发的第三方应用都必须使用Java语言。但这并不等同于“第三方应用只能使用Java”。在Android SDK首次发布时,Google就宣称其虚拟机Dalvik支持JNI编程方式,也就是第三方应用完全可以通过JNI调用自己的C动态库,即在Android平台上,“Java+C”的编程方式是一直都可以实现的。

        当然这种误解的产生是有根源的:在Android SDK文档里,找不到任何JNI方面的帮助。即使第三方应用开发者使用JNI完成了自己的C动态链接库(so)开发,但是so如何和应用程序一起打包成apk并发布?这里面也存在技术障碍。我曾经花了不少时间,安装交叉编译器创建so,并通过asset(资源)方式,实现捆绑so发布。但这种方式只能属于取巧的方式,并非官方支持。所以,在NDK出来之前,我们将“Java+C”的开发模式称之为灰色模式,即官方既不声明“支持这种方式”,也不声明“不支持这种方式”。

2.2、误解二:有了NDK,我们可以使用纯C开发Android应用
        Android SDK采用Java语言发布,把众多的C开发人员排除在第三方应用开发外(注意:我们所有讨论都是基于“第三方应用开发”,Android系统基于Linux,系统级别的开发肯定是支持C语言的。)。NDK的发布,许多人会误以为,类似于Symbian、WM,在Android平台上终于可以使用纯C、C++开发第三方应用了!其实不然,NDK文档明确说明:it is not a good way。因为NDK并没有提供各种系统事件处理支持,也没有提供应用程序生命周期维护。此外,在本次发布的NDK中,应用程序UI方面的API也没有提供。至少目前来说,使用纯C、C++开发一个完整应用的条件还不完备。




3、NDK是什么
对NDK进行了粗略的研究后,我对“NDK是什么”的理解如下:

1、NDK是一系列工具的集合。

NDK提供了一系列的工具,帮助开发者快速开发C(或C++)的动态库,并能自动将so和java应用一起打包成apk。这些工具对开发者的帮助是巨大的。
NDK集成了交叉编译器,并提供了相应的mk文件隔离CPU、平台、ABI等差异,开发人员只需要简单修改mk文件(指出“哪些文件需要编译”、“编译特性要求”等),就可以创建出so。
NDK可以自动地将so和Java应用一起打包,极大地减轻了开发人员的打包工作。
2、NDK提供了一份稳定、功能有限的API头文件声明。

        Google明确声明该API是稳定的,在后续所有版本中都稳定支持当前发布的API。从该版本的NDK中看出,这些API支持的功能非常有限,包含有:C标准库(libc)、标准数学库(libm)、压缩库(libz)、Log库(liblog)。






4、NDK带来什么
1、NDK的发布,使“Java+C”的开发方式终于转正,成为官方支持的开发方式。

使用NDK,我们可以将要求高性能的应用逻辑使用C开发,从而提高应用程序的执行效率。
使用NDK,我们可以将需要保密的应用逻辑使用C开发。毕竟,Java包都是可以反编译的。
NDK促使专业so组件商的出现。(乐观猜想,要视乎Android用户的数量)
2、NDK将是Android平台支持C开发的开端。

        NDK提供了的开发工具集合,使开发人员可以便捷地开发、发布C组件。同时,Google承诺在NDK后续版本中提高“可调式”能力,即提供远程的gdb工具,使我们可以便捷地调试C源码。在支持Android平台C开发,我们能感觉到Google花费了很大精力,我们有理由憧憬“C组件支持”只是Google Android平台上C开发的开端。毕竟,C程序员仍然是码农阵营中的绝对主力,将这部分人排除在Android应用开发之外,显然是不利于Android平台繁荣昌盛的。


uiiang

我就是做JAVA开发的, 楼主说JAVA的效率比C++低, 确实是这样. 不过现在的CPU和内存等等各方面机器性能越来越快, 这种效率上的差别只是理论上的数据罢了, 没有专业的评测软,已经很难看到这种效率上的差别.
另外有一点很重要的就是, 手机也好,电脑也好,不论操作系统做的多好, 多炫, 最重要的是软件的支持.
没有广大软件开发者的支持, 没有众多的软件, 再好的系统也白搭.
JAVA和C++相比,执行效率上是有些差, 但是JAVA的入门门槛比C++低, 可以吸引更多的开发者.这一点非常重要.
学习和精通C++的成本实在比JAVA要高太多了


haniklz (精彩的在这里****************)

现在还停留在哪个语言好这种层次上的话,你确实应该认真学习一下了

java很差?你问问你老师看看。

为什么android为选择java?就看到执行效率了吗?有没有想过什么叫开发效率


android短时间内3w应用java可谓功不可没。android如果仅仅是linux那么简单,最终可能也就落得和形形色色的linux移动发行版一个下场


同样的绚丽的界面,用C语言开发可能耗时几个月,发现菜单还没做好,java语言几个小时搞定

如果一定要追求效率为什么不直接arm汇编开发好了。


微软的wp7已经确定没有原生c++开发,也是基于.net的托管代码,原因?具有虚拟机层有很多好处,很重要一点就是安全性。开发的发展最初是C+汇编,现在除了在特定领域(比如驱动开发)还有人用汇编吗?


开发难度当然是越低越好,你问问现在业内的开发人员,谁愿意做symbian的程序开发烦不烦?我们公司同样的程序在两个平台同时开发,symbian平台用了半年,android只用了不到3个月就进入测试期,如果不是仗着nokia的推广,明天symbian可能就不存在了。
好吧,告诉楼主一个残酷的消息,qt程序的效率可没有你想的那么高R



android的虚拟机做过一定改进,是基于寄存器而不是基于栈的虚拟机,每个进程单独有虚拟机,版本路线图中未来也会加入jit,如果楼主还停留在十几年前的java的运行效率的认识上,那就太失败了。多学习下,如果lz是业内人士的话,少点浮躁情绪,对你以后的发展有好处。
--
另外提句NDK里面一直都有openelgs库。jni调用即可。android为什么会采用java + c开发模式,google的架构师懂的比你多,他们对这些的分析和权衡恐怕不是你一句java是垃圾得来的

还有现在不是硬件不够,而是硬件过剩了。

--
c语言和java都用了很多年,说实话最看不起就是你们这些以为某某语言比某某语言高级的人了,每个语言都有它擅长的领域。比如你用c语言给我整几个web应用出来看看,看你会不会吐血

--

最后再提醒楼主一句,就算你要比,你也得说是 编译型语言和解释型语言的区别啊,恐怕你就知道个C语言把。。。你让苹果的object c情何以堪,微软wp7上的c#情何以堪

另外还有一点, ANDROID是支持C++开发的, google并没有完全封锁掉C++的接口

语言是表现形式,比如我也可以做个编译器把java编译成机器码,把c编译成字节码
运行效率的区别是编译型语言和解释型语言的区别,上面的源代码何种形式并不是对效率的决定因素
还有个重要的方面就是架构问题,qt只是图形库而已,其效率并不一定被android的图形库效率高
android的设计并不是为单一硬件平台,而是未来可能根本无法想象的各种硬件,如果不是采用了java虚拟机,今天的android恐怕只有htc那几台机器在运行而已,其他厂商更是在忙于调试中吧,再等个三五年才上得了。
可以说不是java的话,android早就挂了,还谈什么未来


如果还在质疑android现在的开发模式性能不达标,建议去装个雷神3的移植版。
然后你再找一台可以按这个帧数运行的诺基亚程序出来。

milestone在硬件上最接近的机器,就是诺基亚的n900了,两者cpu/ram一样。n900的利于虚拟内存的因素,程序切换非常快。但可以看出雷神3在两者上的运行帧数相差并不大。


xutinggsy
说java必死的人多了,你算老几

uiiang
看着这个帖子, 曾经有一瞬间我恍惚以为到了CSDN, 又感觉是JAVAEYES

631797767@qq.co

楼主像我们大一刚上课,刚听了第一节C语言课,听老师讲了C语言优点的小娃娃,可笑可笑。
虽然单纯从效率上讲,汇编< C < C++ < C# = java < F#
封装的越好,编程开发就越简单,但是效率会越低。
开发的难易程度与效率本身就是一对不可调和的矛盾。
按楼主那个幼稚逻辑,用汇编来做开发的手机系统,是不是前途无量啊?
除非与底层密切相关,或者是对效率要求苛刻,要不然C的那点优势就没有了。

kylinbaby
哥哥...我做java的...目前java的大型系统远远超过C++,而且手机应用java是最好的,java可以几乎完美的跨平台,这样才能在多个厂商的机种中用同一软件
微软为什么会推出一个效率低的C#?就是看到自己MFC开发的难度,和java开发的便利。C#里面的托管完全就是java虚拟机的山寨版。

再说了,nokia要黄了才找的Qt,你知道什么

ztywing
楼主好像晚上没尽兴!


VERY总结一下,Android的成功就是基于java,7万的应用程序,java功不可没,java把数量庞大的pc的java 程序员拉入到嵌入式手机开发的大阵营。
Android的好玩也在于应用的很多很好玩,htc手机的程序放到TCL电视上都能运行,这就是跨平台的优势。

手机的硬件的多样化是pc完全不能比拟的,牺牲一点效率,换来5倍的开发方便,就是java做的了。

手机的cpu,即使是全部是arm,指令集也从arm7到arm9到 arm11到A8 ,而PC只是x86.

其他的系统也没有抽象出很高层的操作系统借口来给应用程序调用,而这个java虚拟机做了。

另外,android的虚拟机是谷歌自己优化过的虚拟机,不是sun公司的虚拟机,性能在优化中,即使这样,android 2.1的系统,大家用起来都感觉不错了。而据说android 2.2的虚拟机比2.1的性能提高3倍以上……  所以大家就尽情期待2.2吧R

出0入0汤圆

发表于 2010-6-23 13:02:50 | 显示全部楼层
顶起,长见识了。
头像被屏蔽

出0入0汤圆

发表于 2010-6-23 13:14:42 | 显示全部楼层
java效率确实低,虽然现在手机动不动800M,1G。但还是不够用。

出0入0汤圆

发表于 2010-6-23 13:49:05 | 显示全部楼层
我一直都对Java很反感(仅仅是针对PC),运行效率低可以忽略,关键是那个界面经常在开发机器上显示正常,到了别的机器上经常会无法显示一部分,真的是让人崩溃啊,还有就是对中文支持不够好。

出0入147汤圆

发表于 2010-6-23 13:58:11 | 显示全部楼层
其实Google采用Java虚拟机的另一个很关键的原因,就是能使手机开发厂商摆脱Linux的GPL协议的束缚;Google通过Java虚拟机在Linux 内核和应用层之间做了隔离,因此,开源的只是内核和Java虚拟机,而厂商采用Java编写的驱动和应用则不需要开源,这样,既维护了各厂商的利益,又保证了各种android应用在各款手机的跨平台应用。

出0入4汤圆

发表于 2010-6-23 14:07:47 | 显示全部楼层
回复【4楼】dreampet 原野
其实google采用java虚拟机的另一个很关键的原因,就是能使手机开发厂商摆脱linux的gpl协议的束缚;google通过java虚拟机在linux 内核和应用层之间做了隔离,因此,开源的只是内核和java虚拟机,而厂商采用java编写的驱动和应用则不需要开源,这样,既维护了各厂商的利益,又保证了各种android应用在各款手机的跨平台应用。
-----------------------------------------------------------------------

顶四楼的观点

出0入0汤圆

发表于 2010-6-23 14:13:21 | 显示全部楼层
很多菜菜动辄怀疑专业人士的行为,以为别人都是脑子进水,NC. 以为怀疑一切(推倒以前)真的能够创新,那是扯蛋.
大家都有一个脑袋,一般以为别人脑袋有毛病的,自己的脑袋有毛病的可能性更大.

出0入0汤圆

发表于 2010-6-23 14:14:18 | 显示全部楼层
回复【4楼】dreampet 原野
其实google采用java虚拟机的另一个很关键的原因,就是能使手机开发厂商摆脱linux的gpl协议的束缚;google通过java虚拟机在linux 内核和应用层之间做了隔离,因此,开源的只是内核和java虚拟机,而厂商采用java编写的驱动和应用则不需要开源,这样,既维护了各厂商的利益,又保证了各种android应用在各款手机的跨平台应用。
-----------------------------------------------------------------------

学习了
头像被屏蔽

出0入0汤圆

发表于 2010-6-23 14:17:47 | 显示全部楼层
也顶4楼。

出0入0汤圆

发表于 2010-6-23 14:28:24 | 显示全部楼层
lu guo.

出0入0汤圆

发表于 2010-6-23 14:30:01 | 显示全部楼层
旺铺急转---价格便宜(24小时有效)

出0入618汤圆

发表于 2010-6-23 14:33:56 | 显示全部楼层
Java效率低是什么年代的观念了……
跑Android的ARM都带Java加速,运算速度已经大大提高了,开发应用程序和C++的差别用户基本上感觉不出来。实际上,开发过Symbian应用的人相信都不会认为Symbian的C++框架效率会比Java高。
另一方面,Java开发GUI运行效率低和兼容性差的罪魁祸首其实是Swing框架,而Android的GUI框架并不是Swing,而是基于Native C底层的一套自有框架,基本上所有视频加速功能都是由C/C++实现,GUI效率一点不打折扣。

出0入0汤圆

发表于 2010-6-23 14:38:53 | 显示全部楼层
顶4楼

出0入0汤圆

发表于 2010-6-23 16:03:10 | 显示全部楼层
说Java效率低下的朋友一定没有收入理解过JVM的实现。
现在的嵌入式CPU大多都集成了Java协处理,支持JVM指令集,能直接运行微码,不再是以前的“解释执行了”,效率上已经非常接近于C。

我顶11楼。

出0入0汤圆

发表于 2010-6-27 17:27:58 | 显示全部楼层
GPL有要求连应用程序也开源吗?

出0入4汤圆

发表于 2010-6-27 18:08:29 | 显示全部楼层
做了java五、六年,只能看看飘过,讨论很搞笑,呵呵.顶4楼.还可以说明一点,安卓系统不是真正的开源的,这是google的商业伎俩,但是确实保护了厂商,维持了厂商的积极性.有很多厂商专有API是不会公开给开发人员调用的.

出0入0汤圆

发表于 2010-6-27 18:54:38 | 显示全部楼层
【15楼】:确实很多API是从不向客户公布的

出0入0汤圆

发表于 2010-8-27 16:38:07 | 显示全部楼层
顶起,长见识了。

出0入0汤圆

发表于 2010-9-17 11:26:27 | 显示全部楼层
哈哈,都什么时代了,还拿效率说事,对一个新兴的操作系统什么开发快就用什么呗。
现在遍地都是JAVA培训,加上会有大量公司借Android来淘金,往里砸钱,这又孕育出高薪的Android开发岗位,大量的Java开发者会往上面冲,这样市场瞬间就起来的!

那些鄙视Java的人,你们要是自认为有两把刷子,可以去做更高薪的驱动开发、内核开发,在JAVA把市场炒热的时候,赚更多的钱。

出0入228汤圆

发表于 2010-9-17 12:05:13 | 显示全部楼层
刚入手一台 MILESTONE,玩得挺爽的。
昨天下了个 结合GPS,扫描WIFI的软件,公司开到家,
十分钟的路上,扫到了200多个,其中有很多不加密的,哈,这样跑哪儿都能上网了。

还买了个 蓝牙ELM327  OBD接口显示行车电脑信息,在ARNDRILD,上 也有相应的软件。真方便。

以前一直用PALM,现在将PALM扔了。

出0入0汤圆

发表于 2010-9-17 12:59:49 | 显示全部楼层
回复【14楼】ggg12345  
gpl有要求连应用程序也开源吗?
-----------------------------------------------------------------------

没有真正开源的手机软件系统吧,,就是所谓的freeware 。而现在常见的只是openware吧?

所以感觉我们这些不懂手机开发的,只会c语言的爱好者,并不太会从android所谓的开源中获得什么,比如学会java开发或c++开发什么的。
看了几本书,觉得android开发难度不小,而硬件已经是高度统一和定制化了,驱动也用不着我们做了,一点意思都没有。

出0入0汤圆

发表于 2010-9-17 13:03:53 | 显示全部楼层
回复【18楼】ravenbj2  
哈哈,都什么时代了,还拿效率说事,对一个新兴的操作系统什么开发快就用什么呗。
现在遍地都是java培训,加上会有大量公司借android来淘金,往里砸钱,这又孕育出高薪的android开发岗位,大量的java开发者会往上面冲,这样市场瞬间就起来的!
那些鄙视java的人,你们要是自认为有两把刷子,可以去做更高薪的驱动开发、内核开发,在java把市场炒热的时候,赚更多的钱。
-----------------------------------------------------------------------

呵呵,这里不太对java感冒的人不要太多,真正有机会做“所谓高薪”的驱动开发的,(内核开发?开玩笑吧,中国有几个啊?笑话)不会有十个人,估计。 从我所知的来,一般的驱动开发的钱不多的,远没有模拟工程师,高频工程师,通信专家拿的多,最多也就比烧单片机程序的高一点点吧,反正单片机最不值钱,最悲惨。

出0入0汤圆

发表于 2010-9-17 14:36:46 | 显示全部楼层
国外推行JAVA标准不遗余力啊.

出0入0汤圆

发表于 2010-9-17 15:44:43 | 显示全部楼层
回复【11楼】gzhuli  咕唧霖
java效率低是什么年代的观念了……
跑android的arm都带java加速,运算速度已经大大提高了,开发应用程序和c++的差别用户基本上感觉不出来。实际上,开发过symbian应用的人相信都不会认为symbian的c++框架效率会比java高。
另一方面,java开发gui运行效率低和兼容性差的罪魁祸首其实是swing框架,而android的gui框架并不是swing,而是基于native c底层的一套自有框架,基本上所有视频加速功能都是由c/c++实现,gui效率一点不打折扣。
-----------------------------------------------------------------------

android的gui是skia,等哥有了钱也买台android手机玩玩...

出0入618汤圆

发表于 2010-9-17 15:53:12 | 显示全部楼层
我们公司现在用的是Java的HTTP服务器,负载能力超过lighttpd,接近nginx。

出0入0汤圆

发表于 2010-9-17 16:13:00 | 显示全部楼层
昨天看了下MOTO的 XT800,电信交5900话费就送。但外型确实不是很好看。
还不如华为8600,8600操作起来很像APPLE。需要预存1980元。

但8600是单卡,XT800是双卡双待。

出0入0汤圆

发表于 2010-9-17 16:13:32 | 显示全部楼层
4楼说的有道理啊```毕竟大家都还是想赚钱的``

出0入0汤圆

发表于 2010-9-17 16:33:59 | 显示全部楼层
回复【3楼】miraclelife  麦诺克科技
我一直都对java很反感(仅仅是针对pc),运行效率低可以忽略,关键是那个界面经常在开发机器上显示正常,到了别的机器上经常会无法显示一部分,真的是让人崩溃啊,还有就是对中文支持不够好。
-----------------------------------------------------------------------

学习了。
各种协议、专利以及商业运作的水很深啊。。。

出0入0汤圆

发表于 2010-11-18 16:48:49 | 显示全部楼层
有意思

出0入0汤圆

发表于 2010-12-2 14:24:13 | 显示全部楼层
呵呵

出0入0汤圆

发表于 2010-12-2 14:41:13 | 显示全部楼层
4楼是真理

出0入0汤圆

发表于 2010-12-2 15:52:04 | 显示全部楼层
现在的Java虚拟机相当强大,pc上会动态编译Java为本地机器代码,所以效率比以前高很多,
而且由于由虚拟机管理内存不用担心溢出问题。

顶11楼。

对中文支持应该算好的,因为默认就是unicode码,有人觉得不好是因为xp用的gb2312,但到了win7通用unicode

出0入0汤圆

发表于 2010-12-2 17:42:43 | 显示全部楼层
这个网站上也没有多少android的帖子吧……

出0入0汤圆

发表于 2010-12-15 20:59:29 | 显示全部楼层
C的效率是高,是因为ARM的指令集是为C设计的...Java虚拟机,的强大威力,在以后,就引爆了.如果ARM推出128BIT的超长JAVA指令集.
那么在相同MHZ 下,JAVA程序的速度不会比C低...
就想当初C刚出,大家还觉得在CISC用汇编写程序比C效率高,一样...
在这个问题上,GOOGLE 是有长远眼光的.
................
补充一下 Java虚拟机,超级威力...在于以后..跟云计算的整合,按计算量收费....
Android,就只是一个显示和输入终端..

出0入0汤圆

发表于 2011-2-1 17:42:34 | 显示全部楼层
xuexile

出0入0汤圆

发表于 2011-2-1 19:02:54 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-2-1 21:09:39 | 显示全部楼层
c++的阉割版本,有什么好讨论的。

出0入0汤圆

发表于 2011-2-1 21:13:18 | 显示全部楼层
语言就是语言,永远不能替代思想。

出0入46汤圆

发表于 2011-2-1 22:37:35 | 显示全部楼层
现在还停留在哪个语言好这种层次上的话,你确实应该认真学习一下了
  --顶这句!

编程学到一点程度,就不应该有这种某某语言好,某某语言不好的想法了!

出0入0汤圆

发表于 2011-3-1 14:28:15 | 显示全部楼层
五年前,本人开始自学JAVA,当时喜欢的只是他的简洁,优美!

出0入0汤圆

发表于 2011-3-2 00:38:15 | 显示全部楼层
有帮助。谢谢!

出0入0汤圆

发表于 2011-3-2 08:05:27 | 显示全部楼层
我也很不喜欢java,效率低是一个问题,我更反感它的不稳定
也许就是因为java入门比较容易带来的问题吧
就象方便面可以帮助一个不会做饭的人迅速做出可以吃的东西来,
方便面技术升级了之后也可以让大家做出很好吃的方便面,
但是,方便面就是方便面

再说回效率,java经常辩解说自己不比C慢多少,但是又经常在推出新版的时候说比旧版快了NNN倍
然后继续说比c慢不了多少,看看下面的话吧

另外,android的虚拟机是谷歌自己优化过的虚拟机,不是sun公司的虚拟机,性能在优化中,即使这样,android 2.1的系统,大家用起来都感觉不错了。而据说android 2.2的虚拟机比2.1的性能提高3倍以上……  所以大家就尽情期待2.2吧R

2.1到2.2都快了3倍以上,我真想问下,到底比c慢不了多少的版本是2.1呢还是2.2呢

出0入0汤圆

发表于 2011-3-2 10:29:52 | 显示全部楼层
刚入手了欧版里程碑2,2910元,快递还没到货,我的5800I准备扔了

出0入0汤圆

发表于 2011-3-2 10:58:43 | 显示全部楼层
回复【42楼】xywap
刚入手了欧版里程碑2,2910元,快递还没到货,我的5800i准备扔了
-----------------------------------------------------------------------

你扔时候通知一下我吧,我去捡!我才不管它是用JAVA还是用C开发的呢,够用、实用、好用、性价比高则可,捡来的性价比最高了!!!

出0入0汤圆

发表于 2011-3-2 11:12:17 | 显示全部楼层
有点意思

出0入0汤圆

发表于 2011-3-18 00:07:39 | 显示全部楼层
感觉LZ就像在把中文和英文在比一样,
语言这东西能去比么?
用的人不同,
各自的特性也不同.
你不喜欢JAVA也没必要说这么极端的话.

出0入0汤圆

发表于 2011-3-30 21:26:49 | 显示全部楼层
学习了

出0入0汤圆

发表于 2011-3-30 21:26:49 | 显示全部楼层
学习了

出0入0汤圆

发表于 2011-4-2 16:47:39 | 显示全部楼层
回复【4楼】dreampet 原野
其实google采用java虚拟机的另一个很关键的原因,就是能使手机开发厂商摆脱linux的gpl协议的束缚;google通过java虚拟机在linux 内核和应用层之间做了隔离,因此,开源的只是内核和java虚拟机,而厂商采用java编写的驱动和应用则不需要开源,这样,既维护了各厂商的利益,又保证了各种android应用在各款手机的跨平台应用。
-----------------------------------------------------------------------

了然了

出0入0汤圆

发表于 2011-4-2 17:10:22 | 显示全部楼层
最近在捣鼓手机平台的东东,这个正好围观学习!

出0入0汤圆

发表于 2011-4-11 22:10:28 | 显示全部楼层
不知道java的效率,因为有的非智能手机跑某些程序的java版效率比智能手机跑c  专属程序还要快。但是,很少看见用java开发的3d游戏大作,和软解视频播放器,不知道是效率问题还是怕java会被反编译,而这些应用往往是亮点,一个应用足以秒杀目前常见的千万java应用。当然,就算java存在效率问题,一个3d图形芯片和一个视频硬解就可以解决。
但是,现在的android应用真的不如其它系统,水份很重。
另外,ndk和所谓的dev封装本质上还是java,这无什么可宣传的,从脚本语言的经历来说,ndk的c扩展更大是为了实现而不是提速,dev封装可以还原为java字节码的-_-!!
PS:汇编(机械码)的效率绝对是机能顶峰,不存在什么开发周期问题,用汇编绝对不走弯路!

出0入0汤圆

发表于 2011-5-10 17:48:44 | 显示全部楼层
呵呵这些老贴翻出来看看还是很有意思的,呵呵

出0入0汤圆

发表于 2011-5-10 18:24:22 | 显示全部楼层
JAVA最大优势在于跨平台、高稳定性

出0入0汤圆

发表于 2011-5-14 09:29:35 | 显示全部楼层
我刚学java和android,太深的技术我懂。

但是我觉得,人家google决定这么用了,人家里面的高手不知道有多少,肯定是有道理的。

出0入0汤圆

发表于 2011-7-27 20:41:11 | 显示全部楼层
MARK

出0入0汤圆

发表于 2011-7-27 20:46:30 | 显示全部楼层
这样的讨论 真好

出0入0汤圆

发表于 2011-7-27 20:54:53 | 显示全部楼层
回复【11楼】gzhuli  咕唧霖
java效率低是什么年代的观念了……
跑android的arm都带java加速,运算速度已经大大提高了,开发应用程序和c++的差别用户基本上感觉不出来。实际上,开发过symbian应用的人相信都不会认为symbian的c++框架效率会比java高。
另一方面,java开发gui运行效率低和兼容性差的罪魁祸首其实是swing框架,而android的gui框架并不是swing,而是基于native c底层的一套自有框架,基本上所有视频加速功能都是由c/c++实现,gui效率一点不打折扣。
-----------------------------------------------------------------------

原来如此。。。学习了
最早的时候俺是很讨厌JAVA的。

出0入0汤圆

发表于 2011-7-27 21:30:41 | 显示全部楼层
mark!

出0入0汤圆

发表于 2011-8-10 22:50:28 | 显示全部楼层
这两天setup android 开发环境, 折腾了一下android开发, 用 JAVA编程让我想起6年前用 Flash AS3 编程, 基本是一样的, (其实大学时候搞JSP网站开发也用过JAVA), 一看就学会android开发了.... 准备在 android 上搞个软件玩玩

出0入0汤圆

发表于 2011-8-10 22:53:27 | 显示全部楼层
以前用汇编,现在用C,也不觉得慢,效率低,因为现在MCU的资源够多,

出0入0汤圆

发表于 2011-8-10 23:00:21 | 显示全部楼层
中间解释语言。最近想搞这个。
如果是大块的读写,画图,不会比c慢,因为本来就是解释成画图程序。
3d计算的话,只要虚拟机里面有3d的计算函数,大块的数据写入,然后调用库计算,和c一个效果,关键看虚拟机的库函数了。
用解释语言的话就能在arm7这样的没有mmu的cpu上模拟类似开放式操作系统的效果了。
有没有人有兴趣做一个虚拟机,顺便开发一种新的语言。。。。。哈哈。。

出0入0汤圆

发表于 2011-8-12 02:21:39 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-8-12 09:00:42 | 显示全部楼层
我看到的关键字是  编译型语言和解释型语言

出0入0汤圆

发表于 2011-8-12 09:13:59 | 显示全部楼层
回复【64楼】yfpbird  
-----------------------------------------------------------------------

java现在也不是解释性语言,是动态语言,有些运行次数多的代码段会在运行过程中被动态的编译为本地机器码。

出0入0汤圆

发表于 2011-8-12 09:40:07 | 显示全部楼层
学习了,作为一个初学者除了会点语言之外,对这些语言之外的东西了解甚少。。。惭愧

出0入0汤圆

发表于 2011-8-19 10:12:01 | 显示全部楼层
无论怎么实现满足客户要求就是硬道理呀

曾经和别人探讨过这样一个问题
在不计较成本的情况下
用u盘来记录数据,如果你单片机很强,那么用个单片机就搞定了;如果上位机很熟,用电脑实现也可以呀

出0入0汤圆

发表于 2011-8-19 22:56:53 | 显示全部楼层
很激烈

出0入0汤圆

发表于 2011-8-19 23:31:15 | 显示全部楼层
顶下。

出0入0汤圆

发表于 2011-11-6 23:23:13 | 显示全部楼层
其他不知, 只有一個個人經歷

有一個XP之下, JAVA語言, 內部開發的應用軟件, 又一直都有増加功能
本來慢, 但升級 WIN7 後, 是間歇 "籃畫面" !!!

最後發現 WIN7 之下, 要某一版本 runtime 先可以穩定!

我們只不過是幾人的團隊, 技術低, 但估不到 "跨平台" 是 XP => WIN7 不能!!!

出0入0汤圆

发表于 2011-12-4 19:31:43 | 显示全部楼层
绝对的事实没有的!!

出0入0汤圆

发表于 2011-12-4 19:48:34 | 显示全部楼层
可惜A阵营里面没有E71这样的神机。。。

出0入0汤圆

发表于 2011-12-4 19:57:48 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-12-4 21:25:04 | 显示全部楼层
android是google收购来的,除了硬件驱动避免开源,还可使JAVA虚拟机每个都单独运行于linux上,提高安全性

出0入0汤圆

发表于 2011-12-14 08:55:16 | 显示全部楼层
总之 到现在 google都是成功的! 对不

出0入0汤圆

发表于 2011-12-14 09:23:27 | 显示全部楼层
我不得不说....虽然android的Dalvik虚拟机及A2.2以后的JIT比sun java的效率要高的多....但是有一点不容忽视
那就是内存占用...andoird每个应用都是独立虚拟机...所谓好处是崩溃了一个应用不影响其它的...但内存占用对手机而言显得过大了...

512是能流畅跑安卓的底线(我有三星i897,索爱xperia play,中兴V880橘子),
我同事的中兴V880国行,256内存就是杯具了...经常玩个游戏回到桌面还要等待桌面重启(因为内存不够,桌面进程被系统杀了-_-)

但WP7...事实上有256内存就足够了...我几个有WP7的朋友都说512内存是浪费了很大一部分的,
因为.net虽然也是同样原理的虚拟机,但在内存回收上,比sun java强,不会有一堆的内存泄漏,而且相比安卓的每个应用独立虚拟机,
.net的很多资源是内存共享式的,节省了很多RAM...

出0入0汤圆

发表于 2011-12-19 12:06:50 | 显示全部楼层
开发效率啊。。市场还是难琢磨的。

出0入0汤圆

发表于 2012-1-20 01:04:27 | 显示全部楼层
java开发快,在linux下写个java虚拟机(就是安卓),可比精简MAC OS容易不少。
应用软件是不是也比Object-C容易写?

出0入0汤圆

发表于 2012-2-13 16:39:41 | 显示全部楼层
现在android ios都开始支持C,C++开发了。说明JAVA确实效率不行。

为什么android的java的应用比不上objective-c的应用,还吃硬件?

出0入0汤圆

发表于 2012-3-10 11:42:43 | 显示全部楼层
回复【4楼】dreampet 原野
-----------------------------------------------------------------------
顶四楼

出0入24汤圆

发表于 2012-3-10 12:35:25 | 显示全部楼层
Mark!

出0入0汤圆

发表于 2012-3-27 17:41:47 | 显示全部楼层
效率高,很重要。

出0入0汤圆

发表于 2015-3-10 16:14:37 | 显示全部楼层
现在在看看的话,的确是这样

出0入0汤圆

发表于 2015-3-10 16:16:23 | 显示全部楼层
楼上挖坟真厉害

出0入0汤圆

发表于 2015-3-13 10:40:18 | 显示全部楼层
主要为了编程方便,应用尽可能多。

出0入0汤圆

发表于 2016-4-12 19:52:51 | 显示全部楼层
没办法啊。北美的大公司IT部门十几年前就是Java的天下了。我想这也是非常重要的原因之一

出0入0汤圆

发表于 2016-4-12 21:58:06 | 显示全部楼层
不错的帖子。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-29 07:18

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表