第一章 android体系结构以及源代码阅读环境搭建

转载请标明出处:

http://blog.csdn.net/yujun411522/article/details/46334057

本文出自:【yujun411522的博客】

1.2 Android体系结构

体系结构按照两种视角来分析:静态和动态视角

1.2.1 静态视角的体系结构

可以分为四层application、application framework、lib和runtime、linux 内核

1.app,可以理解为我们平常使用的app。包括系统的和第三方app,系统的包括Home(对,其实就是一个app)、Contacts联系人、Alarm闹钟等等;第三方app就更多了,qq、微信、uc浏览器等等。这一层次主要使用java语言编写。当然一些需要高性能部分,可以使用NDK开发,有必要看一下

2.Framework,包括为app开发提供API接口,为app提供可复用的组件,规范app的开发。这一层可以使用java和JNI实现,主要组件:

View System:app开发过程中都遇到过,各种UI控件Button,textView,ListVIew等等。

Content Provider:四大组件,不同app之间数据共享的接口

Resource Manager:用来管理各种资源文件:layout,drawable,string等。

Activity Manager:管理Activity的,很重要

Window Manager:管理所有窗口,这里的窗口可以是activity,dialog,menu等等。

Package Manager:apk包管理器,比如查询当前设备安装信息

3 Lib和RunTime

也称为中间件,包括各种库以及运行时环境

库:为framework层做支撑的,android系统内置的多媒体,浏览器,数据库,图形引擎都依靠这些lib的实现:

这一部分的作用是非常重要的,比如在开发浏览器设备时,系统默认使用的是webkit(开源浏览器引擎);我们在使用Sqlite相关接口操作sqlite数据库就需要sqlite库的支持;对于游戏开发来说openGL ES更是不可缺少。

这些库的存在不只是在android系统中,就像是一个第三方库一样,所以也成为中间件。

运行时环境:因为里面涉及有java语言,就需要java运行环境。这里使用的是为android系统开发的Dalvik虚拟机(5.0版本之后有ART):

core Library:对j2se中重要的库进行保留,并加入一些android特有的api。

Dalvik VM:android中运行的java虚拟机。

4 Linux内核

对硬件的管理。这部分内容太多。不做过多介绍

1.2.2动态视角体系结构

将android系统分成两个空间:上层是用户空间,下层是内核空间

用户控件:可以分成两个部分:Native子系统和Java子系统,两者通过JNI连接在一起。

Native子系统有NDK开发的app,框架层的native部分以及标准库c/c++组成

Java子系统有SDK开发的app,系统内置的app,框架层java部分以及java接口组成

内核空间:linux内核以及android扩展,其中android扩展部分有Binder,Logger,OOM等机制,这些都是非常重要的东西。

如何搭建下载、编译环境不做介绍,网上有解决方法,如果官网下载有问题,可以访问这里android源码百度网盘分享

时间: 2024-10-25 19:06:29

第一章 android体系结构以及源代码阅读环境搭建的相关文章

Hadoop源代码阅读环境搭建

Hadoop源代码阅读环境搭建 一.说明 作为一个学习hadoop的同学.必须在本机上搭建hadoop源代码阅读环境,这样,在方便阅读源代码的同一时候也方便进行调试和源代码改动. 好了.以下開始搭建好开发环境. 1.环境说明:hadoop 版本号:1.2.1. IDE:eclipse.操作系统:centos 2.网上有人是通过eclipse的新建项目指定文件夹的方式将hadoop文件夹转换成Eclipseproject同一时候导入eclipse,详细做法例如以下: File-->new-->J

第一章 android以及智能手机行业相关简介

第一章 android以及智能手机行业相关简介读后感受&知识累计 最近深刻了解到自己基础知识的不足,变不断的开始阅读很多android相关的知识,希望这些对本人未来的职业发展有很大的帮助.下面的部分知识并不是书中原来的样子,是本人综合了一下,整合的感受和知识,本人写博客并不是为了帮助大家在代码层面解决问题,只是为了方便有向我一样的ce来积累知识,固图片很少,纯文字型的. 一.android简介 1.android的产生 android是有OHA(开放手机联盟)vs 谷歌一切提供的一款软件平台,至

第一章 Android系统的编译和移植实例

第一章 Android系统的编译和移植实例 这一章节主要介绍了Android系统的编译和移植技术,作为建立在Linux内核的基础上的Android操作系统,它的编译和移植不论在过程还是技术方面都和嵌入式Linux非常相似. 首先要准备一套可以正常运行Linux系统的一套开发版,需要在其移植Android系统,并能够正常运行. 移植的主要过程为: 1.下载Android Linux 内核 2.安装交叉工具链 3.移植Android Linux 内核支持的平台 4.安装Android SDK 5.获

Android深度探索(卷1)HAL与驱动开发 第一章 Android系统移植与驱动开发概述 读书笔记

Android深度探索(卷1)HAL与驱动开发 第一章 Android系统移植与驱动开发概述 读书笔记 本章是 Android系统移植与驱动开发概述性的具体讲解.首先,Android被分为了四层架构.在最底层的是Linux内核 .然后分别是C/C++代码库.Android SDK A和应用程序.而Android的移植又分为系统移植和应用移植.系统移植要实现Android操作系统在其他硬件平台上运行起来,其中的关键是Linux的内核.内核必须要完成对平台上运行的各个硬件的识别.所以这就需要Linu

搭建Tomcat6源代码阅读环境

目标:使用MyEclipse8.5阅读Tomcat6源码. 第一步:在MyEclipse8.5中集成SVN插件. 第二步:从地址http://svn.apache.org/repos/asf/tomcat/tc6.0.x/trunk中check out代码,作为一个Java Project 这个svn地址可以从apache-tomcat-6.0.41-src/BUILDING.txt中发现. 第三步:简单配置一下,把java/res/test等目录设置为源码目录 第四步:处理jar包依赖错误 1

Android源代码工程环境搭建

开发Android应用程序可以在两种环境下进行,一是在Android SDK环境下进行,一般是集成在Eclipse里面进行开发,二是在Android源代码工程环境下进行,在这种环境进行开发的好处是可以使用一些在SDK中不公开的接口.但是如果我们要修改Android系统的源代码,或者为Android系统增加新的功能接口,那么就只能在Android源代码工程环境下进行了.由于我们的目的是对Android系统源代码进行分析,因此,我们在开发Android应用程序时,也在Android源代码环境下进行.

在Eclipse上建立hbase 0.98.3/0.96.2源代码阅读环境

2.1. 切换到源代码目录,执行: mvn install -DskipTests -Dhttp.proxyHost=proxy01.cd.intel.com -Dhttp.proxyPort=911 黄色部分作用为设置代理.由于本人的编译环境在公司内网,所以需要设置代理 2.2. 生成eclipse项目环境: mvn eclipse:eclipse -DskipTests -Dhttp.proxyHost=proxy01.cd.intel.com -Dhttp.proxyPort=911 2.

在Eclipse上建立hadoop2.2.0/hadoop2.4.0源代码阅读环境

1.安装依赖的包: yum install gcc-c++ g++ autoconf automake libtool cmake zlib1g-dev pkg-config libssl-dev 2. 安装protobuf 2.5.0, 首先去google的网站上下载protobuf源代码,解压并切换到root用户执行如下命令: ./configure 如果中间发生错误,说明有些依赖包并为安装, an error occured because dependency is not met th

第一章 Android系统移植与驱动开发概述 心得体会

第一章 Android系统移植与驱动开发概述 心得体会 通过学习Android深度探索(卷1)HAL与驱动开发的第一章Android系统移植与驱动开发,我对android驱动开发与移植概念有了一个整体且系统的把握.在本章中我主要学到了一下的知识 1.Android的系统架构分为Linux内核.C/C++代码库.Android SDK API.应用程序四层. 其中重点讲解第一层 Linux 内核.这一层主要包括Linux的驱动程序以及内存管理.进程管理.电源管理等程序. 2. Android移植可