基于 Android 13 的 Activity 启动流程分析 对于 Android 客户端开发者来说,Activity 是我们再熟悉不过的一个组件了。它是 Android 四大组件之一,是一个用于直接与用户交互的展示型 UI 组件。在开发过程中,启动并创建一个 Activity 流程非常简单,而在系统底层实际上做了大量的工作,之所以使用这么简单,得益于系统底层对于 Activity 的良好封装。本篇内容我们着重来分析一下 Framework 层 Activi 2023-03-18 Framework
Android 架构思想与 MVVM 框架封装 关于Android项目架构也是一个老生常谈的话题了,网上关于Android架构的文章不胜枚举,但是通过Google检索关键字,首页的热门文章多数是对于MVC、MVP及MVVM等架构的概念介绍,概念性的文章对于不了解Android架构的同学来说并不一定能起到很好的帮助。本篇文章其实源自笔者在公司内部的技术分享,稍作修改后作为文章发布出来。文章内容涉及从MVC、MVP 到 MVVM 的演化,同时为便于 2022-08-20 Android进阶 MVC MVP MVVM
反思 Android 消息机制设计与实现 上篇文章介绍了 Android 中的 Binder 机制。Binder 在 Android 系统中占有着举足轻重的地位,它是 Android 系统中跨进程通信最重要的方式。而另外一个重要的且能与Binder相提并论的角色便是本文要分析的 Handler。Binder 支撑起了 Android 系统进程间的通信,而 Handler 支撑起的则是进程内线程间的通信。同时,Android 应用程序的运行 2022-06-17 Framework Handler
浅析 Java 中的动态代理 在之前的一篇文章《静态代理这么用?聊一聊ViewPagerIndicator重构的一些经验》中详细的介绍了 java 中的静态代理,并且使用静态代理对IndicatorView进行了重构。静态代理的优点不必多说,它可以让代码具有扩展性,也可以让代码解耦。但在现实开发中,静态代理有时候也存在很多弊端,列举如下: 当接口需要增加、删除、修改方法时,被代理类与代理类都需要修改,不易维护。 由于代理类要 2021-08-22 Java进阶 设计模式 动态代理
不得不说的 Android Binder 机制与 AIDL 说起Android的进程间通信,想必大家都会不约而同的想起Android中的Binder机制。而提起Binder,想必也有不少同学会想起初学Android时被Binder和AIDL支配的恐惧感。但是作为一个Android开发者,Binder是我们必须掌握的知识。因为它是构架整个Android大厦的钢筋和混凝土,连接了Android各个系统服务和上层应用。只有了解了Binder机制才能更加深入的理解 2021-08-06 Framework Binder
用BVP一比一还原自如客APP裸眼3D效果(Android原生) 前几天,自如大前端开源了一个裸眼3D效果的Banner轮播图的实现方案。看着非常有意思,于是趁着空闲时间结合我的开源库BannerViewPager码了一个自如裸眼3D效果的demo。demo基本实现了自如APP的Banner效果。 关于实现原理,自如客APP裸眼3D效果的实现这篇文章已经写得很清楚了,本篇文章就不再赘述了,这里主要看一下代码实现。 一、监听传感器的ViewSensorLayout 2021-08-02 自定义View 自定义View BVP
Java并发系列番外篇:ThreadLocal原理其实很简单 多线程并发是Java语言中非常重要的一块内容,同时,也是Java基础的一个难点。说它重要是因为多线程是日常开发中频繁用到的知识,说它难是因为多线程并发涉及到的知识点非常之多,想要完全掌握Java的并发相关知识并非易事。也正因此,Java并发成了Java面试中最高频的知识点之一。本系列文章将从Java内存模型、volatile关键字、synchronized关键字、ReetrantLock、Atom 2021-07-19 Java进阶 多线程
Java并发系列终结篇:彻底搞懂Java线程池的工作原理 多线程并发是Java语言中非常重要的一块内容,同时,也是Java基础的一个难点。说它重要是因为多线程是日常开发中频繁用到的知识,说它难是因为多线程并发涉及到的知识点非常之多,想要完全掌握Java的并发相关知识并非易事。也正因此,Java并发成了Java面试中最高频的知识点之一。本系列文章将从Java内存模型、volatile关键字、synchronized关键字、ReetrantLock、Atom 2021-07-10 Java进阶 多线程
深入理解Java线程的等待与唤醒机制(二) 多线程并发是Java语言中非常重要的一块内容,同时,也是Java基础的一个难点。说它重要是因为多线程是日常开发中频繁用到的知识,说它难是因为多线程并发涉及到的知识点非常之多,想要完全掌握Java的并发相关知识并非易事。也正因此,Java并发成了Java面试中最高频的知识点之一。本系列文章将从Java内存模型、volatile关键字、synchronized关键字、ReetrantLock、Atom 2021-07-03 Java进阶 多线程
深入理解Java线程的等待与唤醒机制(一) 多线程并发是Java语言中非常重要的一块内容,同时,也是Java基础的一个难点。说它重要是因为多线程是日常开发中频繁用到的知识,说它难是因为多线程并发涉及到的知识点非常之多,想要完全掌握Java的并发相关知识并非易事。也正因此,Java并发成了Java面试中最高频的知识点之一。本系列文章将从Java内存模型、volatile关键字、synchronized关键字、ReetrantLock、Atom 2021-07-02 Java进阶 多线程