自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

分享Android应用和系统开发、音视频编码、性能优化相关知识

收藏+关注+点赞,是原创分享的动力。

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

原创 Android Studio(2025.1.2)Gemini Agent 使用指南

本文介绍了Android Studio 2025.1.2版本中Gemini Agent AI编程助手的功能及使用方法。Gemini Agent通过Gemini模型提供智能代码补全、依赖更新、代码生成与优化等核心功能,可显著提升开发效率。文章详细说明了如何获取API Key并配置使用,演示了自动更新依赖版本的典型应用场景,包括自动接受建议和自定义项目规则等功能。Gemini Agent的深度AI集成将帮助开发者从重复性工作中解放,专注于创新开发。

2025-08-07 11:27:52 428

原创 Android 区块链 + CleanArchitecture + MVI 架构实践

本文介绍了基于Android平台构建的去中心化电商平台实践,采用Solana Mobile SDK集成区块链技术,结合Clean Architecture和MVI架构模式实现现代化应用开发。严格遵循三层架构设计:表现层使用MVI模式管理UI状态,领域层封装业务逻辑,数据层实现多种数据源访问。

2025-08-04 10:47:04 911

原创 Android性能优化--16K对齐深入解析及适配指南

安卓16将全面转向16K页面对齐,这一底层变革将显著提升性能表现。相比传统的4KB页面,16K对齐可使应用启动速度提升3%-30%,系统启动加快8%,并降低约4.5%的功耗。开发者需在2025年11月前完成适配,重点检查原生.so库的对齐情况,使用最新构建工具并添加特定链接参数。用户将获得更流畅的体验和更长的续航。这一优化是安卓生态向高效内存管理的重要演进。

2025-08-02 10:33:27 834

原创 Android 相机应用开发中 CameraX 的使用介绍

摘要: CameraX是Android Jetpack中的相机开发库,基于Camera2 API封装,简化开发流程并提供跨设备一致性。其核心优势包括易用性、生命周期管理、丰富功能和扩展性,支持预览、拍照、图像分析和视频录制等用例。开发步骤包括添加依赖、请求权限、配置预览视图,并使用ProcessCameraProvider绑定用例到生命周期。CameraX通过抽象底层细节,显著降低开发复杂度,适合快速构建稳定高效的相机应用。

2025-07-29 09:34:05 969

原创 安卓基于 FirebaseAuth 实现 google 登录

本文介绍了在Android应用中基于Firebase Authentication实现Google登录的完整流程。主要内容包括:1)前期准备工作,如创建Firebase项目、配置Android应用并获取SHA-1密钥;2)添加必要的Firebase SDK依赖项;3)在Firebase控制台启用Google登录服务;4)在Android应用中初始化GoogleSignInClient;5)启动Google登录流程并处理登录结果,将获取的ID令牌传递给Firebase进行验证。文中详细说明了配置细节和注意事项

2025-07-14 11:40:20 696

原创 安卓动画技术全攻略:6大主流方案深度对比与最佳实践

序列帧动画:通过图片序列实现,文件体积大但实现简单,适合简单动画GIF:广泛兼容但色彩有限,适合Web兼容性要求高的场景Lottie:基于JSON的矢量动画,文件极小且可动态控制,适合复杂UI动画WebP:比GIF更高效的现代格式,适合需要高压缩率的场景SVGA:专为移动端优化的矢量格式,适合直播礼物特效等AVIF:最新图像格式,压缩率最高,适合高质量动画需求

2025-06-24 21:41:33 866

原创 安卓AOP变天了?AspectJ的黄昏与KSP的崛起

本文探讨了AOP技术在Android开发中的演变,重点分析了AspectJ在Android生态中逐渐衰落的原因。随着Android开发生态的发展,AspectJ正面临编译性能问题、配置复杂性、调试困难、高学习成本和维护成本等挑战。现代替代方案如Kotlin符号处理器(KSP)因其卓越的编译性能、简洁API设计和原生Kotlin支持而受到推荐。KSP相比传统方法在编译时间、内存占用和增量编译支持方面表现更优,成为当前Android实现AOP的更优选择。

2025-06-19 07:00:00 750

原创 安卓Compose实现鱼骨加载中效果

kotlin compose 鱼骨加载中效果

2025-06-03 09:10:27 790

原创 安卓开发用到的设计模式(3)行为型模式

1. 命令模式(Command Pattern)2. 策略模式(Strategy Pattern)3. 观察者模式(Observer Pattern)4. 模板方法模式(Template Method Pattern)5. 责任链模式(Chain of Responsibility Pattern)6. 状态模式(State Pattern)7. 访问者模式(Visitor Pattern)8. 中介者模式(Mediator Pattern)9. 迭代器模式(Iterator Pattern

2025-05-27 22:57:22 1100

原创 安卓开发用到的设计模式(2)结构型模式

本文介绍了安卓开发中常用的五种结构型设计模式:适配器模式(用于RecyclerView和网络请求适配)、装饰器模式(扩展Context功能与View装饰)、代理模式(管理图片加载和权限检查)、桥接模式(实现主题切换和数据存储分离)以及组合模式(构建View树结构和菜单层级)。这些模式通过解耦接口与实现、复用对象结构等方式,有效提升了代码的可维护性和扩展性,是安卓开发中的核心架构思想。

2025-05-24 22:01:12 976

原创 安卓开发用到的设计模式(1)创建型模式

本文介绍了在Android开发中常用的创建型设计模式及其应用场景。单例模式用于确保类只有一个实例,如系统服务和数据管理器;工厂模式通过隐藏创建逻辑来简化对象创建,如Fragment和IntentService的实例化;抽象工厂模式用于创建一系列相关对象,如主题系统和数据访问层;建造者模式通过分离构建过程与表示来创建复杂对象,如Dialog和Retrofit的配置;原型模式通过复制原型实例来创建新对象,如Intent的克隆和配置对象的复制。

2025-05-21 22:12:52 1188

原创 驾驭数据洪流:大数据治理的全面解析与实战方案

未来,大数据治理将趋向AI驱动、主动式、数据网格、数据可观测性、隐私增强计算和实时治理。总之,大数据治理是组织在数字时代取得成功的关键,需持续改进以将数据转化为业务增长和创新的动力。

2025-05-14 10:13:04 1098 1

原创 基于Docker的Bitwarden的私有本地部署

本文介绍了如何在本地基于Docker部署Bitwarden密码管理工具,以实现更稳定和安全的服务。首先,作者选择在腾讯云应用服务器上安装宝塔面板和Docker,并拉取vaultwarden/server镜像,避免使用旧版或不兼容的镜像。接着,通过创建容器、配置端口映射、文件挂载和反向代理,确保服务正常运行。为了增强安全性,作者还配置了HTTPS证书,并关闭了注册功能,限制只有特定用户可以使用该服务。最终,用户可以通过浏览器访问配置的域名,创建账号并登录使用自托管的Bitwarden服务。

2025-05-11 23:28:17 1138

原创 Android Compose 中 Side Effects 和 State 相关的 API 使用

理解 Side Effects 和 State 是构建复杂且响应迅速的 Android Compose 应用的关键。允许你在 Composable 的生命周期内安全地执行 Composable 范围之外的操作,并提供了各种 API 来处理不同类型的副作用,例如一次性操作 ()、生命周期绑定的协程 ()、引用最新状态 ()、资源清理 () 和异步状态生产 ().State是驱动 UI 更新的数据,Compose 提供了多种 API 来管理不同生命周期和复杂度的状态,包括简单的内部状态 (remember和。

2025-05-03 11:37:55 956 1

原创 安卓 Compose 相对传统 View 的优势

Jetpack Compose凭借声明式编程、Kotlin语法、智能重组、高效状态管理等核心优势,在开发效率、性能表现、可维护性、可测试性等方面全面超越传统View系统。尽管对于习惯传统开发模式的开发者而言,Compose存在一定学习曲线,但随着移动应用开发需求的不断升级,Compose所带来的长期价值和显著优势使其成为安卓UI开发的必然趋势,将引领安卓应用开发迈向新的高度。

2025-04-25 10:59:41 864

原创 音乐播放对接状态栏MediaSession控制

本文介绍了在 Android 应用中对接音视频播放与系统状态栏 MediaSession 控制的两种主要方式:使用和使用ExoPlayer。虽然可以实现基本的音频播放,但要对接系统通知栏和状态栏的播放控制,需要开发者手动创建和管理以及自定义通知栏,处理各种播放控制事件,实现较为复杂。ExoPlayer是 Google 官方推荐的更强大、更灵活的媒体播放库,并且与库中的和集成得更好。使用ExoPlayer和可以更简洁地实现状态栏和通知栏的播放控制,ExoPlayer会自动处理大部分与系统媒体控制的交互。

2025-04-18 11:03:49 1030

原创 System 应用访问 Vendor 库的详细方案

SELinux 是 Android 的强制访问控制 (MAC) 系统,它通过安全策略规则来限制进程对系统资源的访问。每个进程和文件都有一个安全上下文(Security Context),SELinux 策略定义了不同安全上下文之间的交互规则。默认情况下,system应用的上下文和vendor库的上下文可能不允许直接访问。通过自定义 SELinux 策略,可以显式地允许特定的system应用访问特定的vendor库。详细配置方法:使用查找你的system应用进程的 SELinux 上下文。

2025-04-12 17:41:44 926

原创 详解 kotlin 相对 Java 特有的关键字及使用

Kotlin 在兼容Java的基础上,引入了许多特有的关键字,这些关键字为Kotlin带来了简洁、高效的编程体验。这些Kotlin特有的关键字为开发者提供了更丰富、灵活的编程方式,使得代码更加简洁、易读和高效。

2025-04-10 09:52:34 801

原创 安卓Compose中accompanist库使用详解

优势:Accompanist 显著简化了权限管理、复杂布局、动画过渡等场景的开发成本。注意事项:随着 Compose 版本更新,部分功能(如分页组件)可能迁移至官方库,建议定期查阅 官方迁移指南。最佳实践:通过模块化依赖管理(BoM)确保版本兼容性。通过合理使用这些库,开发者可大幅提升 Compose 开发效率,同时保持代码的简洁性与可维护性。

2025-03-12 15:22:36 1540

原创 2025年上海安卓发展机遇

安卓开发者应重点关注 车载系统、工业物联网、医疗健康应用、AR/VR交互 四大方向,结合上海产业政策红利,通过技术跨界(如AI+Android)和生态协作抢占先机。同时,及时跟进如鸿蒙原生适配、低空经济等新兴领域,拓展技术边界。

2025-03-02 19:59:13 647

原创 2025年如何实现安卓、iOS、鸿蒙跨平台开发

优先 ArkUI-X:若项目需深度集成鸿蒙特性(如多设备协同),且希望长期投入鸿蒙生态。选 Flutter/React Native:若团队已有经验,且需快速覆盖主流平台。混合开发:核心功能用原生(如鸿蒙分布式模块),其他部分用跨平台框架,平衡效率与体验。更多技术细节可参考华为开发者文档、Flutter 鸿蒙社区适配指南。

2025-02-28 12:45:44 3548

原创 Android 中音频焦点的使用场景及示例

通过以上示例,我们可以看到音频焦点在 Android 应用中的重要性及其实现方式。合理使用音频焦点可以让应用提供更好的用户体验,与其他应用和谐共存。在实际开发中,建议根据具体场景选择合适的实现方式,并注意版本兼容性处理。

2024-09-18 22:47:35 1403

原创 编程学习中的“知识宝库”打造秘籍

在编程学习的海洋中,一个高效的笔记记录和整理方法是我们不可或缺的工具。通过选择合适的工具、建立记录习惯、定期整理笔记、使用标签和索引以及建立知识图谱等方法,我们可以打造属于自己的编程学习“知识宝库”,为我们的编程之路提供有力的支持。让我们一起行动起来,用心记录每一个知识点,整理出属于自己的编程知识体系,在编程的世界里不断前行。

2024-08-25 00:03:35 412

原创 Kotlin 的优势:现代编程语言的卓越选择

简洁与优雅的语法空安全特性函数式编程,支持高阶函数、lambdaKotlin 内联函数与 Java 的互操作性强大的类型推断协程支持`lazy` 委托object 单例模式区间表达式现代的开发工具支持

2024-07-29 22:22:01 609

原创 安卓14中Zygote初始化流程及源码分析

日志抓取结合日志与源码分析systemServer zygote创建时序图一般应用 zygote 创建时序图向 zygote socket 发送数据时序图

2024-07-12 23:17:16 1184 1

原创 安卓Framework开发快速分析日志及定位源码

如何区分源码中 main system events 日志查看 Activity 生命周期日志分析 events 日志在源码中位置应用进程ID助分析具体应用ProtoLog 动态开关日志如何快速定位相关流程的代码位置

2024-07-01 11:59:48 981

原创 adb常用命令详解--提升开发效率利器

文件管理截屏与录屏logcat 使用dumpsys 相关ps 相关am 相关pm 相关wm 相关setprop 设置属性input 相关adb connect 远程无线调试

2024-06-17 14:00:18 1382

原创 Android 性能优化--APK加固(2)加密

字符串加密图片加密如何避免应用被重新签名分发APK 加壳的方案简析DEX加密原理及实现

2024-03-07 09:21:59 1774

原创 Android 性能优化--APK加固(1)混淆

为什么要开启混淆如何开启代码混淆如何开启资源压缩代码混淆配置代码混淆后,Crash 问题定位

2024-02-29 13:25:57 1496 2

原创 安卓相机慢动作的软件实现要点

慢动作英文称呼SlowMotion,也就是高帧率录像,如果以正常30帧播放,就能看到慢动作效果,可以用来拍摄快速移动物体的瞬间,比如鱼儿的游动、终点冲刺结果等。本文主要介绍慢动作在安卓相机应用中如何实现

2024-02-25 16:21:41 2060 1

翻译 [译]Android性能优化-Kotlin优化isBlank

最近在优化 Jetpack Compose 运行时的部分时,偶然发现了一个看似无害的 API isBlank() 。如果调用的字符串为空或仅由空格字符组成,则此 API 将返回 true 。但它真的无害吗?让我们看一下 JVM 实现,以更好地了解它的作用

2024-02-23 10:55:53 242

原创 安卓OpenGL添加水印并录制(二)---抖音录制原理

通过 前文 我们知道了如何采集 Camera 视频,叠加水印、贴纸保存为MP4,但是录制视频并没有音频,本文进一步介绍添加音频录制实现。

2024-02-20 22:15:54 1512 2

原创 如何把手机平板变为电脑的屏幕

闲置的手机平板、触屏音箱等,均可作为电脑的扩展屏,为电脑增加一块显示屏,本文介绍如何使用免费的软件spacedesk实现。

2024-02-11 21:37:08 7640 1

原创 安卓SurfaceTexture中updateTexImage使用及源码分析

在Android系统中,SurfaceTexture 是一个特殊的类,它将来自硬件纹理缓冲区(如相机预览流或视频解码输出)的图像数据转换为 OpenGL ES 可以直接使用的纹理。updateTexImage() 方法是 SurfaceTexture 类的核心方法之一,此方法的主要作用是从 SurfaceTexture 内部持有的图像缓冲区中取出最新一帧,并将其内容复制到与 SurfaceTexture 关联的 OpenGL 纹理上。这对于实时图形渲染、视频播放以及从相机捕获并实时处理图像等场景至关重要。

2024-02-02 22:49:08 2284 2

原创 安卓MediaRecorder(4)视频采集编码写入详细源码分析

通过 文2 我们知道了 MediaRecorder 各个接口 Framework 中的实现。通过 文3 我们 知道了 MediaRecorder 底层音频的采集、编码、写入文件等详细流程。本文主要介绍 MediaRecorder 视频的采集、编码等相关流程。

2024-01-24 22:07:39 1692 1

原创 安卓MediaRecorder(3)音频采集编码写入详细源码分析

前言音频采集音频初始化AudioRecord 分析AudioSource 采集到音频音频编码音频编码后数据处理MPEG4Writer写入音频编码后数据到文件MPEG4Writer::Track 取编码后的音频编数据结语

2024-01-13 11:19:43 1816 1

原创 Intellij建议用String替换StringBuilder

本文探讨了在Java开发中字符串拼接的性能问题,特别是String与StringBuilder的使用场景。通过性能测试和字节码分析,文章指出在简单拼接场景下,String的+操作符由于JDK的底层优化,性能与StringBuilder相当,且代码更简洁。然而,在循环累加等复杂场景中,StringBuilder仍具有明显性能优势。文章建议根据具体场景选择合适的方式:简单拼接使用String,循环拼接使用StringBuilder,并提供了最佳实践建议。

2024-01-01 13:24:40 739 1

原创 安卓MediaRecorder(2)录制源码分析

JAVA new MediaRecorder() 源码分析android_media_MediaRecorder.cpp native_init()MediaRecorder.java postEventFromNativeandroid_media_MediaRecorder.cpp native_setup()MediaRecorder 参数设置MediaRecorder.prepare 分析MediaRecorder.start 分析MediaRecorder.stop 分析

2023-12-09 16:29:42 1822 2

原创 Android Bitmap 使用Vukan、RenderEffect、GLSL实现模糊

使用 Vukan 模糊使用 RenderEffect 模糊使用 GLSL 模糊RS、Vukan、RenderEffect、GLSL 效率对比

2023-11-27 22:43:03 3113 1

原创 安卓使用MediaRecorder(1)录制音频的详细使用

引言使用 MediaRecorder 的步骤常见问题及解决思路无法访问存储卡目录录制的音频文件没有声音录制过程中出现异常MediaRecorder无法正常启动录制的音质或者画质很差录制的文件无法播放结语

2023-11-26 19:11:39 4877

Android基于perfetto分析native内存泄露 Trace

Android基于perfetto分析native内存泄露 的trace文件及traceconv.exe 原文地址 https://blog.csdn.net/CSqingchen/article/details/128382445

2022-12-20

空空如也

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

TA关注的人

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