Android Compose 生命周期和附带效应
前言
可组合项 应该没有附带效应,但是,如果在对应用状态进行转变时需要...
农行1面:Java如何保证线程T1,T2,T3 顺序执行?
你好,我是猿java。
线程是 Java执行的最小单元,通常意义上来说,多个线程是...
android弹窗加一层模糊效果
比QQ更炫酷的'选项弹窗'动画
微信为什么使用 SQLite 保存聊天记录?
SQLite 是一个被大家低估的数据库,但有些人认为它是一个不适合生产环境使用的玩具...
教程:弄懂线程池
今天跟大家聊一聊无论是在工作中常用还是在面试中常问的线程池,通过画图的方式来...
算法 – 动态规划
很多人觉得动态规划很难,甚至认为面试出动态规划题目是在为难候选人,这可能产生...
Android设计模式源码解析之模板方法模式
1. 模式介绍
模式的定义
定义一个操作中的算法的框架,而将一些步骤延迟到...
Android的UI显示原理之Surface的创建
本文是Android视图层源码分析系列第二篇文章,通过上一篇文章已经了解到WindowMan...
Android Jetpack系列–3.ViewModel使用及源码解析
ViewModel
LiveData和ViewModel是一对好搭档
定义
视图模型,以感知生命周...
Livedata原理
1. Livedata特性
LiveData 是一种可观察的数据存储器类。并且具有生命周期感知能力...
Android Navigation 如何动态的更换StartDestination &&保存Fragment状态
Navigation使用方法
1. 创建navigation
首先在我们Module下的res 右键,创...
Android app唤醒第三方地图App进行导航(高德,百度,腾讯)
根据项目需要 要添加导航功能 由于我的app 的内部已经做了地图和路线规划 同时为...
kotlin泛型
泛型使用方法
在类上使用泛型
类上面使用泛型,需要把泛型声明在类名后...
Gradle 编写及整个构建详解
本文不会太具体讲编写Gradle插件中用到的API,只是大致梳理一下如何编写一个Gr...
JNI 编程上手指南之 JNI 数据类型
1. 数据类型
JNI 程序中涉及了三种数据类型,分别是:
Java 类型
JNI ...
Binder 多线程分析
1. Native 层多线程分析
1.1 客户端线程相关初始化
在 [Binder 程序示例之C...
GapWorker导致RecyclerView视频播放声音残留问题
场景描述
App 有两个tab,每一个都是Fragment,以FragmentA和FragmentB 代称...