从系统中找了好久关于JAVA的蛛丝马迹,却一无所获,Google了一段时间,有人说Android只是实现了一个java的VM.是这样的吗?从terminal中可否找出点儿这个VM的一丝丝信息呢?

解决方案 »

  1.   

    Android是一个操作系统, java只是一门语言.为了方便开发者入手写应用程序,Android系统开放了一些应用程序接口(API),这些API由形似于Java的语言提供。Android系统的Java 不同于我们泛指的sun或者IBM公司的Java. sun/IBM的java是采用JVM的技术,
    而Android采用的是DVM的技术。 除了语法极其类似之外,两者没有更多的相同点了。其它的我了解也不多, 等楼下补充
      

  2.   

    Android is an Operating system like windows which has a whole platform from drivers to application and the interface for developer---the sdk which is programmed with Java languages.
    It is just like Windows whose API(SDK) is in the form of C/C++.
      

  3.   

    嗯 Dalvik虚拟机 ..貌似是这样就不用给sun交钱了 
      

  4.   

    http://zhidao.baidu.com/question/145042036.html?si=1
      

  5.   


    有没有关于DVM的相关的技术呢?举一个很简单的例子,在Linux中每一个java运行的程序ps aux|grep java之后可以看到他是由虚拟机直接起来的,可是在android的terminal中。他的command line却不是由别人带动的。这是什么原因呢?
      

  6.   

    Android整个系统的构架LZ应该知道吧 Linux内核层 + DVM中间件及调用库 + 应用接口层 + 应用层
    主要就是通过DVM虚拟机扯上关系的吧
      

  7.   


    这个我知道。主要就是想知道DVM和他们是怎么样扯上关系的。然后Linux和他们又是怎么样扯上关系的。然后还有一个小问题。假如有一天java升1.7了。是不是意味着1.7中的一些新功能在Android中就用不了了?那他现在又是支持多少呢?1.4?1.5?1.6?
      

  8.   


    这个java的jar 可以导进去 编译没问题 但是运行到那个类就出错了 所以得把jar编译到framework层 我感觉java的类库 跟 android的 没关系  虽然 android的类库里一些和Java的名字一样 但是编译的不一样你写一个Java的代买 放到android的没问题 但是 如果是 外部的jar 就有问题了
      

  9.   

    我做 google docs应用的一点经验
      

  10.   

    audroid下面2曾是用C,C++开发的,上面俩曾是用java开发的。
      

  11.   

    然后我还发现一点:
    在系统的/data/anr/traces.txt中,进程栈有许多用的就是java的线程库。比如说object.wait()方法,Thread.run()。其中还发现了反射的影子。让我感觉他好像用了其中一部分。然后自己写了大部分。
    不知道是不是这样的?
      

  12.   

    我想说,没啥关系,就app开发的时候语法用的java,和j2ee更不沾边,android也说是分层架构,但是是操蛋的分层,高度耦合,哈哈
      

  13.   

    表达一下我的观点:
    1. 为了说明楼上各位的问题,我将Android架构简化如下:
      Linux + C/C++层 + JVM和java core + framework + app
      Linux 和 C/C++层就不说了。
      JVM是Dalvik虚拟机,另外,Android还实现了一个java core库,例如system类,socket......等等, 所以,你看已写的java程序放在Android才可以运行。
      framework: 基于JVM和java core, 再采用JNI方式,Android实现了framework层,为APP服务。
      app层不说了。2. 从代码和Android初始化过程的log信息来分析;
       Android 启动也是从Linux的init来启动的。启动到zygote进程,其实才真正开始初始化JVM了。
       然后,就是Framework层的各个组件,如powermanager,activitymanager......,最后,就是load(或者说启动)上层的APP了。
      如果想了解更加详细的过程:
      可以从以下方面:
      1. log信息
      2. 初始化完成后的进程列表
      关于这部分内容,请参考我的博客: http://blog.csdn.net/liranke下的Android目录下的一些文章。
      

  14.   

    从平台到应用要学的多了!内核就是Linux,驱动/移植就要学C,虚拟机一部份是用C++搭建的, 应用就是用jave写的! 呵呵
      

  15.   

    android 怎 么能是操作系统,分不清概念andriod 只能算是一个java的库
      

  16.   

    个人认为,如果从形式来看,android java用的都是java语言,但从内部来他们的编译不一样了,同样如果我们问java和C++的关系,java和C++语法不一样,编译不一样,我们说他们是两种不同的语言,假设java和C++的语法和一样,我们就可以说和android 和java的关系是一样的啦,
      

  17.   

    为什么使用java呢,不是说java慢吗