Android源码解析
文章平均质量分 96
基于Android 6.0源码剖析Framework层相关技术,以及设计模式
无名之辈FTER
不是因为看到希望才坚持,而是坚持了才能看到希望!
展开
-
Jetpack框架探究01:Lifecycle组件的使用与源码分析
1. Lifecycle简介 Lifecycle是Android Jetpack框架提供的能够感知组件(宿主)生命周期变化的组件,它能持有宿主(如Activity或Fragment)生命周期状态的信息,并且允许其他观察者注册监听宿主的生命周期状态变化,这就使得我们不用主动去获取宿主的状态,有利于降低代码耦合度并更容易维护。Lifecycle是JetPack组件库的核心基础,很多其他的Jetpack组件,比如LiveData、ViewMoedel等,都是基于它实现的。1.1 Lifecycle基本使用原创 2021-01-09 20:40:23 · 6338 阅读 · 10 评论 -
从Android 8.0源码的角度剖析线程池原理
在计算机系统中,进程是程序在一个数据集合上的运行过程,是系统进行资源分配和调度的基本单位,每个进程都拥有自己私有的地址空间,且进程之间是相互独立的。线程是操作系统调度的最小单位,它可以说是进程的组成部分,在一个进程中可以创建多个线程,这些线程都拥有各自计数器、堆栈和局部变量等属性,但是不再拥有系统资源,它与进程中的其他线程共享该进程所拥有的全部资源,或称共享内存变量。线程是独立运行的,且采用抢占...原创 2020-02-10 13:26:54 · 2601 阅读 · 0 评论 -
从Android 8.0源码的角度剖析APP的启动过程
文章目录1. 应用进程启动过程1.1 AMS向Zygote进程发起请求1.2 Zygote进程接受请求2. Activity启动过程2.1 应用程序的Appication启动过程2.2 应用程序的根Activity启动过程在从Android 8.0源码的角度剖析Android系统启动过程(2)一文中,我们了解到当ActivitiyManagerService服务被启动后,就会通过Intent以...原创 2019-12-14 02:20:32 · 7178 阅读 · 4 评论 -
从Android 8.0源码的角度剖析Android系统启动过程(2)
文章目录1. SystemServer进程1.1 启动Binder线程池1.2 启动系统服务1.2.1 启动Bootstrap(引导)服务1.2.2 启动Core(核心)服务1.2.3 启动Other(其他)服务2. Launcher进程在从Android 8.0源码的角度剖析Android系统启动过程(1)一文中,我们介绍了Android系统启动过程中的init进程和Zygote进程的启动流...原创 2019-12-06 23:36:11 · 1838 阅读 · 0 评论 -
从Android 8.0源码的角度剖析Android系统启动过程(1)
文章目录1. init进程启动过程1.1 解析init.rc文件1.2 启动Zygote进程2. Zygote进程启动过程2.1 启动SystemServer进程2.2 创建Zygote进程的Server socket 在《嵌入式Linux应用开发完全手册》一书中,我们可以较为清晰地了解到Android系统启动的大体流程:当用户按下Android设备的电源键时,CPU上电后会从0x0000000...原创 2019-12-05 10:27:33 · 2020 阅读 · 0 评论 -
从Android 8.0源码的角度剖析APK打包、安装过程
文章目录1. APK打包过程1.1 APK文件结构1.2 APK打包过程2. APK安装过程2.1 拷贝APK2.2 解析APK APK,全称Android Application Package,即Android应用程序包,是Android系统使用的一种应用程序包文件格式,它的作用是将Android程序和资源整合在一起,以便Android程序能在Android设备上正常运行。简单地说,就是一个...原创 2019-11-29 22:22:56 · 2632 阅读 · 0 评论 -
从Android 6.0源码的角度剖析View的事件分发机制
请尊重原创,转载请声明出处:在从Android 6.0源码的角度剖析UI界面架构一文中,我们了解到Activity是Android的可视化界面,是用户与Android系统交互的窗口,也就是说每个Activity都对应着一个窗体,但窗体是一个抽象的概念,它的具体表现形式是视图。在Android中,窗体对应着Window类,视图对应着View类。Window是一个抽象类,它的具体实现是PhoneW...原创 2019-08-15 17:47:50 · 1393 阅读 · 0 评论 -
从Android6.0源码的角度剖析Service启动过程
Service是Android四大组件之一,与Activity的可视化界面相反,Service没有向用户提供交互界面,因此常被用于执行后台任务。Service的启动方式有两种:普通启动和绑定启动,其中,前者通过Context.startService方法启动,常用于执行普通的后台任务;后者通过Context.bindService方法启动,用于执行与启动组件有数据交互的后台任务。本文将从Andr...原创 2019-02-23 15:40:01 · 1540 阅读 · 0 评论 -
从Android6.0源码的角度剖析Binder工作原理
在从Android 6.0源码的角度剖析Activity的启动过程一文中,我们了解到Activity的启动过程最终由系统服务ActivityManagerService完成,ActivityManagerServer是继承于Binder且运行在系统进程中,Activity的启动实质是一次基于Binder机制的跨进程通信。除此之外,Android系统还为应用程序提供了各种系统服务,比如多媒体播放、...原创 2019-02-11 12:16:07 · 1928 阅读 · 0 评论 -
从Android6.0源码的角度剖析Handler消息机制原理
■ 文 蒋东国ActivityThread通过ApplicationThread和AMS进行进程间通信,AMS以进程间通信的方式完成ActivityThread的请求后回调ApplicationThread中的Binder方法,然后ApplicationThread会向H发送消息,H收到消息后会将ApplicationThread中的逻辑切换到Activity中取执行,即切换到主线程中去执...原创 2018-11-13 22:13:30 · 2300 阅读 · 0 评论 -
从Android 6.0源码的角度剖析Activity的启动过程
转载请声明出处: https://blog.csdn.net/AndrExpert/article/details/81488503 在从Android 6.0源码的角度剖析Window内部机制原理文章中,我们详细剖析了Android Window的内部工作机制,了解到每一个Activity都对应着一个Window,Activity的视图(View)都是依附在Window来呈现的,Wind...原创 2018-08-11 13:36:17 · 2002 阅读 · 0 评论 -
从Android 6.0源码的角度剖析Window内部机制原理
转载请声明出处: 1. Window内部机制原理 WindowManager是用于与Window管理器交互的接口,它继承于接口ViewManager,可通过Context.getSystemService(Context.WINDOW_SERVICE)方式获取WindowManager的实例。ViewManager提供了三个操作Window的方法,即addView()、upd...原创 2018-08-04 21:32:47 · 1653 阅读 · 0 评论 -
从Android 6.0源码的角度剖析UI界面架构
大多数多原创 2018-07-30 23:26:15 · 2027 阅读 · 0 评论 -
从Android 6.0源码的角度剖析View的绘制原理
在从Android 6.0源码的角度剖析Activity的启动过程和从Android 6.0源码的角度剖析Window内部机制原理的文章中,我们分别详细地阐述了一个界面(Activity)从启动到显示的整个流程和View是如何添加到Activity的Window中的。本文就在上述两篇文章基础上,从源码的角度剖析View的绘制过程,同时分析在源码中View的绘制入口在哪里。1. View绘制入...原创 2019-09-03 15:35:01 · 2174 阅读 · 1 评论