Dalvik虚拟机Java堆创建过程分析
文章转载至罗升阳CSDN社区博客,原地址: http://blog.csdn.net/luoshengyang/article/details/6557518
近年来,手机移动平台越来越火爆。打开自己的QQ算了一下,在线好友共有31个,其中用手机上的有13个,手机用户占了42%;打开新浪微博、天涯和猫扑等网站,各种终端设备的发贴、回贴更是数不胜数。目前,手机平台如日中天的要数是iOS和Android了,尤其是iOS,Symbian已没落,WP7在挣扎。iOS一如既往地走Apple特色的封闭道路,然而它的强大在于能够建立一个完整的生态系统,乔布斯确实是天之骄子,没有之一;相反,Android奉行开放政策。注意,Android是开放,不是开源,从Android被踢出Linux Kernel主线代码,可以看出为什么说Android是开放而不是开源的:http://lwn.net/Articles/372419/。我还是赞成Android的开放政策的,毕竟手机厂商还是要赚钱吃饭养家的。今天iOS的封闭和Android的开放,令人不禁想起来当年封闭的Apple Mac是如何被开放的IBM PC打得一败涂地的。Google能够重现IBM当年的辉煌吗?不好说,吃一堑,长一智,Apple还是一个伟大的公司的。然而,个人还是看好Google,看好Android.
既然看好移动平台,看好Android,那还等什么,赶紧研究一下吧。工欲善其事,必先利其器。相信大家都知道Android的APP的是用Java写的,运行在Dalvik虚拟机上,还有,Android的系统是基于Linux Kernel 2.6的。那么,要想深入了解Android系统的各种细节,当然少不了Linux Kernel的知识了。本人水平有限,对Linux Kernel也是略知皮毛,望与大家共勉,在此,推荐几本几天Linux Kernel的经典书籍:
1. Linux Kernel Development.
2. Understanding the Linux Kernel.
3. Linux Device Drivers.
4. Linux内核源代码情景分析.
看了Linux Kernel的书,当然也要看一下Android的书了,这样可以对Android平台长什么样子有一个感性的认识,推荐下面两本书:
1. Professional Android Application Development.
2. Google Android SDK开发范例大全.
如果可以一边看书,一边照着例子实战一下,那就更好不过了:)。后面,我将会总结一些自己学习过程觉得有用的知识出来,与大家分享、交流。开始我们的Android之旅吧。

老罗的新浪微博:http://weibo.com/shengyangluo,欢迎关注!
Dalvik虚拟机Java堆创建过程分析的更多相关文章
- Dalvik虚拟机java方法执行流程和Method结构体分析
Method结构体是啥? 在Dalvik虚拟机内部,每个Java方法都有一个对应的Method结构体,虚拟机根据此结构体获取方法的所有信息. Method结构体是怎样定义的? 此结构体在不同的andr ...
- Dalvik虚拟机垃圾收集(GC)过程分析
前面我们分析了Dalvik虚拟机堆的创建过程,以及Java对象在堆上的分配过程. 这些知识都是理解Dalvik虚拟机垃圾收集过程的基础.垃圾收集是一个复杂的过程,它要将那些不再被引用的对象进行回收.一 ...
- Dalvik虚拟机进程和线程的创建过程分析
从前面Dalvik虚拟机的运行过程分析一文可以知道,Dalvik虚拟机除了可以执行Java代码之外,还可以执行Native代码,也就是C/C++函数. 这些C/C++函数在执行的过程中,又可以通过本地 ...
- Android(java)学习笔记156:Java虚拟机和Dalvik虚拟机的区别
Google于2007年底正式发布了Android SDK, 作为 Android系统的重要特性,Dalvik虚拟机也第一次进入了人们的视野.它对内存的高效使用,和在低速CPU上表现出的高性能,确实令 ...
- Dalvik虚拟机的启动过程分析
文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/8885792 在Android系统中,应用程序进 ...
- 【转】Dalvik虚拟机的启动过程分析
在Android系统中,应用程序进程都是由Zygote进程孵化出来的,而Zygote进程是由Init进程启动的.Zygote进程在启动时会创建一个Dalvik虚拟机实例,每当它孵化一个新的应用程序进程 ...
- Android(java)学习笔记99:Java虚拟机和Dalvik虚拟机的区别
Google于2007年底正式发布了Android SDK, 作为 Android系统的重要特性,Dalvik虚拟机也第一次进入了人们的视野.它对内存的高效使用,和在低速CPU上表现出的高性能,确实令 ...
- java虚拟机和Dalvik虚拟机的区别
java虚拟机和Dalvik虚拟机的区别: java虚拟机Dalvik虚拟机 java虚拟机基于栈. 基于栈的机器必须使用指令来载入和操作栈上数据,所需指令更多更多dalvik虚拟机是基于寄存器的 j ...
- Android虚拟机器学习总结Dalvik虚拟机创建进程和线程分析
Dalvik调用一个成员函数时,虚拟机,假设发现,该成员函数是一个JNI办法,然后,它会直接跳转到其地址来运行.也就是说.JNI方法是直接在本地操作系统上运行的.而不是由Dalvik虚拟机解释器运行. ...
随机推荐
- C# 杨辉三角形算法
代码如下: static void Main(string[] args) { int[][] Array_int = new int[10][]; //向数组中记录杨辉三角形的值 for (int ...
- Docker远程访问get(root)shell姿势
0x00 概述 在用swarm来管理dockers容器集群时默认开启了2375端口,通过远程访问docker run -H tcp://ip:2375 $command 可任意执行docker命令.这 ...
- ASP.NET常用编程代码(二)
1.绑定在DataList中的DropDownList private void dlistOrder_EditCommand(object source, System.Web.UI.WebCont ...
- ClustrMaps——访问者位置
ClustrMaps——访问者位置: http://www3.clustrmaps.com/zh/counter/maps.php?url=http://www.cnblogs.com/JuneZha ...
- C# 前台线程与后台线程区别
using System; using System.Drawing; using System.Windows.Forms; using System.Threading; namespace Wi ...
- powerdesigner设置mysql唯一键,非主键
员工表如下,先将id设置主键: 现在将"员工id"设置唯一约束: 1,切换到"Keys",发现已经存在一个Key1,这个是刚刚新增主键id.在Key1下发空行出 ...
- 使用SQL除掉文本中特殊的ascll字符比如Enter,Tab,空格键
一.在SQL查询的字段中如果包含tab.enter.空格键,可以使用ascii码进行替换: --替换了文本中含有tab键,Enter键,空格键的ascii码 select REPLACE(REPLAC ...
- .NET MVC权限控制
一.模块 权限控制的主体单位,与MVC里的Cotroller相对应. 二.模块权限 权限控制的最小单位,通过给每一个模块设置权限,可以控制到非常细小的功能. 三.角色 权限拥有者,通过给不同的角色分配 ...
- Hibernate学习笔记--第一个Hibernate框架程序
一般使用集成开发环境是,把所需的类库添加到项目属性的库路径中,开发工具在部署时会自动复制所需要的类包到WEB-INF\lib目录下 MyEclipse中: 创建项目,右击项目->myeclips ...
- GO求平均值
package main import "fmt" func main(){ sum:=0.0 avg:=0.0 xs:=" switch len(xs){ : avg= ...