您的位置:首页 > 运维架构 > 网站架构

android 的基础体系架构浅述

2014-09-22 03:13 344 查看
好久没有写了,挺难坚持写博文的。废话不多说,先入正题,我打算先从基础的开始说起,既可以巩固我所学的东西,也方便后来的新人一步一步的来学,我们做android

开发的,除了第一个helloworld程序以外,我认为,还是必须从基础了解起,磨刀不误砍柴工,首先我们来看看android的体积架构。

      首先我们来看一个Google官方的一张图,这张图基础上描述了android的体系架构,


    这张图的所有组成就是一个android系统 ,我们先来了解底层的东西,我们知道,android其实是从linux中来的,其底层架构自然是linux的东西, 从图中我们可以看到各种

驱动,什么wifi啊,usb啊,蓝牙,照相机啊,等等,这些驱动都是用c语言写的。也就是linux的内核,anroid最底层的东西。学习过计算机组成原理的,我们都知道,声卡

显卡,等等硬件设备都需要驱动才能正常使用。这层不讲太多,因为我本身也不是开发驱动的,不误人子弟了


    接下来我们来看看libraries层,这层主要是一些重要功能的函数库,这里说一下我们的ndk开发,就是在这层上的开发,ndk的开发,以后有机会,我再写具体的博文详述。

这层主要有一些媒体框架,如Media,这个是播放声音,视频主要所用的库,SQLite,则是使用数据库所用的函数库,还有浏览器内核webkit,字体显示相关的freetype啊,ssl

则是安全相关的函数库,libc就是我们进行ndk开发时,所相关的库,还有其他SGL二维绘画,OpenGlies三维绘画啊,等等之类的。这层所实现的功能都依赖最底层的linux

kernel。还有一个android rumtime,就是我们android运行时了,也是我们android的运行环境,我们知道java也有运行时,要运价java程序,得安装其jdk,andorid也是一样的

。其中core libraries 就是源于java的运行库,主要是重写了java的东西,组织架构。下面的一个就是虚拟机了,我们的android虚拟机,android应用程序其实就是跑在虚拟机上

的应用。但是java的虚拟机jvm和我们的android虚拟机还是有比较大的区别的,比较明显的就是,jvm是基于堆栈架构运行的,而android的却是基于寄存器架构运行的。

     接下来就是我们做android开发最主要的一层了,application framework 。我们所做的android应用就调用这层的api,这也是Google官方给开发暴露出来的接口,我们所

开发的应用就需要调用这些api,如开发闹钟功能啊,打电话程序啊,影音播放器啊。如果我们熟悉并且会使用这一层的每一个api接口,那么你可以说在android具有颇深的

造诣了,俗称的大牛。






    那么最上层就是我们开发出来的应用了,我们开发出来的应用就运行在最上面一层,如视频播放程序的运行过程,其运行在最上层,通过调用application framework层的api

,再有api接口去调用libraries层的接口,最后再调用底层的驱动,去驱动我们的声卡和显卡进行工作,从而播放出我们的视频文件。我们学习android应用开发,我们学习的

最主要的层就是application framework,这里面的api我们要去多调用,多熟悉。所以我们的精力也主要放在这一层。

 以上说明难免因为个人原因问题而出错,出错之处欢迎指正....android  的基础体系架构签述
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息