Android Window
- Android 中所有的视图都是通过
Window
来呈现的,像常用的 Activity,Dialog 和 Toast 都是附加在 Window 上的,所以 Window 是 View 的直接管理者。
Window
来呈现的,像常用的 Activity,Dialog 和 Toast 都是附加在 Window 上的,所以 Window 是 View 的直接管理者。
Lifecycle 是一个专门用来处理生命周期的库,它能够帮助我们将 Acitivity、Framgent 的生命周期处理与业务逻辑处理进行解耦,让我们能够更加专注于业务;
基于 Lifecycle 的特性,在任意生命周期方法内注册观察者都能接收到完整的生命周期事件,比如在onResume 中注册一个观察者它会依次收到
LifecycleEvent.onCreate -> LifecycleEvent.onStart -> LifecycleEvent.onResume 事件。
在 Kotlin 1.4.20-M2 中,JetBrains 废弃了 Kotlin Android Extensions 编译插件。
不要与 Data Binding 混淆。View Binding 是一种功能,它允许您更容易地编写与视图交互的代码。
一旦在一个模块中启用了 View Binding,它就会为该模块中存在的每个 XML 布局文件生成一个绑定类。
源码基于 sdk 30(Android 11.0/R)。
Android 事件机制包含系统启动流程、输入管理(InputManager)、系统服务和 UI 的通信(WindowManagerService + ViewRootImpl + Window)、事件分发等一系列的环节。
绘制是从 ViewRootImpl#performTraversals() 方法开始,从上到下遍历整个视图树,完成测量(Measure)、布局(Layout)和绘制(Draw)的过程。
LeakCanary 是一个 Android 平台的内存泄露分析工具,方便应用开发者找出内存泄漏问题。
ANR(Application Not Responding ) 应用无响应的简称,是 Android 系统为了在 App 卡死时给用户强制退出 App 的机会,从而避免无响应问题,一方面提升用户体验,另一方面也是 Android 系统的一种自我保护机制。
下面基于 Android 11.0,分析四大组件产生 ANR 的流程。
Retrofit 是 Square 公司开发的网络请求框架,它是类型安全的,可用于 Android 和 Java 开发。通过注解的方式传递参数和 Java 动态代理,很大程度长简化了模版代码。
OkHttp 是 Square 公司开源的网络请求框架。有如下优点:
连接池(ConnectionPool)
减少了请求延迟;Glide 是 Bump Technologies 公司开源的图片加载框架,适用于 Android 平台,是谷歌推荐的图片库。
它不仅能实现平滑的图片列表滚动效果,还支持远程图片的获取、大小调整和展示,并且可以加载 Gif 动态图,功能强大。