Android进阶
Android进阶
正义啊
安卓工程师
展开
-
View绘制流程和requestLayout()原理
我知道View的绘制流程分为 measure、layout、draw,那么一个View显示在Activity上的完整流程是什么呢?在Activity启动流程中,Activity创建会执行Activity的acttach()。1、Activity & attach()1.0、设置/初始化 WindowManager```java // 设置WindowManager mWindow.setWindowManager( (WindowManag原创 2020-06-14 22:10:20 · 515 阅读 · 0 评论 -
Android Context 相关
Context 是上下文环境对象,在Android中经常会使用到。一、Context 关联类首先Context是一个抽象类,它常见的子类有:Application、Activity、Service、ContextImpl。这些类关系如下:说明:ContextImpl:1、 Application、Activity、Service通过attach() 调用父类ContextWrappe...原创 2020-03-03 17:35:30 · 151 阅读 · 0 评论 -
Android应用进程启动笔记
Android系统启动后,想要启动一个应用程序,首先需要创建并启动该应用所需的应用程序进程。AMS在启动应用程序时会检查这个应用程序所需的进程是否存在,不存在就会请求Zygote进程启动相应的进程。我们知道,Zygote在Java框架层会创建一个Socket的服务端,这个Socket用来等待AMS请求Zygote创建新进程。Zygote进程通过fork自身创建应用程序进程,这样应用程序进程就...原创 2020-02-20 16:16:39 · 324 阅读 · 0 评论 -
Android系统启动笔记
一、init进程启动init进程是Linux系统中用户空间的第一个进程,进程号固定为1。主要职责:创建共享内存空间,用于属性服务解析各个rc文件,并启动相应的属性服务进程,包括Zygote服务进程二、Zygote进程启动Zygote由init进程通过init.zygote.rc文件fork的。Zygote进程是Android系统的第一个Java进程(即虚拟机进程),Zygote是...原创 2020-02-17 16:04:37 · 287 阅读 · 0 评论 -
ListView源码阅读
listview的源码在此之前看过也不止一次了,但是现在想想好像也就停留在看过的样子,除此之外就没啥印象了。想想之前就是在瞎看,毕竟ListView加上AbsListview有一万多行代码了,瞎看的话确实啥都看不出来啥的。所以这次看的话我就带着几次问题来看就行了,毕竟把1万多行代码看完对很多人来说是不现实的。带着下面几个问题,再次看一下Listview源码:Listview的适配器模式A...原创 2020-01-17 10:53:57 · 398 阅读 · 0 评论 -
使用AIDL实现两个APP之间跨进程通信
昨天我们主管说准备把项目拆分一下,因为现在项目依赖了好几个负责串口通讯Library,准备把这些Library变成独立的APP,通过Android跨进程机制进行数据交互。然后让我写一个跨进程通信的Demo,然后测试。一、同一个APP内跨进程通信跨进程通信的方式有好几种,我这里用的是AIDL的方式。...原创 2019-07-11 15:34:47 · 3270 阅读 · 4 评论 -
BroadcastReceiver 工作过程
说道广播的使用,就不得不提它的两种注册方式,动态注册和静态注册。静态注册在程序启动加载manifest文件时候完成。因此这里就以动态注册来看一下BroadcastReceiver 的工作过程。注册广播BroadcastReceiver 是一个抽象的类,因此我们需要继承BroadcastReceiver 实现一个我们自己的广播类 class MyReceiver extends Broa...原创 2019-12-02 15:41:42 · 327 阅读 · 0 评论 -
Service启动流程
相对于Activity而言,Service就显得神秘了很多。因为Service一般都是在后台默默运行的。今天就来看看Service的启动流程。Service的启动方式我们知道Service有两种启动方式。startServicebindService不同启动方式Service的生命周期方法也存在不同:1、startService方式启动生命周期:onCreate -> on...原创 2019-11-30 14:07:05 · 724 阅读 · 0 评论 -
Activity的启动流程
Activity是Android应用与用户交互的界面,了解Activity的启动流程可以加深我们对Activity理解。sdk版本25一、发起启动Activity的请求通常我们会通过startActivity()来打开一个新的Activity。 startActivity(new Intent(this, SecondActivity.class));1、Activity & ...原创 2019-11-27 16:35:59 · 351 阅读 · 0 评论