
C++魔法学院
文章平均质量分 92
C++是一门魔法学科,每篇都是魔法课程
刘争Stanley
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Android系统开发(十):标准协议和通讯的桥梁:探索蓝牙、NFC、WLAN 的工作原理
Android 的连接协议通过一套统一的接口,提供设备间的通信能力。原创 2025-01-18 21:09:04 · 1256 阅读 · 0 评论 -
Android系统开发(九):Camera 2 连接 HAL,实现硬件的魔法之路
通过与硬件底层的接口交互,我们能够控制相机的拍照、预览等功能,同时也可以对相机性能进行优化,提升用户体验。通过深入实现 HAL 和驱动的细节,我们不仅了解了 Android 相机架构,还能为后续的定制硬件开发打下基础。简而言之,HAL 就像架在应用与硬件之间的桥梁,提供了标准化的接口。说白了,HAL 的存在让不同品牌、型号的硬件可以统一标准,开发者不需要处理硬件细节,只需要专注于高层逻辑。通过这篇文章,我们将带你探索相机 HAL 的秘密,从概念到实现,再到落地项目实战,给你一个从未体验过的技术视角!原创 2025-01-18 20:55:57 · 1515 阅读 · 0 评论 -
Android系统开发(八):从麦克风到扬声器,音频HAL框架的奇妙之旅
随着音频技术的发展,设备厂商需要实现个性化的音频功能,例如 Dolby Atmos、Hi-Res Audio 等。以下是本文在撰写过程中使用的主要参考资料和资源,涵盖了 Android 音频架构相关的文档、技术书籍和实践案例,帮助读者深入学习和实践。随着高分辨率音频和 AI 降噪技术的普及,音频 HAL 的发展方向包括支持更多音频格式、更智能的路由功能以及更高效的音频处理算法。通过这些案例,您可以逐步实现并调试完整的音频 HAL 模块,从而掌握 Android 音频架构的核心开发技巧。原创 2025-01-18 20:45:50 · 2735 阅读 · 1 评论 -
Android系统开发(七):内存优化神器:从4KB到16KB的新次元
过去,大多数ARM CPU支持的页面大小是4KB,这种大小在多任务处理和低内存设备中十分高效。然而,随着硬件性能的提升,4KB页面已逐渐成为瓶颈:频繁的页面切换会增加内存碎片,降低性能。4KB页面虽小巧灵活,但在处理大型数据集时效率较低,频繁的页面切换还会浪费CPU资源。16KB页面通过增大单次分配的内存块,减少了切换频率,提高了内存的利用率。从4KB到16KB,页面大小的改变为Android应用性能带来了质的飞跃。你可以直观地体验16KB页面在不同场景中的优化效果,代码在实际运行中会展现显著的性能提升。原创 2025-01-18 20:36:02 · 1499 阅读 · 0 评论 -
Android系统开发(六):从Linux到Android:模块化开发,GKI内核的硬核科普
它的目标是通过统一内核架构,减少Android设备的碎片化,提升内核的可维护性和兼容性。从触摸屏到GPU再到音频驱动,每一步都结合了实际的开发需求,提供了完整的代码实现和验证方法。以下是三个基于GKI与KMI的实践案例,涵盖触摸屏驱动、GPU模块和音频驱动的开发与优化。它提供了标准化的接口,所有硬件相关功能都由供应商模块实现,而GKI则负责处理更高层次的通用逻辑。为一款基于I2C通信的触摸屏硬件开发驱动模块,并通过KMI接口适配GKI内核,实现触摸事件的捕获与传递。,还显著降低了厂商的研发成本。原创 2025-01-18 20:25:19 · 3746 阅读 · 0 评论 -
Android系统开发(三):探秘system_server系统服务,硬件层的终极大脑
系统服务是 Android 的灵魂,它让硬件的冷冰冰变得灵动温暖。理解它们的工作原理和实现方法,不仅能提升开发效率,还能让你站在技术的最前沿。欢迎大家留言分享自己的开发故事!原创 2025-01-18 11:03:08 · 1078 阅读 · 0 评论 -
万物互联的背后:MCU嵌入式硬件的奇幻之旅
嵌入式硬件开发就像“硬核乐高”,既需要技术,也需要创造力。今天我们从一个温湿度检测的小项目中窥见了一角,但实际上,嵌入式硬件能做的远远超出你的想象。无论是物联网设备还是无人驾驶汽车,它们都依赖嵌入式硬件的默默耕耘。下一次,当你按下电梯按钮,或是启动智能家居时,不妨停下来想想这些不起眼的小英雄吧!原创 2025-01-12 13:04:18 · 1869 阅读 · 4 评论 -
Android 硬件抽象层(HAL)全解析:智能设备硬件协同揭秘
技术点:掌握Android HAL的模块化设计,了解HIDL(Hardware Interface Definition Language),它定义了不同模块的接口,使得不同的硬件驱动可以采用标准化接口进行通信。Android 8.0后引入HIDL来替代原有的Binder通信方法。camera HAL示例API示例:以定义一个HIDL接口文件为例。然后在中实现这个接口。// 自定义的传感器读取方法。原创 2024-12-03 17:50:34 · 1394 阅读 · 0 评论 -
二分查找算法
/* * 非递归二分查找算法 * 参数:整型数组,需要比较的数. */ public static int binarySearch(Integer[]srcArray,int des){ //第一个位置. int low=0; //最高位置.数组长度-1,因为下标是从0开始的.原创 2017-02-16 18:06:42 · 877 阅读 · 0 评论 -
安卓解决65535dex文件方法数越界,IllegalArgumentException问题
在Android中,有一个限制,那就是整个应用的方法数不能超过65536,否则就会出现变异错误,并且程序也无法成功地安装到手机上。当项目日益庞大后这个问题就比较容易遇到,Google提供了multidex方案专门用于解决这个问题,通过将一个dex文件拆分为多个dex文件来避免单个dex文件方法数越界的问题。方法数越界的另一种解决方案是动态加载。动态加载可以直接加载一个dex形式的文件,将部分代码打原创 2017-01-15 21:07:11 · 1000 阅读 · 4 评论 -
FrameWork层WiFi模块架构剖析
1. 系统架构Android WiFi系统引入了wpa_supplicant,它的整个WiFi系统以wpa_supplicant为核心来定义上层用户接口和下层驱动接口。整个WiFi系统架构如下图所示:一切尽在上图中,下面将对每部分进行详细分析。1.1 WifiService 由SystemServer启动的时候生成的原创 2016-09-11 15:48:29 · 2974 阅读 · 2 评论