4-WMS View 绘制流程Activity 的界面是在 onResume 之后才开始进行绘制的,onWindowFocusChanged 回调里能确认 UI 可见可操作。 1onCreate - onStart - onResume - measure - layout -measure - layout - draw - onWindowFocusChanged 每个 Activity 包含了一个 2024-04-06 源码 > Framework
2-Activity进程启动流程 概念ActivityThreadApp 的入口,启动 App 后,会调用 ActivityThread.main (),开启 Looper、MessageQueue,与 ActivityManagerService 配合完成对 Activity 的管理。就是主线程 ActivityManagerService负责了系统中四大组件的启动、切换、应用进程管理(创建进程)和调度工作。(是一个 syste 2024-04-06 源码 > Framework
1-Android的启动流程 Android 的启动流程Android-Notes/blogs/Android/Framework/Android 系统启动.md at master · Omooo/Android-Notes 当启动电源系统启动后加载 Linux 内核后,加载各种驱动,当有了驱动以后,开始启动 Android 系统同时会加载用户级别的第一个进程 init(sy 2024-04-06 源码 > Framework
Binder 进程间通信 进程间通信(ipc)IPC的主要目的是调用其他进程的函数 使用多进程显而易见的好处就是分担主进程的内存压力。我们的应用越做越大,内存越来越多,将一些独立的组件放到不同的进程,它就不占用主进程的内存空间了。当然还有其他好处,有些应用后台是有多个进程的,启动一个不可见的轻量级私有进程,在后台收发消息,或者做一些耗时的事情,或者开机启动这个进程,然后做监听等。还有就是防止主进程被杀守护进程,守护进程和 2024-04-06 源码
Android端代码规范 有好的建议可以提、集思广益,逐渐补充完善项目的代码规范 代码注意事项 代码必须格式化、去除无效引用 dialog 统一使用半透明activity() 通用common抽象,只能放公共类,不要放业务相关 相关联的逻辑应该在一起,不相关联的逻辑不应该混在一起 严禁使用new handler()、new Thread(),可以项目使用项目里的ThreadUtils 第三方代码必须二次封装后再使用 rec 2024-04-06 Android > 架构
线程安全 锁机制的本质在多个线程访问共同的资源时,在某⼀个线程对资源进行写操作的中途(写入已经开始,但还没结束),其他线程对这个写了一半的资源进行行了读操作,或者基于这个写了一半的资源进行了写操作,导致出现数据错误。 通过对共享资源进行访问限制,让同一时间只有一个线程可以访问资源,保证了数据的准确性。不论是线程安全问题,还是针对线程安全问题所衍生出的锁机制,它们的核心都在于共享的资源,而不是某个方法或者某几 2024-04-06 Java
注解、AOP、APT 注解注解和反射的区别 反射:JAVA 反射机制是在运行状态中,对于任意一个类 (class 文件),都能够知道这个类的所有属性和方法。注解:降低项目的耦合度;自动完成一些规律性的代码;自动生成 java 代码,减轻开发者的工作量。而注解需要用到反射:定义注解,使用注解,读取注解(用到反射) 注解和反射效率问题 反射先 new 类 class,然后在从类里面 new 对象。Class.getMeth 2024-04-06 Java
JVM 类加载器 与普通程序不同的是,Java 程序(class 文件)并不是本地的可执行程序。当运行 Java 程序时,首先运行 JVM(Java 虚拟机),然后再把 Java class 文件加载到 JVM 里头运行,负责加载 Java class 的这部分叫做 Class Loader。也就是类加载器。 某个特定的 类加载器在接到加载类的请求时,首先将加载任务委托给父类加载器,依次递归,如果父类加载 2024-04-06 Java
Kotlin设计模式分享 单例模式一个类有且仅有一个实例,并且自行实例化向整个系统提供.保证全局只有一个实例对象 饿汉式 - 在使用之前就创建好了使用kotlin的关键字 object 就可以 - static类块里初始化,只加载一次 1234567object Singleton{ val bean = 1 fun log():Int{ val beans = bean + 2024-04-06 设计模式
Kotlin分享 为什么使用 kotlin简洁123456789101112131415/* 使用一行代码创建一个包含 getters、 setters、 `equals()`、 `hashCode()`、 `toString()` 以及 `copy()` */data class Customer(val name: String, val email: String, val company: String)/ 2024-04-06 其他语言 > kotlin