Perfetto 快速上手指南
1. Perfetto 是什么?
Perfetto 是 google 从 Android10 开始引入的一个全新的平台...
android compose中HorizontalPager与BottomNavigation联动遇到的问题
Recomposition的概念以及原则
在讲HorizontalPager与BottomNavigation联动之前先需...
Room数据库快速实战
Room数据库是Google的JitPack组件中的一个,推出已经有一段时间了,现在的使用者也...
Jetpack Navigation工作原理
什么是Navigation?
在没有Navigation之前我们切换Fragment是通过FragmentManager...
检测第三方SDK调用的隐私权限
前言看了一圈各大网站目前关于隐私合规检测的分享,发现大家几乎都是自己写一套动...
android设置tablayout下划线长度代码
设置tablayout下划线长度的方法
JNI 编程上手指南之 Native 访问 Java
本文接着介绍如何在 C/C++ 中访问 Java,主要从以下几个方面来讲述:
访问 Ja...
LiveData奇思妙用总结
前言
本文不涉及LiveData的基本使用方式。
阅读本文之前,强推推荐先看官...
Java程序运行原理分析
class文件内容
class文件包含Java程序执行的字节码
数据严格按照格式紧凑...
Mock API技术选型方案
技术选型
当下互联网行业已经从大鱼吃小鱼演变成快鱼吃慢鱼的时代了,从用户...
AOSP 篇之添加 Product
1. 什么是 Product
在 App 的开发中,我们要去打渠道包,根据不同应用市场的要...
Android | 理解 Window 和 WindowManager
前言
Window 是一个窗口的概念,是所有视图的载体,不管是 Activity,Dialog,...
抖音 Android 性能优化系列:Java 锁优化
背景
Java 多线程开发中为了保证数据的一致性,引入了同步锁(synchronized)。但...
现代化 Android 开发:Jetpack Compose 最佳实践为何要选择 Compose Compose 的思想Compose 性能最佳实践最后
本文为现代化 Android 开发系列文章第六篇。
完整目录为:
现代化 Android ...
插件Service的运行管理
Service启动的大体流程
我们从ContextImpl.startService()开始看。 为什么从这...
GapWorker导致RecyclerView视频播放声音残留问题
场景描述
App 有两个tab,每一个都是Fragment,以FragmentA和FragmentB 代称...

