本文总结内容旨在通过总结、学习,了解、熟悉framework源码学习过程中,我们会经常遇到的一些关键系统服务类、概念。源码框架太大,我们需要找一个切入点来学习,我们知道,不管是win pc程序、ios程序,其实都离不开服务端、客户端、驱动的范畴,驱动提供底层支持、服务端提供相关服务功能、客户端调用相关接口实现应用展示功能。Android程序也不例外,那么Android Framework都包含哪些必须的系统服务?这些系统服务如何与Android 应用层APP关联起来?本文将在学习、总结基本概念的同时,回答这些问题。

1.Framewrok框架

Framework定义了客户端组件和服务端组件功能以及接口。框架中包含三部分,服务端、客户端、Linux驱动。

1.1 服务端

服务端主要包含两个重要的类,分别是WMSAMS

  • AMS统一调度所有应用程序的Activity
  • WMS控制所有Window的显示与隐藏以及要显示的位置

除此之外,在服务端还包含两个消息处理类,分别是KeyQInputDispatchcerThread类。

  • KeyQ该类为WMS内部类,继承自KeyInputQueue,KeyQ对象创建之后,就会启动一个线程,不断的读取来自客户端的UI操作消息(按键、触摸、鼠标等),并且保存到EventQueue队列中
  • InputDispatchcerThread,相对于KeyQ类,一旦创建,

Android Framework学习的基础概论相关推荐

  1. Android FrameWork学习(二)Android系统源码调试

    点击打开链接 通过上一篇 Android FrameWork学习(一)Android 7.0系统源码下载\编译 我们了解了如何进行系统源码的下载和编译工作. 为了更进一步地学习跟研究 Android ...

  2. 修改android framework学习

    2019独角兽企业重金招聘Python工程师标准>>> 1:android平台编译自己编写的framework级service server实录 http://blog.sina.c ...

  3. Android Framework学习(八)之Handler消息机制(Native层)解析

    在深入解析Android中Handler消息机制一文中,我们学习了Handler消息机制的java层代码,这次我们来学习Handler消息机制的native层代码. 在Java层的消息处理机制中,Me ...

  4. Android Framework学习总结

    经过一段时间的学习,对于Android Framework大部分有一定的了解,现在将之前的学习进行总结并分类. 1.Android系统启动相关 Android系统SystemServer启动(上) A ...

  5. Android FrameWork 学习之Android 系统源码调试

    这是很久以前访问掘金的时候 无意间看到的一个关于Android的文章,作者更细心,分阶段的将学习步骤记录在自己博客中,我觉得很有用,想作为分享同时也是留下自己知识的一些欠缺收藏起来,今后做项目的时候会 ...

  6. android framework学习回忆

    好久没来这里了,这2天开发板不够用,所以暂时闲下来学习东西.顺便回忆一下学到的会用的东西. 刚踏入Android Framework大门,是从电源管理开始的.记得当时拼命的google搜索相关资料,因 ...

  7. Android Framework学习目录

    Android 第一个用户进程:Init进程(概述) Zygote进程以及其初始化 Zygote 启动应用程序 Android SystemServer 进程 关于 PackageManagerSer ...

  8. Android framework学习

    一:概述 众所周知,Android是一个基于Linux实现的操作系统.但对于Linux内核来说,Android也仅仅只是一个运行在内核之上的应用程序,与其他运行在内核之上的应用程序没有任何区别.所以A ...

  9. Android Framework 学习

    Android Framework 1. 之前的研究太偏向应用层功能实现了,很多原理不了解没有深究,现在研究framework面存一些资料待有空查看. 2.Android系统的层次如下: 3.项目目录 ...

最新文章

  1. Caffe框架GPU与MLU计算结果不一致请问如何调试?
  2. Android EditText回车不换行
  3. ubuntu 下telnet 操纵memcache 实现
  4. 如何完全屏蔽Chrome的提示:请停用以开发者模式运行的扩展程序
  5. django debug=false后静态文件丢失_python框架Django实战商城项目之工程搭建
  6. vb.net中滚动条一直显示没有数据时也显示_Android Studio 中 System Trace 的新增功能...
  7. SpringBoot 之 跳转页面的几种方法
  8. eclipse和mysql创建ssm_Eclipse下SSM项目的搭建
  9. 一个系统管理员的自白
  10. 易效能:有哪些可以高效休息的方法?
  11. 工商企业大数据爬虫系统
  12. css 图片放大1.2倍,二倍图以及背景图缩放
  13. 输出星期几的英文表示
  14. 此博客更新较慢,主要用于微信公众号“申龙斌的程序人生”的备份了
  15. 10Easyx图形编程
  16. Do You Kown Asp.Net Core - 根据实体类自动创建Razor Page CURD页面模板
  17. python熊猫入门
  18. EOS区块链浏览器:scaneos.io | EOS必备工具 |什么是区块链浏览器 | 怎么使用区块链浏览器
  19. android-gpuimage-plus
  20. 【Unity3D】UGUI之Toggle

热门文章

  1. DLNA 在自己的APP 中添加投屏功能
  2. MySQL攻略(2)
  3. ImportError: /home/yang/anaconda3/envs/sar/bin/../lib/libgio-2.0.so.0: undefined symbol: g_unix_get_
  4. 喜欢听音乐CD的请进:[技术贴]介绍APE+CUE格式的音乐文件
  5. 鸡汤穷三代,励志毁一生 | 互联应用网
  6. 人只剩一个大脑还能活吗
  7. html怎么在文字中加小方框,css之列表数据前加上小方框
  8. 银行的总行,营业部,支行,分理处有什么样的关系
  9. 中创生日会 | 烟火向星辰,所愿皆成真
  10. Windows搭建青龙面板教程