首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
比较好的技术文档
订阅
buptxs5216
更多收藏集
微信扫码分享
微信
新浪微博
QQ
58篇文章 · 1订阅
Gradle(三) 守护进程
我帮大家翻译过来就是:守护进程是作为后台进程运行的计算机程序,不受交互用户的直接控制。 如果大家对 Java 的线程熟悉的话,肯定知道 Java 的线程也有一个 daomon 的参数,可以将这个线程设置为守护线程,这里的 守护线程的概念和上面的维基百科里的概念一样,运行在后台,…
Kotlin - 属性代理
当代理属性被赋值与访问时,就会输出 Delegate 对象 setValue() 和 getValue() 中的日志,从输出的日志可以看出,thisRef 是代理属性的实例对象,property 是代理属性的包装。可见,属性代理相比单纯的属性操作更加强大,在某些场景下,属性值的…
Kotlin - 函数式编程
这不就是高阶函数的定义吗?是的,不过,函数式编程是一种编程范式,而高阶函数是函数式编程的基本技术,换句话说:函数式编程包括但不限于高阶函数这一种技术,还有闭包、柯里化、偏函数等等。 闭包就是能够读取其他函数内部变量的函数。对于支持函数式编程的语言来说,可以在一个函数 A 内部再…
Kotlin - 高阶函数与函数引用
其中 forEach 要求传入一个函数类型为 (T) -> Unit 的函数作为参数(即带一个参数且无返回值),而 filter 则是要求函数类型为 (T) -> Boolean 的函数作为参数(即带一个参数且返回值是 Boolean 类型)。 这里要搞明白什么是函数类型?我们…
[Gradle] Gradle 自定义 Configuration
Android 开发中,我们都知道引入依赖是这样的。 那其中的 implementation 就被称之为 configuration 了。 而根据 官方文档 ,configruation 支持自定义。 比如有这么一个场景,我需要在工程中添加一些 ffmpeg 的 so 文件用于…
Android 重构 | 持续优化统一管理 Gradle
借着韩哥哥要求重构的机会,正好好好回顾下以前遗忘/忽略的知识点。 支持跳转等常规操作。 最重要的,依然是便于维护。 从最初的创建 config.gradle 到现在的 basic_depend.gradle,虽说今天更比昨天强,但是依然不是很满意。 ext 方式虽然是 Goog…
Android端简单易用的SPI框架 —— SPA
SPI(Service Provider Interface)是Java提供的一种动态服务发现机制。通过SPI机制,我们可以直接跨模块查找到想要的接口实现类,从而避免不必要的模块间依赖,降低模块之间的耦合性。这对Android组件间通信非常重要的意义。试想一下如果有一个组件能提…
Android 组件化最佳实践
在项目的开发过程中,随着开发人员的增多及功能的增加,如果提前没有使用合理的开发架构,那么代码会越来臃肿,功能间代码耦合也会越来越严重,这时候为了保证项目代码的质量,我们就必须进行重构。 比较简单的开发架构是按照功能模块进行拆分,也就是用 Android 开发中的 module …
Android 8.0 源码分析 (一) SystemServer 进程启动
我们熟知一般 Android 工程师都是基于 SDK 在应用层上开发,不会涉及系统源码,但是如果你想往底层发展,或者深入插件化、Framework 系统层等开发工作,如果不了解 Android 源码可是不行的,那么接下来我基于自己的理解跟学习来记录跟 Android 开发息息相…
一篇文章助你入门FFmpeg编程
1. 前言 FFmpeg是一个强大的音视频处理库,但是通常接触时以命令形式较多。本篇文章讲了FFmpeg相关api的使用,尤其是它强大的过滤器filter库的使用。 本项目主要素材为five hundred mile吉他,尤克里里,鼓等4个音轨素材。实现多音轨实时播放,多音轨音…