摘要: AMS启动过程分析 首先ams是在system_server进程 system_server具体实现是 frameworks/base/services/java/com/android/server/SystemServer.java AMS启动流程图分析 1.SystemServer#main( 阅读全文
posted @ 2022-06-02 16:42 cfdroid 阅读(150) 评论(0) 推荐(0) 编辑
摘要: App启动流程分析 0.前言: 本文基于android10源码,为什么基于android10,(✪ω✪)因为我的pixel手机最高只支持到android10. 从launcher点击图标到activity启动起来,中间发生了哪些操作. 首先了解一下以下几点: 第一:android的每个应用都是一个l 阅读全文
posted @ 2022-05-31 21:28 cfdroid 阅读(357) 评论(0) 推荐(0) 编辑
摘要: Android消息机制分析 什么是Handler 先看一段报错: 这个是子线程更新UI报错的log。 原因是android的view不是线程安全的 在android中可以通过Handler,在子线程中发送消息给主线程来更新UI 1.Handler的简单用法 class MainActivity : 阅读全文
posted @ 2022-05-30 10:53 cfdroid 阅读(47) 评论(0) 推荐(0) 编辑
摘要: LeakCanary原理及分析 1.LeakCanary简单使用 简介 LeakCanary用来检测内存泄漏的工具,从源码看目前支持activity和fragment 导包 debugImplementation 'com.squareup.leakcanary:leakcanary-android 阅读全文
posted @ 2022-05-27 14:43 cfdroid 阅读(320) 评论(0) 推荐(0) 编辑
摘要: OkHhttp原理分析 1.OkHttp简单使用 导包: implementation "com.squareup.okhttp3:okhttp:4.9.0" 添加网络权限: <uses-permission android:name="android.permission.INTERNET"/> 阅读全文
posted @ 2022-05-26 19:47 cfdroid 阅读(511) 评论(0) 推荐(1) 编辑
摘要: 如何查看jdk源码 1.下载源码 点击 源码下载地址 2.下载完毕后解压 3.打开idea并导入文件 阅读全文
posted @ 2022-05-23 16:08 cfdroid 阅读(201) 评论(0) 推荐(2) 编辑
摘要: 启动优化的重点在于cpu执行时间 阅读全文
posted @ 2021-09-21 20:48 cfdroid 阅读(9) 评论(0) 推荐(0) 编辑
摘要: 有很多场景, 比如 我们要在程序启动完毕后弹出一个蒙版, 但是由于异步初始化的原因, 我们要确保满足一定条件下蒙版才弹出来 而蒙版早就初始化完毕, 这种情况下可以通过CountDownLatch来处理等待操作。 点击查看代码 //初始化 CountDownLatch mCountDownLatch 阅读全文
posted @ 2021-09-21 20:07 cfdroid 阅读(31) 评论(0) 推荐(1) 编辑
摘要: 大家熟知Handler,AsyncTask 从java的角度来说就是 创建Handler的过程就是创建匿名内部类。 非静态内部类和匿名内部类天然持有外部类的引用, 为什么这么说,我们可以在handleMessage方法里面去更新View,view是谁的,activity的,没有activity的引用 阅读全文
posted @ 2021-03-08 22:32 cfdroid 阅读(643) 评论(0) 推荐(1) 编辑
摘要: android里面用的单例模式 几个关键词, 单例,静态,进程,生命周期与进程绑定 什么意思呢,单例模式instance是静态的,生命周期随进程创建就开始,随进程销毁而结束。 Activity生命周期,显而易见,大家都是到,onDestroy就要被回收了。 如果SingleInstance.getI 阅读全文
posted @ 2021-03-08 22:21 cfdroid 阅读(348) 评论(0) 推荐(0) 编辑