avatar
文章
864
标签
158
分类
0

主页
文章归档
文章标签
文章归类
文章列表
  • Music
  • Movie
友情链接
关于我
麦溪·在路上
主页
文章归档
文章标签
文章归类
文章列表
  • Music
  • Movie
友情链接
关于我

麦溪·在路上

Android之系统源码学习与下载
发表于2022-01-05
[TOC] 概述阅读Android源码的好处有很多,可以加深我们对系统的了解,可以参考牛人优雅的代码实现,可以从根本上找出一些bug的原因…我们应该庆幸Android是开源的,所有的功能都可以看到实现,所有的bug都能追踪溯源。 我想大家或多或少听说过Android源码开源项目,即AOSP(Android Open Source Project) ,有些人可能还不知道如何下载AOSP,有些人虽然下载下来了,但是面对庞大的Android源码项目又望而却步,不知道从哪儿下手。 学习Android系统源码方式有两种: 1、在线学习 可以访问http://androidxref.com来阅读系统源码; Android在线阅读源码的网站有很多. 比如 http://www.grepcode.com 、http://androidxref.com、https://www.androidos.net.cn 等, 这里推荐使用http://androidxref.com 进行在线阅读,这个网址提供了Android1.6到Android 8.0.0的源码, 需要掌握系统源码目录,最好是将源码下载下来,所 ...
Android之系统源码编译教程
发表于2022-01-05
[TOC] 概述源码编译中m、mm、mmm、mma、mmma的区别文章参考:https://blog.csdn.net/alley98/article/details/53559486 编译类型m:编译整个安卓系统makes from the top of the tree mm:编译当前目录下的模块当前目录下需要有Android.mk这个makefile文件,否则就往上找最近的Android.mk文件。 builds all of the moudles in the current directory mma:当前目录新增或删除文件后,可以用mma重新编译。mmm:编译指定路径下的模块指定的路径下面需要有Android.mk这个makefile文件 builds all of the moudles in the supplies directory mmm命令 的编译过程:build/core/main.mk(是Android编译系统的入口文件) build/core/config.mk(会定好编译类型和目标文件) ->build&# ...
Android系统之Zygote进程启动流程解析
发表于2022-01-05
[TOC] 文章参考:http://kmanong.top/kmn/qxw/form/article?id=18053&cate=45 概述我们都知道Android中非特殊进程(除init进程和Zygote进程外的进程,源码中称其为unspecialized app process),都是由Zygotefork出来的子进程,包括SystemServer,也是由Zygote fork出来的。 那么Zygote进程到底是个什么东西? 在Android系统中,DVM(Dalvik虚拟机)、应用程序进程以及运行系统的关键服务的SystemServer进程都是由Zygote进程来创建的,我们也将它称为孵化器。它通过fock(复制进程)的形式来创建应用程序进程和SystemServer进程,由于Zygote进程在启动时会创建DVM,因此通过fock而创建的应用程序进程和SystemServer进程可以在内部获取一个DVM的实例拷贝。 这篇文章我们主要来探讨以下几个问题: Zygote进程是如何启动的? Zygote又是如何fork出SystemServer的? 其他普通进程又是通过什么方 ...
SystemServer启动流程分析
发表于2022-01-05
概述SystemServer进程主要用于创建系统服务,我们熟悉的AMS、WMS、PMS都是由SystemServer创建的。关于这些系统服务我们后来再讲。本文我们先来熟悉并了解SystemServer进程是如何启动的,他在启动时做了哪些重要的工作。 源码分析Zygote启动SyetemServer进程在上一篇文章中我们讲到在ZygoteInit.java的startSystemServer函数中启动了SyetemServer进程,如下所示。 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281 ...
SystemServer进程的启动流程解析
发表于2022-01-05
[TOC] 文章从参考:https://jsonchao.github.io/2019/03/03/Android%E7%B3%BB%E7%BB%9F%E5%90%AF%E5%8A%A8%E6%B5%81%E4%B9%8BSystemServer%E8%BF%9B%E7%A8%8B%E5%90%AF%E5%8A%A8/ 概述其中Zygote进程由init进程启动,SystemServer进程和应用进程由Zygote进程启动。 SystemServer进程主要是用于创建系统服务的,例如AMS、WMS、PMS。这篇文章将从以下两个部分来对SystemServer进行分析: Zygote处理SystemServer进程 SystemServer进程解析 SystemServer启动流程SystemServer进程主要用于创建系统服务,我们熟悉的AMS、WMS、PMS都是由SystemServer创建的。关于这些系统服务我们后来再讲。本文我们先来熟悉并了解SystemServer进程是如何启动的,他在启动时做了哪些重要的工作。 1234567891011121314151617181920 ...
Android之Activity启动流程学习(基于Android10)
发表于2022-01-05
文章参考:https://www.jianshu.com/p/b78a38c857e8 概述Activity启动流程中设计到的重点类: 1234567891011121314151617181920212223242526Instrumentation.java // 负责调用Activity和Application生命周期。ActivityTaskManagerService.java// 负责Activity管理和调度等工作。android10中新增的ActivityManagerService.java//负责管理四大组件和进程,包括生命周期和状态切换。ActivityTaskManagerInternal.java//ActivityTaskManagerService对外提供的一个抽象类,真正的实现在ActivityTaskManagerService#LocalServiceActivityThread.java//Activity线程:管理应用程序进程中主线程的执行.ActivityStackSupervisor.jaba//Activity栈管理者:负责所有Activi ...
Android之Surface的显示系统学习
发表于2022-01-05
[TOC] 文章转自:https://source.android.google.cn/devices/graphics 文章转自:https://juejin.cn/post/6944960866404007944 概述Surface可以简单的理解成一块画布,在Android的Activity中,UI的显示就是通过把图形绘制在Surface对象上完成的。每个Surface对象在SurfaceFlinger中都有对应的图像层(Layer),SurfaceFlinger会把所有图像层混合在一起并输出到Framebuffer中,这样在屏幕上就看到最后合成的图像。 应用开发中很少直接使用Surface,因为每个Activity中已经创建好了各自的Surface对象,通常只有一些特殊的应用才需要在Activity之外再去创建Surface,例如照相机应用、视频播放应用。通常这些应用也是通过创建SurfaceView来使用Surface。在应用中不能直接去创建一个可用的Surface对象,或者说直接创建出来的Surface对象也没有实际的用途,因为这样创建出的Surface对象和SurfaceF ...
Android系统的Choreographer的原理
发表于2022-01-05
[TOC] 文章参考:https://www.androidperformance.com/2019/10/22/Android-Choreographer/ 一.概述前面两篇文章介绍了SurfaceFlinger原理,讲述了SurfaceFlinger的启动过程,绘制过程,以及Vsync处理过程。 本文再介绍一下Choreographer的启动与Vsync处理过程。 要学习Choreographer的的原理,我们先来看一段日志。 12I/Choreographer: Skipped 85 frames! The application may be doing too much work on its main thread.I/Choreographer: Skipped 56 frames! The application may be doing too much work on its main thread. 这个日志,我想我们已经很熟悉了。我们如果应用比较卡顿掉帧的时候,控制台就会有这样的日志打印。 123private static final int SKIPP ...
Android之input输入系统之ImputManagerService启动
发表于2022-01-05
概述当用户触摸屏幕或者按键操作,首次触发的是硬件驱动,驱动收到事件后,将该相应事件写入到输入设备节点, 这便产生了最原生态的内核事件。接着,输入系统取出原生态的事件,经过层层封装后成为KeyEvent或者MotionEvent ;最后,交付给相应的目标窗口(Window)来消费该输入事件。可见,输入系统在整个过程起到承上启下的衔接作用。 Input模块的主要组成: Native层的InputReader负责从EventHub取出事件并处理,再交给InputDispatcher; Native层的InputDispatcher接收来自InputReader的输入事件,并记录WMS的窗口信息,用于派发事件到合适的窗口; Java层的InputManagerService跟WMS交互,WMS记录所有窗口信息,并同步更新到IMS,为InputDispatcher正确派发事件到ViewRootImpl提供保障; InputManagerService启动在SystemServer的main方法里面会调用startOtherServices。startOtherServices里面会启动Inp ...
InputManagerService的InputReader机制
发表于2022-01-05
文章参考:http://gityuan.com/2016/12/11/input-reader/ 概述介绍IMS服务的启动过程会创建两个native线程,分别是InputReader,InputDispatcher. 接下来从InputReader线程的执行过程从threadLoop为起点开始分析。 InputManager::start123456789101112131415161718status_t InputManager::start() { // 启动InputDispatcher的事件分发 status_t result = mDispatcher->start(); if (result) { ALOGE("Could not start InputDispatcher thread due to error %d.", result); return result; } // 启动InputReader result = mReader->s ...
1…161718…87
avatar
Frewen.Wang
在青麦地上跑着,雪和太阳的光芒
文章
864
标签
158
分类
0
关注我
公告
This is my Blog
最新文章
无题2023-12-22
无题2023-07-28
无题2023-07-27
基于Windows11安装Ubuntu双系统2023-07-20
无题2023-07-17
标签
系统源码 滤波算法 工具使用 云存储 卷积神经 Linux Android框架 STL函数 Activity pytorch NEON 编译脚本 go 渲染机制 OpenGL 编程工具 虚函数 RectNative JVM Linux命令 Kotlin基础 OpenMP AI const IDEA QNN C++ SELinux 目标检测 软件安装 threading 量化方法 四大组件 编译构建 SystemServer 开源项目 unique_ptr Java基础 系统安装 BroadcastReceiver
归档
  • 十二月 20231
  • 七月 20234
  • 六月 20231
  • 四月 20231
  • 三月 20232
  • 二月 202311
  • 一月 20232
  • 十二月 20221
网站资讯
文章数目 :
864
本站总字数 :
778.1k
本站访客数 :
本站总访问量 :
最后更新时间 :
©2020 - 2023 By Frewen.Wang
框架 Hexo|主题 Butterfly