# hanpfei-documents **Repository Path**: wolfcs/hanpfei-documents ## Basic Information - **Project Name**: hanpfei-documents - **Description**: No description available - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-09-11 - **Last Updated**: 2025-11-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # hanpfei-documents ## 介绍 博客文章。 ## 音视频多媒体开发 [替换 Linux 系统 GNOME 桌面环境自带录屏功能](./source/multimedia/linux_screencast.md) [ALSA 音频 API 使用入门](./source/multimedia/alsa-audio.md) [Alsa UCM](./source/multimedia/alsa_ucm.md) [ALSA 用例配置](./source/multimedia/alsa_ucm_conf.md) [Tinyalsa PCM API 实现深度剖析](./source/multimedia/tinyalsa_pcm_api_implementation.md) [alsa-lib 插件 dsnoop 实现简单分析](./source/multimedia/alsa_lib_plugin_dsnoop_impl.md) [Linux GNOME 桌面系统音频设置实现](./source/multimedia/linux_gnome_desktop_audio_settings.md) [PipeWire 设计](./source/multimedia/pipewire_design_translation.md) [PipeWire 简介](./source/multimedia/pipewire_introduction.md) [PipeWire:Linux 的音频/视频总线](./source/multimedia/pipewire_the_linux_audio_video_bus_translation.md) [深入 PipeWire](./source/multimedia/pipewire_under_the_hood_translation.md) **PipeWire 音频设计与实现分析** * [介绍](./source/multimedia/pw_impl_1st_intro.md) * [SPA 插件](./source/multimedia/pw_impl_2nd_spa_plugin.md) * [日志子系统](./source/multimedia/pw_impl_3rd_log.md) * [原生 IPC 协议实现](./source/multimedia/pw_impl_4th_native_ipc.md) * [音频录音流启动过程分析](./source/multimedia/pw_impl_5th_audio_record_stream_startup.md) * [音频设备管理](./source/multimedia/pw_impl_6th_audio_device_management.md) * [回声消除的实现](./source/multimedia/pw_impl_7th_aec.md) **PulseAudio 设计和实现分析** * [PulseAudio 设计和实现浅析](./source/multimedia/pulse_audio_design_and_impl.md) * [Linux 平台 PulseAudio 音频播放数据通路 I](./source/multimedia/pulse_audio_data_pipeline_design_and_impl_I.md) * [Linux 平台 PulseAudio 音频播放数据通路 II](./source/multimedia/pulse_audio_data_pipeline_design_and_impl_II.md) * [Linux 蓝牙音频软件栈实现分析](./source/multimedia/bluetooth_audio_software_stack_analysis.md) * [Linux 系统蓝牙音频服务实现分析](./source/multimedia/linux_bluetooth_audio_sys_analysis.md) **GStreamer 设计和实现分析** * [GStreamer 的调试工具](./source/multimedia/gstreamer_debug_tools.md) * [GStreamer 入门 - Hello,World](./source/multimedia/gstreamer_tutorial.md) **VLC 音频设计与实现分析** * [VLC 插件加载管理分析](./source/multimedia/vlc_plugins_load_management.md) * [VLC 插件的使用](./source/multimedia/vlc_plugins_use.md) * [VLC 播放的音视频数据处理流水线搭建](./source/multimedia/vlc_audio_data_pipeline.md) **Android 音频系统实现分析** * [Android AAudio 的实现分析](./source/multimedia/android_aaudio_implementation.md) * [Android 中的混音器 AudioMixer 实现分析](./source/multimedia/android_audio_audiomixer.md) * [Android 中打开音频流所用的配置](./source/multimedia/android_audio_config_of_output_device.md) * [Audio HAL 提供的操作](./source/multimedia/android_audio_hal_operations.md) * [Android Audio HAL 服务](./source/multimedia/android_audio_hal_service.md) * [Android 中 libnbaio 库的设计和实现](./source/multimedia/android_audio_libnbaio.md) * [Android 音频设备信息加载](./source/multimedia/android_audio_load_device_info.md) * [Android Automotive 调节音量的过程](./source/multimedia/android_automotive_audio_volume_adjust.md) * [Android Java 音频采集 AudioRecord](./source/multimedia/android_java_audiorecord.md) * [Android Java 播放音频 AudioTrack](./source/multimedia/android_java_audiotrack.md) * [Android 中的跨进程数据块传递](./source/multimedia/android_transfer_data_block_between_process.md) * [核心 Android 调节音量的过程](./source/multimedia/android_core_audio_system_adjust_volume.md) **WebRTC 实现分析** * [向 WebRTC 项目贡献代码](./source/multimedia/webrtc_contributing.md) * [WebRTC 的传输协议](./source/multimedia/webrtc_transport_protocol.md) * [WebRTC NetEQ](./source/multimedia/webrtc_neteq.md) * [WebRTC 的平滑发送](./source/multimedia/webrtc_pacer.md) * [Windows 平台编译 WebRTC](./source/multimedia/webrtc_build_for_windows.md) * [在 Mac 上为 Android 编译 WebRTC](./source/multimedia/webrtc_build_android_on_mac.md) * [WebRTC 中的基本音频处理操作](./source/multimedia/webrtc_audio_operations.md) * [WebRTC 的音频处理流水线](./source/multimedia/webrtc_audio_pipeline.md) * [WebRTC Audio 接收和发送的关键过程](./source/multimedia/webrtc_audio_receiving_and_sending.md) * [WebRTC 中收集音视频编解码能力](./source/multimedia/webrtc_gather_av_codec.md) * [WebRTC Linux ADM 实现中的符号延迟加载机制](./source/multimedia/webrtc_adm_latebinding.md) * [WebRTC Audio Encoder/Decoder Factory 的实现](./source/multimedia/webrtc_audio_encoder_decoder_impl.md) * [WebRTC 的音频网络对抗概述](./source/multimedia/./source/multimedia/webrtc_audio_network_adapter_overview.md) * [WebRTC 的音频弱网对抗之 NACK](./source/multimedia/webrtc_audio_network_adapter_nack.md) * [WebRTC 媒体数据传输控制之平滑发送实现](./source/multimedia/webrtc_pacer_implementation.md) * [WebRTC 一对一语音通话中音频端到端分段延迟分析](./source/multimedia/webrtc_audio_delay_analysis.md) * [WebRTC 的 log 系统实现分析](./source/multimedia/webrtc_rtc_base_log.md) **live555 源码分析** * [无需翻墙的 WebRTC 源码下载](./source/multimedia/fetch_webrtc_source_code.md) * [live555 源码分析:简介](./source/multimedia/live555_src_analysis_introduction.md) * [live555 源码分析:基础设施](./source/multimedia/live555_src_analysis_infrasture.md) * [live555 源码分析:DESCRIBE 的处理](./source/multimedia/live555_src_analysis_describe.md) * [live555 源码分析:MediaSever](./source/multimedia/live555_src_analysis_mediaserver.md) * [live555 源码分析:PLAY 的处理](./source/multimedia/live555_src_analysis_play.md) * [live555 源码分析:RTSPServer](./source/multimedia/live555_src_analysis_rtspserver.md) * [live555 源码分析:RTSPServer 组件结构](./source/multimedia/live555_src_analysis_rtspserver_arch.md) * [live555 源码分析:ServerMediaSession](./source/multimedia/live555_src_analysis_servermediasession.md) * [live555 源码分析:SETUP 的处理](./source/multimedia/live555_src_analysis_setup.md) * [live555 源码分析:播放启动](./source/multimedia/live555_src_analysis_start_streaming.md) * [live555 源码分析:子会话 SDP 行生成](./source/multimedia/live555_src_analysis_subsession_sdp.md) * [live555 源码分析:子会话 SETUP](./source/multimedia/live555_src_analysis_subsession_setup.md) * [Wireshark 抓包分析 RTSP/RTP/RTCP 基本工作过程](./source/multimedia/live555_src_analysis_rtsp_rtp_rtcp_wireshark.md) [mediasoup-client 和 libmediasoupclient 指南](./source/multimedia/mediasoup_client_and_libmediasoupclient_guideline.md) [mediasoup-demo 运行实战](./source/multimedia/mediasoup_demo_in_action.md) [Ogg 封装格式版本 0](./source/multimedia/ogg_file_format.md) [RTC 中音频数据处理的时序问题](./source/multimedia/rtc_audio_timing.md) [RTC 技术知识体系](./source/multimedia/rtc_knowledge_architecture.md) [基于 FFmpeg 的简单播放器实现](./source/multimedia/ffmpeg_media_player.md) [原始 H.264 码流播放](./source/multimedia/h264_play.md) [使用 ortp 发送原始 H.264 码流](./source/multimedia/h264_send_with_ortp.md) ## Linux 内核开发 [Linux内核工程师是怎么步入内核殿堂的?](./source/_posts/linux_kernel_start.md) [设备树规范](./source/linux_kernel/devicetree_specification.md) [Linux 内核设备树和平台音频设备驱动程序](./source/linux_kernel/devicetree_and_platform_audio_driver.md) [Linux 内核设备树时钟绑定](./source/linux_kernel/devicetree_clock-bindings.md) [Linux 和设备树](./source/linux_kernel/devicetree_usage_model.md) [Linux 内核设备驱动程序的IO寄存器访问 (上)](./source/linux_kernel/linux_kernel_regmap_impl_0.md) [Linux 内核设备驱动程序的IO寄存器访问 (下)](./source/linux_kernel/linux_kernel_regmap_impl_1.md) [Android Linux 内核音频 PCI/HDA 设备驱动实现分析](./source/automotive/android_linux_kernel_pci_hda_driver.md) [时钟抖动定义和测量方法](./source/linux_kernel/clock-jitter-definitions-and-measurement-methods.md) **IOMMU 和 ARM SMMU** * [IOMMU 和 ARM SMMU 介绍](./source/linux_kernel/iommu-smmu-intro.md) * [SMMU 软件指南](./source/linux_kernel/arm_smmu_software_guide.md) * [深入浅出 Linux 中的 ARM IOMMU SMMU I](./source/linux_kernel/linux_smmuv3_driver_implementation_1.md) * [深入浅出 Linux 中的 ARM IOMMU SMMU II](./source/linux_kernel/linux_smmuv3_driver_implementation_2.md) * [深入浅出 Linux 中的 ARM IOMMU SMMU III](./source/linux_kernel/linux_smmuv3_driver_implementation_3.md) ### **Linux 内核音频开发** [ALC5651 硬件内部结构深度剖析](./source/linux_kernel/alc5651_analysis.md) [音频时钟](./source/linux_kernel/clocking.md) [ALSA Compress-Offload API](./source/linux_kernel/linux_kernel_alsa_compress-offload.md) [Linux ALSA 核心简单分析](./source/linux_kernel/linux_kernel_alsa_core0.md) [深入浅出 Linux ALSA Compress-Offload 驱动核心](./source/linux_kernel/linux_kernel_alsa_core_compress.md) [Linux 内核音频子系统调试](./source/linux_kernel/linux_kernel_alsa_debug.md) [Linux 内核音频数据传递主要流程](./source/linux_kernel/linux_kernel_alsa_pcm_data_flow.md) **Linux 内核 ASoC 驱动开发** * [ALSA SoC 层概述](./source/linux_kernel/asoc_overview.md) * [ASoC Codec 类驱动程序](./source/linux_kernel/asoc_codec.md) * [ASoC 数字音频接口 (DAI)](./source/linux_kernel/asoc_dai.md) * [便携式设备的动态音频电源管理](./source/linux_kernel/asoc_dapm.md) * [动态 PCM](./source/linux_kernel/asoc_dpcm.md) * [ASoC 插孔检测](./source/linux_kernel/asoc_jack.md) * [ASoC 机器驱动程序](./source/linux_kernel/asoc_machine.md) * [ASoC 平台驱动程序](./source/linux_kernel/asoc_platform.md) * [音频弹出和点击](./source/linux_kernel/asoc_pops-clicks.md) * [为 ALSA dapm 创建 codec 到 codec 的链路](./source/linux_kernel/asoc_codec-to-codec.md) **Linux 内核音频子系统实现分析** * [Linux 内核 ASoC 基本数据结构](./source/linux_kernel/linux_kernel_asoc_basic_data_structure.md) * [Linux 内核 ASoC DMA 引擎驱动程序](./source/linux_kernel/linux_kernel_asoc_dma_engine_driver.md) **Linux 内核 ADSP 驱动开发** * [高通 AudioReach 框架简介](./source/linux_kernel/intro_to_audioreach.md) * [SOF项目简介](./source/linux_kernel/intro_to_sof_project.md) * [ALSA 拓扑](./source/linux_kernel/ALSA_topology.md) * [ALSA 拓扑接口](./source/linux_kernel/linux_kernel_audio_topology_conf_syntax.md) * [SOF 拓扑](./source/linux_kernel/sof_topology.md) * [SOF 拓扑 2.0](./source/linux_kernel/sof_topology2.md) * [从源码构建 SOF 工具链和 SOF](./source/linux_kernel/sof_build-from-scratch.md) * [Xtensa 仿真器 (xt-run)](./source/linux_kernel/xtrun.md) ## C/C++ 开发 [在C代码调用C++代码](./source/_posts/call_cpp_code_in_c_code.md) [C++ 对象内存布局](./source/_posts/memory_layout_of_cpp_object.md) [C++ 智能指针实现分析](./source/c_cpp_dev/smart_pointer_impl.md) [C++ 类对象的强制类型转换](./source/c_cpp_dev/type_cast_in_cpp.md) [C++ lambda 捕获模式与右值引用](./source/_posts/cpp_lambda_capture_mod_and_rref.md) [Linux 下的 AddressSanitizer](./source/_posts/address_sanitizer_on_linux.md) [C++ WebSocket 库](./source/_posts/cpp_websocket.md) [C/C++ 命令行参数解析库选型](./source/_posts/c_cpp_args_parsing.md) [Googletest 实现简要分析](./source/_posts/googletest_impl_analysis.md) [Googletest 入门](./source/_posts/googletest_primer.md) [ptrace 系统调用](./source/_posts/ptrace.md) [inotify](./source/c_cpp_dev/inotify.md) [futex](./source/futex.md) [ELF 文件格式](./source/_posts/elf_format.md) [Harfbuzz API 基本用法](./source/_posts/harfbuzz_api_basic_usage.md) [Linux 权能综述](./source/_posts/linux-capabilities-overview.md) [ASAN 找不到 symbolizer 问题的分析与解决](./source/c_cpp_dev/asan_symbolizer_issue.md) [记 QT 应用开发中的一个二进制兼容性问题](./source/c_cpp_dev/bin_compatibility_in_qt_cpp.md) [Linux 平台 C/C++ 代码中设置线程名](./source/c_cpp_dev/set_thr_name_in_lniux_c_cpp.md) [将应用打包为 Snaps](./source/c_cpp_dev/snaps_pack.md) [strace 哇,好多系统调用](./source/c_cpp_dev/strace-wow-much-syscall.md) [用 70 行代码给你自己写一个 strace](./source/c_cpp_dev/write-yourself-an-strace-in-70-lines-of-code.md) ## 网络技术 [Android 根证书管理与证书验证](./source/_posts/android_cert_mgr_and_verify.md) [Android 的 HTTPS 证书过期异常](./source/_posts/android_certificate_expired_issue.md) [Android TLS 版本过低造成的问题](./source/_posts/android_tls_version_issue.md) [非对称加密与证书](./source/_posts/asymmetric_encryption_and_certificate.md) [读《Android 安全架构深究》](./source/_posts/android_security_internals.md) [OSI 网络协议模型为什么是 7 层?](./source/_posts/osi_model.md) [Traceroute 原理](./source/_posts/traceroute_implementation.md) [WiFi 热点共享设置](./source/_posts/wifi_shard.md) [Wireshark源码安装](./source/_posts/wireshark_install_with_source_code.md) [网络优化实践探索文章](./source/_posts/Networking_optimization_study.md) [QUIC最新进展及文档整理](./source/_posts/quic_2019_03_27.md) [QUIC及HTTP2相关资料整理](./source/_posts/quic_and_https_articles.md) [QUIC 之类的可靠传输协议](./source/_posts/reliable_transport_protocol.md) [HTTP/2 流量调试](./source/_posts/http2_debug.md) [初始DNS服务器地址是哪里来的?](./source/_posts/initial_dns_server_addr.md) [标准STUN判断NAT类型的过程及改进](./source/_posts/std_stun_nat_type.md) [TCP异常终止](./source/_posts/tcp_unexpected_termination.md) [QUIC 之路](./source/_posts/the-road-to-quic.md) [使用QUIC](./source/_posts/using_quic.md) [通过 HTTPS 和 SSL 确保安全](./source/_posts/security-ssl.md) [为curl命令启用HTTP2支持](./source/_posts/curl_for_HTTP2_on_ubuntu.md) **UDT协议实现分析** * [UDT协议实现分析——UDT初始化和销毁](./source/_posts/udt_protocol_analysis_001_initialization_and_destroy.md) * [UDT协议实现分析——UDT Socket的创建](./source/_posts/udt_protocol_analysis_002_creation_of_udt_socket.md) * [UDT协议实现分析——bind、listen与accept](./source/_posts/udt_protocol_analysis_003_bind_listen_and_accept.md) * [UDT协议实现分析——连接的建立](./source/_posts/udt_protocol_analysis_004_establish_connection.md) * [UDT协议实现分析——数据的发送](./source/_posts/udt_protocol_analysis_005_send_data.md) * [UDT协议实现分析——数据发送控制](./source/_posts/udt_protocol_analysis_006_data_send_control.md) ### 协议规范 **HTTP/2 协议规范** * [HTTP/2规范:1. 简介](./source/_posts/1-zh-cn.md) * [HTTP/2规范:2. HTTP/2 协议总览](./source/_posts/2-zh-cn.md) * [HTTP/2规范:3. 启动 HTTP/2](./source/_posts/3-zh-cn.md) * [HTTP/2规范:4. HTTP帧](./source/_posts/4-zh-cn.md) * [HTTP/2规范:5. 流和多路复用](./source/_posts/5-zh-cn.md) * [HTTP/2规范:6. 帧定义](./source/_posts/6-zh-cn.md) * [HTTP/2规范:7. 错误码](./source/_posts/7-zh-cn.md) * [HTTP/2规范:8. HTTP消息交换](./source/_posts/8-zh-cn.md) * [HTTP/2规范:9. 额外的HTTP要求/注意事项](./source/_posts/9-zh-cn.md) * [HTTP/2规范:10. 安全注意事项](./source/_posts/10-zh-cn.md) * [HTTP/2规范:11. IANA 注意事项](./source/_posts/11-zh-cn.md) * [HTTP/2规范:12. 参考文献](./source/_posts/12-zh-cn.md) **WebRTC 中的媒体传输和 RTP 的使用协议规范** * [WebRTC 中的媒体传输和 RTP 的使用](./documents/rfc8834_rtp_in_webrtc.1.md) * [WebRTC 中的媒体传输和 RTP 的使用 II](./documents/rfc8834_rtp_in_webrtc.2.md) **交互式连接建立 (ICE) 的会话描述协议规范** * [交互式连接建立 (ICE) 的会话描述协议 (SDP) 要约/应答过程](./documents/rfc8839_sdp_for_ice.1.md) * [交互式连接建立 (ICE) 的会话描述协议 (SDP) 提议/应答过程 II](./documents/rfc8839_sdp_for_ice.2.md) **交互式连接建立 (ICE) 的会话描述协议规范** * [SDP:会话描述协议](./documents/rfc8866_sdp.1.md) * [SDP:会话描述协议 II](./documents/rfc8866_sdp.2.md) **交互式连接建立 (ICE):一种用于网络地址转换 (NAT) 穿越的协议规范** * [交互式连接建立 (ICE):一种用于网络地址转换 (NAT) 穿越的协议](./documents/rtc8445_ice.1.md) * [交互式连接建立 (ICE):一种用于网络地址转换 (NAT) 穿越的协议 II](./documents/rtc8445_ice.2.md) * [交互式连接建立 (ICE):一种用于网络地址转换 (NAT) 穿越的协议 III](./documents/rtc8445_ice.3.md) [应用层协议协商(ALPN)规范(RFC7301)](./source/_posts/alpn-spec.md) [BitTorrent协议规范](./source/_posts/bep_0003.md) [QUIC 丢包检测和拥塞控制](./source/_posts/draft-ietf-quic-recovery.md) [QUIC:基于 UDP 的多路复用安全传输协议](./source/_posts/draft-ietf-quic-transport.md) [HPACK:HTTP/2的首部压缩 (RFC7541)](./source/_posts/hpack-spec.md) [HTTP2规范(RFC7540)](./source/_posts/http2-spec.md) [QUIC加密协议](./source/_posts/quic_crypto_protocol.md) [QUIC协议规范](./source/_posts/quic_protocol.md) [传输层安全(TLS)下一个协议协商(NPN)扩展](./source/_posts/npn-spec.md) [会话描述协议](./source/_posts/sdp.md) [H.264 视频的 RTP 载荷格式](./source/_posts/h264_on_rtp.md) ## 虚拟化 **Anbox 实现分析分析** * [Anbox 实现分析 1:程序入口](./source/_posts/anbox_analysis001_entrance.md) * [Anbox 实现分析 2:I/O 模型](./source/_posts/anbox_analysis002_io_model.md) * [Anbox 实现分析 3:会话管理器与容器管理器的通信](./source/_posts/anbox_analysis003_sessionmanager_and_containermanager.md) [Anbox](./source/_posts/anbox.md) [运行 Anbox](./source/_posts/run_anbox.md) [Anbox 容器管理服务](./source/_posts/anbox_container_manager_service.md) [Anbox LXC](./source/_posts/anbox_lxc.md) [Android 硬件 OpenGL ES 模拟设计概述](./source/_posts/opengles_android_emulation.md) [QEMU 中音频模拟如何工作](./source/_posts/qemu_audio.md) [Android QEMU 高速管道](./source/_posts/android_qemu_pipe.md) [Android 模拟器下载、编译及调试](./source/_posts/android_emulator_dev.md) [Android QEMU 模拟器移植 - 编译](./source/_posts/android_qemu_poting.md) [QEMU 构建系统架构](./source/_posts/qemu_build_system.md) [QEMU 网络虚拟化](./source/_posts/qemu_network_emulation.md) [模拟器性能问题分析与解决](./source/_posts/android_adb_performance_issue.md) [如何预编译 Android 模拟器专用内核](./source/_posts/qemu_android_kernel.md) [为 Android 模拟器编译定制版内核](./source/automotive/android_build_custom_kernel.md) [LXC C API 使用](./source/_posts/lxc_c_api_usage.md) [Ubuntu LXC](./source/_posts/ubuntu_lxc.md) [adb standalone](./source/_posts/adb-standalone.md) [关于 ADB 实现的说明](./source/_posts/adb_overview.md) [Android AVD](./source/_posts/android_avd.md) [在 Linux 上如何挂载 qcow2 磁盘镜像](./source/_posts/qcow2_on_linux.md) ## OpenCV开发 [OpenCV_001-在 Ubuntu 上搭建 OpenCV 开发环境](./source/opencv_tutorial/opencv_001_set_env.md) [OpenCV_002-图像操作入门](./source/opencv_tutorial/opencv_002_getting_started_with_images.md) [OpenCV_003-视频入门](./source/opencv_tutorial/opencv_003_getting_started_with_videos.md) [OpenCV_004-OpenCV 中的绘制功能](./source/opencv_tutorial/opencv_004_drawing_functions_in_opencv.md) [OpenCV_005-OpenCV 鼠标作为画笔](./source/opencv_tutorial/opencv_005_mouse_as_a_paint_brush.md) [OpenCV_006-OpenCV 轨迹栏作为调色板](./source/opencv_tutorial/opencv_006_trackbar_as_the_color_palette.md) [OpenCV_007-OpenCV 中的图像基本操作](./source/opencv_tutorial/opencv_007_basic_operations_on_images.md) [OpenCV_008-OpenCV 中的图像算术运算](./source/opencv_tutorial/opencv_008_arithmetic_operations_on_images.md) [OpenCV 中的图像处理 001_改变色彩空间](./source/opencv_tutorial/opencv_009_image_processing_001.md) [OpenCV 中的图像处理 002_图像的几何变换](./source/opencv_tutorial/opencv_009_image_processing_002.md) [OpenCV 中的图像处理 003_图像阈值](./source/opencv_tutorial/opencv_009_image_processing_003.md) [OpenCV 中的图像处理 004_平滑图像](./source/opencv_tutorial/opencv_009_image_processing_004.md) [OpenCV 中的图像处理 005_形态变换](./source/opencv_tutorial/opencv_009_image_processing_005.md) [OpenCV 中的图像处理 006_图像渐变](./source/opencv_tutorial/opencv_009_image_processing_006.md) [OpenCV 中的图像处理 007_Canny 边缘探测](./source/opencv_tutorial/opencv_009_image_processing_007.md) [OpenCV 中的图像处理 008_图像金字塔](./source/opencv_tutorial/opencv_009_image_processing_008.md) [OpenCV 中的图像处理 009_OpenCV 中的轮廓](./source/opencv_tutorial/opencv_009_image_processing_009_1.md) [OpenCV 官方文档的组织结构](./source/opencv_tutorial/opencv_doc_struct.md) ## Android 开发 [一种 Android 用户事件的自适应分发方法](./source/_posts/auto_dispatch_android_event.md) [使用LeakTracer检测android NDK C/C++代码中的memory leak](./source/_posts/memory_leak_check_with_leaktracer_in_ndk_cpp.md) [Simpleperf介绍](./source/_posts/Simpleperf_Introduction.md) [使用 Simpleperf 分析本地代码性能](./source/_posts/simpleperf_usage.md) [使用 GDB 调试 Android 应用](./source/_posts/android_debug_gdb.md) [Android app native代码性能分析](./source/_posts/android_app_native_perf_analysis.md) [JNI技巧](./source/_posts/jni_tips.md) [Java中System.loadLibrary() 的执行过程](./source/_posts/Java_System_loadLibrary.md) [android下运行时动态链接dlopen()和dlsym()的实现](./source/_posts/dlopen_and_dlsym.md) [android的消息队列机制](./source/_posts/messagequeue_in_android.md) [Android low memory killer 机制](./source/_posts/lowmemorykiller.md) [OpenCV4Android JavaCameraView实现](./source/_posts/javacameraview_in_opencv4android.md) [Android端打开HttpDns的正确姿势](./source/_posts/httpdns_in_android_dev.md) [Android 网络异常](./source/_posts/networking_issues.md) [为 Android 编译 MuPDF 查看器](./source/_posts/android-build-viewer.md) [mupdf-android-viewer 设计与实现浅析](./source/_posts/mupdf_android_viewer.md) [Netty HTTP on Android](./source/_posts/Netty-HTTP-on-Android.md) [第三方推送服务](./source/_posts/pub_push_services.md) [APNs 概述](./source/_posts/apns.md) [在 Android 中使用 OpenGL](./source/_posts/opengl_on_android_with_sv.md) [在android中使用OpenGL](./source/_posts/OpenGL_in_Android.md) [Android 图形驱动初始化](./source/_posts/egl_init_drivers.md) [Android OpenSL ES 对象结构](./source/_posts/opensles_object_architecture.md) **Android 图形开发** * [Android 图形架构](./source/_posts/android-graphics-architecture.md) * [Android 图形系统概述](./source/_posts/android-graphics-system.md) * [Android 图形系统之图形缓冲区分配](./source/_posts/android_graphics_bufferalloc.md) * [Android 图形系统之gralloc](./source/_posts/android_graphics_gralloc.md) * [EGLSurfaces 和 OpenGL ES](./source/_posts/arch-egl-opengl.md) * [游戏循环](./source/_posts/arch-gameloops.md) * [SurfaceFlinger 和 Hardware Composer](./source/_posts/arch-sf-hwc.md) * [Surface 和 SurfaceHolder](./source/_posts/arch-sh.md) * [SurfaceTexture](./source/_posts/arch-st.md) * [SurfaceView 和 GLSurfaceView](./source/_posts/arch-sv-glsv.md) * [TextureView](./source/_posts/arch-tv.md) * [Vulkan](./source/_posts/arch-vulkan.md) * [BufferQueue 和 gralloc](./source/_posts/bufferqueue_and_gralloc.md) * [EGL Context 创建](./source/_posts/egl_context_creation.md) **Chromium net网络库** * [Chromium net design](./source/_posts/chromium-net-design.md) * [Chromium Android编译指南](./source/_posts/chromium_android_build.md) * [Chromium Android开发的Eclipse配置](./source/_posts/chromium_android_development_with_ecliipse.md) * [Chromium GN构建工具的使用](./source/_posts/chromium_gn_build_tool.md) * [chromium net到android平台的移植](./source/_posts/chromium-net-android-porting.md) * [懒人chromium net android移植指南](./source/_posts/lazy-chromium-net-android-porting-guide.md) * [Android平台Chromium net中的代理配置信息获取](./source/_posts/proxy_config_in_android_chromium_net.md) * [Cronet android 设计与实现分析——备选服务机制](./source/_posts/cronet_android_altsvc.md) * [Cronet android设计与实现分析--HTTP请求启动](./source/_posts/cronet_android_design_and_impl-http_request.md) * [Cronet android设计与实现分析--库的初始化](./source/_posts/cronet_android_design_and_impl-init.md) **OkHttp3设计与实现分析** * [OkHttp3连接建立过程分析](./source/_posts/okhttp3_connection.md) * [OkHttp3中的HTTP2首部压缩](./source/_posts/okhttp3_http2_hpack.md) * [OkHttp3 HTTP请求执行流程分析](./source/_posts/okhttp3_proxy_and_request.md) * [OkHttp3中的代理与路由](./source/_posts/okhttp3_proxy_and_route.md) * [OkHttp实现分析之Websocket](./source/_posts/okhttp3_websocket.md) **EventBus设计与实现分析** * [EventBus设计与实现分析——特性介绍](./source/_posts/EventBus_design_and_intro.md) * [EventBus设计与实现分析——事件的发布](./source/_posts/EventBus_design_and_impl-pub_event.md) * [EventBus设计与实现分析——订阅者的注册](./source/_posts/EventBus_design_and_impl-subscribe.md) ## 机器人开发 [Apollo&Cyber RT 入门](./source/automotive/apollo_cyberrt_introduction.md) [LEGO EV3 中执行 VSCode Python 代码过程分析](./source/_posts/lego_execute_vscode_python.md) [LEGO EV3 通信 开发者套件](./source/_posts/lego_ev3_communication_dev_kit.md) [搭建 LEGO EV3 的 PyCharm Python 开发环境](./source/_posts/setting-up-python-pycharm.md) **Lego EV3 开发** * [EV3 直接命令 - 第一课 无为的艺术](./source/_posts/lego_ev3_direct_command_001.md) * [EV3 直接命令 - 第 2 课 让你的 EV3 做点什么](./source/_posts/lego_ev3_direct_command_002.md) * [EV3 直接命令 - 第 3 课 遥控车辆](./source/_posts/lego_ev3_direct_command_003.md) * [EV3 直接命令 - 第 4 课 用两个驱动轮精确地移动小车](./source/_posts/lego_ev3_direct_command_004.md) * [EV3 直接命令 - 第 5 课 从 EV3 的传感器读取数据](./source/_posts/lego_ev3_direct_command_005.md) [Ubuntu 16.04 安装 Gazebo](./source/_posts/install_gazebo_on_ubuntu.md) [Ubuntu 16.04 安装 ROS](./source/_posts/install_ros_on_ubuntu16_04.md) ## 服务器开发 [一文学会Go语言数据库操作](./source/_posts/golang_with_database.md) [Ubuntu 16.04 Tomcat 8安装指南](./source/_posts/Install_Tomcat8_on_Ubuntu16.04.md) [SpringMVC 构建 RESTful Web 服务](./source/_posts/Building_RESTful_Web_Service_With_SpringMVC.md) [Apache HBase 入门](./source/_posts/apache_hbase_tutorial.md) [HBase数据模型](./source/_posts/HBase_data_model.md) [Caddy Web服务器QUIC部署](./source/_posts/caddy_web_server_quic_deployment.md) [Kafka 入门](./source/_posts/kafka_tutorial.md) [基于nginx和uWSGI在Ubuntu上部署Django](./source/_posts/nginx_uWSGI_deply_django_on_ubuntu.md) [ZooKeeper:分布式应用程序的分布式协调服务](./source/_posts/zookeeperOver.md) [ZooKeeper 入门:用 ZooKeeper 协调分布式应用程序](./source/_posts/zookeeperStarted.md) [使用ZooKeeper编程 - 快速教程](./source/_posts/zookeeperTutorial.md) ## 其它 **Breakpad 集成与应用** * [Breakpad 入门](./source/multimedia/breakpad_introduction.md) * [在 Linux 程序中使用 breakpad](./source/multimedia/breakpad_for_linux.md) * [在 Android C/C++ 代码中接入 breakpad](./source/multimedia/breakpad_for_android_cpp.md) * [Breakpad Windows 集成概述](./source/multimedia/breakpad_for_win.md) * [在 Mac 客户端应用程序中使用 breakpad](./source/multimedia/breakpad_for_mac_app.md) * [在 Mac 客户端 C++ 代码中使用 breakpad](./source/multimedia/breakpad_for_mac_cpp.md) **Protocol Buffers 和 FlatBuffers 开发** * [Protobuf开发者指南](./source/_posts/protobuf_developers_Guide.md) * [在C++中使用Protocol Buffers](./source/_posts/protobuf_in_cpp.md) * [在Java中使用Protocol Buffers](./source/_posts/protocol_buffers_in_java.md) * [在Android中使用Protocol Buffers](./source/_posts/protobuf_in_android.md) * [在Android中使用FlatBuffers - 简介](./source/_posts/flatbuffers_in_android_intro.md) * [在Android中使用FlatBuffers](./source/_posts/flatbuffers_in_android.md) * [用FlatBuffers提升Android平台上Facebook的性能](./source/_posts/improving-facebook-s-performance-on-android-with-flatbuffers.md) **PyCairo 教程** * [PyCairo 教程](./source/_posts/pycairo.md) * [PyCairo简介](./source/_posts/pycairo01_introduction.md) * [PyCairo 后端](./source/_posts/pycairo02_backends.md) * [PyCairo 中的基本绘图](./source/_posts/pycairo03_basicdrawing.md) * [PyCairo 中的形状和填充](./source/_posts/pycairo04_shapesfills.md) * [PyCairo渐变](./source/_posts/pycairo05_gradients.md) * [PyCairo 中的剪裁和屏蔽](./source/_posts/pycairo06_clippingmasking.md) * [PyCairo 中的透明度](./source/_posts/pycairo07_transparency.md) * [PyCairo 中的变换](./source/_posts/pycairo08_transformations.md) * [PyCairo 中的文本](./source/_posts/pycairo09_text.md) * [PyCairo 中的图片](./source/_posts/pycairo10_images.md) * [根窗口](./source/_posts/pycairo11_root.md) [Gradle在Ubuntu平台的安装配置](./source/_posts/gradle_install_and_config_on_ubuntu.md) [HiKey960 开发板 android 编译](./source/_posts/hikey960_android_build.md) [Android Things介绍](./source/_posts/introduction_to_android_things.md) [Android Studio 构建](./source/_posts/studio_build.md) [Gerrit代码审核服务器搭建全过程](./source/_posts/gerrit_codereview.md) [GitLab 自动触发 Jenkins 构建](./source/_posts/gitlab_trigger_jenkins_build.md) [Jenkins 在 Tomcat 中的部署及代码静态检查工具集成](./source/_posts/jenkins_deployment.md) [虹桥火车站的卫生间](./source/_posts/bathroom_in_hongqiao.md) [中文技术网站排名](./source/_posts/chinese_tech_site.md) [深度思考](./source/_posts/deep_thinking.md) [做自己喜欢的事](./source/_posts/favourite_things.md) [从工作中得到了什么?](./source/_posts/working.md) [个人项目推广](./source/_posts/projects_operation.md)