Framework简介

本文详细介绍了Android Framework在系统中的位置,解析了其架构、源码目录结构,特别是framework的重要类和工作原理。从服务端(如ActivityManagerService、WindowManagerService)、客户端(ActivityThread、Activity等)到Linux驱动,阐述了它们的角色和交互方式。此外,还探讨了应用程序的启动过程,包括主线程、UI线程、Binder线程和自定义线程的区别,以及学习Framework的方法。
摘要由CSDN通过智能技术生成

简单介绍framework在Android系统的位置

1 Android架构图

在这里插入图片描述
Android架构分为四层

  1. Application
  2. Application Framework
  3. Library Android Runtime
  4. Linux Kernel

1 源码的目录结构

android源码的结构图

链接:https://blog.csdn.net/yui_hatano/article/details/89517165

  • bionic android上实现的libc库
  • bootable 存放可启动项,如recovery、bootloader等
  • build android编译系统所用到的make文件及其它工具
  • cts android兼容性测试
  • dalvik dalvik虚拟机
  • development 与开发相关的一些东西
  • device 存放需要适配的设备信息
  • external 第三方库
  • frameworks framework部分**
  • hardware 硬件相关代码
  • kernel kernel相关代码
  • libcore android上实现的Java基础库
  • Makefile
  • ndk
  • out 编译输出目录
  • packages 包含系统应用、壁纸应用、内容提供者、输入法等
  • prebuilt 预编译好的工具
  • sdk sdk相关内容
  • system 操作系统层次的一些可执行程序和配置文件
  • u-boot 用于引导linux启动的u-boot
  • vendor 存放与厂商相关的信息,也可粗放需要适配的设备信息

android framework的结构图

应用程序框架层,这一层为上层应用提供各种api,提供各种组件和服务来支持我们的Android开发。

framework开发相关的代码主要集中在framework/base下面。

  • frameworks/av 多媒体框架
  • frameworks/base
    • api/ 全是xml文件,定义了api
    • cmds/ android中重要的命令,如am,app_proce
    • config/ 10-Aug-2018 4 KiB
    • core/ 核心库
      • java/ java库
      • jni/ jni层
      • proto/ 协议层
      • res/ 资源文件
      • tests/ 测试工具
    • data/ 声音字体等数据文件
    • docs/ 文档
    • drm/ 数字版权管理
    • graphics/ 图形图像
    • keystore/ 数字签名证书相关
    • libs/ 库
      • androidfw/ FW功能库
      • common_time/ 常用功能和工具集合
      • hwui/ 硬件渲染库
      • incident/ 事件驱动机制库
      • input/ 输入库
      • protoutil/ (7.0有,5.0没有)
      • services/ 服务库
      • storage/ 存储库
      • usb/ USB库
    • location/ 地理位置
    • lowpan/ (7.0有,5.0没有)
    • media/ 多媒体
    • native/ 本地库
    • nfc-extras/ nfc相关
    • obex/ 蓝牙传输
    • opengl/ opengl相关
    • packages/ 设置,TTS,VPN程序
    • proto/ 协议框架
    • rs/ 资源框架
    • samples/ 示例
    • sax/ xml解析器
    • services/ Android的服务
    • telecomm/ telecom通讯框架
    • telephony/ 电话相关
    • test-base/ base的测试
    • test-legacy/ 安全相关的测试
    • test-mock/ (7.0有,5.0没有)
    • test-runner/ 测试相关
    • tests/ 测试相关
    • tools/ 工具
    • vr/ VR相关(7.0有,5.0没有)
    • wifi/ 无线网络

3 源码中的framework重要类

下面是一些系统中常见的类及其功能介绍,通读一遍会对理解Android源码很有帮助。

分类 重要的类 简介 作用
消息处理类(非服务端) KeyQ类 该类是WmS的内部类,继承自KeyInputQueue 一旦创建就立即启动一个线程,该线程会不断读取用户UI操作消息,比如按键、触摸屏、等,并把这些消息放到一个消息队列QueueEvent类中
消息处理类(非服务端) InputDispatcherThread 该类是WmS的内部类,继承自KeyInputQueue 一旦创建就立即启动一个线程,该线程会不断读取用户UI操作消息,比如按键、触摸屏、等,并把这些消息放到一个消息队列QueueEvent类中
服务端 Acti
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值