深入理解Android(1)__系统架构

  最近一直在为Android的系统级开发发愁,很多东西云里雾里,还是觉得是基础知识不够扎实的缘故,所以,思考再三,还是决定认真研读一下《深入理解Android卷I、II》,最近深入手了一本《深入理解Android卷III》,希望能够在研读的过程中,将心得笔记写下,与Android爱好者一起学习,共同进步。

  下面我们就进入正题吧。

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

  1、Android系统架构

            

  Android系统大体可分为四层:

Android系统(从下往上)
Linux内核层:包含了Linux内核和一系列驱动程序
Libraries层:这一层提供动态库(也叫共享库)、Android运行时库、Dalvik虚拟机等,这一层大部分都是由C、C++编写,所以可以简单把它看成Native层
Framework层:这一层大部分用Java语言编写,它是Android平台上Java世界的基石
Applications层:与用户直接进行交互的就是这些应用程序,它们都是用Java开发

  Android系统的最大特点之一就在于它搭建了一个被广大Java开发者热捧的Java世界,但是Java世界并不是空中楼阁,它依赖于Native世界(一个被Google极力隐藏的世界),他们之间的交互关系如下图:

             

  对此图进行说明:

  (1)Java虽具有与平台无关的特性,但是Java与具体平台之间的隔离则是由JNI层来实现的,Java是通过调用JNI层调用Linux OS中的系统调用来完成对应的功能的。

  (2)Native层,为整个系统的高效与平稳提供了强有力的支持。一般而言,Java世界经由JNI层通过IPC方式与Native世界交互,而Android平台上最神秘的IPC方法就是Binder。除此以外,Socket也是常用的IPC方式。

  本帖子以及后续都将围绕下面的架构进行学习:

            

  主要包含:

    1、Native层:init、Audio系统(包括AudioTrack、AudioFlinger和AudioPolicyService)、Surface系统(包括Surface和SurfaceFlinger)、常用类(包括RefBase、sp、wp等)、Vold和Rild。

    2、Java Framework层:包括zygote、System_server以及Java中的常用类(包含Handler和Looper等)。

    3、Java Application层:包括MediaProvider和Phone。

  

时间: 2024-08-12 19:53:24

深入理解Android(1)__系统架构的相关文章

开箱即用!Android四款系统架构工具

开箱即用!Android四款系统架构工具_天极网 一款功能强大且实用的开发工具可以为开发者简化开发流程,提高工作效率,允许开发者在应用开发本身投入更多的时间和精力,从而提高作品质量.本文就为大家分享4款实用的Android应用架构工具. 开发者若想开发出一款高质量的应用,一款功能强大的开发工具想必是不可或缺的.开发工具简化了应用的开发流程,也能使开发者在应用开发本身投入更多的精力.本文就为大家带来4款实用的Android应用架构工具. 1. Spring for Android Spring f

Android开发之深入理解Android 7.0系统权限更改相关文档

摘要: Android 6.0之后的版本增加了运行时权限,应用程序在执行每个需要系统权限的功能时,需要添加权限请求代码(默认权限禁止),否则应用程序无法响应:Android 7.0在Android 6.0的基础上,对系统权限进一步更改,这次的权限更改包括三个方面: APP应用程序的私有文件不再向使用者放宽 Intent组件传递file://URI的方式可能给接收器留下无法访问的路径,触发FileUriExposedException异常,推荐使用FileProvider DownloadMana

Android之路-------浅淡Android历史、系统架构与开发特色

前言 离上一篇发表的博客差不多有两个星期了吧,相信有些博友差点就对LP失望了,因为上一篇博文中说了,这次不管怎样,LP都会坚持写博客的. 由于工作关系LP才隔了这么久才再次发表博文,这篇博文主要是总结LP看Android书学到的知识.好了,废话不多说了,正式开始吧.... 目录 Android历史 Android系统架构 Android应用开发特色 Android历史 说到Android历史,android就像一只打不死的小强,它有坚持不懈的精神,怎么说呢...从Andy Rubin 等人一起创

Android特性与系统架构

一.Android特性 应用程序框架支持组件的重用与替换 Dalvik 虚拟机专为移动设备优化 集成的浏览器基于开源的WebKit 引擎 优化的图形库包括定制的2D 图形库,基于OpenGL ES 1.0的3D 图形库 SQLite 用作结构化的数据存储 多媒体支持包括常见的音频.视频和静态图像格式(如MPEG4, H.264, MP3, AAC, AMR, JPG, PNG , GIF) GSM 电话技术(依赖于硬件) 蓝牙Bluetooth, EDGE, 3G, 和WiFi(依赖于硬件) 照

理解 Android 2D/3D 图形架构

首先理解Android 的 egl 的函数调用,先要得到display (对应显示器),而后选择一个支持的config(这是显卡支持的),而后创建WindowSurface, 还要创建context (context 相当于 opengl 这个状态机), 而后就可以调用 gl 的绘图函数在Surface上画图, 工作完成后需要释放 Context, windowSurace这些资源 Android 3D 图形架构如下 当用户使用 GLSurfaceView 的时候,会调用egl 的函数,创建出G

第一章 Android体系与系统架构

1. Dalvik 和 ART(Android Runtime) 在Dalvik中应用好比是一辆可折叠的自行车,平时是折叠的,只有骑的时候,才需要组装起来用.在ART中应用好比是一辆组装好了的自行车,装好就可以骑了. 2. Android源码目录结构:(一个可以查看Android源代码网站:http://androidxref.com/) Makefile (描述Android各个组件间的联系并指导它们进行自动化编译) bionic (bionic C库) bootable (启动引导相关代码)

Android四款系统架构工具

1. Spring for Android Spring for Android是Spring框架在Android平台上的扩展,旨在简化Android原生应用的开发流程,提高开发者的工作效率.Spring for Android可以帮助开发者简化应用与服务器端交互和Auth授权验证. 很多Android应用都要与服务器进行交互,而现在很多应用服务器都会提供REST服务,数据格式一般是JSON.XML.RSS等,使用Spring for Android将会大大地方便Android应用与服务器端的交

Android基础之Android系统架构

Android采用层次化系统架构,官方公布的标准架构如下图所示.Android由底层往上分为4个主要功能层,分别是linux内核层(Linux Kernel),系统运行时库层(Libraries和Android Runtime),应用程序架构层(Application Framework)和应用程序层(Applications). Linux内核层 Android以Linux操作系统内核为基础,借助Linux内核服务实现硬件设备驱动,进程和内存管理,网络协议栈,电源管理,无线通信等核心功能.An

Android基础入门教程——1.1 背景相关与系统架构分析

Android基础入门教程--1.1 背景相关与系统架构分析 1.Android背景与当前的状况 Android系统是由Andy Rubin创建的,后来被Google收购了:最早的版本是:Android 1.1版本 而现在最新的版本是今年5.28,Google I/O大会上推出的Android M,有趣的是Android系统的命名都是以点心来命名的,下述表是15个Android版本名称,对应API号以及发布时间! 系统版本名称 API版本号 发布时间 Android 1.5:Cupcake:纸杯