自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(68)
  • 资源 (1)
  • 收藏
  • 关注

原创 从像素开始:计算机图形中的图像世界

计算机图像是我们日常生活中不可或缺的一部分,从手机照片到网页设计,无处不在。​本文将详细介绍计算机图像的基本概念、组成、常见格式以及处理方法。计算机图像,顾名思义,就是用计算机方法创建、处理和显示的图像。简单来说,计算机图像是一种以数字形式存在的图像,是现实世界或虚拟世界在计算机中的视觉表示。计算机图像通常分为两大类1、位图图像(Bitmap):​由像素(Pixels)组成的图像,每个像素具有特定的颜色和位置。常见的照片和扫描图像都属于位图图像。​2、矢量图像(Vector Graphics)

2025-04-06 01:38:57 464

原创 Android的SurfaceView和TextureView介绍

SurfaceView 是一种用于直接将图形绘制到屏幕的Android组件。与常规的 View 不同,SurfaceView 通过使用一个独立的 Surface 来进行渲染,它不直接依赖于主 UI 线程,而是利用单独的硬件加速的线程进行渲染。SurfaceView 主要用于处理需要高效、实时渲染的场景,例如视频播放、游戏渲染、相机预览等。它的渲染操作由后台线程执行,避免了与主 UI 线程的竞争,提升了性能。主要类及源码文件。

2024-12-11 23:04:18 2224

原创 Android事件分发机制详解( 传统View和Compose ):从触摸到响应的全过程

在 Android 开发中,触摸事件的分发机制是一个核心知识点,直接影响到应用的用户交互体验。事件的传递和响应贯穿了 View 层级关系,从根视图到子视图形成完整的流程。本文将深入解析事件分发机制,并结合 View 的关系 进行说明。1、用户触摸事件触发:用户在屏幕上进行触摸操作,触发触摸事件(如 DOWN、MOVE、UP)。事件首先传递到 AndroidComposeView,这是 Compose 的根视图,负责接收并初始化事件分发过程。

2024-12-10 14:54:15 1368

原创 Android IO 性能优化:全面解析与实践

在现代 Android 应用中,I/O 性能直接影响用户体验。流畅的响应速度和高效的数据处理不仅让应用更具吸引力,还能延长设备电池寿命,减少存储磨损。本篇文章将深入探讨 Android 的文件系统架构、I/O 流程及优化方法,并结合实际场景提供详细的代码与实现。Android 应用中的 I/O 性能优化是从理论到实践的一项系统性工程。通过异步 I/O、文件操作合并、缓存优化和内存映射等方法,可以有效提升应用响应速度和流畅度。

2024-12-09 22:22:05 1298

原创 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 1140

原创 Android启动优化指南

应用启动时间是用户体验的重要指标,特别是首次启动时,优化可以显著提高用户对产品的满意度。例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

2024-12-09 10:41:37 848

原创 Android 内存优化实战指南

在移动应用开发中,内存优化一直是提升性能、避免崩溃、改善用户体验的重要任务。尤其在内存有限的 Android 设备上,优化内存使用能有效避免 ANR(应用无响应)和 OOM(内存溢出)问题。本文将结合常见场景和实际案例,带你深入探讨 Android 内存优化的核心技术和实用方法。内存优化的意义在于降低内存使用峰值,减少内存泄漏,并提升应用的流畅度。OOM 崩溃: 应用分配的内存超过限制,直接导致崩溃。UI 卡顿:垃圾回收(GC)频繁触发,暂停应用线程,用户体验下降。

2024-12-09 10:35:26 985

原创 深入解析 Android PMS —— APK 安装与解析全流程

在 Android 系统中,PackageManagerService(简称 PMS)是负责管理应用程序的核心服务。无论是应用安装、卸载,还是权限分配,PMS 都扮演着至关重要的角色。本篇文章将带你深入探讨 PMS 的幕后机制,特别是 APK 安装与解析的详细流程。这篇文章的内容概述了 Android 系统中包管理服务(PMS)的工作原理,涉及从应用安装到卸载以及相关的持久化机制。介绍了系统启动时,SystemServer 启动 PMS 的过程,并通过 main 方法初始化 PMS。

2024-12-08 21:55:54 1517

原创 深入探索 Compose 渲染流程:从 UI 树到 Skia 绘制的实现解析

在现代 Android 应用中,Jetpack Compose 提供了一个声明式的 UI 构建框架。Compose 将界面定义为一个个 @Composable 函数,并通过这些函数创建 UI 元素。为了高效地渲染这些界面,Compose 将 UI 树转化为 Skia 渲染引擎的绘制指令,最终在屏幕上呈现出来。本文将通过源码解析 Compose 到 Skia 的渲染过程,帮助开发者理解这一渲染机制,并掌握如何优化界面更新。Compose UI 描述(声明式 UI)

2024-12-08 13:12:04 1251

原创 如何避免 Compose 中的重组(Recomposition)?细节优化指南

在 Jetpack Compose 中,重组(Recomposition) 是指在组件的状态或参数发生变化时,UI 元素的重新渲染过程。虽然 Compose 的声明式 UI 系统设计上便于管理 UI 状态,但如果不加以优化,频繁的重组会严重影响应用的性能和响应速度,导致不必要的资源消耗。本文将分享如何避免 Compose 中不必要的重组,并提供一些细节优化技巧,帮助你提高应用性能。在 Jetpack Compose 中,优化重组是提升应用性能的关键。

2024-12-04 17:33:28 1108

原创 什么是内网穿透开发

内网穿透开发是指将位于内网或防火墙后的应用服务(例如本地开发环境、内网服务器)暴露到外网,使外部用户能够通过互联网访问这些服务。开发环境共享:将本地开发服务暴露给外部团队进行测试或验证,而不需要部署到线上。远程访问内网资源:在外部访问公司或家里的内网设备,例如 NAS、监控系统。调试或展示:需要临时向外部展示一个项目,但不想或不方便上线到正式服务器。

2024-11-26 22:01:20 429

原创 【视频编码】量化

量化的核心是“挑重点,舍细节”,让视频看起来“差不多”,但文件小了许多。本文将通过详细讲解和通俗易懂的例子,带你深入了解量化是如何实现这一目标的。量化可以理解为“用粗略的方式描述一个东西,少花点力气但差不多还行”。吃西瓜的例子假如你有一个西瓜,想精确描述它,可能会用到很多数据:大小、重量、甜度、含水量,甚至瓜皮厚度……但如果只是告诉朋友这个瓜“挺甜的,8斤重”,其实已经够用了!省略了那些复杂的细节信息。在视频里,“西瓜”就像视频里的画面,“描述细节”就是数据量。量化的本质就是省略不重要的细节。

2024-11-26 21:45:22 909

原创 【AI】基础原理

人工智能(AI)这个词对很多人来说既熟悉又陌生。我们每天都在用AI,比如聊天机器人、地图导航、甚至网购推荐,但如果问“AI是怎么工作的?”可能并不容易回答。其实,AI的工作原理并不神秘,用一些日常例子就能简单理解。AI 的本质是通过数学模型和计算,模拟人类学习和思考的过程。它本质上是一个“工具”:它可以帮我们分析数据、解决问题,甚至写文章、作画。但它不是万能的,需要高质量数据才能充分发挥作用。一句话形容AI:它能在围棋上打败世界冠军,但煮碗泡面还是得靠我们自己。

2024-11-25 22:07:13 695

原创 AWS服务器介绍

AWS 服务器是指 Amazon Web Services(AWS)提供的基于云的服务器资源。AWS 是由亚马逊公司提供的一套云计算服务,广泛用于开发、托管和管理各种规模的应用程序和服务。一、AWS服务器的本质\color{blue}{一、AWS 服务器的本质}一、AWS服务器的本质AWS 服务器是指由 Amazon Web Services 提供的云计算资源,主要用于运行应用程序、存储数据、进行计算任务等。相比传统的物理服务器,AWS 服务器是一种虚拟化的基础设施。

2024-11-25 21:56:45 1337

原创 VPN 技术原理讲解

VPN(虚拟私人网络)技术的基本原理是通过公共网络(如互联网)建立一个加密的“隧道”,让数据在这个隧道内安全地传输,从而保护数据的隐私性、完整性和安全性。想象一下你在互联网上就像是在一个巨大的公共广场上行走。你在这个广场上浏览网站、发送消息、做交易。每个人都能看到你走在哪里,甚至知道你在干什么。这个广场上的每个角落都可以有人监听你的活动。VPN 就像是一条私密的隧道,它让你从广场的一个点出发,然后通过隧道直接进入一个安全的房间(就像是你的私人空间)。

2024-11-24 22:56:12 1170

原创 Android PMS(Package Manager Service)源码介绍

PackageManagerService(简称 PMS)是 Android 系统中的核心服务之一,负责应用的安装、卸载、查询和权限管理等。它是 Android 应用生命周期管理和安全机制的基石。1、应用安装与卸载2、静态权限解析与动态权限授予3、应用信息查询4、系统应用的预加载5、数据存储与一致性管理提示:以下是本篇文章正文内容,下面案例可供参考PMS 是 Android 系统中连接应用、用户和系统的桥梁,其源码体现了安装、卸载、权限管理的高效性和安全性。

2024-11-24 20:14:08 1332

原创 Git指令大全

Git 指令大全,涵盖了日常开发中常用的操作。

2024-11-23 21:59:45 588

原创 Jetpack Compose 如何布局解析

编译器处理UI 树的构建与状态管理测量与布局、以及重组机制。以下是结合源码的深入解析。转换 @Composable 函数,生成支持 Composer 和重组的代码。使用 Composer 构建 SlotTable,记录 UI 组件信息。通过 Constraints 和 MeasurePolicy 确定组件大小与位置。管理组件状态,触发高效重组,更新变化的 UI 节点。Compose 的解析流程从代码到最终渲染,严格遵循上述四步,使其能够在保持声明式编程风格的同时,达到高性能的动态更新能力。

2024-11-23 19:44:52 1061

原创 Jetpack Compose 如何适配不同分辨率设备

在移动开发中,适配不同分辨率和屏幕大小是不可避免的挑战。Jetpack Compose 提供了更现代化和灵活的方式来处理屏幕适配问题,不需要像传统的 XML 布局那样依赖多个 layout 文件。本文将详细介绍如何在 Compose 中实现适配各种分辨率和屏幕密度的方案。Jetpack Compose 提供了丰富的工具和 API,使得屏幕适配更加高效和灵活。相比传统 XML 布局,Compose 通过代码动态控制布局,减少了大量的冗余文件。

2024-11-22 23:39:36 1574

原创 从传统到未来:Android XML布局 与 Jetpack Compose的全面对比

随着 Android 开发技术的不断演进,用户界面的构建方式也经历了从传统的 XML 布局到 Jetpack Compose 的变革性转变。Jetpack Compose 是谷歌推出的一套全新的声明式 UI 框架,逐渐成为 Android 开发的主流趋势。那么,它与传统的 XML 布局究竟有哪些区别?让我们从多个角度进行全面解析。提示:以下是本篇文章正文内容,下面案例可供参考Jetpack Compose 是 Android UI 开发的未来,特别适合需要快速迭代、动态界面、以及复杂动画的场景。

2024-11-22 23:27:24 2498 3

原创 Compose 自定义布局

在 Jetpack Compose 中,布局通常由 Column、Row、Box 等预定义组件来实现。然而,有时我们需要更加灵活的布局来满足复杂的需求,Compose 允许我们创建 自定义布局。自定义布局不仅可以精确控制元素的排列方式,还可以响应不同的布局约束条件。提示:以下是本篇文章正文内容,下面案例可供参考Compose 中的自定义布局是通过实现 Layout 函数来完成的。: 一个包含所有子组件的列表,代表可以测量的元素。: 用来约束子组件大小的约束,决定了子组件能够扩展的最大和最小尺寸。

2024-11-21 18:44:24 1039

原创 Jetpack Compose 生命周期介绍

Jetpack Compose 的生命周期与传统的 View 不同,它主要基于和两个阶段来管理 UI 的创建和更新,同时通过一些工具(如)来处理生命周期事件。提示:以下是本篇文章正文内容,下面案例可供参考Jetpack Compose 的生命周期分为 Composition、Recomposition 和 Disposal。核心工具:LaunchedEffect:处理异步任务,与 UI 生命周期绑定。DisposableEffect:管理资源的初始化和清理。

2024-11-21 17:22:39 891

原创 蓝牙 GATT 协议及其在 Android 的实现

蓝牙 GATT(Generic Attribute Profile,通用属性配置文件)是基于低功耗蓝牙(Bluetooth Low Energy, BLE)的一个重要协议,用于定义如何在设备之间传输数据。它是 BLE 的核心协议之一,广泛应用于智能手环、蓝牙传感器等 IoT 设备。蓝牙GATT协议在低功耗蓝牙通信中至关重要。Android BLE 实现提供了丰富的接口,可以灵活实现扫描、连接、数据交互等功能。开发过程中需重点关注设备兼容性权限及通信稳定性。

2024-11-20 21:51:13 2133 1

原创 LeeCode 1. 两数之和

优化的核心是 充分利用辅助数据结构(如哈希表)来减少遍历次数:暴力解法:两层循环,时间复杂度哈希表解法:一层循环,时间复杂度如果进一步优化,还可以用其他高级方法(比如双指针,前提是数组有序),但在大多数情况下,哈希表法已经非常高效!

2024-11-20 21:10:52 1064

原创 Compose 常用UI组件

Jetpack Compose 是 Android 开发中的声明式 UI 工具包,它能够帮助开发者快速构建现代化、响应式的用户界面。通过 Compose,开发者能够以更加简洁和可读的方式编写 UI,而无需像传统的 XML 布局一样处理复杂的视图层级。本文将深入介绍 Jetpack Compose 中常用的 UI 组件,帮助开发者更好地理解其使用方式和场景。Jetpack Compose 提供了一系列功能强大且易于使用的 UI 组件,通过组合这些组件,开发者能够高效地构建复杂的界面和交互。

2024-11-19 22:12:56 1204

原创 Linux指令大全

提示:以下是本篇文章正文内容,下面案例可供参考这些命令仅是 Linux 常见操作的基础,随着经验的积累,你会更加熟练地使用这些命令来管理系统、解决问题、进行开发等。如果你有特别的需求或命令想要深入了解,随时告诉我!

2024-11-19 21:38:35 929

原创 全面解析 Android 系统架构:从内核到应用层的分层设计

Android 是目前全球范围内最受欢迎的移动操作系统之一,其背后的系统架构设计是支撑其高效运行和灵活适配能力的关键。本文将从底层到顶层,深入解析 Android 系统架构的各个组成部分及其作用,帮助您更全面地了解这个庞大且复杂的系统。HAL 连接硬件和系统服务,是硬件厂商适配 Android 系统的关键层。它通过接口标准化硬件访问,使上层软件不需要直接操作硬件。易于扩展:每层职责明确,新增硬件或功能只需修改相关层。性能优化:通过 Native Libraries 和 ART 提升系统整体性能。

2024-11-18 21:17:59 1881

原创 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 2448

原创 Android Framework层介绍

Android 操作系统自诞生以来,凭借其开源和高度可定制的特点,迅速成为全球使用最广泛的智能手机操作系统之一。在 Android 系统中,Framework 层是连接底层硬件和应用层的核心组成部分。它不仅为应用提供了访问操作系统功能的接口,还使得开发者可以高效地构建和管理应用的生命周期、资源、UI 以及系统服务等。了解 Android Framework 层对开发者至关重要,因为它直接影响着应用的性能、稳定性和用户体验。

2024-11-17 17:53:04 1530

原创 【视频压缩】变换编码 —— 02

在视频压缩中,变换编码是一种非常重要的技术。它的作用是把图像数据从“像素的世界”(空间域)转换到“频率的世界”(频率域),从而更高效地压缩数据。为了让你更清楚,我会从日常生活的例子入手,把这些概念拆解得更容易理解。空间域图像以像素值的形式表示,像我们看一张图片时,直接看到的明暗变化。比如,一个8×8像素的块,像是用数字表示亮度的表格:这些数值直接描述了每个像素的亮度。频率域在频率域,图像不再以像素的形式表示,而是分解成一系列“频率分量”。1、低频分量:描述图像的整体轮廓和大致色块。2、

2024-11-17 17:20:17 696

原创 蓝牙PBAP协议及Android实现

在现代智能设备的互联互通中,蓝牙技术扮演着至关重要的角色。无论是车载系统、智能耳机,还是各种穿戴设备,蓝牙技术都提供了高效的数据共享能力。其中,PBAP(Phone Book Access Profile)协议专注于电话簿的访问和共享成为设备间实现联系人和通话记录同步的核心协议。本文将全面介绍 PBAP 的基本概念、工作流程、在 Android 中的实现方式,以及常见问题的解决方案,帮助开发者深入了解 PBAP 的功能和应用。

2024-11-16 20:40:12 1480

原创 蓝牙 HFP 协议详解及 Android 实现

蓝牙免提协议(HFP,Hands-Free Profile)是用于支持免提通话的标准协议,广泛应用于车载蓝牙系统、蓝牙耳机等设备。HFP提供了拨号接听电话挂断电话以及语音拨号等功能,同时支持同步手机电量、信号等状态信息。本文将详解 HFP 协议的工作原理,并探讨其在 Android 开发中的实现及常见问题解决方案。蓝牙 HFP 是专为实现免提功能而设计的协议。它通过蓝牙控制信道和音频信道,实现手机与免提设备之间的语音和控制信息的双向通信。

2024-11-16 19:46:54 2827

原创 Android adb 指令大全

常用的 Android ADB(Android Debug Bridge) 指令大全,涵盖了设备管理、应用管理、调试等常见操作。

2024-11-15 22:56:22 1793

原创 蓝牙 AVRCP 协议详解及 Android 实现

随着无线音频设备的普及,蓝牙已经成为智能设备间通信的主流方式之一。除了传输音频流的 A2DP 协议外,AVRCP(Audio/Video Remote Control Profile,音频/视频远程控制协议)为用户提供了对蓝牙音频设备的控制能力,例如播放、暂停、调整音量等功能。本文将详细介绍 AVRCP 协议的基本概念、工作原理及在 Android 中的典型应用场景,同时列举常见问题及其解决方案,帮助开发者更好地利用 AVRCP 实现音频设备的交互控制。

2024-11-15 22:11:32 3301

原创 蓝牙A2DP协议详解及Android实现

在无线音频传输技术中,蓝牙A2DP协议(Advanced Audio Distribution Profile,高级音频分发协议)是关键的基础之一。特别是在现代移动设备和音频设备的连接中,A2DP协议使我们可以方便地将高质量音频从手机等设备传输至蓝牙耳机、音响或车载音响等接收设备。本文将深入解析蓝牙A2DP协议的工作原理、关键技术点,并详细讲解如何在Android系统中实现这一协议的功能。提示:以下是本篇文章正文内容,下面案例可供参考A2DP。

2024-11-14 10:46:08 2510

原创 【视频压缩】颜色空间转换与采样 —— 01

在视频编码和压缩过程中,采样和颜色空间转换是两个关键步骤。它们为后续的压缩处理(如变换编码、量化和熵编码)打下基础,并有效地减少了数据量。下面将详细介绍这两个概念以及它们在视频压缩中的作用。采样:通过减少色度分量的分辨率(例如4:4:4、4:2:2、4:2:0),减少视频数据的冗余,提高压缩效率。颜色空间转换:将视频从RGB颜色空间转换到YUV/YCbCr颜色空间,分离亮度与色度信息,使得视频编码和压缩更加高效。这两个过程是视频编码的基础环节,对视频的压缩效果、传输效率和最终画质有着重要影响。

2024-11-14 10:17:53 739

原创 视频编码基础入门

视频编码(Video Encoding)是将视频数据从原始格式转换为压缩格式的过程,旨在减少视频文件的大小,同时尽量保持视频的画质。这一过程涉及到视频信号的压缩和解压,通常应用于视频存储、传输以及流媒体播放等场景。理解视频编码的基础知识对于优化视频质量、降低存储和传输带宽需求、提高系统效率等方面非常重要。视频编码是视频处理中的一个核心技术,其目的是通过去除冗余数据来减小视频文件的大小,并提高传输效率。了解视频编码的基本原理,有助于理解视频质量与压缩率之间的权衡,并在实际应用中选择合适的编码标准与参数设置。

2024-11-13 15:58:00 1651

原创 视频流——背后技术介绍

视频流(Video Streaming) 是指通过网络将视频内容传输到用户设备的技术。与传统的下载不同,视频流技术允许我们在观看视频时,边下载边播放内容。简单来说,就是视频不需要等待下载完毕,而是能直接开始播放,几乎没有延迟。想象一下,如果你正在观看一场体育比赛的直播,而比赛正在进行,你通过视频流技术能立刻看到现场的画面,不需要等待任何文件的下载。视频流技术让我们可以随时随地观看自己喜欢的内容,变得更加方便。视频流技术已经成为现代互联网的重要组成部分,它使得我们能够即时、灵活地获取各种视频内容。

2024-11-13 08:59:29 2190

原创 探索 HTTP 请求方法:GET、POST、PUT、DELETE 等的用法详解

在 Web 开发中,HTTP 请求方法决定了客户端与服务器之间如何交流数据。无论使用 HTTP 还是 HTTPS 协议,这些请求方法都遵循相同的标准。本文将深入探讨常见的请求方法(GET、POST、PUT、DELETE 等)的用法、适用场景及常见误区。提示:以下是本篇文章正文内容,下面案例可供参考在实际开发中,根据不同的业务需求,合理选择 HTTP 请求方法可以提升接口设计的清晰度、可靠性和安全性。

2024-11-12 22:43:51 2512

原创 HTTP vs. HTTPS:从基础到安全的全面对比

在互联网世界中,HTTP和HTTPS协议是我们访问网站时常见的两种通信协议。它们的差异不止是“多了一个S”,而是涉及信息传输的安全性。本文将为你详细解读HTTP与HTTPS的区别、优缺点及其适用场景。HTTP 和 HTTPS 是两种用于在客户端(如浏览器)和服务器之间传输数据的网络协议。HTTP和HTTPS在数据传输中的应用各有不同。HTTP虽然速度快、兼容性好,但安全性较低;HTTPS则通过加密数据保证安全性,但稍微增加了一些资源消耗。

2024-11-12 09:00:17 1406

鸿蒙生态应用开发白皮书V3.0

鸿蒙生态应用开发白皮书

2024-11-01

Android 高斯模糊

Android 高斯模糊 + 截屏(注意android版本)

2022-08-30

Surface流程图.png

Surface流程图.png

2021-12-05

空空如也

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

TA关注的人

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