大家好,上一讲我们介绍了Android.Framework源码下载及编译,这一讲我们将进入虚拟机概述,JIT概述
        课程目标:
知道虚拟机的概念,JVM , JIT
        重点难点:        
虚拟机带来的好处
        考核目标:
C++ 和 Java编译上的区别   应用层代码不修改,为何有时候可以编译过,有时候编译不过 ?
        什么是虚拟机?
一种抽象,一种仿真
虚拟机(Virtual Machine)指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。
An efficient, isolated duplicate of a real machine. –Popek and Goldberg 1974

System virtual machine:一个系统的仿真和抽象,可供一个或多个操作系统在上面运行。Eg: VM Ware, QEMU, KVM
虚拟机指令集可与硬件CPU指令不同
提供隔离isolation

Process virtual machine:只供一个进程的仿真执行 Eg:JVM(Java Virtual Machine), Microsoft .NET
提供可移植性(portability)
WORA, Write once, run anywhere. --Slogan of Sun Microsystem
虚拟的机器:4G内存,标准的IO
        什么是JVM

2011-11-7 10:33:28 上传

下载附件 (19.31 KB)

WORA: Write Once, Compile once, run everywhere
应用程序和Bytecode编译器独立于硬件(machine-independent)

虚拟机软件仿真要实现指令集转换,虚拟地址物理地址的转换,代价慢!Java刚问世时比C/C++ 慢20X+

什么是JIT
改进:实时编译JIT(Just in Time) compiler
只有新的Bytecode指令需要编译
A typical program with loops and repeated function calls should execute 10x faster using JIT.
No free lunch:需要储存空间,占内存(memory footprint)

啥叫实时? 编译什么? When and What to compile?
Method invoke time? Instruction fetch time? Application launch time?
Whole program?  A page?  Method?  Single instruction?

A compiler's primary function is to compile, organize the compilation, and go right back to compiling. It compiles basically only those things that require to be compiled, ignoring things that should not be compiled. The main way a compiler compiles, is to compile the things to be compiled until the compilation is complete.
        汇编器,链接器,加载器
汇编器(Assembler): 转换标签(Tag)为偏移量(offset),汇编语言的IDE,
链接器(Linker):多个目标文件和库变为一个可执行文件或新的库

2011-11-7 10:33:29 上传

下载附件 (6.68 KB)

静态vs动态链接
编译过的常用库二进制码只存一处 
更新方便,but … DLL Hell

加载器(Loader):加载到内存:execve().
本讲对虚拟机概述,JIT概述,下一讲将进入Handler-不可缺少的异步_
上,内容预告:AFF110529_Handler-不可缺少的异步_上,敬请期待。

特别推荐新课程:Android开发高端课程
http://www.mobidever.com/forum.php?mod=viewthread&tid=2098
本课视频地址:http://www.tudou.com/programs/view/eMFpniJRUJY/  (土豆网)
课程下载地址:http://www.verycd.com/topics/2900036/ (VeryCD电驴)
作者博客:http://www.mobidever.com/forum.php (Sundy-Android开发联盟)

Android深入浅出系列课程---Lesson13 LLY110529_虚拟机概述,JIT概述相关推荐

  1. Android深入浅出系列课程---Lesson15LLY110602_Dalvik虚拟机概述

    大家好,上一讲我们介绍了Handler-不可缺少的异步,这一讲我们将进入Dalvik虚拟机概述. 课程目标: 概念性的知道Dalvik虚拟机基于JVM的改进及其对移动设备的好处: 1)dex file ...

  2. Android深入浅出系列课程---Lesson7 LLY110426_Android系统启动

    大家好,上一讲我们介绍了Activity状态保存,这一讲我们将进入Android系统启动. 一.课程目标: 从系统角度了解Android启动过程 二.重点难点:        下载源代码并且根据源代码 ...

  3. Android深入浅出系列之Android工具的使用—模拟器(一)

    前言 我们下载的SDK包里面有一个叫"Tools"的文件夹,里面为我们提供了许多与Android开发相关的工具,其中一些是必不可少的,现在我们就介绍一下模拟器 Android模拟器 ...

  4. Android深入浅出系列之实例应用—简单的手指拖动图片,图片滑来滑去显示应用Gallery和BaseAdapter以及ImageView的使用...

    前言 我们现在在随便一个手机上用手指在屏幕上滑来滑都可以去拖动图片,其实在Android里这很简单,下面我就给大家具体讲解一下. 思路   我们首先需要Gallery这个对象,俗称画廊对象,大家都知道 ...

  5. Android深入浅出系列之实例应用—手机页面之间的跳转

    在网页里,我们可以通过超级链接从一个网页跳转到另外一个网页,在手机里面,要如何实现手机页面之间的跳转呢? 原理:通过布局文件和setContentView()方法配合来实现.通过点击第一个布局文件ma ...

  6. Android深入浅出系列之Android工具的使用—调试桥ADB(二)

    阅读目录 一:调试桥ADB 二:ADB的主要功能有哪些? 一:调试桥ADB   adb是什么?adb有什么用?adb工具如何用? 是用来管理模拟器和真机的通用调试工具,该工具功能强大,直接打开cmd即 ...

  7. Android深入浅出系列之实例应用—弹出消息Toast对象的使用自定义方式(二)

    阅读目录 一:前言 二:实例 三:运行效果 一:前言 Android中定义了一个Toast对象,用以弹出一个窗口来给予用户帮助和提示,和对话框不同的是,Toast并不是以独占方式显示的,它并不会抢夺用 ...

  8. Android深入浅出系列之实例应用—弹出消息Toast对象的使用纯文本方式(一)

    阅读目录 一:Toast 二:实现步骤 一:Toast Toast是Android专属的提示信息的对象,它的使用非常的简单,但是用途却非常的广泛,Toast就是一个简短的信息,将要告诉用户的信息以一个 ...

  9. ASP.NET AJAX深入浅出系列课程(10):基于Microsoft AJAX Library扩展客户端组件.zip(10.77 MB)...

    讲座内容: 利用面向对象类型系统是扩展组件的常用方法,但是我们在客户端进行开发的时候也不能忘记正在使用的是JavaScript这个非常灵活的动态语言,使用一些特殊的方式来扩展组件有时候会得到更好的效果 ...

最新文章

  1. qinyu.blog.51cto.com里的好文章,比尔盖茨
  2. 2019全球AI争夺战最新汇总
  3. 中国科协发布20个重大科学问题和工程技术难题
  4. nodejs windows 安装过程
  5. Codeforces Round #352 (Div. 2) A. Summer Camp 水题
  6. Scala传名参数(By-Name)
  7. [译]5.11. Functions and Variables Featured in This Chapter 本章的函数,变量和特性
  8. 基于 abp vNext 和 .NET Core 开发博客项目 - Blazor 实战系列(七)
  9. 208. 实现 Trie (前缀树)
  10. 免费生成https证书以及配置
  11. leetcode613. 直线上的最近距离(SQL)
  12. python2.7是什么_python2.7是什么
  13. 【原】获取数据库(SQL SERVER 2005)的所有信息 Get all database information from SQL Server 2005 测试通过...
  14. KMP算法详解P3375 【模板】KMP字符串匹配题解
  15. 改变程序设计、图灵奖得主、美国第一位计算机科学女博士,程序媛进击史
  16. win11怎么回退原系统 Windows11回退的步骤方法
  17. PowerDesigner 15 概述
  18. 谷歌云计算技术基础架构,谷歌卷积神经网络
  19. mesh组网是什么意思
  20. uniApp实现选择图片裁剪设置用户头像

热门文章

  1. 青山~深入理解mysql
  2. ipad云计算机,过气iPad2还能这么玩!用云电脑玩PC云游戏
  3. 【音频】削波失真(爆音)问题定位与解决
  4. Java计算10000天出生纪念日
  5. Mybatis if标签判断数字大小
  6. 正负筛选(neo正向+HSV-tk负向)原理
  7. 华夏千秋事,风雨亦为之
  8. 粉色系列资源网emlog模板挺新鲜
  9. 【沉舟侧畔千帆过,病树前头万木春】---OpenFeign的各种骚操作 -VS- 既生瑜何生亮的感叹,小Ribbon怎么办?
  10. PPT模板 | 湖南农业大学汇报通用PPT模板