自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

REDcker的博客

技术改变生活

  • 博客(79)
  • 收藏
  • 关注

原创 线程阻塞检测工具开发指南

本文介绍了一种通用的线程阻塞检测方案,针对异步编程模型中主线程阻塞问题提出创新解决方案。通过信号机制和堆栈捕获技术,系统能够主动检测并定位阻塞点,而非简单提高阈值掩盖问题。技术方案包含阻塞检测模块、信号发送模块、信号处理模块和数据持久化模块,采用libunwind或_Unwind_Backtrace进行堆栈回溯,并处理地址随机化等复杂场景。该方案适用于Linux/Android等多平台,提供阈值设置、信号可靠性保障等最佳实践,从根本上解决线程阻塞导致的性能问题。

2026-01-01 08:00:00 336

原创 WHEP 协议完整使用指南

WHEP协议是基于HTTP的WebRTC流拉取协议,简化了WebRTC会话建立过程。客户端通过POST请求发送SDP Offer创建会话,服务器返回201响应和SDP Answer。会话终止通过DELETE请求完成。协议特点包括:1) 基于标准HTTP协议 2) 单向媒体流传输 3) 简化信令流程 4) 服务器控制流传输。核心流程包含会话创建、WebRTC连接建立和会话终止三个步骤。该协议适用于需要从服务器拉取WebRTC流的应用场景。

2025-12-31 08:00:00 1268

原创 WebRTC-HTTP 出口协议 (WHEP) draft-murillo-whep-01 中文翻译

webrtc whep 协议 draft-murillo-whep-01 中文翻译

2025-12-30 08:00:00 1232

原创 滴滴APP技术架构分析报告

滴滴APP技术架构分析摘要 滴滴出行采用混合技术架构,结合多种跨端框架与原生开发。主要技术栈包括: 跨端框架:React Native作为核心框架,Weex实现部分业务页面,自研Hummer框架处理轻量级需求 JavaScript引擎:同时集成Hermes和JavaScriptCore引擎,根据不同场景选择最优方案 动画系统:使用Lottie实现复杂交互动画 原生能力:深度集成自研地图导航系统(支持AR导航)、完整语音处理体系(识别/唤醒/降噪)以及ARCore等AR技术 混合架构优势:兼顾开发效率与性能

2025-12-29 08:00:00 1143

原创 支付宝APP技术架构分析报告

支付宝APP采用混合技术架构,以蚂蚁集团mPaaS移动开发平台为核心框架,整合了多种JavaScript引擎(V8和QuickJS)、小程序生态、Lottie动画等技术方案。其特点包括:1)mPaaS提供统一开发平台和动态更新能力;2)双JS引擎策略实现性能优化;3)完整的小程序运行环境支持业务扩展;4)Lottie动画提升交互体验;5)集成ijkplayer视频处理、自研图片加载、腾讯网络库等第三方SDK。该架构体现了高性能、动态化和模块化的设计理念,支持支付宝复杂业务场景的需求。

2025-12-28 08:00:00 797

原创 微信APP技术架构分析报告

微信采用混合技术架构,主要基于Flutter跨端框架,结合原生开发、小程序生态和多项优化技术。核心组件包括:Flutter引擎实现跨平台UI一致性;自研小程序运行时支持完整生态;V8引擎提供高性能JS执行;PAG框架实现高效动画渲染。技术架构特点为:使用AAB格式优化分发,集成视频/音频/图片处理等原生库,支持20+语言国际化,并采用QUIC协议等网络优化方案。整体架构复杂且高度优化,体现了微信作为超级App的技术深度。

2025-12-27 08:00:00 1801

原创 哔哩哔哩APP技术架构分析报告

哔哩哔哩APP技术架构分析摘要: 哔哩哔哩采用混合技术架构,以原生开发为主,结合多种先进技术方案。核心特点包括: 使用Android App Bundle(AAB)格式,支持多语言、多架构资源分离 同时集成V8和QuickJS双JavaScript引擎 基于ijkplayer+FFmpeg的视频播放体系,支持AV1/H.264等多种编解码 采用Lottie和SVGA实现丰富的动画效果 图片处理使用Fresco框架,支持WebP/AVIF等格式 网络/存储/安全等方面采用自研+第三方SDK组合方案

2025-12-26 08:00:00 1655

原创 京东APP技术架构分析报告

京东APP采用混合技术架构,主要基于React Native(JDReact)和Taro跨端框架,结合原生开发与多种JavaScript引擎(Hermes/V8/QuickJS)。架构特点包括:模块化RN业务组件支持独立更新;多JS引擎按场景选择;集成丰富的RN生态组件(WebView/动画/手势等);通过Lottie实现复杂动画效果;原生层整合FFmpeg等多媒体处理能力。该架构实现了业务快速迭代与性能优化的平衡,同时支持多端复用和动态更新能力。

2025-12-25 08:00:00 770

原创 TCP 多连接带宽“各自为战”与操作系统全局调控详解

TCP 多连接带宽“各自为战”与操作系统全局调控详解

2025-12-24 08:00:00 980

原创 LwIP 是什么?轻量级 TCP/IP 协议栈入门与 Linux 内核协议栈对比

LwIP 是什么?轻量级 TCP/IP 协议栈入门与 Linux 内核协议栈对比

2025-12-23 08:00:00 831

原创 Go 语言开发 - CGO cgosymbolizer 与调试符号详解

本文详细介绍了cgosymbolizer库及其调试符号解析机制。该库由Go核心成员开发,用于将CGO调用栈中的C/C++函数地址转换为可读的函数名、文件名和行号信息。文章对比了符号表和调试信息的区别,指出cgosymbolizer依赖完整的DWARF调试信息(.debug_info等段)才能正常工作。 文中提供了多种编译策略:开发版本应保留完整调试信息;生产环境推荐分离调试符号,既减小体积又保留调试能力;仅保留符号表或完全剥离的方式会破坏cgosymbolizer功能。

2025-12-22 08:00:00 1136

原创 权限设计范式详解

本文系统介绍了权限设计的主要范式,重点解析了RBAC(基于角色的访问控制)模型。内容涵盖RBAC的核心架构、组成要素、NIST规则及模型层级演进(核心RBAC、分级RBAC、约束RBAC等),并对比了ACL、ABAC、ReBAC等其他11种权限范式。文章提供了权限范式的适用场景对比图、决策流程分析和横向对比表,给出工程实践建议(策略解耦、默认拒绝等)和组合落地方案。作为企业应用中最常用的权限模型,RBAC通过角色映射实现高效授权管理,支持最小权限原则和职责分离,适用于各类组织架构和业务场景。

2025-12-21 08:00:00 1273

原创 macOS Framework 使用指南(面向 Linux 开发者)以火山引擎实时音视频 SDK 为例

本文面向Linux开发者介绍macOS平台特有的Framework格式,以火山引擎实时音视频SDK为例进行说明。文章详细对比了Linux(.so)与macOS(.framework/.dylib)在库文件格式、头文件管理、资源文件处理等方面的差异,并解析了Framework的目录结构(包含二进制、头文件、资源等)。同时提供了Linux与macOS版本SDK的具体结构对比,以及在CMake中使用Framework的配置方法,帮助开发者快速适应macOS开发环境。

2025-12-20 08:00:00 2203

原创 TCP/IP 协议栈详解:协议栈是什么意思?为什么叫“协议栈”?

TCP/IP协议栈是一套实现互联网通信的分层协议体系,采用四层模型(应用层、传输层、网络层、网络接口层)。其名称中的"栈"体现分层结构:上层依赖下层服务,数据传输时发送方逐层封装(加头部),接收方逐层解封装(去头部),类似压栈/出栈过程。该协议栈包含TCP、IP等核心协议及配套机制,不同于OSI七层模型,是工程实践中更常用的实用抽象。

2025-12-19 09:25:48 824

原创 Linux 文件描述符(FD)机制深度解析

本文深入解析Linux文件描述符(FD)机制,主要内容包括: 文件描述符概述:介绍FD的基本概念、核心特性和标准文件描述符(0-stdin,1-stdout,2-stderr)。 FD类型:涵盖普通文件、设备文件、管道、套接字以及各种事件通知机制等不同类型的FD。 /proc/PID/fd目录详解:说明如何通过/proc文件系统查看进程的FD信息,包括符号链接含义和特殊行为。 限制与配置:分析Linux对FD的三层限制体系(系统级、用户/进程级、程序内调整)及配置方法。

2025-12-19 08:00:00 1396

原创 macOS「系统数据」暴涨到 几百GB?一篇文章教你安全清理(含排查顺序)

摘要:macOS「系统数据」占用过大通常由缓存、日志、备份等文件堆积导致。本文提供安全清理指南:1)通过存储空间分析定位问题;2)清理用户/系统缓存及日志;3)删除iOS备份;4)处理Time Machine快照;5)清除应用残留;6)删除大文件。进阶方法包括重建索引或磁盘急救,终极方案为不抹盘重装系统。操作前需备份数据,避免误删系统文件。建议按顺序排查,谨慎使用第三方工具。

2025-12-18 08:52:09 804

原创 MAVLink协议详解

MAVLink是一种专为无人机系统设计的轻量级二进制通信协议,具有高效、可靠和可扩展的特点。文章详细介绍了MAVLink v1.0和v2.0的帧结构差异,包括头部字段、校验机制和版本特性对比。MAVLink支持多系统通信、自定义消息定义和多种编程语言实现,广泛应用于开源飞控系统如ArduPilot和PX4。协议采用混合发布-订阅和点对点模式,适合带宽受限场景,提供消息完整性校验和可选认证功能,是无人机通信领域的标准解决方案。

2025-12-17 08:57:56 843

原创 Windows Docker Desktop 磁盘空间清理指南

本文提供了Windows Docker Desktop磁盘空间清理的详细指南。主要解决WSL 2虚拟硬盘文件(docker_data.vhdx)占用过大空间的问题。文章介绍了三种清理方案:1)使用Docker Desktop自带清理功能(最简单安全);2)使用Docker命令进行精细清理(推荐日常维护);3)压缩VHDX文件(关键步骤)。同时解释了WSL发行版的区别,强调不要删除docker-desktop和docker-desktop-data这两个Docker专用的发行版。

2025-12-16 09:00:06 1221

原创 DJI Fly APP技术架构分析报告

DJI Fly APP技术架构分析摘要 DJI Fly APP采用纯原生Android架构,主要基于Kotlin/Java开发,深度集成了大疆自研SDK实现无人机控制功能。核心技术栈包括:DJI SDK提供完整的飞行控制能力;IJKPlayer+FFmpeg处理视频编解码;TensorFlow/MNN支持AI算法;高德/Mapbox实现地图定位;Agora/WebRTC用于实时通信。应用特点为高性能原生架构,包含视频特效、全景拼接等专业功能,通过Protocol Buffer实现多版本协议兼容。

2025-12-15 08:51:44 975

原创 知乎APP技术架构分析报告

知乎APP采用混合技术架构,核心基于React Native跨端框架,结合原生开发与多种动画方案。主要技术栈包括:React Native多Bundle架构(Sylas/Amadeus/One RN)、腾讯PAG动画框架(用于点赞/播放等交互)、Lottie动画(复杂场景)、原生组件(视频/图片/网络)。架构特点为模块化设计,支持独立更新,同时集成Hermes和JSC双引擎优化性能。视频播放采用自研+字节跳动混合方案,网络层基于腾讯TNet并支持QUIC协议,安全防护使用阿里云方案。

2025-12-14 08:00:00 2472

原创 QQ APP技术架构分析报告

QQ APP技术架构分析摘要: QQ采用混合技术架构,以腾讯自研的Hippy跨端框架为核心,结合多种技术方案: 跨端开发:使用Hippy框架实现高性能跨平台页面开发 插件化:通过Shadow框架实现功能模块动态加载与更新 小程序:完整支持QQ小程序生态,包括小游戏开发 高性能渲染:集成UE4游戏引擎处理3D场景,PAG和Lottie实现复杂动画 原生能力:包含视频/音频处理、网络通信等丰富原生库 动态化能力:支持插件热更新、Bundle热更新等 该架构兼顾性能与灵活性,支持业务快速迭代。

2025-12-13 11:07:54 668

原创 WebRTC 学习仓库总结

本文档系统整理了WebRTC相关开源项目,按学习目标和应用场景进行分类推荐。重点包括: 客户端开发:推荐metaRTC(WHEP拉流完整实现)和srtc(轻量级WebRTC)用于学习底层接收技术; 服务端开发:ZLMediaKit(WHEP服务端)和SRS(SFU架构)作为首选学习项目; 学习路径:提供WHEP客户端/服务端、底层实现和SFU架构四个典型学习场景的路径指引; 技术栈选择:C/C++客户端推荐metaRTC/srtc,C++服务端推荐ZLMediaKit/SRS

2025-12-12 09:00:00 1268

原创 C++ WebRTC WHEP协议拉流实现总结

本文总结了使用C++实现WebRTC WHEP协议拉流客户端的核心内容,包括推荐开源项目和学习要点。推荐项目包括metaRTC(跨平台SDK)、ZLMediaKit(高性能服务器)、srtc(轻量级实现)和cpp_media_server(示例型SFU)。学习要点涵盖WHEP拉流流程、编解码处理、网络容错机制和ICE/STUN/TURN配置。资源管理方面,重点介绍了PeerConnection状态机、多路连接管理策略、线程模型和socket资源管理的最佳实践,包括使用RAII模式确保资源释放、线程隔离设计等

2025-12-11 09:00:00 1024

原创 WebRTC流媒体服务器架构详解

WebRTC流媒体服务器架构主要有三种模式:Mesh、SFU和MCU。Mesh架构采用P2P直连,无需服务器但扩展性差,适合3-5人小规模会议。SFU架构通过服务器选择性转发媒体流,支持10-1000+人的中大规模会议,具有高性能和低延迟特点。MCU架构会解码和混流后重新编码,带宽效率高但服务器负载大,适合10-50人的小规模会议。实际选型需根据会议规模、网络条件和成本预算综合考虑,目前SFU因其良好的扩展性和灵活性成为主流方案。

2025-12-10 09:00:00 1117

原创 C++ WebRTC WHEP 客户端资源管理详解

本文详细介绍了C++ WebRTC WHEP客户端的资源管理方法,主要内容包括: 开源项目推荐:介绍了metaRTC、ZLMediaKit等支持WHEP协议的开源实现,提供拉流流程参考。 生命周期管理:讲解了WebRTC连接状态机和PeerConnection的创建/销毁策略,建议使用RAII模式管理资源。 线程管理:说明WebRTC需要网络线程、工作线程和信令线程,建议全局共享而非每个连接独立创建。 资源管理:包括Socket/FD资源管理方法和避免泄漏的建议。

2025-12-09 09:00:00 2126

原创 UEFI启动过程深度解析与开发环境搭建指南

本文深入解析UEFI的7阶段启动流程及开发环境搭建。UEFI启动遵循PI标准,分为SEC(安全验证)、PEI(前期初始化)、DXE(驱动执行)、BDS(启动选择)、TSL(系统加载)、RT(运行时)和AL(灾难恢复)7个阶段。SEC阶段建立临时内存和安全信任链;PEI阶段初始化内存并为DXE准备环境;DXE阶段加载驱动并构建UEFI服务。文章还详细介绍了UEFI开发环境搭建方法,包括TianoCore和EDK II工具链的使用。

2025-12-08 09:00:00 944

原创 UEFI BIOS深度解析:现代固件架构的革命性突破

本文深入解析UEFI(统一可扩展固件接口)架构及其相比传统BIOS的革命性优势。UEFI作为现代计算机固件标准,采用模块化设计,支持跨平台(x86/ARM等)和图形界面操作。核心概念包括启动管理器、UEFI镜像(.efi文件)、UEFI服务(启动/运行时服务)和基于GUID的协议机制。UEFI通过系统表提供标准化接口,实现硬件抽象和快速启动,其分层架构支持操作系统加载前的标准执行环境。相比Legacy BIOS,UEFI具有安全性高(支持安全启动)、兼容性强和扩展性好等显著优势

2025-12-07 15:00:47 1468

原创 Legacy BIOS深度解析:从IBM PC到现代计算机的固件演进

摘要: 本文系统解析了Legacy BIOS的技术演进与实现机制。从1981年IBM PC引入的32KB BIOS开始,Legacy BIOS经历了标准化发展(1990年代Intel等制定的BBS/PnP规范)。其核心功能包括硬件初始化、POST自检和操作系统引导,运行于实模式下的1MB内存空间。启动流程分为BootROM(ROM执行)、Memory Sizing(内存处理)、BootBlock POST(基础外设初始化)和MainBios POST(主模块处理)四个阶段

2025-12-06 20:57:40 978

原创 JS 与 C++ 语言绑定技术详解

本文档全面介绍了JavaScript与C++的多种绑定技术方案,重点分析了WebIDL自动生成绑定和Emscripten绑定方案。主要内容包括: WebIDL绑定技术 通过IDL文件定义接口规范 自动生成C++/JS胶水代码 详细类型映射关系 与embind配合处理复杂场景 工程化建议 Emscripten绑定方案 embind面向对象绑定 支持类、属性、函数等完整绑定 基本用法示例 技术选型维度 运行环境、绑定粒度、类型系统 性能要求、维护成本等考量因素 文档提供了具体代码示例和最佳实践建议,帮助开发者根

2025-12-05 10:27:53 995

原创 美团APP技术架构分析报告

美团APP采用混合技术架构,核心基于自研React Native框架(MRN),包含300+业务Bundle实现跨端开发。主要技术栈包括:MRN作为主框架,Picasso声明式UI系统实现动态化渲染,Mach模板系统支持模块化开发,MGC补充特定场景,Litho优化列表性能,同时保留WebView支持H5页面。架构分层清晰,底层为动态化框架层,上层为业务Bundle层,支持多业务线灵活开发与动态更新。网络层采用Cronet优化性能,并集成多种JS引擎适配不同场景。整体架构兼顾性能与灵活性。

2025-12-04 10:24:54 1025

原创 ROS 机器人操作系统版本对照表

本文档汇总了ROS1和ROS2各主要版本的发布时间、维护周期及关键特性。ROS1最后一个LTS版本是Noetic Ninjemys(支持至2025年),ROS2最新LTS版本为Jazzy Jalisco(支持至2029年)。ROS2采用DDS通信架构,支持QoS和跨平台,相比ROS1具有更好的实时性和工程化特性。生产环境推荐使用ROS1的Noetic或ROS2的Jazzy/Humble LTS版本,开发测试可选Kilted常规版。

2025-12-03 10:36:31 721

原创 统计代码行数工具总结

本文总结了多种统计代码行数的工具和方法,主要包括: 通用命令行工具:如wc -l(基础统计)和cloc(推荐,支持400+语言,区分代码/注释/空行)。 IDE集成工具:如IntelliJ的Statistic插件、VS Code的CodeMetrics等,适合开发时快速查看。 其他工具:如Tokei(Rust编写,速度快)、GitHub的Insights功能及第三方Action集成。 推荐: 全面统计:cloc(功能强大,支持多语言和详细报告)。 快速统计:tokei(轻量高效)。

2025-12-02 10:32:43 1430

原创 搜索引擎高级搜索运算符完全指南 Google 谷歌/Bing 必应/Baidu 百度

本文详细介绍了主流搜索引擎(Google、Bing、百度)支持的高级搜索运算符,帮助用户提升搜索效率和结果准确性。核心内容包括:限定网站/域名范围的site:运算符、限定文件类型的filetype:、精确短语匹配的双引号、排除关键词的减号、布尔逻辑运算符、标题/URL限定的intitle:/inurl:、通配符、时间范围限定等。文章还提供了运算符组合技巧、使用注意事项以及三大搜索引擎的支持情况对比表,建议使用英文半角符号并注意空格位置。掌握这些高级搜索技巧可以显著优化信息检索体验。

2025-12-01 10:18:47 1789

原创 IEEE 802.11 协议详解

本文详细介绍了IEEE 802.11无线局域网标准系列的发展历程和技术特点。从1997年的原始标准(2Mbps)开始,梳理了802.11a/b/g/n/ac/ax/be等主要版本的演进路线,包括发布时间、频段、核心技术、关键参数和应用场景。重点解析了各代标准的物理层和MAC层技术原理,如DSSS、OFDM、MIMO等,并提供了速率表、子载波分配等详细技术参数。文章还对比了不同标准的性能指标,帮助读者全面了解Wi-Fi技术的发展脉络和最新进展(如Wi-Fi 7的23Gbps速率)。

2025-11-30 11:08:07 1422

原创 Linux 桌面 GUI 技术架构解析:X11/Wayland、KDE/GNOME

Linux 桌面 GUI 采用分层架构:底层是显示服务器协议(X11/Wayland),其上运行显示服务器实现(Xorg/Wayland Compositor),然后是桌面环境(KDE/GNOME),最上层是应用程序。X11采用客户端-服务器架构,历史悠久但性能较低;Wayland作为现代协议更高效安全。KDE和GNOME都支持双模式运行,KWin和Mutter可分别作为X11窗口管理器或Wayland合成器。XWayland提供X11应用兼容层。

2025-11-29 09:40:34 1698

原创 软件开发者需要关注CPU指令集差异吗?

软件开发者是否需要关注CPU指令集差异? 大多数开发者(如Web、移动应用、业务逻辑开发)无需关注,现代工具链会自动处理。但在性能关键场景(科学计算、游戏引擎)、系统编程(OS/驱动开发)、加密库和编译器开发中,了解指令集差异可显著提升性能。关键实践包括:优先使用优化框架、编译器自动优化(如-march=native)、运行时特性检测和多CPU测试。注意避免过度优化和兼容性问题,5%的开发者需要深入掌握这些技术以获得最佳性能。

2025-11-28 10:25:57 629

原创 动态库查找路径详解:RPATH、RUNPATH、LD_LIBRARY_PATH、ldconfig

本文详细介绍了Linux系统中动态库查找路径的四种主要方式:RPATH、RUNPATH、LD_LIBRARY_PATH和ldconfig。RPATH是编译时硬编码的库路径,优先级高但不够灵活;RUNPATH是其现代化替代方案,允许被LD_LIBRARY_PATH覆盖;LD_LIBRARY_PATH是运行时环境变量,灵活但存在安全隐患;ldconfig通过系统级配置文件管理库路径。文章对比了各种方法的优缺点、使用场景和优先级,并提供了具体的配置命令和调试工具,帮助开发者根据需求选择最合适的库路径管理方案。

2025-11-27 10:29:14 502

原创 UPX 工具详解:可执行文件压缩的魔法

UPX是一款开源的可执行文件压缩工具,可将程序压缩至原大小的30-50%并保持可执行性。它支持多种平台格式包括Linux ELF、Windows PE等,通过添加解压存根和压缩原始数据实现文件瘦身。压缩流程包含分析文件结构、LZMA/NRV算法压缩、生成解压存根和重组文件四步,运行时自动解压且对用户透明。特别适用于减少软件包体积、加快下载速度等场景,但需注意部分安全软件可能误报风险。

2025-11-26 10:26:20 514

原创 tcpdump 网络数据包分析工具完整教程

tcpdump 网络数据包分析工具摘要 tcpdump 是一个功能强大的命令行网络数据包分析工具,主要用于捕获和分析网络接口传输的数据包。它具有轻量级、跨平台、实时分析和灵活过滤等特点,是网络管理员和开发人员进行网络故障排查、性能分析和安全审计的重要工具。 tcpdump 通过 libpcap 库直接访问网络接口的原始数据包,在内核层捕获数据包并使用 BPF 过滤器高效过滤。其典型应用场景包括网络故障诊断、安全监控、协议分析和性能优化等。工具支持丰富的过滤表达式,可以按主机、端口、协议等条件精确捕获特定流量

2025-11-25 13:08:12 641

原创 主流音频编码格式和容器格式详解

本文全面解析主流音频编码格式和容器格式。音频编码分为有损和无损两类:有损格式如MP3、AAC、Opus等适合日常使用,压缩率高但音质略有损失;无损格式如FLAC、ALAC、WAV等完美保留音质,适合专业场景。文章详细对比了各格式的技术特点、应用场景和比特率选择,并介绍了常见容器格式如MP4、OGG、WebM等。最后探讨了编码与容器的关系及格式选择建议,为不同需求提供专业指导。

2025-11-24 13:11:37 391

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除