Toggle navigation
Piasy
主页
RxJava
Piasy 的小专栏
全部文章
关于我
标签
有点意思
Tags
keep hungry keep foolish
Java
安卓开发
性能优化
构建
BUCK
RAD
PoC
踩坑之旅
复盘
MISC
Reactive eXtention
原理剖析
奇技淫巧
实时多媒体
TDD
RecyclerView
Dagger2
架构
OpenGL
拆轮子
基础知识
逆向工程
WebRTC
NDK
信息安全
网络
多平台
管理
Janus
OWT
AvConf
Hackathon
mediasoup
AI
Java
再谈 Java 深浅拷贝
深入Java深浅拷贝、immutable、unmodifiable
安卓开发
安卓 OpenGL ES 2.0 完全入门(三):2D 纹理的裁剪、翻转、旋转、缩放
安卓基础:App 各大组件
安卓基础:事件传递及滑动冲突的处理
安卓基础:View 绘制
Java 基础:动态代理、多态原理
安卓基础:task, launchMode, Intent flag
安卓基础:Activity/Fragment 销毁与重建
安卓基础:Activity/Fragment 生命周期
Java 基础:ThreadLocal,HashMap
安卓基础:Handler
OkBuck,一周年啦!
拆轮子系列:拆 RxJava
RESTful 安卓网络层解决方案(三):API model 与 Business model 分离
RESTful 安卓网络层解决方案(二):空 JSON 和 API Error 解析
RESTful 安卓网络层解决方案(一):概览与认证实现方案
拆轮子系列:拆 Okio
拆轮子系列:拆 OkHttp
拆轮子系列:拆 Retrofit
安卓 OpenGL ES 2.0 完全入门(二):矩形、图片、读取显存等
安卓 OpenGL ES 2.0 完全入门(一):基本概念和 hello world
完美的安卓 model 层架构(下)
完美的安卓 model 层架构(上)
BUCK 与 RetroLambda 兼容性解决方案
Dagger2 Scope 注解能保证依赖在 component 生命周期内的单例性吗?
RelativeLayout, FlexLayout 及其他 layout 性能对比
深入理解 RecyclerView 系列之二:ItemAnimator
打造鲁棒的安卓APP,从此告别 Activity Not Found 错误和 Activity State Loss 错误
深入理解 RecyclerView 系列之一:ItemDecoration
这可能是目前最详细的安卓task, launchMode, intent flag测试分析与总结了
从 A/Looper: Could not create epoll instance. errno=24 错误浅谈解决各种 bug 的思路
(可能是)目前最全面的Android Espresso配置指南了
手把手OkBuck教程:应用到AndroidTDDBootStrap项目(续)
解决A/libc Fatal signal 11 (SIGSEGV)错误,这可能是目前最鲁棒的Android声音录制和播放封装库了
完美解决安卓上层输入控件随键盘弹起,下层 UI 变形问题
OkBuck, underneath the hood
RxScreenshotDetector:Android 截屏检测
RxComboDetector:Android view点击“连击”检测
安卓通知栏消息点击启动Activity时“Intent flag残留”问题
Android Runtime Permission测试
手把手OkBuck教程:应用到AndroidTDDBootStrap项目
12行配置从Android Studio + Gradle构建体系开始使用facebook的BUCK构建体系
APP启动加速,以及使用FSA来处理状态转换避免Activity state loss
性能优化
WebRTC Native 源码导读(四):VideoCRE 与内存抖动优化
记一次 YUV 图像翻转的性能优化
RelativeLayout, FlexLayout 及其他 layout 性能对比
APP启动加速,以及使用FSA来处理状态转换避免Activity state loss
构建
12行配置从Android Studio + Gradle构建体系开始使用facebook的BUCK构建体系
BUCK
OkBuck,一周年啦!
BUCK 与 RetroLambda 兼容性解决方案
手把手OkBuck教程:应用到AndroidTDDBootStrap项目(续)
OkBuck, underneath the hood
手把手OkBuck教程:应用到AndroidTDDBootStrap项目
12行配置从Android Studio + Gradle构建体系开始使用facebook的BUCK构建体系
RAD
手把手OkBuck教程:应用到AndroidTDDBootStrap项目(续)
手把手OkBuck教程:应用到AndroidTDDBootStrap项目
PoC
Dagger2 Scope 注解能保证依赖在 component 生命周期内的单例性吗?
深入理解 RecyclerView 系列之一:ItemDecoration
这可能是目前最详细的安卓task, launchMode, intent flag测试分析与总结了
Android Runtime Permission测试
踩坑之旅
从 A/Looper: Could not create epoll instance. errno=24 错误浅谈解决各种 bug 的思路
安卓通知栏消息点击启动Activity时“Intent flag残留”问题
复盘
2019,太难了
我在鼎点这一年
我们需要怎样的工程师,我们需要成为怎样的工程师?
YetAnotherDream
Hey 2016
MISC
那些年,我们被人窃取过的博客
RxScreenshotDetector:Android 截屏检测
RxComboDetector:Android view点击“连击”检测
Reactive eXtention
RxJava 复杂场景(二):调度
RxJava 复杂场景(一):高级缓存
解决A/libc Fatal signal 11 (SIGSEGV)错误,这可能是目前最鲁棒的Android声音录制和播放封装库了
RxScreenshotDetector:Android 截屏检测
RxComboDetector:Android view点击“连击”检测
原理剖析
拆轮子系列:拆 RxJava
拆轮子系列:拆 Okio
拆轮子系列:拆 OkHttp
拆轮子系列:拆 Retrofit
OkBuck, underneath the hood
奇技淫巧
完美解决安卓上层输入控件随键盘弹起,下层 UI 变形问题
实时多媒体
Hack WebRTC 38316
Android 使用 OpenSSL 库
封装 libdatachannel Android 库
mediasoup 快速入门
Hack WebRTC 32599
在 WebRTC 项目外单步调试 WebRTC.framework 里的代码
OWT Server 进阶(三):RTCP 流程
RTP:Audio and video for the Internet 中文版阅读笔记
WebRTC 只编译 DataChannel
OWT Server 集群部署和扩缩容
使用 KITE 进行 WebRTC 自动化测试
WebRTC H.264 编码的 Profile 和 Level
OWT Server 进阶(一):音视频数据转发和录制流程
基于 Kotlin multiplatform 的多平台 WebRTC SDK
再探 H.264:句法元素详解
OWT Server 快速入门
WebRTC Native 源码导读(十五):RTP H.264 封包与解包
WebRTC Native 源码导读(十四):API 概览
为 janus-pp-rec 增加视频旋正功能
WebRTC Native 源码导读(十三):音频设备模块 ADM
macOS 下单步调试 WebRTC Android & iOS
WebRTC Native 源码导读(十二):P2P 连接过程完全解析
WebRTC Native 源码导读(十一):混音
WebRTC Native 源码导读(十):视频数据 native 层之旅
WebRTC Native 源码导读(九):iOS 视频硬编码实现分析
WebRTC Native 源码导读(八):iOS 视频渲染实现分析
WebRTC Native 源码导读(七):iOS 相机采集实现分析
YUV 数据格式完全解析
WebRTC Native 源码导读(六):iOS P2P 连接过程和 DataChannel 使用
我需要知道:H.264
WebRTC Native 源码导读(五):安卓 P2P 连接过程和 DataChannel 使用
WebRTC Native 源码导读(四):VideoCRE 与内存抖动优化
WebRTC Native 源码导读(三):安卓视频硬编码实现分析
WebRTC Native 源码导读(二):安卓预览实现分析
WebRTC Native 源码导读(一):安卓相机采集实现分析
开箱即用的 WebRTC 开发环境
解决A/libc Fatal signal 11 (SIGSEGV)错误,这可能是目前最鲁棒的Android声音录制和播放封装库了
TDD
RxJava 复杂场景(一):高级缓存
(可能是)目前最全面的Android Espresso配置指南了
RecyclerView
深入理解 RecyclerView 系列之二:ItemAnimator
深入理解 RecyclerView 系列之一:ItemDecoration
Dagger2
Dagger2 Scope 注解能保证依赖在 component 生命周期内的单例性吗?
架构
RESTful 安卓网络层解决方案(三):API model 与 Business model 分离
RESTful 安卓网络层解决方案(二):空 JSON 和 API Error 解析
RESTful 安卓网络层解决方案(一):概览与认证实现方案
完美的安卓 model 层架构(下)
完美的安卓 model 层架构(上)
OpenGL
安卓 OpenGL ES 2.0 完全入门(三):2D 纹理的裁剪、翻转、旋转、缩放
WebRTC Native 源码导读(二):安卓预览实现分析
安卓 OpenGL ES 2.0 完全入门(二):矩形、图片、读取显存等
安卓 OpenGL ES 2.0 完全入门(一):基本概念和 hello world
拆轮子
拆轮子系列:拆 RxJava
拆轮子系列:拆 Okio
拆轮子系列:拆 OkHttp
拆轮子系列:拆 Retrofit
基础知识
RTP:Audio and video for the Internet 中文版阅读笔记
再探 H.264:句法元素详解
我需要知道:编译、链接、装载、运行
我需要知道:H.264
安卓基础:App 各大组件
安卓基础:事件传递及滑动冲突的处理
安卓基础:View 绘制
Java 基础:动态代理、多态原理
安卓基础:task, launchMode, Intent flag
安卓基础:Activity/Fragment 销毁与重建
安卓基础:Activity/Fragment 生命周期
Java 基础:ThreadLocal,HashMap
安卓基础:Handler
逆向工程
Frida Android hook 初体验
WebRTC
Hack WebRTC 38316
封装 libdatachannel Android 库
mediasoup 快速入门
Hack WebRTC 32599
在 WebRTC 项目外单步调试 WebRTC.framework 里的代码
OWT Server 进阶(三):RTCP 流程
WebRTC 只编译 DataChannel
OWT Server 集群部署和扩缩容
使用 KITE 进行 WebRTC 自动化测试
WebRTC H.264 编码的 Profile 和 Level
OWT Server 进阶(一):音视频数据转发和录制流程
OWT Server 快速入门
WebRTC Native 源码导读(十五):RTP H.264 封包与解包
WebRTC Native 源码导读(十四):API 概览
为 janus-pp-rec 增加视频旋正功能
WebRTC Native 源码导读(十三):音频设备模块 ADM
macOS 下单步调试 WebRTC Android & iOS
WebRTC Native 源码导读(十二):P2P 连接过程完全解析
WebRTC Native 源码导读(十一):混音
WebRTC Native 源码导读(十):视频数据 native 层之旅
WebRTC Native 源码导读(九):iOS 视频硬编码实现分析
WebRTC Native 源码导读(八):iOS 视频渲染实现分析
WebRTC Native 源码导读(七):iOS 相机采集实现分析
WebRTC Native 源码导读(六):iOS P2P 连接过程和 DataChannel 使用
使用 WebRTC 静态库进行 NDK 开发
WebRTC Native 源码导读(五):安卓 P2P 连接过程和 DataChannel 使用
WebRTC Native 源码导读(四):VideoCRE 与内存抖动优化
WebRTC Native 源码导读(三):安卓视频硬编码实现分析
WebRTC Native 源码导读(二):安卓预览实现分析
WebRTC Native 源码导读(一):安卓相机采集实现分析
开箱即用的 WebRTC 开发环境
NDK
使用 WebRTC 静态库进行 NDK 开发
Native 层校验 APP 签名,以及 JNI 异常处理
安卓 NDK 入门指南
信息安全
Native 层校验 APP 签名,以及 JNI 异常处理
网络
WebRTC Native 源码导读(十五):RTP H.264 封包与解包
WebRTC Native 源码导读(十二):P2P 连接过程完全解析
WebSocket Go
WebRTC Native 源码导读(六):iOS P2P 连接过程和 DataChannel 使用
WebRTC Native 源码导读(五):安卓 P2P 连接过程和 DataChannel 使用
多平台
封装、发布一个腾讯 mars xlog 的 KMP lib(续):更多平台
封装、发布一个腾讯 mars xlog 的 KMP lib
再探 Kotlin multiplatform
基于 Kotlin multiplatform 的多平台 WebRTC SDK
移动客户端跨平台开发方案探索
管理
谈谈软件开发管理
Janus
为 janus-pp-rec 增加视频旋正功能
OWT
OWT Server 进阶(三):RTCP 流程
VSCode 远程调试 Docker 里的 OWT Server
OWT Server 集群部署和扩缩容
OWT Server 进阶(一):音视频数据转发和录制流程
OWT Server 快速入门
AvConf
2020 51 Hackathon
基于 Kotlin multiplatform 的多平台 WebRTC SDK
Hackathon
2020 51 Hackathon
mediasoup
mediasoup 快速入门
AI
LLM 初体验