zoukankan      html  css  js  c++  java
  • 7月12日学习内容

    理清几个术语!

    1、JAVA虚拟机

    http://shenyuc629.iteye.com/blog/1698770

    JAVA程序为了能一次编译之后再不同的平台上运行,就是因为在运行程序之前,把这台机器想象成了属于自己的那台熟悉的机器,即为虚拟机。

    JAVA程序先在虚拟机上运行,再将程序翻译为机器指令在具体的机器上运行。

    一个JAVA程序对应一个虚拟机,3个JAVA程序就有三个虚拟机。

    那为什么不多个JAVA程序共用一个虚拟机呢?我也不知道

    http://blog.csdn.net/bingduanlbd/article/details/8363734

    看了这篇文章,我猜想是因为 一个JAVA虚拟机,它启动的时候,自己的电脑是要给它分配一段内存空间的,然后它还有自己的Java栈、程序计数寄存器(PC寄存器)等等。

    然后一个JAVA程序可能会有多个线程等等。如果共用的话,要么就动态增加虚拟机的内存,要么就一开始给它很大的内存。动态增加感觉麻烦,还不如直接换一个虚拟机。

    虚拟机的内存可以自己设置,如果设很大的话,那不就相当于在WINDOWS下装个UBUNTU跑了么,要是只运行一个程序,也没什么必要。一般的电脑又不会只运行JAVA程序。

    http://blog.sina.com.cn/s/blog_61fbf8d101015r1z.html (JVM设置内存)

    2、JRE,Java运行环境

    是运行JAVA程序所必须的环境集合,包含JVM标准实现及Java核心类库。

    3、ART Android Runtime

    http://www.cnblogs.com/manuosex/p/3634375.html

    http://blog.csdn.net/luoshengyang/article/details/39307813

    android要做到在不同的设备下使用,一定要使用虚拟机,但是虚拟机是跟设备有关的。每台手机都装了对应的虚拟机,就相当于所有的android程序都在相同的机器上跑了,APP开发者只需要弄懂一套API即可,不用考虑硬件之间的差异。

    但这就会引发一个问题,APP每次跑起来,都要在虚拟机上运行,然后虚拟机再将字节码翻译成机器代码,每次执行都会不断的翻译翻译翻译,即时优化过后还是会很慢。

    ART模式与Dalvik模式最大的不同在于,启用ART模式后,系统在安装应用的时候会进行一次预编译,将字节码转换为机器语言(OAT,OAT文件是一种Android私有ELF文件格式,它不仅包含有从DEX文件翻译而来的本地机器指令,还包含有原来的DEX文件内容。)存储在本地,这样在运行程序时就不会每次都进行一次编译了,执行效率也大大提升。这种编译的方式与c++,c语言编译方式蛮像。

    不深究。

    Binder机制不懂

    Service Manager不懂

  • 相关阅读:
    hdu 3496
    poj 2374
    zoj 3399
    poj 1321
    sgu 365
    hdu 3555
    poj 3345
    poj 2355
    Android重命名文件
    在workflow中传值的sample
  • 原文地址:https://www.cnblogs.com/wzben/p/5662691.html
Copyright © 2011-2022 走看看