android framework浅析_转

Android系统从底向上一共分了4层,每一层都把底层实现封装,并暴露调用接口给上一层。

1. Linux内核(Linux Kernel)

1)Android运行在linux kernel 2.6之上,但是把linux内受GNU协议约束的部分做了取代,这样在Android的程序可以用于商业目的。

2)Linux 内核是硬件和软件层之间的抽象层。

3)系统总是需要操作系统的支持的,比如内存管理、进程管理、网络协议栈等

2. 中间件(即android 的C/C++框架)

1)中间件包括两部分:核心库和运行时(libraries & Android runtime)

2)核心库包括,SurfaceManager 显示系统管理库,负责把2D或3D内容显示到屏幕;Media Framework 媒体库,负责支持图像,支持多种视频和音频的录制和回放;SQlite 数据库,一个功能强大的轻量级嵌入式关系数据库;WebKit 浏览器引擎等。

3)Dalvik虚拟机:区别于Java虚拟机的是,每一个Android 应用程序都在它自己的进程中运行,都有一个属于自己的Dalvik 虚拟机,这一点可以让系统在运行时可以达到优化,程序间的影响大大降低。Dalvik虚拟机并非运行Java字节码,而是运行自己的字节码。

其中

SurFace Manager:显示子系统的管理器
    LibWebCore:web 浏览器引擎,支持android 浏览器
    SGL:skia 图形库,底层的2D 图形引擎
   3D 库:OpenGL
   FreeType:字体显示

3. 应用程序框架(Application Framework)

1)丰富而又可扩展性的视图(Views),可以用来构建应用程序, 它包括列表(lists),网格(grids), 文本框(text boxes),按钮(buttons), 可嵌入的web 浏览器。

2)内容提供者(Content Providers)使得应用程序可以访问另一个应用程序的数据(如联系人数据库), 或者共享它们自己的数据。

3)资源管理器(Resource Manager)提供非代码资源的访问,如本地字符串,图形,和布局文件( layoutfiles )。

4)通知管理器(Notification Manager) 使得应用程序可以在状态栏中显示自定义的提示信息。

5)活动管理器(Activity Manager) 用来管理应用程序生命周期并提供常用的导航回退功能。

4. 应用程序 (Applications)

Android 系统会内置一些应用程序包包括email 客户端,SMS 短消息程序,日历,地图,浏览器,联系人管理程序等。所有的应用程序都是使用JAVA 语言编写的,不支持C 开发,所谓支持C 开发是指jni 的形式

转自:http://www.cnblogs.com/xueshui20/p/4244641.html

时间: 2024-08-04 05:08:08

android framework浅析_转的相关文章

Android Framework框架_转

选自<Android内核剖析> Framework定义了客户端组件和服务端组件功能及接口.包含3个主要部分:服务端,客户端和Linux驱动. (一)服务端 服务端主要包含两个重要类,分别是WindowManagerService(Wms)和ActivityManagerService(Ams).Wms的作用是为所有的应用程序分配窗口,并管理这些窗口.包括分配窗口大小,调节各窗口的叠放次序,隐藏或显示窗口.Ams的作用是管理所有应用程序中的Activity. 除此之外,在服务端还包括2个消息处理

Android framework浅析[转]

Android系统从底向上一共分了4层,每一层都把底层实现封装,并暴露调用接口给上一层. 1. Linux内核(Linux Kernel) 1)Android运行在linux kernel 2.6之上,但是把linux内受GNU协议约束的部分做了取代,这样在Android的程序可以用于商业目的. 2)Linux 内核是硬件和软件层之间的抽象层. 3)系统总是需要操作系统的支持的,比如内存管理.进程管理.网络协议栈等 2. 中间件(即android 的C/C++框架) 1)中间件包括两部分:核心库

Android Annotations浅析

这阵子遇到了好多事情,挺久没来更新博文了,这两天在学这个开源框架Android Annotations,用起来感觉挺方便的, 相信用过Spring注解的孩子理解起来应该比较容易!就是配置起来比较吃力. 关于AndroidAnnotaions的介绍,网上已经很多了,我这里不再累赘. 1.AndroidAnnotations官网:http://androidannotations.org/(也许你需要翻墙) 2.eclipse中使用androidannotations的配置方法说明:https://

Robot Framework自动化_环境搭建以及第一个用例

Robot Framework自动化_环境搭建以及第一个脚本 培训老师:肖能尤 2016/06/07 课程目的 一.Robot framework 环境搭建以及第一个脚本 课程内容 1    安装前准备工作 搭建环境所需要的安装文件已经下载好,从SVN上获取即可,解压,如下 2   Robotframework环境搭建 2.1  安装Python 官网下载地址: http://www.python.org/getit/ 2.2  安装setuptools-15.1 2.3  安装pip 2.4 

(Android系统)android property浅析

android property,相信各位android平台的开发人员用到的不会少,但是property的具体机制大家可能知道的不多,这里利用空闲时间大致了解了一些,特此分享跟大家,如有谬误,欢迎指正 android 1号进程进程init进程在开机的时候就会调用property_init函数,至于init是怎么起来的,这里不是重点,所以暂时先不介绍,property_init的具体flow如下: system/core/init/init.c void property_init(void) {

android应用开发_网络部分2——采用HttpURLConnection获取获取网页源代码

本文是android应用开发_网络部分1——采用HttpURLConnection获取网络图片的延续练习. 接下来,我们再来一个查看网页源代码的工程来加深了解. 布局上还是一个竖直排列的线性布局,一个edittext用于输入html路径,一个button,用于点击获取,一个textview用于显示. main.xml 1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout xmlns:and

Android Cursor浅析

1. 本文目的 Android ContentProvider提供了进程间数据交换的一种机制.而数据库的查询就是这种机制的应用.那么app通过Uri查询数据库而得到的Cursor究竟是个什么东西?为何可以为我们提供另一个进程的数据?本文以getContentResolver().query(--)函数为起点,全面分析Cursor家族关系类图,理清Cursor跨进程通信的机制. 1.1 客户端的Cursor对象 假设B进程中有一个ContentProvider,A进程通过Uri查询这个Conten

Android Framework 分析---消息机制Native层

在Android的消息机制中,不仅提供了供Application 开发使用的java的消息循环.其实java的机制最终还是靠native来实现的.在native不仅提供一套消息传递和处理的机制,还提供了自定义文件描述符的I/O时间的监听机制.下面我们从具体代码中分析一下. Native层的关键类: Looper.cpp.该类中提供了pollOnce 和wake的休眠和唤醒机制.同时在构造函数中也创建 管道 并加入epoll的机制中,来监听其状态变化. Looper::Looper(bool al

Android Framework 记录之二

原文地址:http://blog.csdn.net/banketree/article/details/24982021 接着上次的记录,续写. 23.services目录 文件 描述 class AlarmManagerService extends IAlarmManager.Stub { //定时管理服务 public class AppOpsService extends IAppOpsService.Stub {  // 程序选项服务 public class AppsLaunchFa