Android FrameWork层(框架层)介绍

        Framework层从广义上看是Android系统自上而下的第二层,也就是APP层的下一层。总的来说这一层是Android APP与Android底层交互的接口层,framework负责着APP的生命周期和资源管理等,其中主要进程是system server进程。

一、Android SDK

        个人在在开始学习Android时容易将Android SDK和Android FrameWork层混淆,总的来说SDK是供安卓APP开发者使用的,方便开发者在开发过程中调用framework层的方法,而framework层则是真正的底层实现接口。

        SDK是开发工具包的集合,开发工具包含开发工具,软件包,软件框架等。SDK提供的功能包括定位服务、多媒体接口、图形处理器低级硬件访问等。总的来说Android SDK是为开发者在开发应用APP时提供一个临时的接口调用,这些接口指向framework层真正的实现方法,应用被编译好后在手机上运行实际上调用的方法是framework的实现方法。

二、Framework的核心和组成

        FrameWork的三大核心是View、AMS、WMS。因为任何一个APP的运行无非涉及到的就是视图的创建、窗口的绘制以及activity生命周期的管理,这也是软件使用者所能接触到的三个核心,其余的包管理、电量管理、输入管理等都是为这三大核心服务的。

        前面提到,FrameWork是为了上层应用开发提供所需的API服务,其中服务主要包括:

·viewSystem: 提供丰富可扩展的视图窗口。

·Activitymanager:管理应用的生命周期,以及常用的导航回退功能

·Locationmanager:提供地理位置和定位服务

·package manager:管理应用程序的安装

·notification manager:管理状态栏的通知

· resource manager:提供应用程序使用的各种非代码资源,比如本地字符串、图片、布局  文件、颜色文件等。

·window manager:管理应用程序的窗口

·Content Providers: 可以让一个应用访问另一个应用的数据,共享他们的数据。

·视图系统(View System): 丰富且可拓展,包括:列表(lists),网络(grids),文本框(text boxes),按钮(buttons)等等。

·Telephony Manager: 主要提供了一系列用于访问与手机通讯相关的状态和信息的方法,查询电信网络状态信息,sim卡的信息等。

以下对几个主要的manager作简要介绍:

1、ActivityManager

Activitymanager是对activity进行管理,包括运行时功能管理和运行时数据结构的封装,进程,应用程序,服务,任务信息等。其对应的system server服务是ActivityManagerService(AMS)。

ActivityManager相关类的关系:

IActivityManager是ActivityManagerProxy和ActivityManagerNative的公共接口;ActivityManagerProxy代理类是ActivityManagerNative的内部类;ActivityManagerNative是个抽象类;真正实现了getservice方法的是ActivityManagerService,他是ActivityManagerNative的子类。ActivityManager又调用了ActivityManagerNative的相关方法返回一个ActivityManagerProxy。

2、WindowManager

Android的窗口有三种:

应用程序窗口(application window):包括应用程序自己创建的窗口以及应用启动之前系统创建的窗口。

子窗口(sub window):应用自定义的对话框、或者输入法窗口,子窗口必须依赖于某个应用窗口。

系统窗口(system window):属于系统的窗口,不依附于任何窗口如状态栏、导航栏、壁纸来电显示窗口等。

所有的窗口都是由windowmanager管理,其对应的服务是WMS。在activity创建完成前,也就是在回调activity的oncreate方法前会将窗口添加进activity中绑定起来。

3、packagemanager

主要负责管理应用的安装和卸载等工作

4、inputmanager

负责事件的输入包括触摸,点击等,在系统进程中是通过socket进行通信的。

5、PowerManager

电源管理,负责电量的管理,主要工作过程在开机以及手机的息屏和亮屏等。

三、总结

        Framework层知识是大多数Android应用开发者或者框架层开发者所解除最多的层级,主要的学习难点在于AMS和WMS这两部分,应用常出现的窗口问题、ANR问题、重启问题,死锁等也能在这两个模块里面得到解决,其余有关OOM等问题一般需要native层人员帮助解决。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值