JNI 编程上手指南之字符串处理
引子
JNI 把 Java 中的对象当作一个 C 指针传递到本地方法中,这个指针指向 JV...
Android FFmpeg 音视频开发极简教程
Android FFmpeg 音视频开发系列连载
FFmpeg 开发(01):FFmpeg 编译和...
Kotlin | Flow数据流的几种使用场景
一 Flow使用注意事项
多个Flow不能放到一个lifecycleScope.launch里去collect{...
Kotlin系列之filter、find、any、map、flatMap、takeWhile、reduce、groupBy常见高阶函数
高阶函数:filter
是一个过滤器,能够通过各种条件过滤出符合该条件的数据。
...
解决插件资源ID与宿主冲突的问题
为什么会冲突?为什么要解决资源id冲突?
首先宿主apk和插件apk是两个不同的ap...
Android理解ANR
1、 前言
在上一篇文章《Android性能优化(六)之卡顿那些事》中,我们提到了卡...
路由架构梳理
本文整理一下WMRouter的基本路由逻辑,并剖析相关路由类的设计。
基本元素
...
Kotlin | 使用vararg可变参数
背景
一般在项目开发中,我们经常会在关键节点上埋点,而且埋点中会增加一些额...
Android设计模式源码解析之模板方法模式
1. 模式介绍
模式的定义
定义一个操作中的算法的框架,而将一些步骤延迟到...
Android 面试之必问Android基础
1,Activity
1.1 生命周期
正常情况系,Activity会经历如下几个阶段:
onCrea...
Android Audio支持Usb 音频设备
背景
最近遇到一些场景,Android 需要支持通话音量下从一些usb外设采集音频数...
Fresco缓存架构分析
本文是Fresco源码分析系列第二篇文章,主要来看一下Fresco中有关图片缓存的内容。
...
kotlin的扩展函数“let、run、also、apply”的作用和区别
记录一下四个扩展函数的区别,使用经常记不住:Kotlin的扩展函数let、run、also、...
Android设计模式源码解析之外观模式(Facade)
1. 模式介绍
模式的定义
外观模式(也成为门面模式)要求一个子系统的外部与...
Android线上bug 通过mapping文件找对应行号
App打包发布应用市场的时候正常点的一般都会加个混淆在打包丢上去吧
由于是线上...
Flutter迭代版本号更改位置
1:打开yaml,找到version,1.0.0是版本号,+后面是code,一般升级更新都使用code去...
Android中的异步消息处理机制
这也是Android中老生常谈的一个话题了,它本身并不是很复杂,可是面试官比较喜欢...
如何将您的应用连接到 Wi-Fi 设备?
随着物联网的发展,将 Android 应用连接到启用 Wi-Fi 的设备越来越普遍。无论您要...

