自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

沐怡旸的专栏

代码有禅意,逻辑见乾坤

  • 博客(443)
  • 资源 (19)
  • 收藏
  • 关注

原创 【计算机通识】EBML结构深度解析:下一代多媒体容器的基石

1.2 核心设计原则自描述性:无需外部Schema即可解析基础结构无限扩展:通过Element ID层级系统支持无限扩展后向兼容:解析器可安全跳过未知元素流式友好:支持无限长度元素和流式写入高效编码:使用可变长度整数,小值用小存储

2025-12-11 21:07:50 951

原创 【计算机通识】MP4 Box(Atom)结构深度解析

Box(Atom) 是MP4文件的基本组织单元,每个Box都是一个自包含的数据块整个MP4文件本质上是一个嵌套的Box树形结构设计理念:“Everything is a box” - 所有数据、元数据、索引都以Box形式组织

2025-12-11 21:02:49 902

原创 【翻译】scrcpy(3.3.3)命令使用文档

声明:以下是在 Windows 电脑上的scrcpy --help 输出翻译,不确保其他平台是否一样。

2025-12-02 10:47:29 627

原创 【底层机制】Android图形渲染体系深度解析:VSync信号机制

在Android图形渲染体系中,VSync(Vertical Synchronization,垂直同步)是贯穿CPU、GPU与显示器协同工作的核心机制。它不仅解决了画面撕裂、卡顿等关键问题,更定义了Android渲染的"时间节拍"

2025-11-21 18:26:08 1978 3

原创 【穿越Effective C++】23.宁以non-member、non-friend替换member函数

这个条款揭示了C++软件设计的一个重要原则:通过使用非成员非友元函数来最大化类的封装性。这种方法不仅减少了类接口的复杂度,还提高了代码的可维护性和可扩展性,是构建模块化软件系统的关键策略

2025-11-21 17:46:44 1059 2

原创 【穿越Effective C++】条款22:将成员变量声明为private——封装的边界与设计的自由

这个条款揭示了C++类设计的核心封装原则:成员变量应该声明为private,这不仅是技术选择,更是软件设计哲学的体现。通过严格控制数据访问,我们获得了实现灵活性、接口稳定性和维护便利性

2025-11-19 18:23:02 770

原创 【底层机制】Android OTA更新系统:原理与应用深度解析

OTA(Over-The-Air)更新是指通过无线网络下载和安装系统更新的技术。在Android生态中,OTA更新系统是一个复杂而精密的工程,涉及多个系统组件和严格的安全验证。

2025-11-19 17:57:58 1675

原创 【穿越Effective C++】条款21:必须返回对象时,别妄想返回其reference——对象返回的语义与效率平衡

这个条款揭示了C++函数返回语义的核心原则:当函数必须返回新对象时,应该直接返回值而非引用。试图返回局部对象的引用会导致悬空引用,而返回其他生命周期受控对象的引用则会带来接口复杂性和潜在错误。

2025-11-18 18:15:30 484

原创 【穿越Effective C++】条款20:宁以pass-by-reference-to-const替换pass-by-value——参数传递的效率与语义

这个条款揭示了C++函数参数传递的核心优化策略:通过const引用传递可以避免不必要的对象拷贝,同时保持语义的正确性。这是构建高性能C++系统的关键技巧,需要在效率、安全性和表达力之间找到平衡

2025-11-17 17:02:39 590

原创 【底层机制】Ashmem匿名共享内存:原理与应用深度解析

Ashmem是Android高效内存管理的基石之一,它通过文件描述符和pin/unpin机制,实现了高性能、可回收的进程间大内存共享。它在图形系统、多媒体等性能关键路径上扮演着不可替代的角色

2025-11-17 16:47:27 1018

原创 【穿越Effective C++】条款19:设计class犹如设计type——用户定义类型的艺术与科学

这个条款揭示了C++面向对象设计的核心理念:定义新class就是定义新type。优秀的class设计应该让用户定义类型与内置类型无缝协作,这要求我们在设计时考虑类型系统的完整性、一致性和直观性

2025-11-14 16:40:41 969

原创 【底层机制】Android内存管理技术深度解析:PMEM、ION与DMA-BUF Heaps

在移动设备开发领域,高效的内存管理对于系统性能至关重要。特别是多媒体处理、图形渲染和硬件加速等场景,需要特殊的内存管理机制来满足低延迟、高带宽和零拷贝的需求。Android系统在其发展历程中经历了从PMEM到ION,再到DMA-BUF Heaps的技术演进。本文将深入剖析这三种关键技术的底层原理、实现机制和优劣对比

2025-11-14 10:49:57 609

原创 【穿越Effective C++】条款18:让接口容易被正确使用,不易被误用——API设计的艺术与科学

这个条款揭示了优秀软件设计的核心哲学:优秀的接口应该引导用户走向正确用法,同时让错误用法在编译期或运行期难以发生。这是构建可维护、可扩展软件系统的基石。

2025-11-12 18:11:08 895

原创 【底层机制】 Android ION内存分配器深度解析

ION(I/O Memory Manager)是Android系统中专门为多媒体和图形处理设计的内存管理框架。它解决了在异构计算环境中不同硬件组件(CPU、GPU、DSP、摄像头等)之间高效共享内存的挑战。

2025-11-11 16:35:10 1048

原创 【穿越Effective C++】条款17:以独立语句将newed对象置入智能指针——异常安全的智能指针初始化

这个条款揭示了C++异常安全中一个微妙但危险的陷阱:在复合语句中创建智能指针可能导致资源泄漏。理解这一原则是构建异常安全代码的关键。

2025-11-11 16:18:27 595

原创 【底层机制】Android低内存管理机制深度解析

Android低内存管理机制是一个复杂而精密的系统,通过多层次协作在有限的内存资源下维持系统性能和稳定性

2025-11-10 21:23:39 1089

原创 【穿越Effective C++】条款16:成对使用new和delete时要采用相同形式——内存管理的精确匹配原则

这个条款揭示了C++动态内存管理中最基本但常被忽视的规则:new/delete形式必须严格匹配。理解这一原则是避免内存泄漏和未定义行为的关键。

2025-11-10 21:14:18 704

原创 【底层机制】Android对Linux线程调度的移动设备优化深度解析

Android对Linux线程调度的移动设备优化是一个系统工程,涉及调度算法、功耗管理、热控制、实时性保证等多个维度。这些优化共同目标是:在有限的电池容量和热约束下,提供流畅的用户体验。

2025-11-07 18:24:27 1283

原创 【穿越Effective C++】条款15:在资源管理类中提供对原始资源的访问——封装与兼容性的平衡艺术

这个条款揭示了RAII设计中的一个关键权衡:如何在保持资源安全封装的同时,提供与现有API的兼容性。正确的原始资源访问设计是构建实用资源管理类的关键

2025-11-07 18:04:52 945

原创 【底层机制】ART虚拟机深度解析:Android运行时的架构革命

ART(Android Runtime)是Android操作系统上的应用运行时环境,取代了最初的Dalvik虚拟机。从技术本质看,ART是一个基于AOT(Ahead-Of-Time)编译的托管代码执行环境,负责Android应用的字节码翻译、内存管理、线程调度和系统服务交互

2025-11-06 18:24:54 1772

原创 【穿越Effective C++】条款14:在资源管理类中小心copying行为——RAII类的拷贝语义设计

这个条款揭示了RAII类设计中一个关键但常被忽视的问题:拷贝行为的选择直接影响资源管理的正确性和效率。正确的拷贝语义设计是构建健壮资源管理类的核心

2025-11-06 18:16:45 690

原创 【底层机制】垃圾回收(GC)底层原理深度解析

作为开发者,深入理解GC底层原理不仅有助于编写更高效的代码,更重要的是培养系统级思维,在抽象便利性与执行效率间找到最佳平衡点。随着新硬件和新编程范式的出现,GC理论将继续演进,为构建更可靠的软件系统提供理论基础。

2025-11-05 18:31:16 643

原创 【穿越Effective C++】条款13:以对象管理资源——RAII原则的基石

这个条款揭示了C++资源管理的核心理念:通过对象的生命周期自动管理资源,避免手动资源管理带来的泄漏和错误。这是C++最重要的设计原则之一,也是现代C++编程的基石。

2025-11-05 18:11:49 1094

原创 【底层机制】LeakCanary深度解析:从对象监控到内存泄漏分析的完整技术体系

LeakCanary基于自动化检测和最小侵入性原则构建,其设计目标是在开发阶段主动发现内存泄漏,而非依赖事后分析。系统采用观察者模式与引用队列机制的结合,实现对象生命周期的无缝监控。

2025-11-04 18:26:39 767

原创 【穿越Effective C++】条款12:复制对象时勿忘其每一个成分——完整对象拷贝的艺术

将完整拷贝视为C++类设计的基本契约。培养"拷贝完整性思维"——在实现每个拷贝操作时都问自己:“这个操作是否复制了对象的完整状态?包括所有基类部分和所有数据成员?” 这种系统性的思考方式是构建正确C++类的关键

2025-11-04 18:15:39 878

原创 【底层机制】解析Espresso测试框架的核心原理

Espresso的原理可以概括为:通过强大的同步引擎(UI线程监控 + IdlingResource),在应用处于一个稳定、可预测的状态时,才安全地执行交互和断言。对于开发者:你看到的是简洁、流式的API。对于框架:背后是严密的等待、检查、注入和验证流程

2025-11-03 16:30:12 990

原创 【穿越Effective C++】条款11:在operator=中处理“自我赋值“——资源管理的关键安全网

将自我赋值处理视为C++资源管理类的"基本卫生"。培养"自我赋值思维"——在实现每个赋值操作符时都问自己:"如果对象给自己赋值会发生什么?如果赋值过程中抛出异常对象会处于什么状态?" 这种防御性编程思维是构建工业级C++系统的关键

2025-11-03 16:15:31 673

原创 【计算机通识】认识 RESTful API

简单来说,RESTful API 将网络上的所有事物(数据、服务)都抽象为资源。我们通过统一的接口(HTTP 方法)对资源进行操作,从而实现客户端与服务器的交互。

2025-10-31 16:09:44 816

原创 《穿越Effective C++》条款10:令operator=返回一个reference to *this——赋值操作符的约定俗成

将赋值操作符返回引用视为C++中的"物理定律"。培养"赋值思维"——在实现每个赋值操作符时都问自己:"这个操作符是否支持链式使用?行为是否与内置类型一致?" 这种一致的思维方式是编写专业级C++代码的关键。

2025-10-31 15:45:39 517

原创 【技术选型】前端框架:Vue vs React - 组合式API与Hooks的哲学之争

在纷繁复杂的前端世界中,Vue 和 React 作为两大主流框架,其竞争与演进始终是开发者关注的焦点。随着 Vue 3 的 Composition API 和 React 的 Hooks 模式成为新时代的标准,二者的对比已经从简单的语法差异,上升到了设计哲学与心智模型的层面。本文将深入这场“哲学之争”,从五个关键维度为您提供一份客观、全面的选型指南

2025-10-31 15:20:02 638

原创 【C++】【常见面试题】最简版带大小和超时限制的LRU缓存实现

关键实现要点1. 数据结构选择• 双向链表:维护访问顺序• 哈希表:快速查找节点2. 淘汰策略• 容量满时删除最久未使用的节点• 访问时自动检查并删除超时节点3. 时间管理• 使用steady_clock记录节点时间戳• 访问时更新节点时间

2025-10-30 18:11:09 477

原创 条款9:绝不在构造和析构过程中调用virtual函数——C++对象构造顺序的陷阱

将构造和析构视为对象的"脆弱期"。培养"构造安全思维"——在编写每个构造函数时都问自己:“我在这里调用的函数是否依赖于对象的多态行为?” 这种严谨的态度是构建健壮面向对象系统的关键

2025-10-30 18:05:27 846

原创 【底层机制】Android GC -- 为什么要有GC?GC的核心原理?理解GC的意义

写出高性能、低卡顿的代码:通过避免内存泄漏和减少不必要的对象分配。快速定位和解决内存问题:当发生OOM或内存抖动时,能迅速找到根源。建立良好的内存观:知道代码的每一行背后可能发生什么,做到心中有数。

2025-10-30 17:53:27 1091

原创 【提示词】【AI智能体】业务文档问答智能体如何精心设计提示词?

显式优于隐式:不要指望AI能猜出你的意图,把所有规则都写清楚。结构化:使用清晰的模块和分隔符,帮助AI理解不同部分的职能。具体化:避免“回答得好一点”这种模糊指令,用“答案控制在100字内”来代替。防御性设计:预先考虑到AI可能犯的错误(如胡编乱造),并通过约束条款将其扼杀在摇篮里。迭代测试:用一批典型问题测试这个提示词,根据回答不理想的情况,回头调整提示词的对应部分。例如,如果AI还是用了外部知识,就加强“约束”部分的语气。

2025-10-30 11:10:44 1079

原创 【Android】Dalvik 对比 ART

ART取代Dalvik体现了移动计算发展的必然趋势——用存储空间和安装时间换取运行时性能和能效提升。这种权衡在现代硬件条件下是完全合理的,因为存储空间越来越廉价,而用户体验和电池续航始终是核心诉求

2025-10-29 22:42:20 752

原创 【穿越Effective C++】条款8:别让异常逃离析构函数——C++异常安全的关键支柱

这个条款揭示了C++异常处理中最重要的规则之一:析构函数绝不能抛出异常。这是构建异常安全代码的基石,理解这一点对于开发健壮的C++系统至关重要

2025-10-29 22:22:18 656

原创 【Android】Android Framework 的那些核心子系统及其功能详解

Android Framework(安卓框架层)是连接应用层与底层 Linux 内核及硬件抽象层(HAL)的核心中间层,其内部按功能划分为多个子系统(Subsystem) 。这些子系统相互协作,为应用提供统一的 API 接口,并管理设备硬件资源、系统服务及应用组件的运行

2025-10-29 16:11:15 934

原创 【Android】【JNI多线程】JNI多线程安全、问题、性能常见卡点

必须遵守的原则绝不跨线程使用JNIEnv局部引用不跨线程,全局引用要管理线程结束时记得分离(RAII最佳)多线程访问共享数据要加锁

2025-10-29 11:22:07 429

原创 【C++】【C++面试】Android SO 体积优化技术点梳理

链接器仅保留动态符号直接 / 间接引用的 Section,删除无用 Section;:通过链接器参数,排除依赖静态库(.a)中的符号导出(visibility/static 无法实现);:存储中间表示(IR)——GCC 用 GIMPLE,Clang 用 LLVM IR;:通过编译器优化级别,用更少的机器指令实现相同功能(优先减体积,性能可能略有损失);ndk-build 项目:默认禁用,无需配置(若已开启,需确认无依赖后禁用)。:通过链接器参数指定导出符号,支持静态库符号、通配符、删除默认符号(如。

2025-10-29 11:04:32 883

原创 【底层机制】深入浅出地、系统地剖析 Appium 的原理

Appium 的本质是一个 遵循 WebDriver 协议的、用于自动化原生/混合/移动端 Web 应用的 HTTP Server

2025-10-29 09:34:22 955

创建一个多边形Active控件

一、 课程设计目的 1、 了解Windows编程的基础知识,掌握控件的基础知识。 2、 控件是对数据和方法的封装,通过课程设计了解控件的应用及创建. 3、 掌握VC++开发应用程序的一般步骤和方法。 4、 通过课程设计,实际掌握面对对象的程序设计方法,了解C++面向对象的设计方法和技巧,有效地、深刻地理解课程设计内容,体会理论、方法和设计的原则;培养分析实际问题和解决问题的能力,具备使用面向对象程序设计开发工具设计实际系统的能力 二、 课程设计内容与要求 创建一个多边形ActiveX控件(并设计一个使用该控件的应用程序)。 实现了一个ActiveX控件,它在一个圆内部有个正多边形,当用户在多变形内部单击将会使多边形的边数在当前的基础上+1,在多变形外部单击将会使多边形的边数在当前的基础上-1,并能改变多边形的颜色,还可以输入边数来改变多边形的边数,并编辑了一个程序,是控件可以在应用程序中使用。 三、 系统分析与设计 1、系统分析 Active控件是由 Microsoft 基础类库 (MFC) 提供的其他控件类(以前称为 OLE 控件),可以在 Windows 应用程序的对话框中使用,或在万维网的 HTML 页中使用,本次创建的Active控件主要是在其上显示一个圆其内部有多边形,并通过一系列操作更改其边数和颜色。 为控件添加属性并为应用此控件添加方法,使其觉有相对的稳定性,便于移植。 (1)信息:计算并记录鼠标输入的坐标,判断其属于圆内还是圆外,并做出相应的动作,更改多边形的边数及颜色。 (2)行为:当用户在多变形内部单击将会使多边形的边数在当前的基础上+1,在多变形外部单击将会使多边形的边数在当前的基础上-1,并能改变多边形的颜色 (3)表示: IPolyCtl是包含定制的方法和属性的接口,_IPolyCtlEvents接口是一个内部接口,建立各变量与接口之间的连接。

2012-12-10

NIIT课堂笔记

如果需要修改表结构,一定要保证表里面是没有数据的 alter table stu add sage int not null ALTER TABLE 相关的语句: 1. 添加新列 ALTER TABLE Test ADD stu VARCHAR(20) NULL ;--向表名为Test的表中,添加列名为stu数据类型为varchar每一行都为空的列 --此处添加的时候没有column,因为向表中添加一般默认就是列了,故而不用声明是添加列 2. 删除列 ALTER TABLE Test DROP COLUMN stu ;--删除表名为Test的表中,列名为stu的列 3. 更改列的数据类型 ALTER TABLE stu ALTER COLUMN ID int ;--修改表stu中,列名为ID的列的类型为int column字段名,也就是列名 alter 修改,改变

2012-12-11

经典SQL语句大全

经典SQL语句大全

2012-12-16

Visio详尽教程

Visio详尽教程

2013-02-20

动态链接库运算器

一、 课程设计目的 学会用C++语言和数据结构知识实现表达式的解析与计算;学会使用动态链接库技术进行编程;学会编辑、编译、运行MFC应用程序的基本过程.学会MFC可视化编程技术。 二、 课程设计内容与实现的功能 1.C++语言的顺序结构,分支结构,循环结构,函数,结构体,指针,MFC可视化编程技术。 2.数据结构中的二叉树数据组织、存贮、后序遍历及其操作。 3. 使用动态链接库进行函数模块的设计,实现计算功能。 4.编程中使用了动态连接库技术; 能实现表达式的输入,解析与计算 三、 系统分析与设计 1、系统分析 应用程序使用DLL可以采用两种方式:一种是隐式链接,另一种是显式链接。在使用DLL之前首先要知道DLL中函数的结构信息。Visual C++6.0在VC in目录下提供了一个名为Dumpbin.exe的小程序,用它可以查看DLL文件中的函数结构。另外,Windows系统将遵循下面的搜索顺序来定位DLL: 1.包含EXE文件的目录,2.进程的当前工作目录, 3.Windows系统目录, 4.Windows目录,5.列在Path环境变量中的一系列目录。 1.隐式链接 隐式链接就是在程序开始执行时就将DLL文件加载到应用程序当中。实现隐式链接很容易,只要将导入函数关键字_declspec(dllimport)函数名等写到应用程序相应的头文件中就可以了 2.显式链接 显式链接是应用程序在执行过程中随时可以加载DLL文件,也可以随时卸载DLL文件,这是隐式链接所无法作到的,所以显式链接具有更好的灵活性,对于解释性语言更为合适。不过实现显式链接要麻烦一些。在应用程序中用 LoadLibrary或MFC提供的AfxLoadLibrary显式的将自己所做的动态链接库调进来,动态链接库的文件名即是上述两个函数的参数,此后再用GetProcAddress()获取想要引入的函数。自此,你就可以象使用如同在应用程序自定义的函数一样来调用此引入函数了。在应用程序退出之前,应该用FreeLibrary或MFC提供的AfxFreeLibrary释放动态链接库。 2、系统设计: 按照系统设计要求,用Visual C++设计和开发一个MFC应用程序---高级计算器。计算器的界面设计、计算功能实现、算式计算和动态链接库的使用等。提交由需求分析:系统设计说明、系统技术文档、系统使用说明书和源程序代码为附录构成的实验报告。 2.1、模块设计: 1. 计算器界面 计算器界面包括主题“高级计算器”和背景图片以及电子日历。在计算区上有显示文本框和数字按钮以及运算符按钮。在计算区上部分有运算模式选择模块和小提示语句。 2. 模块功能简介 系统分为多个模块,分别为计算模块、错误分析模块、界面显示模块和模式选择模块。其中计算模块用来进行各种基本的加、减、乘、除的运算并且显示运算结果;错误分析模块用来进行错误处理;界面显示模块用来美化计算器界面;模式选择模块用来进行运算模式的选择和切换,以实现不同的运算要求

2012-12-10

sql经典数据库

sql经典数据库直接安装就可以的,打开.sql文件,全选语句,执行,然后保存,就会得到案例数据库了,有northwind和pubs两个

2012-12-23

JAVA编程百例

JAVA编程百例,实际上是99个,全代码还有class文件

2012-12-31

影院管理系统

课程设计,含数据库,由多人开发而成,直接可用

2012-12-31

Javascript特效大全

Javascript特效大全

2012-12-30

BackTrack中文指南

bt5指南,基本工具有wpa破解,wep以及各种分析,bt5各种安装方式,无线配置方式

2012-12-22

phpadmin亲测可用版

phpadmin是用来远程连接MySQL数据库的客户端软件,用户可以使用该软件连接并管理您的数据库。 本版本楼主亲测,修改即可使用

2013-01-25

JAVA核心技术:卷Ⅰ基础知识

JAVA核心技术:卷Ⅰ基础知识(原书第8版)高清中文PDF 目录: 第1章 Java程序设计概述  1.1 Java程序设计平台  1.2 Java“白皮书”的关键术语   1.2.1 简单性   1.2.2 面向对象   1.2.3 网络技能   1.2.5 安全性   1.2.6 体系结构中立   1.2.7 可移植性   1.2.8 解释型   1.2.9 高性能   1.2.10 多线程   1.2.11 动态性  1.3 Java Appletc与Internet  1.4 Java发展简史  1.5 关于Java的常见误解 第2章 Java程序设计环境  2.1 安装Java开发工具箱   2.1.1 下载JDK   2.1.2 设置执行路径   2.1.3 安装源代码库和文档   2.1.4 安装本书中的示例   2.1.5 导航Java目录  2.2 选择开发环境  2.3 使用命令行工具  2.4 使用集成开发环境  2.5 运行图形化应用程序  2.6 建立并运行appletc 第3章 Java基本的程序设计结构  3.1 一个简单的Java应用程序  3.2 注释  3.3 数据类型   3.3.1 整型   3.3.2 浮点类型   3.3.3 char类型   3.3.4 boolean类型

2013-01-21

Hibernate3.2 API(中文版)

Hibernate3.2 API(中文版)

2012-12-31

api帮助文档

api帮助文档 [api帮助文档].J2EE_API.chm

2012-12-31

DHTML 手册

DHTML 手册

2012-12-31

Annotated Solution Guide

Annotated Solution Guide

2012-12-31

vmware汉化程序

vmware汉化程序VMware_Workstation_full-8.0.0-471780.exe,执行程序即可,不用移动汉化包

2012-12-23

空空如也

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

TA关注的人

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