-
2023应用界面的展现流程(四)创建绘制表面 应用界面的展现流程(三)会话的创建 应用界面的展现流程(二)布局与视图的创建 应用界面的展现流程(一)周期函数 Window,WindowManager详解 深入理解ViewRootImpl ViewParent和ViewManager 关于View中mParent的来龙去脉 IWindow添加流程 从Activity的角度理解IWindowSession Framework底层 WMS——WindowToken Context装饰者模式 Context创建的源码 ApplicationThread ActivityThread与ApplicationThread 看懂Activity启动流程 ActivityManager getSystemService 获取IActivityManager提供功能的方式 Android系统服务管理者—ServiceManager Java层ServiceManager Instrumentation框架分析及其使用
-
2022StartWindow StartingWindow windowDisablePreview 和过渡动画 每次都有,但可控 通过Token和真正的界面连接 Layout Inspector 实现原理的详细分析 JDWP JVMTI JDWP远程方法调用流程详解 JDWP断点调试流程讲解 JVMTI使用例子 ViewDebug JDWP远程方法调用伪代码 ViewDebug使用 SplashScreen简略 SplashScreen代码解读 SplashScreen详细 SplashScreen例子-代码详细版本 SplashScreen实现原理-复杂版本 SplashScreen例子-代码简单版本 StartWindow的官方增强版(解决黑白屏问题) SplashScreen实现原理-简单版本 不能直接实现开屏广告
-
2021
-
2020
-
2019Android BaseDexClassLoader源码阅读 C层的MessageQueue和NativeMessageQueue Looper源码 MessageQueue和NativeMessageQueue的关系 MessageQueue中的native方法 Native Looper Native层实现 epoll和eventfd native中的android_Looper 对比Java层的Looper 示范代码-辅助理解 runWithScissors IdleHandler 不会阻塞之前的同步消息 nativePollOnce(ptr, nextPollTimeoutMillis); 只在该轮循环内触发一次 可以插入多个 例子 同步屏障 插入代码 如果忘了移除同步屏障-不会阻塞点击 插入同步屏障,但messagequeue没异步消息 建议阅读 源码实现 阻塞同步消息 Android虚拟机的一些知识 Android Studio中的Gradle的相关知识 Retrofit OkHttp Android打包流程 启动优化 LeakCanary源码整体分析 内存抖动优化 内存泄露的优化 内存优化思路 高效的加载Bitmap避免内存溢出 EventBus 3.0 源码分析 ButterKnife源码剖析 推送 Android进程保活
-
2018Volley源码解析 Volley-ImageLoader的源码解析 Volley-ImageRequest的源码解析 Volley-JsonRequest
及其两个子类的源码解析 Volley-StringRequest源码解析 Volley-HttpHeaderParser源码解析 Volley-NetworkResponse源码解析 Volley-Request的源码解析 Volley-ResponseDelivery及其实现类的源码解析 Volley-NetworkDispatcher源码解析 Volley-CacheDispatcher源码解析 Volley的硬盘缓存--Cache,DiskBasedCache,NoCache的源码分析 Volley-DiskBasedCache的内部类CacheHeader的源码分析 Volley-Network及其实现类的源码解析 Volley的请求重试策略相关源码分析 Volley-PoolingByteArrayOutputStream源码解析 Volley-HttpStack及其实现类源码解析 Volley-ByteArrayPool源码分析 CardView Clipping(裁剪) Dart编程语言入门 Flutter应用项目创建 Flutter开发环境搭建 Android中的圆形和圆角矩形的效果的实现 图片的圆角矩形效果 图片的圆形效果 自定义圆角矩形的ImageView 自定义圆形的ImageView WebSocket协议 Android WebSocket 的一个Demo final修饰符 Java内存模型-final Java内部类 Java中的自动装箱与拆箱 Java自动装箱与拆箱的实现原理 String的“==”比较 源码解析ListView中的RecycleBin机制 Instrumentation—初识+实战 LocalBroadcastManager 的实现原理,还是 Binder? 过度绘制 Instrumentation简介 Android中ThreadLocal的工作原理 表 二叉平衡树 二叉搜索树 优先队列(堆) 散列 -
2017MeasureSpec 滑动冲突的处理 Canvas的裁剪 View的事件分发机制 View的滑动 实现View的弹性滑动 View的基础知识 SurfaceView Canvas中的Layer图层 Canvas方法进一步学习 Canvas与Paint的基本使用 LayerDrawable ShapeDrawable 质数算法 判断质数 小于n的质数 前n个质数 代理(张孝祥Java视频笔记) 注解(张孝祥Java视频笔记) 反射(张孝祥Java视频笔记) 泛型(张孝祥Java视频笔记) AtomicBoolean运用 join方法 线程范围内变量 多线程虚假唤醒 Android跨进程通信的方式 Binder的使用和上层原理 Android序列化 多进程模式的运行机制 Android开启多进程 优化照片墙卡顿 LruCache源码解析 高效的加载Bitmap避免内存泄露 Android动画 AsyncTask内存泄露 内存泄露之Thread 绘制优化,响应速度优化,线程优化 内存泄漏优化 内存泄漏优化 Handler引起的内存泄露 布局优化 Android LayoutInflater原理分析 Thread、AsycTask、HandlerThread、IntentService的使用场景与特点 ThreadPoolExecutor IntentService源码分析 IntentService的源码分析 HandlerThread源码分析 HandlerThread的源码分析 AsyncTask注意事项 为什么必须在主线程中加载 AsyncTask? Android的消息机制 AsyncTask引起的内存泄露 AsyncTask缺陷 AsyncTask的串行执行和并行执行 AsyncTask的cancel方法解读 AsyncTask源码分析 AsyncTask的源码分析 ThreadPoolExecutor详解 AsyncTask的基本用法 Java并发编程:Callable、Future和FutureTask的使用 线程未捕获的异常的处理 Fragment简单备忘 两种上下文 Activity启动模式 异常情况下的生命周期 集合 双亲委派模型 破坏双亲委派模型 细说Java多线程之内存可见性----慕课网视频笔记 细说Java多线程之内存可见性----慕课网视频笔记 锁优化 Java中线程安全的实现方法 volatile型变量的特殊访问规则 原子性,可见性与有序性 Java 内存模型 类加载器 类加载器 单例模式 Android中RelativeLayout和LinearLayout性能分析 ConstraintLayout为什么效率更高 RelativeLayout测量优化失效 为什么 RelativeLayout 的效率比 LinearLayout / FrameLayout 低 Android性能调优利器StrictMode 怎么保证Service不被杀死 二叉树的遍历 内存分配策略 Java虚拟机的垃圾收集器 垃圾收集算法 回收方法区 对象回收前的两次标记 四种引用 java虚拟机的垃圾回收器怎么判断对象“已死” Java虚拟机中对象的访问定位 Java虚拟机中对象的内存布局 Java虚拟机中对象的创建过程 Java虚拟机的内存分区 Java枚举类 对象与垃圾回收 对象与垃圾回收