Android MVVM 架构应用实现
以前项目中虽然也使用MVVM架构,但由于整体框架不是我自己搭建的,导致我对于M...
Handler的初级、中级、高级问法,你都掌握了吗?
Handler是Android中的消息处理机制,是一种线程间通信的解决方案,同时你也可...
android包体积优化指南
市面上有很多优化方案,但是都没有一个完整的链路体系,现在它来了,本文将带你...
android Material Design效果
组件(Components)
FloatView
ShapeableImageView
MaterialBu...
代码规范-对抗软件复杂度
1、为什么需要代码规范
任何系统性的项目都需要架构设计,而架构设计的核心命题...
Android 14适配指南
一、应用行为变更
1.1、进程只能杀死自己的后台进程
说明:从Android 14开始,当应...
PendingIntent使用解析
PendingIntent 中的单词 “pending” 指延迟或挂起,就是指它是延迟的或挂起的。一句...
在 Android 中如何确定 App(Activity) 的启动者
最近在帮忙定位一个问题,涉及到某个应用自动启动了,为了确定是谁调用的,使...
GapWorker导致RecyclerView视频播放声音残留问题
场景描述
App 有两个tab,每一个都是Fragment,以FragmentA和FragmentB 代称...
Kotlin 中的 Lambda 与 Inline
在Kotlin中,有很多很酷很实用的特性,比如Lambda和高阶函数,利用这些特性,...
JVM 如何处理未捕获异常
什么是未捕获异常
未捕获异常指的是我们在方法体中没有使用try-catch捕获的异常...
用好 Require,check,assert,写好 Kotlin 代码
在编码的时候,我们需要做很多的检测判断,比如某个变量是否为null,某个成员...
Android 抓取 ANR 日志终极办法
在 Android 开发中,有时会遇到 ANR,一旦出现 ANR 我们就需要拿到对应的trace...
Android性能调优利器StrictMode
作为Android开发,日常的开发工作中或多或少要接触到性能问题,比如我的Androi...
Android Studio插件
ButterKnife Zelezny:简化视图绑定
ButterKnife Zelezny 插件自动执行了为 ...
android studio分析 build 性能
使用命令
./gradlew --profile --rerun-tasks clean assembleRelease
分析 ...
Jetpack Compose 制作自定义对话框
1. Jetpack Compose 的基本对话框
让我们从基础开始。以下是使用 Jetpack Comp...