- 博客(73)
- 资源 (1)
- 收藏
- 关注
原创 深入理解 Android 无障碍服务
三进程模型:你的进程 ↔ system_server ↔ 被监控进程,你和目标应用永不直接通信事件完整链路:View.performClick → ViewRootImpl 异步打包 → AccessibilityManager → system_server 聚合过滤 → 你的 Service四层过滤:事件类型、notificationTimeout(按类型独立计时)、包名、反馈类型,任意一层不过就收不到节点是 Binder 对象:必须 recycle,否则缓慢泄漏系统资源。
2026-04-20 13:56:42
532
原创 国内使用安装 Claude Code
本文将手把手教你从零开始搭建完整的AI编程开发环境,涵盖Node.js、Claude Code、VS Code和CC-Switch四大核心工具。无论你是前端开发者、AI应用开发者,还是刚刚入门编程的新手,这套环境都能让你在AI辅助下更高效地编写代码。本文环境为window11环境Node.js是一个基于Chrome V8引擎的JavaScript运行环境,让你能够在服务器端运行JavaScript代码。
2026-03-19 17:38:57
1688
1
原创 从LLM到Agent:大语言模型核心概念指南
领域知识(Prompt 模板、Few-shot 示例)工具集(Tools/Resources)执行流程(Workflow/State Machine)记忆模式(该领域的上下文管理)AI系统传统软件类比作用LLM推理引擎/解释决定下一步做什么Token字符/单词大模型处理的最基本单元Context运行时内存当前可见信息RAG数据库查询提供外部数据PromptCLI输入/参数用户输入Tool函数执行具体操作MCPAPI规范统一调用协议Agent。
2026-03-18 16:13:20
567
原创 从 Function Calling 到 MCP:一文看懂 AI Agent 的完整技术体系(2026)
AI 正从“聊天机器人”走向“数字员工”过去两年,大模型技术迅速发展。从ChatGPT到Claude再到GeminiAI 的能力已经远远超越传统 NLP 系统。但如果仔细观察就会发现:绝大多数 AI 应用仍然停留在 问答模式。LLM发展↓AI很强↓AI仍然只是问答↓现实需求是执行任务↓Agent出现AI Agent 是一种 能够自主理解任务、规划步骤、调用工具并完成目标的智能系统。用户 → LLM → 回复Agent 架构用户↓任务理解↓任务规划↓调用工具↓。
2026-03-15 22:14:46
748
原创 【Android】Android 车机 + AI Agent 有没有搞头?
车机应用生态越来越接近完整的 Android 设备功能越来越多,操作却越来越复杂。导航、音乐、空调、车辆设置仍然像一个个孤立的应用。切换应用记住操作路径手动组合多个功能在驾驶这种对安全和效率高度敏感的场景中,这种交互模式已经接近极限。问题的本质在于:传统车机系统仍然是“功能系统”,而不是“智能系统”。真正的突破口,是在车机系统中引入一个能够 理解、规划、决策并调度能力 的 AI Agent。如果说 Android 是车机的身体,那么 AI Agent 正在成为它的大脑。
2026-03-15 21:01:47
654
原创 Android 工程师 写出高质量 Prompt 的实战指南
Google / StackOverflow 时代:遇到问题先搜索开源框架时代:通过框架快速构建应用AI 编程时代:与 AI 协作开发生成代码分析 Bug设计架构优化性能但很快大家发现一个现象:同样的问题,不同的人问 AI,得到的答案质量差别非常大。完整代码架构设计优化建议模糊回答无法运行的代码泛泛而谈的解释问题的关键就在于一个词:Prompt(提示词)Prompt 并不是简单的一句话,而是一种新的工程能力。会写 Prompt 的程序员,将极大提升开发效率。
2026-03-14 23:39:13
400
原创 从像素开始:计算机图形中的图像世界
计算机图像是我们日常生活中不可或缺的一部分,从手机照片到网页设计,无处不在。本文将详细介绍计算机图像的基本概念、组成、常见格式以及处理方法。计算机图像,顾名思义,就是用计算机方法创建、处理和显示的图像。简单来说,计算机图像是一种以数字形式存在的图像,是现实世界或虚拟世界在计算机中的视觉表示。计算机图像通常分为两大类1、位图图像(Bitmap):由像素(Pixels)组成的图像,每个像素具有特定的颜色和位置。常见的照片和扫描图像都属于位图图像。2、矢量图像(Vector Graphics)
2025-04-06 01:38:57
1302
原创 Android的SurfaceView和TextureView介绍
SurfaceView 是一种用于直接将图形绘制到屏幕的Android组件。与常规的 View 不同,SurfaceView 通过使用一个独立的 Surface 来进行渲染,它不直接依赖于主 UI 线程,而是利用单独的硬件加速的线程进行渲染。SurfaceView 主要用于处理需要高效、实时渲染的场景,例如视频播放、游戏渲染、相机预览等。它的渲染操作由后台线程执行,避免了与主 UI 线程的竞争,提升了性能。主要类及源码文件。
2024-12-11 23:04:18
3487
原创 Android事件分发机制详解( 传统View和Compose ):从触摸到响应的全过程
在 Android 开发中,触摸事件的分发机制是一个核心知识点,直接影响到应用的用户交互体验。事件的传递和响应贯穿了 View 层级关系,从根视图到子视图形成完整的流程。本文将深入解析事件分发机制,并结合 View 的关系 进行说明。1、用户触摸事件触发:用户在屏幕上进行触摸操作,触发触摸事件(如 DOWN、MOVE、UP)。事件首先传递到 AndroidComposeView,这是 Compose 的根视图,负责接收并初始化事件分发过程。
2024-12-10 14:54:15
1978
原创 Android IO 性能优化:全面解析与实践
在现代 Android 应用中,I/O 性能直接影响用户体验。流畅的响应速度和高效的数据处理不仅让应用更具吸引力,还能延长设备电池寿命,减少存储磨损。本篇文章将深入探讨 Android 的文件系统架构、I/O 流程及优化方法,并结合实际场景提供详细的代码与实现。Android 应用中的 I/O 性能优化是从理论到实践的一项系统性工程。通过异步 I/O、文件操作合并、缓存优化和内存映射等方法,可以有效提升应用响应速度和流畅度。
2024-12-09 22:22:05
2012
原创 Android APK打包流程
Android APK 打包过程包括多个关键步骤,每个环节都提供了不同的操作机会。开发者可以在这些步骤中进行自定义,优化构建,调试,或增加特定的功能。1、资源打包(通过 AAPT 工具)生成资源索引文件 R.java。打包资源文件为二进制格式 resources.arsc。保留部分非二进制资源原始文件(如 res/raw 和图片)。2、处理 AIDL 文件将 .aidl 文件转换为 Java 接口文件。3、Java 源代码编译编译 R.java、Java 接口文件及其他源代码为 .class 文件。
2024-12-09 16:35:22
1591
原创 Android启动优化指南
应用启动时间是用户体验的重要指标,特别是首次启动时,优化可以显著提高用户对产品的满意度。例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。
2024-12-09 10:41:37
1625
原创 Android 内存优化实战指南
在移动应用开发中,内存优化一直是提升性能、避免崩溃、改善用户体验的重要任务。尤其在内存有限的 Android 设备上,优化内存使用能有效避免 ANR(应用无响应)和 OOM(内存溢出)问题。本文将结合常见场景和实际案例,带你深入探讨 Android 内存优化的核心技术和实用方法。内存优化的意义在于降低内存使用峰值,减少内存泄漏,并提升应用的流畅度。OOM 崩溃: 应用分配的内存超过限制,直接导致崩溃。UI 卡顿:垃圾回收(GC)频繁触发,暂停应用线程,用户体验下降。
2024-12-09 10:35:26
1606
原创 深入解析 Android PMS —— APK 安装与解析全流程
在 Android 系统中,PackageManagerService(简称 PMS)是负责管理应用程序的核心服务。无论是应用安装、卸载,还是权限分配,PMS 都扮演着至关重要的角色。本篇文章将带你深入探讨 PMS 的幕后机制,特别是 APK 安装与解析的详细流程。这篇文章的内容概述了 Android 系统中包管理服务(PMS)的工作原理,涉及从应用安装到卸载以及相关的持久化机制。介绍了系统启动时,SystemServer 启动 PMS 的过程,并通过 main 方法初始化 PMS。
2024-12-08 21:55:54
2849
原创 深入探索 Compose 渲染流程:从 UI 树到 Skia 绘制的实现解析
在现代 Android 应用中,Jetpack Compose 提供了一个声明式的 UI 构建框架。Compose 将界面定义为一个个 @Composable 函数,并通过这些函数创建 UI 元素。为了高效地渲染这些界面,Compose 将 UI 树转化为 Skia 渲染引擎的绘制指令,最终在屏幕上呈现出来。本文将通过源码解析 Compose 到 Skia 的渲染过程,帮助开发者理解这一渲染机制,并掌握如何优化界面更新。Compose UI 描述(声明式 UI)
2024-12-08 13:12:04
2140
原创 如何避免 Compose 中的重组(Recomposition)?细节优化指南
在 Jetpack Compose 中,重组(Recomposition) 是指在组件的状态或参数发生变化时,UI 元素的重新渲染过程。虽然 Compose 的声明式 UI 系统设计上便于管理 UI 状态,但如果不加以优化,频繁的重组会严重影响应用的性能和响应速度,导致不必要的资源消耗。本文将分享如何避免 Compose 中不必要的重组,并提供一些细节优化技巧,帮助你提高应用性能。在 Jetpack Compose 中,优化重组是提升应用性能的关键。
2024-12-04 17:33:28
1794
原创 什么是内网穿透开发
内网穿透开发是指将位于内网或防火墙后的应用服务(例如本地开发环境、内网服务器)暴露到外网,使外部用户能够通过互联网访问这些服务。开发环境共享:将本地开发服务暴露给外部团队进行测试或验证,而不需要部署到线上。远程访问内网资源:在外部访问公司或家里的内网设备,例如 NAS、监控系统。调试或展示:需要临时向外部展示一个项目,但不想或不方便上线到正式服务器。
2024-11-26 22:01:20
962
原创 【视频编码】量化
量化的核心是“挑重点,舍细节”,让视频看起来“差不多”,但文件小了许多。本文将通过详细讲解和通俗易懂的例子,带你深入了解量化是如何实现这一目标的。量化可以理解为“用粗略的方式描述一个东西,少花点力气但差不多还行”。吃西瓜的例子假如你有一个西瓜,想精确描述它,可能会用到很多数据:大小、重量、甜度、含水量,甚至瓜皮厚度……但如果只是告诉朋友这个瓜“挺甜的,8斤重”,其实已经够用了!省略了那些复杂的细节信息。在视频里,“西瓜”就像视频里的画面,“描述细节”就是数据量。量化的本质就是省略不重要的细节。
2024-11-26 21:45:22
1259
原创 【AI】基础原理
人工智能(AI)这个词对很多人来说既熟悉又陌生。我们每天都在用AI,比如聊天机器人、地图导航、甚至网购推荐,但如果问“AI是怎么工作的?”可能并不容易回答。其实,AI的工作原理并不神秘,用一些日常例子就能简单理解。AI 的本质是通过数学模型和计算,模拟人类学习和思考的过程。它本质上是一个“工具”:它可以帮我们分析数据、解决问题,甚至写文章、作画。但它不是万能的,需要高质量数据才能充分发挥作用。一句话形容AI:它能在围棋上打败世界冠军,但煮碗泡面还是得靠我们自己。
2024-11-25 22:07:13
1083
原创 AWS服务器介绍
AWS 服务器是指 Amazon Web Services(AWS)提供的基于云的服务器资源。AWS 是由亚马逊公司提供的一套云计算服务,广泛用于开发、托管和管理各种规模的应用程序和服务。一、AWS服务器的本质\color{blue}{一、AWS 服务器的本质}一、AWS服务器的本质AWS 服务器是指由 Amazon Web Services 提供的云计算资源,主要用于运行应用程序、存储数据、进行计算任务等。相比传统的物理服务器,AWS 服务器是一种虚拟化的基础设施。
2024-11-25 21:56:45
1787
原创 Android PMS(Package Manager Service)源码介绍
PackageManagerService(简称 PMS)是 Android 系统中的核心服务之一,负责应用的安装、卸载、查询和权限管理等。它是 Android 应用生命周期管理和安全机制的基石。1、应用安装与卸载2、静态权限解析与动态权限授予3、应用信息查询4、系统应用的预加载5、数据存储与一致性管理提示:以下是本篇文章正文内容,下面案例可供参考PMS 是 Android 系统中连接应用、用户和系统的桥梁,其源码体现了安装、卸载、权限管理的高效性和安全性。
2024-11-24 20:14:08
1744
原创 Jetpack Compose 如何布局解析
编译器处理UI 树的构建与状态管理测量与布局、以及重组机制。以下是结合源码的深入解析。转换 @Composable 函数,生成支持 Composer 和重组的代码。使用 Composer 构建 SlotTable,记录 UI 组件信息。通过 Constraints 和 MeasurePolicy 确定组件大小与位置。管理组件状态,触发高效重组,更新变化的 UI 节点。Compose 的解析流程从代码到最终渲染,严格遵循上述四步,使其能够在保持声明式编程风格的同时,达到高性能的动态更新能力。
2024-11-23 19:44:52
1238
原创 Jetpack Compose 如何适配不同分辨率设备
在移动开发中,适配不同分辨率和屏幕大小是不可避免的挑战。Jetpack Compose 提供了更现代化和灵活的方式来处理屏幕适配问题,不需要像传统的 XML 布局那样依赖多个 layout 文件。本文将详细介绍如何在 Compose 中实现适配各种分辨率和屏幕密度的方案。Jetpack Compose 提供了丰富的工具和 API,使得屏幕适配更加高效和灵活。相比传统 XML 布局,Compose 通过代码动态控制布局,减少了大量的冗余文件。
2024-11-22 23:39:36
2125
原创 从传统到未来:Android XML布局 与 Jetpack Compose的全面对比
随着 Android 开发技术的不断演进,用户界面的构建方式也经历了从传统的 XML 布局到 Jetpack Compose 的变革性转变。Jetpack Compose 是谷歌推出的一套全新的声明式 UI 框架,逐渐成为 Android 开发的主流趋势。那么,它与传统的 XML 布局究竟有哪些区别?让我们从多个角度进行全面解析。提示:以下是本篇文章正文内容,下面案例可供参考Jetpack Compose 是 Android UI 开发的未来,特别适合需要快速迭代、动态界面、以及复杂动画的场景。
2024-11-22 23:27:24
4095
3
原创 Compose 自定义布局
在 Jetpack Compose 中,布局通常由 Column、Row、Box 等预定义组件来实现。然而,有时我们需要更加灵活的布局来满足复杂的需求,Compose 允许我们创建 自定义布局。自定义布局不仅可以精确控制元素的排列方式,还可以响应不同的布局约束条件。提示:以下是本篇文章正文内容,下面案例可供参考Compose 中的自定义布局是通过实现 Layout 函数来完成的。: 一个包含所有子组件的列表,代表可以测量的元素。: 用来约束子组件大小的约束,决定了子组件能够扩展的最大和最小尺寸。
2024-11-21 18:44:24
1275
原创 Jetpack Compose 生命周期介绍
Jetpack Compose 的生命周期与传统的 View 不同,它主要基于和两个阶段来管理 UI 的创建和更新,同时通过一些工具(如)来处理生命周期事件。提示:以下是本篇文章正文内容,下面案例可供参考Jetpack Compose 的生命周期分为 Composition、Recomposition 和 Disposal。核心工具:LaunchedEffect:处理异步任务,与 UI 生命周期绑定。DisposableEffect:管理资源的初始化和清理。
2024-11-21 17:22:39
1321
原创 蓝牙 GATT 协议及其在 Android 的实现
蓝牙 GATT(Generic Attribute Profile,通用属性配置文件)是基于低功耗蓝牙(Bluetooth Low Energy, BLE)的一个重要协议,用于定义如何在设备之间传输数据。它是 BLE 的核心协议之一,广泛应用于智能手环、蓝牙传感器等 IoT 设备。蓝牙GATT协议在低功耗蓝牙通信中至关重要。Android BLE 实现提供了丰富的接口,可以灵活实现扫描、连接、数据交互等功能。开发过程中需重点关注设备兼容性权限及通信稳定性。
2024-11-20 21:51:13
3668
1
原创 LeeCode 1. 两数之和
优化的核心是 充分利用辅助数据结构(如哈希表)来减少遍历次数:暴力解法:两层循环,时间复杂度哈希表解法:一层循环,时间复杂度如果进一步优化,还可以用其他高级方法(比如双指针,前提是数组有序),但在大多数情况下,哈希表法已经非常高效!
2024-11-20 21:10:52
1211
原创 Compose 常用UI组件
Jetpack Compose 是 Android 开发中的声明式 UI 工具包,它能够帮助开发者快速构建现代化、响应式的用户界面。通过 Compose,开发者能够以更加简洁和可读的方式编写 UI,而无需像传统的 XML 布局一样处理复杂的视图层级。本文将深入介绍 Jetpack Compose 中常用的 UI 组件,帮助开发者更好地理解其使用方式和场景。Jetpack Compose 提供了一系列功能强大且易于使用的 UI 组件,通过组合这些组件,开发者能够高效地构建复杂的界面和交互。
2024-11-19 22:12:56
2001
原创 Linux指令大全
提示:以下是本篇文章正文内容,下面案例可供参考这些命令仅是 Linux 常见操作的基础,随着经验的积累,你会更加熟练地使用这些命令来管理系统、解决问题、进行开发等。如果你有特别的需求或命令想要深入了解,随时告诉我!
2024-11-19 21:38:35
1162
原创 全面解析 Android 系统架构:从内核到应用层的分层设计
Android 是目前全球范围内最受欢迎的移动操作系统之一,其背后的系统架构设计是支撑其高效运行和灵活适配能力的关键。本文将从底层到顶层,深入解析 Android 系统架构的各个组成部分及其作用,帮助您更全面地了解这个庞大且复杂的系统。HAL 连接硬件和系统服务,是硬件厂商适配 Android 系统的关键层。它通过接口标准化硬件访问,使上层软件不需要直接操作硬件。易于扩展:每层职责明确,新增硬件或功能只需修改相关层。性能优化:通过 Native Libraries 和 ART 提升系统整体性能。
2024-11-18 21:17:59
3086
原创 Android Activity Manager Service (AMS) 深入详解及源码分析
AMS 是 Android 的核心服务,负责管理应用生命周期、进程调度、任务栈、Activity 启动与切换等功能。为了全面剖析 AMS 的工作机制,本文从启动过程、核心组件、源码分析、常见问题及优化等角度展开。步骤方法源码路径1、 SystemServer 启动2、 启动 AMS 服务3、创建 AMS 实例4、AMS 构造函数初始化5、启动核心逻辑6、完成 Binder 服务注册AMS 是 Android 系统的中枢,其源码复杂但逻辑清晰,理解其工作机制可以帮助开发者优化应用性能。
2024-11-18 21:04:02
4203
原创 Android Framework层介绍
Android 操作系统自诞生以来,凭借其开源和高度可定制的特点,迅速成为全球使用最广泛的智能手机操作系统之一。在 Android 系统中,Framework 层是连接底层硬件和应用层的核心组成部分。它不仅为应用提供了访问操作系统功能的接口,还使得开发者可以高效地构建和管理应用的生命周期、资源、UI 以及系统服务等。了解 Android Framework 层对开发者至关重要,因为它直接影响着应用的性能、稳定性和用户体验。
2024-11-17 17:53:04
2475
原创 【视频压缩】变换编码 —— 02
在视频压缩中,变换编码是一种非常重要的技术。它的作用是把图像数据从“像素的世界”(空间域)转换到“频率的世界”(频率域),从而更高效地压缩数据。为了让你更清楚,我会从日常生活的例子入手,把这些概念拆解得更容易理解。空间域图像以像素值的形式表示,像我们看一张图片时,直接看到的明暗变化。比如,一个8×8像素的块,像是用数字表示亮度的表格:这些数值直接描述了每个像素的亮度。频率域在频率域,图像不再以像素的形式表示,而是分解成一系列“频率分量”。1、低频分量:描述图像的整体轮廓和大致色块。2、
2024-11-17 17:20:17
984
原创 蓝牙PBAP协议及Android实现
在现代智能设备的互联互通中,蓝牙技术扮演着至关重要的角色。无论是车载系统、智能耳机,还是各种穿戴设备,蓝牙技术都提供了高效的数据共享能力。其中,PBAP(Phone Book Access Profile)协议专注于电话簿的访问和共享成为设备间实现联系人和通话记录同步的核心协议。本文将全面介绍 PBAP 的基本概念、工作流程、在 Android 中的实现方式,以及常见问题的解决方案,帮助开发者深入了解 PBAP 的功能和应用。
2024-11-16 20:40:12
2658
原创 蓝牙 HFP 协议详解及 Android 实现
蓝牙免提协议(HFP,Hands-Free Profile)是用于支持免提通话的标准协议,广泛应用于车载蓝牙系统、蓝牙耳机等设备。HFP提供了拨号接听电话挂断电话以及语音拨号等功能,同时支持同步手机电量、信号等状态信息。本文将详解 HFP 协议的工作原理,并探讨其在 Android 开发中的实现及常见问题解决方案。蓝牙 HFP 是专为实现免提功能而设计的协议。它通过蓝牙控制信道和音频信道,实现手机与免提设备之间的语音和控制信息的双向通信。
2024-11-16 19:46:54
4850
原创 Android adb 指令大全
常用的 Android ADB(Android Debug Bridge) 指令大全,涵盖了设备管理、应用管理、调试等常见操作。
2024-11-15 22:56:22
2531
原创 蓝牙 AVRCP 协议详解及 Android 实现
随着无线音频设备的普及,蓝牙已经成为智能设备间通信的主流方式之一。除了传输音频流的 A2DP 协议外,AVRCP(Audio/Video Remote Control Profile,音频/视频远程控制协议)为用户提供了对蓝牙音频设备的控制能力,例如播放、暂停、调整音量等功能。本文将详细介绍 AVRCP 协议的基本概念、工作原理及在 Android 中的典型应用场景,同时列举常见问题及其解决方案,帮助开发者更好地利用 AVRCP 实现音频设备的交互控制。
2024-11-15 22:11:32
6145
原创 蓝牙A2DP协议详解及Android实现
在无线音频传输技术中,蓝牙A2DP协议(Advanced Audio Distribution Profile,高级音频分发协议)是关键的基础之一。特别是在现代移动设备和音频设备的连接中,A2DP协议使我们可以方便地将高质量音频从手机等设备传输至蓝牙耳机、音响或车载音响等接收设备。本文将深入解析蓝牙A2DP协议的工作原理、关键技术点,并详细讲解如何在Android系统中实现这一协议的功能。提示:以下是本篇文章正文内容,下面案例可供参考A2DP。
2024-11-14 10:46:08
5491
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅