Android系统架构
- linux内核层
硬件驱动、系统安全、进程管理 - 库和运行时
- Framework
- 应用层
Dalvik与ART
- Dalvik
Android运行环境虚拟机
每个APP分配一个Dalvik保证互相不受干扰
Dalvik采用用时进行编译 - ART
Android5.X版本ART代替Dalvik
ART采用安装时就进行编译
Android的APP组件架构
四大组件
Activity 交互
BroadcastReciever 广播
ContentProvider 获取信息(其他APP)
Service 后台
Intent 信使Android上下文
Context
Activity、Service、Application都继承于Context
Application 第一次启动 创建 Application 对象并创建 Application Context
Android控件架构
ViewGroup
- 树形结构
- 上层负责下层的测量与绘制、传递交互事件
Activity
- 树顶部有一个ViewParent对象 树的控制核心 所有交互事件都由它统一调度
- Activity中的findViewById( )就在控件树中以深度优先遍历
Activity中使用setContentView( )加载XML
- Activity包含一个Window对象 一般PhoneWindow实现
- PhoneWindow将一个DecorView设置为整个应用窗口根View
- 标题 titleView
- contentView ID为content的Framelayout XML 设置在里面
— Activity
———–phoneWindow
—————————— DecorView
——————————————-TitleView
——————————————-ContentView
注:
- DecorView将要显示的具体内容呈现在了phoneWindow上,所有的View的监听事件通过windowManagerService来接收,并通过Activity对象来回调相应的onClickListener
- requestWindowFeature(Window.Feature_NO_TITLE)在setContentView( )方法之前
当程序在onCreate( )方法中调用setContentView( )方法后,ActivityManagerService会调用OnResume( )方法,此时才会将整个DecorView添加到PhoneWindow中,并让其显示