09 2021 档案

摘要:一、SurfaceFlinger是什么? SurfaceFlinger接受缓冲区,对图形数据进行合成,然后发送到屏幕渲染。 WindowManager与SurfaceFlinger关系 WindowManager为SurfaceFlinger提供缓冲区和窗口元数据,SurfaceFlinger可使用 阅读全文
posted @ 2021-09-27 20:54 naray 阅读(1835) 评论(0) 推荐(0)
摘要:一、简介 Service是Android四大组件之一,也可以称为后台服务。Service是一个可以长期在后台执行而不用提供用户界面的应用组件。服务可由其它应用组件启动,即使切换到其它应用组件,服务依然会在后台继续运行。 此外,组件可以绑定到服务,并与之进行交互,甚至是执行进程间通信(IPC)。 例如 阅读全文
posted @ 2021-09-20 16:44 naray 阅读(1154) 评论(0) 推荐(0)
摘要:一、Service基础 1. Service是什么? Service是一种在后台长时间运行,但是没有界面与用户交互的组件。在App退出时,Service依然在后台运行,这就是Service保活。 Service与BoradCast都是运行在主线程中。所以,Service不能执行耗时操作。 2. Se 阅读全文
posted @ 2021-09-20 16:44 naray 阅读(162) 评论(0) 推荐(0)
摘要:一、UI线程是什么? UI线程就是刷新UI的线程。 二、UI线程是不是主线程? 主线程何时启动 在应用启动时AMS请求Zygout进程启动应用进程,在应用进程启动后的第一条线程就是主线程,线程启动后执行ActivityThread.main()函数,在main()函数中启动的主线程Looper。 p 阅读全文
posted @ 2021-09-16 18:28 naray 阅读(799) 评论(0) 推荐(0)
摘要:一、Activity启动流程 简述Activity启动过程 attach上下文不只是将创建的Context对象设置到Activity中,在attach还做了其它的初始化操作,比如:创建PhoneWindow。 二、Activity作用 Activity主要的作用是管理Activity的生命周期和事件 阅读全文
posted @ 2021-09-15 19:06 naray 阅读(757) 评论(0) 推荐(0)
摘要:一、ServiceManager的作用是什么 ServiceManager从字面意思是管理服务的。 ServiceManager是用于查询服务和获取服务的。 二、ServiceManager启动过程 源码:frameworks/native/cmds/servicemanager ServiceMa 阅读全文
posted @ 2021-09-11 20:17 naray 阅读(4130) 评论(0) 推荐(0)
摘要:一、启动过程 1. 启动过程 2. 执行流程 发送startAcitivity请求到AMS。 AMS查看应用进程是否启动。 未启动应用进程。 AMS向Zygote进程发送启动进程请求(socket通信)。 Zygote进程Fork应用进程。 应用进程已经启动,进程创建Activity过程。 Zygo 阅读全文
posted @ 2021-09-11 18:32 naray 阅读(928) 评论(0) 推荐(0)
摘要:一、Application的作用是什么? 保存全局变量,但是,不建议在Application中保存全局变量。在App进入后台后,当前设备内存不足,会回收一些不在前台应用的内存,保存在Application中的全局变量会被释放,当前App在回到前台使用这些变量,变量会是null。 初始化任务。 提供C 阅读全文
posted @ 2021-09-10 18:37 naray 阅读(466) 评论(0) 推荐(0)
摘要:一、Context作用是什么? 下面看下Context源码中的注释: /** * Interface to global information about an application environment. This is * an abstract class whose implement 阅读全文
posted @ 2021-09-10 12:12 naray 阅读(390) 评论(0) 推荐(0)
摘要:一、ThreadLocal是什么? ThreadLocal全名是Thread Local Variable,是Java中线程局部变量类。 二、作用 用于存储线程内的变量,变量不会被其它线程污染。 三、原理 通过源码: public class ThreadLocal<T> { /** * Threa 阅读全文
posted @ 2021-09-08 16:18 naray 阅读(91) 评论(0) 推荐(0)
摘要:一、什么是系统服务及哪些是系统服务 系统服务包括:AMS、WMS、PMS、PKMS等。 二、Binder应用服务 什么Binder? 三、系统服务与Binder应用服务启动 1. 系统服务启动是通过SystemServer中的run函数中启动的。 // Start services. try { t 阅读全文
posted @ 2021-09-04 17:45 naray 阅读(635) 评论(0) 推荐(0)
摘要:一、简介: Binder是跨进程内存访问,是Android中使用最广泛的IPC机制。 Binder由以下几部分组成: Binder驱动 Binder Manager Binder Client Binder Service 对照TCP/IP中Client与Server服务连接过程: Binder驱动 阅读全文
posted @ 2021-09-04 16:15 naray 阅读(255) 评论(0) 推荐(0)
摘要:一、SystemServer启动做了哪些事? 启动各种服务,是将系统服务注册到ServiceManager中,/framewoks/base/core/java/android/app/SystemServiceRegister.java: /** * Manages all of the syst 阅读全文
posted @ 2021-09-04 15:25 naray 阅读(301) 评论(0) 推荐(0)
摘要:一、服务 系统服务将服务注册在ServiceManager中,Client通过ServiceManager获取服务的Bindler实例,通过Binder与服务通信。 ServiceManager源码(framework/base/core/java/android/os/ServiceManager 阅读全文
posted @ 2021-09-04 15:07 naray 阅读(1415) 评论(0) 推荐(0)
摘要:一、简介 1. Linux内核基础知识, (1)进程隔离/虚拟地址空间 进程隔离是防止进程A数据写入到进程B地址空间,进程隔离实现使用了虚拟地址空间。 进程间通信需要使用某种相应的通信机制,在Android中使用Binder实现。 (2)系统调用 (内核空间和用户空间)? 对内核有某些保护机制来告诉 阅读全文
posted @ 2021-09-04 14:02 naray 阅读(293) 评论(0) 推荐(0)
摘要:一、Android系统启动了哪些服务进程? 系统首页启动系统第一个进程Init进程,init进程加载init.rc文件。在init.rc文件在需要启动的服务进程配置,其中包括: Zygote进程:/system/bin/app_progress ... servicemanager:/system/ 阅读全文
posted @ 2021-09-04 11:58 naray 阅读(49) 评论(0) 推荐(0)