Android 之旅开始了!先自我了解下Android与Linux之间的关系

Android是在Linux2.6的内核基础之上运行的,提供核心系统服务:安全、内存管理、进程管理、网络组、驱动模型。内核部分还相当于一个介于硬件层和系统中其他软件组之间的一个抽象层次。但是严格来说它不算是Linux操作系统。

Android系统的系统层面的底层是Linux,中间加上了一个叫做Dalvik的JAVA虚拟机,表面层上面是Android运行库。每个Android应用都运行在自己的进程上,享有Dalvik虚拟机为它分配的专有实例。为了支持多个虚拟机在同一个设备上高效运行,Dalvik被改写过。

Dalvik虚拟机执行的是Dalvik格式的可执行文件(.dex)——该格式经过优化,以降低内存耗用到最低。Java编译器将Java源文件转为class文件,class文件又被内置的dx工具转化为dex格式文件,这种文件在Dalvik虚拟机上注册并运行。

Android系统的应用软件都是运行在Dalvik之上的JAVA软件,而Dalvik是运行在Linux中的,在一些底层功能——比如线程和低内存管理方面,Dalvik虚拟机是依赖Linux内核的 。因此只能说Android是运行在Linux之上的操作系统了,它本身不能算是Linux的某个版本 。

时间: 2024-11-09 12:47:01

Android 之旅开始了!先自我了解下Android与Linux之间的关系的相关文章

android与linux之间的关系

篇一(system/core/init/init.c): 对Android感兴趣的朋友都知道,Android系统是建立在Linux内核之上的.那么Linux内核和Android什么关系?Linux内核是怎样引导起Android呢?本文进行简单的描述. Android虽然建立在Linux内核之上,但是他对内核进行了一些扩展,增加了一些驱动.比如Binder,loger等等驱动.可以拿Android内核代码和其Baseline版本进行对比.可以看到Android对Linux内核的所有扩展. 熟悉Li

Windows环境下Android Studio v1.0安装教程

Windows环境下Android Studio v1.0安装教程 Windows环境下Android Studio v1.0安装教程 准备工具 JDK安装包. 要求:JDK 7以及以上版本. Android Studio安装文件. Windows: exe(包含SDK) (813 MB) exe(不包含SDK) (250 MB) zip (235 MB) Mac dmg (234 MB) zip (233 MB) Linux: zip (233 MB) 说明: 32位系统和64位系统是同一个安

老罗的Android之旅

Android应用程序与SurfaceFlinger服务的关系概述和学习计划 Android应用程序窗口(Activity)实现框架简要介绍和学习计划 1. Android应用程序窗口的运行上下文的创建过程,即创建ContextImpl的创建过程: 2. Android应用程序窗口的创建过程,即PhoneWindow的创建过程: 3. Android应用程序窗口的视图的创建过程,即DecorView的创建过程: 4. Android应用程序窗口与WindowManagerService服务的连接

Android之旅十五 android中的网络操作

android中的网络操作和java里面没有什么区别,java里面的很多网络操作方法都可以搬到android中去使用,主要几个点: 1.post和get请求的区别,大家可以在网上查阅有关资料进行了解,get主要以向地址中拼接字符串参数发送到服务器,长度有限制,并且请求参数暴露在地址栏中,不怎么安全:post则主要是将请求参数转换为相应的http协议请求体发送到服务器,相比get方式,参数的长度没有限制,并且参数信息不会暴露给用户: 2.我们在java web里面通过浏览器以post方式发送数据,

Android测试之旅之JUnit(二)

开始 通过Android测试之旅之JUnit(一)的学习,我们对JUnit的知识有了初步的认识.聪明的你是不是发现其实并没有你想象的那么难呢?这章我们继续来瞅瞅JUnit还有什么好玩的.今天我们用一个简单的例子给大家进行展示,方便更好的理解. Parameterized 我们先来看下面一个待测试类PrettyTest: public class PrettyTest { /** * 根据输入值的大小返回字符串 * @param a 输入值 * @return 返回的字符串结果 */ public

Android之旅十六 android中各种资源的使用

android中各种资源的使用: 在android开发中,各种资源的合理使用应该在各自的xml中进行定义,以便重复使用; 字符串资源:strings.xml,xml中引用:@string/XXX,java代码中引用:R.string.XXX 样式资源:styles.xml,xml中引用:@style/XXX,java代码中引用:R.style.XXX 图片资源:colors.xml,xml中引用:@color/XXX,java代码中引用:R.color.XXX 尺寸资源:dimens.xml,x

Android之旅十四 android中的xml文件解析

在我们做有关android项目的时候,肯定会涉及到对xml文件的解析操作.以下给大家介绍一下xml文件的解析.包括DOM.SAX.Pull以及曾经我们用到的DOM4J和JDOM: 要解析的XML文件:person.xml <? xml version="1.0" encoding="UTF-8"? > <persons> <person id="001"> <name>zhangsan</na

android之旅——开始

1.文件的读取 io流读取文件,并且显示 package com.helloword; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStreamReader; public class ReadFile

Android之旅十七 android中的广播使用

广播是一种广泛运用在应用程序之间传输信息的机制,android中的广播用于监听系统事件或应用程序事件!android中的广播包括普通广播.有序广播以及异步广播(粘性广播)! 广播又有常驻型广播和非常驻型广播,常驻型广播是在xml中进行注册的,当应用程序关闭后,如果有对应的广播发送过来,广播接收器还是能够被激活:非常驻型广播是在代码中进行注册的,当应用程序关闭,广播也就取消了,我们可以在Activity中的onCreate或者onResume方法中注册广播,然后在onDestory或者onPaus