
Android 进阶
文章平均质量分 95
CrazyMo_
最美不过,心中有梦,身旁有你!
展开
-
Android 进阶——图形系统的另一种“画布” Surface 详解
Surface 是Android系统中真正的画布,Activity上的所有UI都是在Surface 上完成绘制的,每一个Surface 对象都在SurfaceFlinger中有对应的图层(Layer),SurfaceFlinger 负责把这些Layer按需混合处理后输出到Frame Buffer中,再由Display设备(屏幕或显示器)把Frame Buffer里的数据呈现到屏幕上。原创 2024-01-02 00:14:50 · 3132 阅读 · 1 评论 -
Android进阶——更节电的后台任务JobScheduler 机制使用详解
JobScheduler 机制中把每个需要后台的业务抽象为一个Job,通过系统管理Job,来提高资源的利用率和减少不必要的唤醒,从而提高性能,节省电源。当系统启动时会通过system_server进程启动****服务,然后当使用该机制时,首先通过JobInfo构造具体的后台任务对象,并通过传入到后台任务调度器,当满足配置的条件时系统便会在对应的JobService上执行对应的作业。简而言之,系统提供了一种条件周期性执行的后台任务,无需开发者自己去唤醒,达到配置的条件便会自动执行。原创 2023-12-01 21:15:00 · 1361 阅读 · 0 评论 -
Android 进阶——Binder IPC之学习Binder IPC架构及原理概述(十二)
(系统调用 open、mmap 和 ioctl 函数来访问设备文件 /dev/binder,实现与 Binder 驱动的交互来间接的实现跨进程通信),而非直接交互的原因是,**因为Client进程、Server进程、Service Manager进程属于进程空间的用户空间,不可进行进程间交互,而Binder驱动属于进程空间的内核空间,可进行进程间(进程内)直接交互。其中 Client进程、Server进程、Service Manager进程运行在用户空间,互相隔离,而Binder 驱动运行在内核空间。原创 2023-11-10 19:46:36 · 780 阅读 · 0 评论 -
Android 进阶——系统启动之BootLoader 及内核启动一(下)
手机电源被打开时,首先是引导进入BootLoader分区加载Linux 内核并解析执行init.rc脚本.原创 2023-10-03 20:45:00 · 525 阅读 · 1 评论 -
Android进阶——Handler底层fd监听之epoll机制
Handler 消息循环机制底层也是依赖于epoll 实现的。原创 2023-10-01 00:00:00 · 806 阅读 · 0 评论 -
Android 进阶——图形显示系统之Choreographer监听VSync并提供回调接口详解(二)
图形显示系统之Choreographer监听VSync并提供回调接口详解原创 2023-09-08 00:15:00 · 599 阅读 · 0 评论 -
Android 进阶——Binder IPC之Binder 驱动基础理论和协议详解(十)
Binder驱动程序是由系统实现并运行在内核的一条核心进程,负责Binder IPC的具体实现以及相关Binder对象的管理。原创 2023-04-30 23:41:28 · 2058 阅读 · 0 评论 -
Android 进阶——Binder IPC之Native 服务的启动及代理对象的获取详解(六)
Binder IPC之Native 服务的启动及代理对象的获取详解原创 2023-03-10 16:48:42 · 1584 阅读 · 0 评论 -
Android 进阶——Framework 核心之Binder对象管理者 Service Manager 守护进程及其自身代理对象详解(五)
运行于用户空间的Service Manager守护进程是Binder IPC 的核心部件之一,充当着IPC时上下文管理者角色,在负责管理系统的Binder Service组件的同时,还向Client组件提供获取Binder服务的对应的Binder引用对象(根据注册时的Binder服务名称)原创 2023-02-20 21:00:00 · 2539 阅读 · 0 评论 -
Android 进阶——Framework 核心之Binder 对象及其生命周期小结(四)
Framework 核心之Binder 对象及其生命周期小结原创 2023-02-12 21:23:48 · 1492 阅读 · 2 评论 -
Android 进阶——Framework核心 之Binder Java成员类详解(三)
Framework核心 之Binder Java成员类详解原创 2023-02-12 00:00:00 · 1103 阅读 · 2 评论 -
Android 进阶——Framework核心 之Binder Native成员类详解(二)
Framework核心 之Binder Native成员类详解。原创 2023-02-10 22:06:44 · 1485 阅读 · 0 评论 -
Android 进阶——Framework 核心之Binder 相关预备理论(一)
学习Binder 前需要的知识原创 2023-02-09 16:35:52 · 1414 阅读 · 0 评论 -
Android 进阶——Framework 核心之Touch事件分发机制详细攻略(一)
Android 事件事件分发的对象、处理事件的对象、事件分发的流程四、事件分发的原理引言一般说来所有事件的本质都是由驱动打通硬件屏幕和操作系统的输入总线的,当手指去点击或者按下屏幕时都会产生对应的信号,由驱动往操作系统上传递,并提供对应的监听和响应机制,这也是为什么MotionEvent需要继承native 层InputEvent(其...原创 2022-12-21 20:00:00 · 3401 阅读 · 2 评论 -
Android 进阶——性能优化之电量优化全攻略及实战小结(二)
性能优化之电量优化全攻略及实战小结原创 2022-12-19 19:15:07 · 2989 阅读 · 0 评论 -
Android 进阶——性能优化之电量优化全攻略及实战小结(一)
性能优化之电量优化之低电耗模式和应用待机模式概述原创 2022-12-18 14:50:53 · 2298 阅读 · 0 评论 -
Android 进阶——系统启动之SystemServer创建并启动PackageManagerService服务(十二)
Android 系统每次启动后都需要把原来安装过的App 全部还原回来(因为不可能每一次都执行全新的安装,这样会丢失掉用户信息)原创 2022-10-06 09:51:19 · 1310 阅读 · 0 评论 -
Android 进阶——系统启动之SystemServer创建并启动PackageManagerService服务(十一)
SystemServer首先启动,创建一个ServerThread线程来启动所有Android核心服务,在创建和启动`Installer`、`ActivityManagerService` 、`PowerManagerService`、RecoverySystemService、LightsService、`DisplayManagerService`系统服务启动之后,`PackageManagerService`就会接着被创建和启动。原创 2022-09-04 11:45:00 · 1720 阅读 · 0 评论 -
Android 进阶——性能优化之Bitmap位图内存管理及优化概述(一)
位图原创 2022-08-17 22:14:40 · 1617 阅读 · 0 评论 -
Android 进阶——性能优化之因Handler引起句柄泄漏导致ANR的定位和解决
性能优化之因Handler引起句柄泄漏导致ANR的定位和解决原创 2022-06-11 23:10:44 · 1798 阅读 · 1 评论 -
Android 进阶——系统启动之Framework 核心ActivitityManagerService服务启动(十)
Framework 核心ActivitityManagerService服务启动原创 2022-05-08 01:25:21 · 1553 阅读 · 0 评论 -
Android 进阶——性能优化之借助adb shell ps /top 指令详细分析进程
性能优化之借助adb shell ps /top 指令详细分析进程原创 2022-05-20 23:43:36 · 4968 阅读 · 0 评论 -
Android 进阶——系统启动之SystemServer进程创建并启动Watchdog 监听系统服务详解(九)
在Android 中Init进程启动的`watchd守护进程`就是负责给“硬件看门狗喂食”的,但”硬件看门狗“功能比较单一只能监控整个系统,不便于监控某个具体的线程(因为每隔一定时间需要线程去喂狗的话,浪费CPU且增加程序设计成本)。于是乎Android 为了监控SystemServer进程中的所有服务线程便重新设计了一套软件看门狗机制......原创 2022-04-28 11:56:55 · 2035 阅读 · 0 评论 -
Android 进阶——Framework 核心ANR( Applicatipon No Response)机制设计思想详解
通过与之交互的组件(Activity,Service,Receiver,Provider、BroadcastReceiver)以及用户交互系统(InputEvent)进行超时监控,以判断应用进程(主线程)是否存在卡死或响应过慢的问题原创 2022-04-23 00:59:32 · 1389 阅读 · 0 评论 -
Android 进阶——Binder IPC详解之学习Binder IPC前应该掌握的相关常识(一)
Android OS=Android Runtime+Linux Kernel。在Android系统中每一个应用程序都运行在独立的进程中(确保了某个进程异常而不会影响另一个进程的运行),自然就少不了进程间通信IPC(Internet Process Connection)。原创 2022-04-20 00:15:00 · 992 阅读 · 2 评论 -
Android 进阶——图形显示系统之底层图像显示原理小结(一)
一个典型的显示系统中一般由CPU、GPU、Display三个部分组成,其中 CPU负责计算帧数据,把计算好的数据交给GPU,GPU会对图形数据进行栅格化处理和渲染,渲染好后放到Frame Buffer(图像缓冲区)里存起来,然后Display(屏幕或显示器)负责把Frame Buffer里的数据呈现到屏幕上。...原创 2022-04-17 10:50:41 · 1836 阅读 · 0 评论 -
Android进阶——网络通信之ip rule,ip route等策略路由小结
基于策略的路由比传统路由在功能上更强大,使用更灵活,它使网络管理员不仅能够根据目的地址而且能够根据报文大小,应用或IP源地址等属性来选择转发路径。原创 2022-04-12 23:56:27 · 7842 阅读 · 6 评论 -
Android进阶——更节电的后台任务JobScheduler 机制使用详解
系统提供了一种条件周期性执行的后台任务,无需开发者自己去唤醒,达到配置的条件便会自动执行原创 2022-03-04 23:29:15 · 6943 阅读 · 0 评论 -
Android 进阶——轻量级跨进程传递Message利器Messenger详解
Messenger是基于消息Message的传递的一种轻量级IPC进程间通信方式(通过在一个进程中创建一个指向Handler的Messenger,并将该Messenger传递给另一个进程),当然本质就是对Binder的封装(也是通过AIDL实现的 )。原创 2022-02-19 16:11:14 · 5570 阅读 · 0 评论 -
Android 进阶——源码编译之产品配置和常用的Make脚本模板
前面文章总结了MakeFile基础语法和对Android.mk的进行了解读,这篇文章将从整体上概述下AOSP 编译时的产品配置相关知识。Android 的产品配置文件的作用是按照Build系统的要求,将生成产品的各种image文件所需要的对应信息(如版本号等各种参数)、资源(图片、字体、多媒体等)、二进制文件(apk、jar、so库等)有机组织起来,同时根据配置文件进行裁剪或增加模块,所谓系统支持在一定程度上其实就像将相应的资源添加到对应的文件中。默认的编译类型,该编译类型适用于开发阶段,执行即,编译时以下原创 2022-06-17 21:15:00 · 1129 阅读 · 0 评论 -
Android 进阶——系统启动之SystemServer创建并启动Installer服务(八)
SystemServer进程在执行startBootstrapServices方法后,首先就通过SystemServiceManager创建和启动`Installer`系统服务。原创 2021-12-29 23:08:27 · 3202 阅读 · 0 评论 -
Android 进阶——系统启动之核心SystemServer进程启动详解(七)
在Zygote 进程启动过程中会把Android 最核心进程SystemServer进程创建并启动。原创 2021-12-18 23:27:59 · 3107 阅读 · 0 评论 -
Android 进阶——系统启动之Android进程造物者Zygote 进程启动详解(六)
Android系统上的造物者——Zygote进程启动详解。原创 2021-12-07 22:49:13 · 3286 阅读 · 0 评论 -
Android 进阶—— Framework 核心之 Low Memory Killer机制和进程优先级小结
Framework 核心之 Low Memory Killer机制和进程优先级小结原创 2021-11-20 00:14:26 · 1710 阅读 · 0 评论 -
Android 进阶——Framework 核心之dumpsys命令浅析
Dumpsys是安卓系统提供用来动态查看系统内部服务运行状态的命令。了解dumpsys命令的使用方法,可以方便我们查看系统中各个进程内存使用情况,各个进程CPU占用率情况,各个应用apk运行情况,系统唤醒源情况等。原创 2021-08-08 23:00:35 · 3372 阅读 · 2 评论 -
Android 进阶——系统启动之Android init进程解析init.rc脚本(五)
文章大纲引言一、`aosp/system/core/init.cpp#LoadBootScripts`函数加载init.rc 脚本二、创建Parser三、调用Parser:: ParseConfig四、 Parser::ParseData 开始解析引言前面介绍到Android init进程创建启动完毕后,但Android 特有的adbd、Zygote、Service Manager(C++)核心进程和服务都已经启动了,是通过什么方式启动的呢?前一篇文章总结道init.rc脚本的基本语法和结构并且知道是通原创 2021-08-06 22:58:24 · 1500 阅读 · 1 评论 -
Android 进阶——系统启动之Android init.rc脚本解析(四)
init.rc 脚本结构、基本语法原创 2021-06-14 21:03:05 · 2940 阅读 · 7 评论 -
Android 进阶——系统启动之Android init进程的创建和启动(三)
系统启动之Android init进程的创建和启动原创 2021-05-12 12:57:01 · 2299 阅读 · 0 评论 -
Android 进阶——系统启动之Linux init进程的创建和启动(二)
init进程和kthreadd进程原创 2021-04-04 23:06:42 · 938 阅读 · 0 评论 -
Android 进阶——系统启动之BootLoader 简介及内核启动(一)
上电开机,启动BootLoader,加载Linux 内核并初始化原创 2021-03-16 22:24:17 · 4801 阅读 · 0 评论