自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(148)
  • 收藏
  • 关注

原创 Android开发——HandlerThread

HandlerThread是Android中封装了Looper和消息队列的特殊线程,用于后台任务处理。它通过run()方法创建Looper和消息队列,进入消息循环处理任务,避免阻塞主线程。适用于视频解码等耗时操作,确保事件按顺序处理。使用后需调用quit()或quitSafely()防止内存泄漏,简化了后台线程管理并实现线程复用。

2025-10-29 16:18:53 467

原创 Android——RecyclerView技术总结

本文介绍了Android中RecyclerView的性能优化策略。首先分析了RecyclerView的三层缓存机制(Scrap、Cache和RecycledViewPool),说明其如何通过视图复用提升性能。其次探讨了DataBinding和DiffUtil的优化作用:DataBinding减少视图绑定开销,DiffUtil实现精确数据对比更新。最后详细讲解了7种局部刷新方法,重点介绍了notifyItemChanged(position,payload)的异步更新机制和实现方式。这些方法通过避免全量刷新,

2025-10-17 11:26:12 1084

原创 Android开发——设计模式技术总结

本文总结了三种常见设计模式在Android开发中的应用。单例模式通过饿汉式、双重检查锁和静态内部类实现线程安全的全局唯一实例,适用于数据库管理等场景;工厂模式(包括简单工厂、工厂方法和抽象工厂)封装对象创建过程,如ViewModel和线程池的创建,实现解耦与扩展性;建造者模式(OkHttp/Retrofit配置)和责任链模式(OkHttp拦截器)则分别解决复杂对象构建和请求处理链的问题。这些设计模式提升了代码的可维护性、性能和灵活性。

2025-10-15 15:42:38 847

原创 滑动视图RecyclerView与ScrolllView深度总结

本文深入分析了Android开发中RecyclerView的源码实现与优化机制。首先剖析了RecyclerView的继承体系与接口实现,包括ViewGroup提供的基础视图管理能力、ScrollingView接口确保的滚动行为一致性,以及NestedScrollingChild2/3接口实现的嵌套滚动协作。

2025-10-15 15:35:37 896

原创 Android通用开发——日志常用技术总结

Android日志系统是开发调试的重要工具,通过封装原生Log类(如OMSLogger)可添加版本号等上下文信息。Android Studio的Logcat工具提供强大的过滤功能,支持按tag、level、package等条件筛选,并能使用逻辑操作符和正则表达式进行精准查询。掌握这些技巧可帮助开发者从海量日志中快速定位问题,提升调试效率。

2025-10-09 17:00:48 854

原创 Android车机开发-TTRSXXXAIDL技术总结

摘要:AIDL在车机系统中作为客户端与系统服务的桥梁,实现音频、车辆信号等核心功能的跨进程调用。TTRSCarAudioAIDL管理多区域音频路由和策略,TTRSCarInfoAIDL将车辆信号转换为应用事件,TTRSCarModeAIDL处理系统级交互。这些服务通过HAL层与硬件通信,形成完整的调用链:App→AIDL→系统服务→HAL→驱动→硬件。AIDL提供安全可靠的接口契约,支持权限检查、状态监听和重连机制,确保系统可维护性和高性能运行。

2025-10-09 11:06:32 855

原创 Android -Glide实战技术总结

Glide库在Android开发中提供了高效的图片加载解决方案,其核心优势在于三级缓存机制(内存、磁盘、网络)和丰富的图片变换功能。通过自定义AppGlideModule可配置缓存路径和大小,利用GlideUtil工具类封装常用加载逻辑,简化API调用。库内置多种图片变换效果,并支持通过BitmapTransformation实现复杂自定义效果(如渐变边框圆形图)。LruCache和DiskLruCache

2025-09-29 15:40:59 977

原创 Android -自定义Binding Adapter实战应用

BindingAdapter是Android DataBinding框架中的关键组件,它通过注解方式连接XML属性与Kotlin方法。本文分析了多种应用场景:1)绑定简单/多属性到自定义View;2)实现RecyclerView数据自动更新;3)处理复杂对象与条件逻辑;4)封装图片加载功能;5)多类型View统一处理。所有方法都使用@JvmStatic注解定义在companion object中,支持静态调用。

2025-09-27 11:09:18 764

原创 Android-MVX技术总结

本文系统分析了四种主流架构模式:MVC、MVP、MVVM和MVI。MVC职责分离但Controller易臃肿;MVP通过Presenter解耦提升可测试性;MVVM采用数据绑定实现声明式编程;MVI强调单向数据流和不可变状态。文章重点阐述了MVVM的优势:通过Jetpack组件实现数据驱动UI,ViewModel管理数据状态,LiveData实现生命周期感知,DataBinding自动更新UI,既解决了MVC/MVP的耦合问题,又避免了MVI的学习成本。这种架构在保证开发效率的同时,提升了代码的可维护性和稳

2025-09-27 10:25:46 719

原创 Android-Git技术总结

Git是一种分布式版本控制系统,其核心由blob、tree、commit和tag四种对象构成。工作流程涉及工作区、暂存区和本地仓库三区模型,通过git add和git commit实现文件追踪与提交。在分支合并策略上,merge保留完整历史,rebase创建线性记录,建议个人分支使用rebase,公共分支使用merge。常用命令包括clone、checkout、pull、reset等,其中reflog可恢复误删操作。IDE集成使Git操作更直观。理解这些机制能有效管理项目版本,提高协作效率。

2025-09-27 10:22:02 479

原创 Android-kotlin(协程源码第一阶段)技术总结

本文分析了Kotlin协程的两个核心技术:挂起函数实现原理和协程启动机制。挂起函数通过CPS转换被编译为带Continuation参数的状态机,使用label标记状态流转,通过COROUTINE_SUSPENDED实现挂起/恢复。协程启动通过CoroutineScope.launch构建,采用上下文继承机制,支持DEFAULT/LAZY等启动模式,async与launch的核心区别在于Deferred对返回结果的支持。整个机制依托Continuation回调和状态机实现协程的挂起恢复能力。

2025-09-08 17:48:45 919

原创 Android -第二十一次技术总结

Android开发中Activity与Fragment通信主要有两种方式:1) 接口回调方式,通过定义接口实现解耦,Fragment声明接口,Activity实现接口处理数据;2) ViewModel方式,利用共享ViewModel作为数据中心,通过LiveData实现数据驱动更新。对于字符串处理,String不可变适合简单场景,StringBuilder(单线程)和StringBuffer(多线程)可变且高效。集合框架中,List有序可重复,Set无序唯一,Map存储键值对。应根据具体需求选择合适的集合类

2025-08-27 17:53:50 863

原创 Android -Token刷新机制与UDP优化

本文介绍了三种Android开发中常用的Token刷新机制:主动刷新(请求前检查令牌有效期)、被动刷新(收到401错误后触发)和基于AccountManager的系统级刷新。重点分析了QUIC协议如何基于UDP解决TCP的三大痛点:通过合并握手实现0-RTT连接、多流机制消除队头阻塞、连接ID实现网络切换不中断。QUIC在应用层实现了可靠传输、拥塞控制等TCP特性,并与HTTP/3深度整合,为现代移动互联网提供了更快速、可靠的传输方案。

2025-08-25 10:54:12 1004

原创 Android -Git实战技术总结

本文介绍了Git中Merge和Rebase两种分支合并策略的区别与使用场景。Merge会创建合并提交保留完整分支历史,适合团队协作;Rebase则重写提交历史形成线性记录,适合本地分支整理。文章还提供了混合开发策略建议:个人开发时使用Rebase保持分支整洁,功能完成后用Merge(--no-ff)合并到公共分支。此外,详细列举了Git常用命令(分支管理、远程操作、提交修改等)和6个实战场景(日常开发、紧急修复、团队协作等)的操作指南,帮助开发者高效管理代码版本。

2025-08-25 10:53:18 892

原创 Android -jetpack组件源码流程讲解

1. ViewModel通过ViewModelStore实现数据持久化,在配置变更时保留数据;2. LiveData具备生命周期感知能力,自动管理数据更新和观察者;3. Room数据库简化SQLite操作,提供ORM支持;4. Hilt依赖注入框架通过注解实现组件管理;5. DataBinding实现视图与数据的双向绑定,减少样板代码。这些组件共同构建了Android应用的现代化架构,提高了开发效率和代码质量。

2025-08-25 10:52:44 709

原创 Android -kotlin常用技术总结

核心特性包括:作用域函数(let/run/apply/also)简化对象操作,数据类自动生成通用方法,密封类确保状态完整性,懒加载机制(bylazy/lateinit)优化初始化。扩展函数通过静态方法实现类功能扩展,Mutable机制分离读写权限保障数据安全,协程提供优雅的异步编程方案。

2025-08-25 10:51:01 826

原创 Android -Git技术总结

Git是一个分布式版本控制系统,其核心由四种对象构成:blob存储文件内容,tree表示目录结构,commit记录提交元数据,tag标记特定提交。Git管理三个区域:工作区、暂存区和本地仓库,通过git add和git commit实现文件跟踪和提交。添加了自己在工作中遇到的git问题

2025-08-24 21:27:14 637

原创 Android -MVX的转换历程

MVC通过职责分离解耦业务逻辑与UI,但Controller易臃肿;MVP引入Presenter实现彻底解耦,提升可测试性;MVVM结合数据绑定实现声明式编程,简化UI更新;MVI采用单向数据流和不可变状态,增强可预测性,适合复杂业务场景。这些演进反映了从命令式到声明式、从面向对象到函数式的编程范式转变,逐步解决了耦合、测试性和状态管理等问题。

2025-08-24 21:20:47 573

原创 Android Studio常用知识总结

文章摘要:本文详细介绍了Android开发中的运行方式对比(Run vs Debug)及Gradle构建机制,重点解析了installDebug任务的作用与常见误区。

2025-08-19 19:24:41 1100

原创 Android -登录注册实践技术总结

本文介绍了喜马拉雅账号管理系统的三个核心类及其协作机制。XimalayaAccountProvider作为ContentProvider实现跨进程通信,XimalayaAccountRepository负责账号数据业务逻辑处理,XimalayaFederationDelegate处理联邦账号绑定。系统支持多种登录方式(自动登录、二维码登录)、登出流程以及账号绑定/解绑操作

2025-08-19 19:19:25 529

原创 Android-ContentProvider的跨应用通信学习总结

Android-ContentProvider的跨应用通信学习总结

2025-08-19 19:18:48 1020

原创 Android-Player播放部分的学习总结

本文介绍了SpotifyPlayer类作为适配器的实现细节,它将通用播放器接口与SpotifyAppRemoteSDK连接。核心功能包括:通过init方法初始化并监听连接状态;onPlay()处理播放指令,检查连接状态并恢复播放;playSpotifyUri()实现具体播放逻辑;subscribeToPlayerState()订阅并同步Spotify播放状态。文章详细解析了各方法的关键实现、状态管理机制及错误处理流程

2025-08-13 08:45:00 819

原创 Android-计算机网络实战学习总结

本文介绍了Spotify API的常见HTTP响应状态码和OAuth2.0授权框架。响应码部分列举了200、201、204、304等成功状态码和400、401、403、500等错误状态码及其含义。OAuth2.0部分详细说明了这个开放授权框架的四个核心角色(资源所有者、客户端、授权服务器、资源服务器)、标准授权码模式的工作流程(8个步骤)、令牌机制(访问令牌和刷新令牌)以及四种授权类型(授权码模式、隐式模式、密码模式和客户端凭证模式)。

2025-07-31 20:15:00 600

原创 Android-Room实战学习总结

Room是Android SQLite的ORM抽象层,通过@Entity定义数据表、@Dao封装数据库操作、@Database创建数据库实例。它自动处理对象映射,减少样板代码,支持LiveData/Flow实现响应式UI更新。关键特性包括:编译时SQL验证、简洁的CRUD操作、冲突处理策略和数据库迁移配置。Room简化了SQLite操作,通过注解驱动开发,提升数据库开发效率和安全性。

2025-07-29 08:45:00 726

原创 Android常用的adb和logcat命令

ADB(Android Debug Bridge)是连接Android设备和电脑的命令行工具,支持应用调试、日志抓取等操作。ANR日志可通过adb pull获取,包含线程堆栈和CPU使用率等关键信息。Logcat是调试核心工具,支持按优先级(V/D/I/W/E)和多种条件筛选日志,提供高级查询语法和查询管理功能,

2025-07-22 20:45:00 3523

原创 Android-API调用学习总结

本文介绍了从API接口测试到Android应用集成的完整开发流程。首先使用Postman进行API接口验证,详细说明GET、POST、PUT、DELETE等HTTP方法的特点与使用场景。然后在Android端通过Retrofit实现网络请求,结合Kotlinx.serialization处理JSON数据转换。重点阐述了如何构建数据仓库(SpotifyDataRepository)将API数据转换为MediaItem对象,以及如何在MediaLibraryService中实现多层级媒体库的浏览功能。

2025-07-22 20:30:00 2106

原创 Android-Compose初步学习总结

摘要:Jetpack Compose的核心机制包含三大方面:1) 生命周期管理,通过组合树结构和可组合项调用点标识实例,使用key优化列表性能;2) 副作用处理,提供LaunchedEffect、rememberCoroutineScope等API安全管理异步操作;3) 三阶段渲染流程(组合→布局→绘制),通过状态读取跟踪实现精准更新。其中,derivedStateOf可优化高频状态场景,自定义布局能解决测量依赖问题,各阶段状态读取应遵循最小化原则以提升性能。这些机制共同构成了Compose高效、可预测的声

2025-07-15 08:45:00 1391 1

原创 Android-jetpack之DataBinding实战应用

本文介绍了Android DataBinding的基础配置和使用方法。首先需要在build.gradle中启用DataBinding,并在布局文件中添加<layout>标签。通过DataBindingUtil可绑定数据对象到视图,支持事件绑定和ViewModel交互。重点讲解了@BindingAdapter注解的使用,包括:设置基础视图属性、RecyclerView数据绑定、复杂对象处理、条件UI更新、自定义图片加载以及数据绑定到自定义视图等高级用法。DataBinding能够简化代码,实现视图

2025-07-10 20:30:00 1229

原创 Android-kotlin之Flow基础实战应用

Flow是Kotlin基于协程的异步数据流处理工具,支持响应式编程和背压机制。作为冷流,Flow仅在收集时执行数据发射,具有异步、非阻塞特性,并支持协程上下文切换。常用操作包括map、filter、zip等转换合并操作,以及catch、retry等异常处理。冷流与热流的主要区别在于数据发射时机和状态共享方式:冷流每次收集独立执行,热流(如StateFlow、SharedFlow)则持续发射并共享数据。Flow提供多种背压策略如buffer、conflate等处理数据流速不匹配问题。通过stateIn/sha

2025-07-10 08:30:00 1496

原创 Android-重学kotlin(协程源码第二阶段)新学习总结

Kotlin协程调度机制通过CoroutineContext容器管理上下文信息,其中ContinuationInterceptor接口及其实现CoroutineDispatcher负责调度逻辑。Dispatchers提供预定义调度器(如Main、IO),通过拦截Continuation实现线程切换。CoroutineScope则通过强制绑定Job元素形成N叉树结构管理协程生命周期,实现父子协程的取消和异常传播机制:CancellationException仅向下传播,其他异常则双向传播至整个协程树。这种设计

2025-07-09 20:30:00 2170

原创 Android-重学kotlin(协程基础)新学习总结

Kotlin协程是轻量级的线程任务,可灵活切换线程并实现非阻塞并发。协程通过launch、async和runBlocking启动,其中launch返回Job但不返回结果,async返回Deferred可获取结果,runBlocking会阻塞线程应谨慎使用。协程遵循结构化并发原则,父子协程间存在生命周期绑定和异常传播机制,可通过Job监控和操控状态。挂起函数和CPS转换有效解决了回调地狱问题。同步机制采用Mutex互斥锁,其非阻塞特性优于线程锁,withLock{}能自动处理锁释放。协程通过延迟执行(dela

2025-07-09 20:15:00 1049

原创 Android-自定义View的实战学习总结

摘要:本文介绍了两种自定义歌词视图的实现:LrcView和SingleLineLrcView。LrcView通过多构造函数初始化属性,重写onLayout处理布局变化,使用GestureDetector处理手势事件,并借助Scroller实现平滑滚动。其onDraw方法根据歌词状态(显示/加载/无歌词)绘制不同内容。SingleLineLrcView专注于单行显示,通过onMeasure调整宽高,onDraw实现歌词渐变效果。两种视图都支持自定义样式属性,并提供了丰富的交互功能,如播放控制和时间线显示,展现

2025-07-04 21:30:00 1066

原创 Android Studio-Git的使用指南

本文介绍了Git的基本使用流程和底层原理。主要内容包括:1)Git工作流程(clone、add、commit、push等命令);2)Git对象存储原理(blob、tree、commit三种对象);3)add和commit的底层实现机制;4)Merge与Rebase的区别;5)Reset命令的使用方法;6)在Android Studio中的Git操作方式。文章详细解析了Git的核心工作机制,包括文件存储方式、暂存区原理、提交过程等,并对比了不同合并策略的特点

2025-07-04 20:00:00 3246

原创 MediaSession框架的逻辑关系学习总结

MediaSession框架是Android媒体控制的核心机制,主要由MediaBrowser、MediaBrowserService、MediaController和MediaSession四个关键类组成。框架通过SessionToken建立跨进程连接,实现状态管理与控制指令传递。MediaSession负责维护播放状态和元数据,MediaController提供远程控制接口。结构上分为管理层连接、会话通信、状态传递、控制链路和通知集成五个层次。实战中采用响应式设计,通过LiveData同步状态,支持媒体

2025-07-04 08:30:00 1176

原创 Android学习总结之MMKV与Glide的工具类实战

MMKV和Glide的实战总结

2025-06-28 08:30:00 869 1

原创 Android-Hilt实战学习总结

摘要:文章介绍了Android开发中几个关键注解的用法。@Inject是Hilt框架实现依赖注入的核心注解,可用于构造函数和属性注入。@BindingAdapter用于DataBinding自定义属性绑定。@Singleton标注单例组件,确保全局唯一实例。@AndroidEntryPoint标记Hilt注入入口点,@HiltViewModel简化ViewModel依赖注入。此外还提及@Volatile解决线程安全问题,@JvmStatic实现Kotlin与Java的互操作。这些注解简化了开发流程,提高了代

2025-06-27 08:45:00 1194

原创 Android-Layout Inspector使用手册

Android Layout Inspector是Android Studio的布局调试工具,可分析视图层级、属性和性能。主要功能包括ComponentTree查看视图层次、LayoutDisplay呈现布局效果(支持3D可视化)、属性检查等。实战中常与Figma设计图配合使用:通过视图层级对比发现布局结构差异,属性校验确保UI一致性,叠加设计图定位偏差,优化过度嵌套提升性能,以及检查动画效果是否达标。该工具帮助开发者高效实现设计稿到实际界面的准确还原。

2025-06-26 21:00:00 1223

原创 Kotlin作用域函数:掌握apply/let/run/with/also精髓

Kotlin作用域函数综合指南 本文详细介绍了Kotlin中五种核心作用域函数(apply、let、also、run、with)的特性及适用场景。apply用于对象初始化配置,let处理空安全检查,also执行副作用操作,run混合调用成员和外部函数,with则是run的参数化变体。文章通过典型代码示例对比了各函数的接收者引用方式、返回值类型、null安全支持和作用域特点,并提供了最佳实践指南:对象配置首选apply,null安全处理用let,成员访问用run/with,链式副作用选also。掌握这些作用域

2025-06-26 19:45:00 1071

原创 Android-音频焦点问题学习总结

摘要:Android汽车操作系统(AAOS)的音频焦点机制通过三种交互类型(独占、拒绝、并发)管理多应用音频冲突。系统采用交互矩阵处理焦点请求,优先级为拒绝>独占>并发。Android 11引入可延迟焦点,允许非瞬态请求在高优先级任务结束后自动获取。多音频区场景下,各区域独立管理焦点。HAL层面支持紧急声音优先播放,Android 14的OEM服务允许定制焦点规则以适配地区法规。典型场景包括导航/音乐切换、通话拒止、紧急警报等,开发者需合理选择交互类型并处理焦点变更事件。

2025-06-26 08:45:00 1229

原创 Android第十七次面试总结(Java数据结构)

Java的数据结构学习总结

2025-06-10 22:01:44 1270

空空如也

空空如也

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

TA关注的人

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