Android FFmpeg 音视频开发极简教程
Android FFmpeg 音视频开发系列连载
FFmpeg 开发(01):FFmpeg 编译和...
Android TabLayout总结
TabLayout基本属性:
- background:背景颜色
- tabTextColor:默认文本颜色
- ta...
kotlin list常用操作符
下标操作类
contains —— 判断是否有指定元素
elementAt —— 返回对应的元...
Android理解ANR
1、 前言
在上一篇文章《Android性能优化(六)之卡顿那些事》中,我们提到了卡...
Android ANR分析(trace文件的产生流程)
ANR信息获取(trace文件的产生流程)
首先收集需要dump trace的进程并给对应...
路由架构梳理
本文整理一下WMRouter的基本路由逻辑,并剖析相关路由类的设计。
基本元素
...
插件化
目前市面上有许多Android插件化方案。每种方案都有各自的实现思路。而且随着Googl...
插件守护进程模型
Replugin与VirtualApk很大的一个不同就是: 对于插件的管理,它支持单独开辟一个...
进程间的同步
在看Replugin源码时,发现在对插件apk文件解析之前,对这个文件加了一个ProcessL...
解决插件资源ID与宿主冲突的问题
为什么会冲突?为什么要解决资源id冲突?
首先宿主apk和插件apk是两个不同的ap...
插件Service的运行管理
Service启动的大体流程
我们从ContextImpl.startService()开始看。 为什么从这...
插件Activity的启动
在上一节分析中,我们已经知道宿主已经加载了插件的资源、类。也就是说在宿主中是...
PathClassLoader与DexClassLoader到底有什么不同
先说一下为什么要抛出这个问题吧?
最近在看插件化相关的技术,因此会涉及到插...
插件APK的解析
插件apk中resource访问
插件化技术应该实现: 对于插件中的资源在插件中仍然可...
kotlin的扩展函数“let、run、also、apply”的作用和区别
记录一下四个扩展函数的区别,使用经常记不住:Kotlin的扩展函数let、run、also、...
聊聊ViewPager2中的缓存和复用机制
1. 前言
众所周知ViewPager2是ViewPager的替代版本。它解决了ViewPager...
android协程是怎么切换线程的
要搞清楚这个问题,我觉得需要搞懂这几个知识点:
Continuation,简单讲可以...
Gradle 编写及整个构建详解
本文不会太具体讲编写Gradle插件中用到的API,只是大致梳理一下如何编写一个Gr...
android RecyclerView的使用总结以及常见问题解决方案
RecyclerView使用常见的问题和需求
RecycleView设置了数据不显示
这个往往...
android RecyclerView的刷新机制
本文会从源码分析两件事 :
adapter.notifyXXX()时RecyclerView的UI刷新的逻辑...