Android 架构篇----------Framework初识

什么是Android FrameWork,请你介绍一下? Framework的中文意思是“框架”,在软件开发中通常指开发框架,在一个系统中处于内核层之上,为顶层应用提供接口,被设计用来帮助开发者快速开发顶层应用,而不必关心系统内核运行机制,通常Framework都会隐藏main函数等应用程序必须的组件,开发人员只需把精力放在功能代码的实现上。Android Framework建立在顶层应用与C/C++库之间,主要由三部分组成:服务端、客户端、Linux驱动。 阅读详情

Android架构图

Android的架构大概有四层,(1)Application (2) Application FrameWork (3)  Library  Android Runtime (4)Linux Kernel

今天主要聊聊 FrameWork层 对于android开发来说我们有必要认识一下所谓的 EIT模型 E  engine (发动机) I interface (接口) T tire (轮胎) 我们一般的app开发,主要是做的一些 activity   等一些基本组件的组合,并不完整,有了framework的加成才显得有了灵魂,整个app才算完整,对于客户端程序员来说,FrameWork对于我们来说是透明的,我们只要在提供给我们的接口里写好要实现的逻辑代码功能代码就好,俗称造轮子,发动机通过接口连接上我们写的轮子,整个程序就可以跑起来了。

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

通常情况下包含三个方面的内容,服务端 客户端 Linux驱动

服务端
(1)ActivityManagerService(Ams)负责调度整个app中的Activity,管理所有Activity的生命周期。是android上层系统最核心的模块之一,主要对android的四大组件进行管理也包括一些诸如 电源,窗口,权限的内容

进程管理包括,进程的创建和销毁,进程的优先级调度

组件的管理,android的四大组件 Activity Broadcast Content Provider  Service

(2)WindowManagerService(Wms)管理程序的窗口的,动画,等 简单来说跟View有关的都离不开它。

(3)KeyQ类是Wms的一个内部类一但创建就会启动一个新线程,这个线程会不断的接受有关UI的一些消息,将其放到QueueEvent的消息队列中。

(4)InputDispatcherThread类该类也是一但创建线程就会不断的从上main的QueueEvent中取出消息,并进行过滤,然后发送给当前活动的客户端程序。

(5)Manager机制  Manager本身是一个服务,服务端有好多服务,当客户端想要去调用这些服务的时候,每次随意去调动的话显得很是混乱,所以建立了这个“中间人”,客户端对服务的请求都需要先通过Manager,由他来调用,类似于java的封装。

客户端
(1)ActivityThread类 主线程类 即UI线程类,根据Ams的要求对Activity BroadCast进行调度

(2)ViewRoot类   负责客户端和 Wms的交互,内部类有W类,W类继承与Binder  Wms想和客户端通信的时候会用到此类,内部还有 ViewRootHandler 继承与Handler,所以当W类收到消息以后可以发送给UI线程,界面的绘制发起点也在此。

(3)W类 ViewRoot的内部类,主要帮助ViewRoot和Wms实现IPC

(4)Activity类,apk运行的最小单位

(5)PhoneWindow类 ,继承自Window类里面放置了一个DecorView类,提供了统一窗口操作API

(6)DecorView ,可以看到的View的所有,继承自FrameLayout,我们写的布局View就是放在这个里面。

(7)WindowsManager 客户端和Wms 交流的中介,客户端想要创建窗口,得先提前告知WindowsManager,客户端不能直接和Wms通信。

Linux驱动
SurfaceFlingger和Binder   SF负责将各个画面显示到屏幕上,Binder负责进程间通信。

FrameWork的开发
framework的开发区别于应用的开发,是android源码的开发,来了解一下

android源码的结构图
├── 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    存放与厂商相关的信息,也可粗放需要适配的设备信息

这些源码一般是放在服务器上的,所以连接服务器时需要下载一些工具如secure crt  xshell 等这里有涉及到一些 make file的知识,有机会补充一下。
对源码进行编译,可以整个编译也可以部分编译  编译好以后可以用fastboot命令命令烧机也可以用adb install 命令安装。

 

android framework 学习笔记 框架从上至下:应用层(Application),java framework(Application Framework), C++ framework(Libraries)/Android Runtime, Linux kernel。 阅读详情

相关推荐

MTK IMS框架简析(1)——代码架构及模块初始化

1.前言随着4G技术的诞生和国内运营商网络的全面升级,以往流量贵上网慢的问题不再有,而类似微信这类即时通讯软件也得到快速的普及,互联网行业的发展还延伸到金融/零售等线上线下的各行各业,短短几年内国内IT产业迎来全面的机遇。而得益于移动网络技术的突破,政策的开放和乔帮主的1%的智慧,成就了今天高效的互联网+社会。4G协议中定义了包含volte和RCS等基于运营商核心网实现的功能,将发挥网速优势消灭CS

Willis' 8659

深入Android Framework开发(入门篇)

广大的Android应用开发者是不是对Android系统充满着好奇,是不是很想学习Android系统开发,可惜自己学习难度又太大,本课程将手把手教你学Android Framework开发,带你走进Android系统开发的殿堂,全课程以实战为主,让你自己动手可以定制自己喜欢的Android系统,让你的Android职业道路越走越顺。 学完本课程能让你学会如下知识点: -学习Framework背景及它的巨大作用-Android源码环境搭建及让自己系统第一次跑起来-学习Frameowork开发的一些必要基础知识-学习怎么进行Android源码定位分析,实例:Activity启动流程源码分析-实战开发Frameowork项目--去除第三方应用入口广告页

Android 架构篇----------Framework初识,android音视频开发何俊林pdf

(2)WindowManagerService(Wms)管理程序的窗口的,动画,等 简单来说跟View有关的都离不开它。 (3)KeyQ类是Wms的一个内部类一但创建就会启动一个新线程,这个线程会不断的接受有关UI的一些消息,将其放到QueueEvent的消息队列中。 (4)InputDispatcherThread类该类也是一但创建线程就会不断的从上main的QueueEvent中取出消息,并进行过滤,然后发送给当前活动的客户端程序。 (5)Manager机制  Manager本身是一

m0_64383184的博客 930

全网最全最通俗易懂的Android Framework知识点汇总,入门到精通,完全学会

Framework其实可以简单的理解为一些API的库房,android开发人员将一些基本功能实现,通过接口提供给上层调用,可以重复的调用我们可以称Framework层才真正是Java语言实现的层,在这层里定义的API都是用Java语言编写。但是又因为它包含了JNI的方法,JNI用C/C++编写接口,根据函数表查询调用核心库层里的底层方法,最终访问到Linux内核。那么Framework层的作用就有2个。用Java语言编写一些规范化的模块封装成框架,供APP层开发者调用开发出具有特殊业务的手机应用。

m0_64365896的博客 1万+

伪距单点定位算法原理以及利用最小二乘法计算实例

即该公式:建立下列代价函数满足最佳估值的条件为:即:可解得未知参数 X 的最佳估值由于每个可见卫星观测量的精度可能不一样,这时,需要对不同观测量赋予一个权重系数,称为加权。

qq_43381998的博客 1万+

【后端】主流后端语言:JAVA、C、C++、GO、PYTHON

软件开发领域,语言本身在各自领域都有适用场景,有许多流行的编程语言可供选择,每种语言都有其独特的特点和适用场景。

wnm23的专栏 1万+

最全Android 架构篇----------Framework初识,2024年最新android界面开发实验报告

很多人在刚接触这个行业的时候或者是在遇到瓶颈期的时候,总会遇到一些问题,比如学了一段时间感觉没有方向感,不知道该从哪里入手去学习,对此我整理了一些资料如果你熟练掌握以下列出的知识点,相信将会大大增加你通过前两轮技术面试的几率!这些内容都供大家参考,互相学习。①「Android面试真题解析大全」PDF完整高清版+②「Android面试知识体系」学习思维导图压缩包网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

2401_84556480的博客 996

5分钟搞定PaddleOCR PP-OCRv5环境搭建:从安装到第一个识别Demo

本文提供了一份详细的PaddleOCR PP-OCRv5环境搭建与快速入门指南。通过清晰的步骤,指导读者在5分钟内完成从创建Python虚拟环境、安装PaddlePaddle框架和PaddleOCR库,到编写并运行第一个OCR识别Demo的全过程,帮助开发者快速体验最新的PP-OCRv5模型的文字识别能力。

sprite的博客 1267

Android 架构篇----------Framework初识,2024年最新字节跳动面试难

现在都说互联网寒冬,其实无非就是你上错了车,且穿的少(技能),要是你上对车,自身技术能力够强,公司换掉的代价大,怎么可能会被裁掉,都是淘汰末端的业务Curd而已!(5)Manager机制 Manager本身是一个服务,服务端有好多服务,当客户端想要去调用这些服务的时候,每次随意去调动的话显得很是混乱,所以建立了这个“中间人”,客户端对服务的请求都需要先通过Manager,由他来调用,类似于java的封装。framework的开发区别于应用的开发,是android源码的开发,来了解一下。

2401_84164469的博客 515

Ubuntu虚拟机IP卡在127.0.0.1?别慌,试试这条万能命令 `sudo dhclient`

本文详细解析了Ubuntu虚拟机IP卡在127.0.0.1的常见原因及解决方案,重点介绍了`sudo dhclient`命令的使用方法及其变体,帮助用户快速恢复网络连接。同时提供了网络诊断工具和预防措施,适用于开发者和系统管理员应对网络故障。

weixin_29251131的博客 284

Rancher操作手册(v2.7.5-rc1)

选择需要创建ingress的命名空间 ==》填写ingress名称 ==》在“规则”一栏,选择“Prefix” ==》输入访问路径 ==》选择访问路径对应的service ==》如果需要继续添加访问路径,点击“添加路径”,重复前面的步骤即可。选择需要创建Deployment的命名空间 ==》填写Deployment名称 ==》选择通用 ==》填写容器名称 ==》填写镜像 ==》选择镜像的拉取密文 ==》点击添加端口或Service。点击左侧菜单栏的集群里的“项目/命名空间”,点击右下角的“创建命名空间”。

weixin_60197334的博客 5569

Android 架构篇----------Framework初识,字节跳动+阿里+华为+腾讯等大厂Android面试题

组件的管理,android的四大组件 Activity Broadcast Content Provider Service(2)WindowManagerService(Wms)管理程序的窗口的,动画,等 简单来说跟View有关的都离不开它。(3)KeyQ类是Wms的一个内部类一但创建就会启动一个新线程,这个线程会不断的接受有关UI的一些消息,将其放到QueueEvent的消息队列中。

m0_60635609的博客 558

AI训练师三级考证避坑指南|假证辨别+机构套路+OSTA验证

这是最基础的问题,也是最容易忽略的问题。人工智能训练师三级证书本身是有价值的——政府认可的职业技能等级证书、多地紧缺工种补贴、人才引进加分。但正因为有价值,才引来了大量骗子。记住三句话OSTA查不到的证,一分钱都不值声称免考包过的,100%是骗子培训费一次性谈清楚,后续加价直接走人如果你正在考虑考人工智能训练师三级证书,想要从报名到备考到拿证的完整一站式指南,欢迎查看我的付费专栏:📖《人工智能训练师三级·从零到拿证完全指南》99篇系统化内容,覆盖报名、备考、冲刺、拿证全流程。

白话机器学习 1219

最新Android 架构篇----------Framework初识(1),2024年最新Android攒了一个月的面试题及解答

希望大家能有一个好心态,想进什么样的公司要想清楚,并不一定是大公司,我选的也不是特大厂。当然如果你不知道选或是没有规划,那就选大公司!希望我们能先选好想去的公司再投或内推,而不是有一个公司要我我就去!还有就是不要害怕,也不要有压力,平常心对待就行,但准备要充足。最后希望大家都能拿到一份满意的 offer!如果目前有一份工作也请好好珍惜好好努力,找工作其实挺累挺辛苦的。这里附上上述的面试题相关的几十套字节跳动,京东,小米,腾讯、头条、阿里、美团等公司19年的面试题。

2401_84544461的博客 412

T527 uart串口配置导致系统进不去

T527 s_uart串口配置导致系统进不去。

Linux驱动开发工程师,熟悉Linux/Android底层驱动、TP、显示、IIC、网络等通用外设调试适配,Linux上层应用开发。常用平台瑞芯微、全志、恩智浦等。 675

从零开始:手把手教你设计人形机器人锂电池供电系统

人形机器人要像人类一样“活起来”,必须有稳定的“能量血液”——供电系统。本文聚焦锂电池供电系统如何根据机器人功耗选择合适的锂电池参数(容量、电压、放电倍率);如何设计电池管理系统(BMS)保护电池安全;如何解决机器人运动时的“瞬时大电流”供电难题;如何通过硬件电路和代码实现供电系统的监测与控制。用“机器人小助手的能量危机”故事引入锂电池供电系统;拆解锂电池核心参数(容量、电压、放电倍率)和供电系统三大组件(电池组、BMS、电源转换模块);

AI天才研究院 1758

Android Framework初识

前言 如下图所示, 从顶层到底层Android的四层架构分别为: 应用程序层 应用程序框架层 运行层(系统Native库和Android运行时环境) Linux内核层 其中Framework层为我们开发应用程序提供了非常多的API,使得开发者通过简单调用API即可开始APP的开发,而不用详细了解Android系统纷繁复杂的底层知识。下面详细介绍下Framework到底在整个Android架构中的功能与构造。 Framework简介 Framework是一个中间层,一方面向上提供基本服务接口API给应用

Harrison509的博客 1476

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

FrameWork初识

FrameWork初识 一 简介 Android系统建构分为四层由上到下依次是应用层,应用框架层,依赖库层,内核层,frameWork处于第二层,它为应用层的开发者提供基本功能,帮助开发快速构建应用程序。 FrameWork框架采用c/s架构,主要组成部分包括了服务端,客服端和驱动(SurfaceFlingger、Binder) 服务端其中ActivityManagerService(简写AMS),WindowMangerService(简写WMS),PackageManagerService(简写PMS)

xiaomin1992的专栏 1817

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

初识android系统,五层系统架构详解

有时间了,就整理一下这几年下来android的基础知识,希望可以帮到需要的人和影响到一些开发者,然后也希望自己也能从中有一个更深的理解,android的一个很好的理念就是开源,但好像最新几年开发者不像前几年在网上开源自己,整个氛围感觉不太好,一个很大的感觉就是以前开发的问题都能再网上找到解决方案,现在很难找到了,或许是大家都没有时间,或许是知识付费的体系问题。如果有说的不对的地方,请评论上指正。 Android 是一套基于linux内核的开源系统,主要应用于移动端,在移动互联网时代,应运而生。要详细了解它

门徒07的博客 1万+

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Android framework初识

之前做wifi的,主要是负责的就是UI界面和framework层,今天具体了解一下framework是什么。 Android架构主要分为分为四部分,从下往上以此为LINUX KERNEL(内核层),LIBRARIES(共享库,以及android运行时库),APPLICATION FRAMEWORK(应用框架层),APPLICATION(应用程序)。而本文主要分析就是APPLICATION FRAM...

一个Android菜鸟的博客 938
上一篇: Android性能优化–Systrace工具
下一篇: Android Framework原理
augfun
博客等级 码龄10年 311粉丝 662原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值