自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

移动端开发干货分享

公众号「AndroidPub」| 字节面试官,收简历:programonkey@gmail.com

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

原创 《Jetpack Compose 从入门到实战》带你踏上 Compose 开发之旅~

Jetpack Compose 从入门到实战,新书上架,谷歌开发者社区 & Kotlin中文社区 & Compose中文社区 联合推荐

2022-08-02 09:00:00 4158 7

原创 盘点 13 种常见的“协程异常处理”踩坑场景

协程异常处理的核心是结构化并发机制,子协程错误会向上传递影响父协程。本文通过4个典型场景分析Kotlin协程异常处理: launch协程必须在内部捕获异常,外层try-catch无效; async协程的异常会延迟到await时才抛出,需在await处处理; coroutineScope实现"一损俱损",任一子协程失败会取消整个作用域; supervisorScope可隔离失败,但子协程仍需自行捕获异常。 正确处理协程异常对保证程序稳定性至关重要,开发者需要根据业务场景选择合适的处理方式。

2025-12-24 08:30:00 1253

原创 借助 MCP 让 LLM 赋能 Android 日常开发工作流

MCP协议赋能Android开发:打造安全高效的自动化工作流 摘要:本文介绍了如何通过MCP(模型上下文协议)将LLM能力整合到Android开发工具链中,实现可控、透明且可审计的自动化流程。MCP采用三层架构(客户端-网关-服务端),通过JSON-RPC协议连接大模型与本地开发工具(如ADB、Gradle),将复杂命令转化为自然语言交互。典型应用场景包括设备控制、构建编排、日志分析等,显著提升开发效率。文章还详细阐述了MCP的安全防护机制,包括参数校验、Docker隔离和操作审计等,确保自动化过程安全可靠

2025-12-22 08:30:00 884

原创 Android 架构 15 年:7 个阶段的完整演进之路

Android架构演进综述(2010-2025) 本文系统梳理了Android架构10余年发展历程,划分为7个关键阶段: 混沌期(2010-2013):无架构模式,Activity/Fragment堆积业务逻辑,导致代码臃肿、难以维护 MVP时代(2013-2016):引入分层思想,分离视图与业务逻辑,但仍存在回调嵌套和内存泄漏问题 Clean架构(2014-2017):采用分层架构+Dagger依赖注入,实现业务与框架解耦 MVVM革命(2016-2019):ViewModel+LiveData组合,配合

2025-12-15 08:30:00 883

原创 官方推荐的 Andorid 应用性能优化工具集

说了这么多,总结成一个能落地的清单,今天就能动手:搭测试环境:集成 Jetpack Macrobenchmark 和 UiAutomator 2.4,写个包含启动、滑动的简单脚本,跑一遍拿到基础数据;看评分找方向:用 App Performance Score 给App打分,重点盯红框里的优化建议;开核心优化:在 release 包开 R8 高级优化,改好反射的保留规则,再加上 Baseline Profiles(谷歌有现成模板);

2025-12-08 08:15:00 876

原创 KMP 在 iOS 的现状与集成实践

Kotlin Multiplatform (KMP) 为 iOS 与 Android 代码共享提供了高效解决方案。本文梳理了 KMP 在 iOS 平台的集成方式,包括本地集成(直接集成/CocoaPods)和远程集成(SPM/远程CocoaPods),并详细解析了 Kotlin 与 Swift/Objective-C 的类型映射与互操作最佳实践。文章还介绍了如何通过 Gradle 配置构建支持多架构的 XCFramework,帮助 iOS 开发者快速实现 Kotlin 代码在 iOS 应用中的无缝集成。

2025-12-05 08:15:00 1024

原创 为什么推荐大家用 KMP 统一 Android 和 iOS 开发

Kotlin多平台(KMP)正成为移动开发的革新方案,兼具跨平台效率与原生性能优势。它允许共享业务逻辑代码(如网络请求、数据模型等),同时保留原生UI开发能力,显著提升开发效率并降低维护成本。KMP由JetBrains和Google共同支持,已被Netflix等行业领先企业采用验证。其核心优势包括: 生产力提升:通过Compose Multiplatform实现UI代码共享,支持热重载加速开发 成本优化:单一代码库减少重复工作,长期维护成本显著降低 原生体验:编译为平台原生二进制,性能与纯原生应用相当 平滑

2025-12-04 08:15:00 1848

原创 Kotin Flow 防抖操作符详解(debounce)

文章摘要 防抖(Debounce) 是一种限制数据流频率的操作符,其核心逻辑是:仅在输入值停止出现一段指定时间后,才将最新值传递到下游。它适用于高频触发场景(如用户输入、滚动事件),避免频繁调用下游逻辑。 Kotlin Flow 提供了 debounce 操作符,支持固定超时、基于 Duration 的动态超时,以及根据输入值调整等待时长。例如: 固定超时:debounce(1000) 等待 1 秒静默后发送最新值。 动态超时:通过 Lambda 按输入值类型(如优先级)调整等待时间。 典型应用包括 搜索框

2025-12-03 08:15:00 1309

原创 Kotlin 跨平台(KMP)在 iOS 端的实践与挑战

Kotlin多平台(KMP)技术已在生产环境广泛应用,JetBrains调研显示近半数用户代码复用率超50%。KMP通过统一技术栈显著提升开发效率,但iOS端仍存在调试困难、Objective-C互操作性限制、部分API不支持等问题。虽然KMP适合生产环境,但建议从小模块试点开始,优先共享组件,并关注版本兼容性。企业需权衡其跨平台优势与平台特定挑战,审慎评估落地方案。

2025-12-02 08:30:00 892

原创 Kotlin 协程避坑指南:GlobalScope vs Application Scope怎么选?

摘要: Kotlin协程中,GlobalScope因脱离生命周期管理易导致内存泄漏、UI异常等问题,而自定义的Application Scope绑定应用生命周期更安全可靠。GlobalScope的缺陷包括:与UI生命周期脱节、进程级存活造成资源浪费、缺乏结构化并发管理、测试困难等。正确做法是在自定义Application类中创建SupervisorJob作用域,通过onTerminate()统一取消协程,确保应用退出时资源释放。Application Scope既能全局调用,又可避免GlobalScope的

2025-12-01 08:15:00 655

原创 Androidify:谷歌官方 AI + Android 开源示例应用

Android团队推出开源示例应用Androidify,可将用户照片转化为个性化Android机器人形象。该应用整合了Jetpack Compose、Firebase、Gemini和Imagen等核心技术:Compose实现现代化UI和动画效果,Firebase作为AI调度中枢,Gemini负责图像审核与描述生成,Imagen则将文本描述转化为机器人图像。开发者可通过GitHub获取完整代码,学习AI+Android开发的最佳实践。Androidify不仅为用户提供趣味体验,更为开发者展示了前沿技术融合方案

2025-11-24 00:46:02 836

原创 Jetpack Compose:深入理解 GapBuffer & SlotTable

本文介绍了GapBuffer和SlotTable的工作原理及其在Jetpack Compose中的应用。GapBuffer通过动态间隙(Gap)实现高效插入和删除,时间复杂度为O(1),类似乐高积木的灵活拼接。SlotTable将UI组件视为字符存储在GapBuffer中,仅更新变化部分,避免全量重组。 性能优化技巧包括:保持UI结构稳定(如使用AnimatedVisibility)、合理使用remember缓存计算结果、为列表项设置稳定key,从而减少Gap移动和重组开销。这些机制共同保障了Compose

2025-11-17 08:15:00 565

原创 Google 内部使用的 Jetpack Compose API 设计规范与最佳实践

Compose项目发布最新API设计规范,对Kotlin编码规范进行了补充和调整。规范要点包括:1)常量采用PascalCase命名;2)无返回值的@Composable使用名词+PascalCase命名,有返回值的则使用camelCase动词命名;3)remember函数需以"remember"前缀开头;4)CompositionLocals需以"Local"前缀命名;5)UI组件必须返回Unit。该规范旨在提升Compose代码的一致性和可读性,对开发公共API和

2025-11-12 08:15:00 635

原创 Android Studio + Gemini:重塑安卓 AI 开发新范式

摘要:谷歌将自研大模型Gemini深度集成到Android Studio中,为安卓开发带来全流程AI赋能。该方案提供对话式交互、智能编码辅助、多模态设计稿转换、Agent智能体自动化等功能,覆盖从设计到测试的开发全周期。数据显示可提升40%任务完成效率,23%的新代码来自AI生成。通过与Compose、Gradle等安卓专属工具链的深度协同,解决了移动端AI Coding工具迁移困境。Journeys测试框架等创新功能进一步简化了质量保障流程,重新定义了安卓开发效率边界。(149字)

2025-11-11 08:30:00 2165 2

原创 Android Journey Test:AI 驱动的自动化测试新范式

《Android Studio推出AI驱动的Journey Test革新UI测试》摘要:Google推出革命性的Journey Test功能,通过自然语言描述替代传统测试代码编写,实现端到端UI自动化测试。该功能基于Gemini大模型的多模态理解能力,能自动识别界面元素并执行操作,支持目标导向和步骤导向两种测试模式。目前已在Android Studio Canary版本发布,支持Firebase Test Lab多设备测试,未来将增强测试复用、自动修复等功能。Journey Test显著降低了测试门槛,有望

2025-10-24 08:15:00 974

原创 SOLID 设计原则在 Android 中的实战应用

传统方式中,我们经常会在 ViewModel 中依赖一个具体 UseCase,当我们需要升级依赖时,则必须修改 ViewModel 代码,违反开闭原则。而通过自定义 ViewModelFactory 和依赖注入,我们可以实现对扩展开放,对修改关闭。当有新需求,要求更新 UseCase 依赖时,我们通过创建新的 UseCase 实例并传递给工厂,以此来扩展 ViewModel 的功能(对扩展开放),而不需要修改 ViewModel 类本身(对修改关闭)。

2025-10-21 08:30:00 1651

原创 三种 MVI 模式:Pure MVI、Reducer MVI、State Machine MVI 深度对比

本文对比了三种MVI架构模式在Android开发中的应用。Pure MVI是最简洁的实现,适合简单场景但难以维护;带Reducer的MVI通过纯函数提升可测试性和代码整洁度;带状态机的MVI则通过有限状态机管控复杂流程的状态转换,确保合法性。三者各有优劣,开发者应根据业务复杂度选择合适模式:简单功能用Pure MVI快速实现,中等复杂度引入Reducer提升可维护性,多步骤强依赖流程采用状态机保证正确性。代码示例展示了各模式的核心实现,帮助开发者理解架构差异。

2025-10-15 08:30:00 1883

原创 Android 架构之争:MVI 真的比 MVVM 更胜一筹吗?

Jetpack Compose 时代下 MVVM 与 MVI 的架构之争 摘要:随着 Jetpack Compose 的普及,关于 MVVM 和 MVI 架构的争论再起。本文通过历史溯源和实践对比,指出 MVVM 在大多数场景下已足够: 历史发展显示 MVVM 已演进为单一状态+UDF 模式 实践案例表明 MVI 容易陷入"上帝Reducer"陷阱,而MVVM能更简洁实现相同效果 简单页面用MVI会过度设计,复杂页面通过合理划分作用域后MVVM也能胜任 现代MVVM已具备MVI的核心优势

2025-10-14 08:30:00 1630

原创 DORA 2025 年度报告:软件开发的 AI 依赖程度状况

2025年DORA全球DevOps报告显示,AI已成为软件开发的核心工具,90%的技术专业人员已将其整合到日常工作流程中,平均每天使用2小时。报告指出,AI在代码编写、调试、文档创建等任务中的使用率均超过55%,65%的开发者表示"中度依赖"以上。尽管存在信任矛盾(30%用户持保留态度),但80%受访者确认AI显著提升了生产力,59%认为改善了代码质量。DORA同时提出AI能力模型,强调组织需在技术、文化等7个维度进行系统性建设,才能充分发挥AI潜力。值得注意的是,今年数据反转了去年结论

2025-10-13 08:30:00 806

原创 Android Studio 新功能 Journey Test:借助 AI 实现基于自然语言的 UI 测试用例编写

摘要:Android Studio推出的Journey Test功能利用Gemini AI实现自然语言驱动的UI测试,开发者只需用日常语言描述测试步骤即可自动生成可执行用例。该功能支持创建XML测试文件、可视化编辑、生成详细测试报告,但当前存在执行速度慢、稳定性不足等局限,适用于团队协作和原型验证,暂不适合CI/CD等高性能场景。Journey Test代表了Android测试向低门槛、智能化方向的创新探索。(149字)

2025-10-13 08:30:00 768

原创 Android 应用崩溃前截图:让问题排查更轻松

你有没有想过,如果在应用崩溃前抓一张截图,能提供光靠崩溃日志给不了的关键视觉信息。截图可以帮你:- **更快复现问题**:不用从日志里猜应用状态,你能直接看到导致崩溃的屏幕画面。- **理解 UI/UX 情境**:崩溃是由对话框、导航错误还是 UI 里的边缘情况触发的?截图能把这弄清楚。- **节省调试时间**:开发者常常要花数小时重现合适的条件,有了视觉快照能快很多。- **衔接开发与 QA**:测试人员和支持团队可以附上截图参考,开发者不用来回沟通就能马上明白情况。- **捕捉用户特定的边缘

2025-10-13 08:15:00 432

原创 Android Studio 新功能:Gemini 重塑 UI 开发流程

Android Studio深度集成Gemini AI,为开发者提供从设计稿到代码的全流程智能辅助。Gemini突破单一聊天功能,支持多模态设计稿转代码、Compose预览一键生成、代码评审与优化等核心场景。通过图片识别、上下文配置和提示库,AI能精准生成符合项目规范的代码。企业版还支持自定义模型训练和精细化管理。未来将拓展至UI问题自动修复、跨设备适配等场景,并引入AI代理实现循环优化。开发者只需安装最新预览版Android Studio即可体验这些功能,显著提升开发效率。

2025-10-10 08:30:00 1073

原创 掌握 Compose 性能优化三步法:从问题诊断到实战解决

摘要: 本文系统解析了Jetpack Compose的性能优化策略。通过Layout Inspector和稳定性报告诊断重组问题,深入分析Compose的智能重组机制与参数稳定性规则。提出四大优化工具:升级工具链启用强重组、全局稳定性配置、手动注解标记稳定类型、包装类处理特殊场景。最后强调验证优化效果并建立团队规范,确保Compose应用高效运行。文章结合代码实例,为开发者提供从问题定位到解决方案的完整指南,帮助平衡开发效率与应用性能。

2025-10-07 10:39:06 883

原创 Android 的 16KB 内存页:看似 “内存浪费”,实则提升应用性能达 30%

Android 16KB内存页适配指南 随着Android 15及更高版本开始支持16KB内存页,应用开发者面临新的适配要求。Google Play规定2025年11月起,所有应用必须适配16KB内存页才能在Android 15+设备上发布。本文将介绍如何高效完成这一适配工作: 影响范围 包含原生库(.so文件)的应用 媒体密集型应用(相机、游戏等) 常见SDK(如Firebase、FFmpeg等) 适配方法 使用工具定位问题:通过Android Studio APK分析器、Play控制台检查或Gradle

2025-09-29 08:30:00 1118

原创 初探 Navigation 3 嵌套路由:开启更高效的导航之旅

本文介绍了Navigation 3嵌套路由的使用方法,重点讲解了如何通过FragmentContainerView、Material 3的BottomNavigation和嵌套导航图来构建清晰易管理的导航系统。内容包括基础容器配置、现代导航栏实现以及模块化导航图的构建技巧,展示了如何通过分层设计简化复杂场景下的导航逻辑,提高代码可维护性。文章还提供了详细的代码示例,帮助开发者快速上手Navigation 3的嵌套路由功能。

2025-09-28 08:30:00 1680

原创 Kotlin Flow 入门指南:异步数据流的优雅处理

Kotlin Flow 是 Kotlin 协程中的异步数据流处理工具,类似 RxJava 但更轻量。它采用冷流机制,只有调用 collect 时才会执行。Flow 提供丰富的操作符(map、filter、zip 等)进行数据转换和组合,支持异常处理和背压管理。适用于网络请求、UI 状态管理等异步场景,能与协程无缝配合。测试时可使用 Turbine 库验证流行为。Flow 通过操作符链式调用实现声明式编程,简化复杂异步逻辑。

2025-09-25 08:30:00 979

原创 基于 Android Jetpack 构建离线优先(Offline-First)应用

构建离线优先的移动应用需要综合运用本地存储、后台同步和分页加载技术。使用Room实现数据本地存储,确保应用在网络断开时仍能访问数据;通过WorkManager智能调度后台任务,在网络恢复时自动同步数据;采用Paging 3实现高效的分页加载,提升大数据量场景下的用户体验。这种技术组合能有效解决网络不稳定问题,使应用具备更可靠的离线运行能力,同时优化性能和电池效率。

2025-09-24 08:30:00 789

原创 告别 EncryptedSharedPreferences,拥抱 Android 安全存储新未来

摘要: AndroidX近期弃用了EncryptedSharedPreferences(ESP),因它依赖过时的SharedPreferences且缺乏灵活性。推荐迁移至现代方案: Jetpack DataStore:异步、类型安全,但需配合加密库(如Tink)处理敏感数据; Tink加密库:支持多算法,集成KeyStore,适合企业级应用; 自定义加密DataStore:结合Tink与PreferencesDataStore封装安全读写。 新应用建议直接采用DataStore+Tink,旧应用可逐步迁移。

2025-09-23 08:30:00 775

原创 用端侧 AI 重塑移动开发:ML Kit 实战指南​

本文介绍了如何利用ML Kit快速为移动应用添加AI功能,重点讲解了条形码扫描和OCR的实现方法。作者分享了ML Kit的核心优势:无需机器学习背景即可使用、本地处理保障隐私、经过大规模验证的可靠性以及针对移动设备的性能优化。文章详细展示了Android平台集成ML Kit的步骤,包括依赖配置、条形码扫描器的实现、相机图像处理的最佳实践,以及完善的错误处理机制。通过具体代码示例,作者演示了如何通过优化条码格式配置、控制处理频率、及时释放资源等方法提升应用性能。最后强调了将技术错误转化为友好提示对改善用户体验

2025-09-22 08:30:00 1109

原创 保姆级教程:从零搭建 Jenkins Android 自动发包体系

本文介绍通过Jenkins搭建自动化CI/CD流水线,解决传统开发流程中手动打包导致代码遗漏和版本混乱的问题。整体流程包括:开发者通过脚本或Webhooks触发任务→Jenkins拉取代码→编译生成APK→上传蒲公英→钉钉机器人通知团队。支持自动和手动打包方式,并采取安全措施限制可信用户操作。运行效果显示115次执行全部成功,平均耗时4分6秒,显著提升团队协作效率。教程涵盖Jenkins安装配置、流水线创建、代码拉取、项目编译等关键步骤,帮助团队实现标准化、高效的自动化部署流程。

2025-09-18 18:57:08 1030

原创 Compose State 几个常见使用误区与推荐做法

本文探讨了Jetpack Compose中状态管理的常见问题及解决方案。主要问题包括:表单数据在设备旋转时丢失、列表滚动位置重置、跨屏幕导航状态丢失以及不必要的重组。对应的解决方案包括:使用rememberSaveable保存表单状态,为列表项添加稳定键(key),通过ViewModel共享导航状态,以及使用derivedStateOf优化重组性能。文章通过具体代码示例展示了如何正确管理Compose应用中的状态,确保用户体验的连贯性和应用的性能优化。这些实践对构建稳定高效的Compose应用至关重要。

2025-09-16 08:30:00 629

原创 Android 内存页面大小升级:从 4KB 到 16KB

Android 15将支持16KB内存页,取代沿用多年的4KB标准,这对应用性能影响深远。谷歌测试显示,该调整可使应用启动提速3%-30%,系统启动缩短1秒,并降低5%电量消耗。2025年11月起,Google Play将强制要求针对Android 15+的应用必须兼容16KB页面。主要影响使用原生代码的开发者,需更新工具链、替换硬编码假设,并测试第三方依赖。这一变革既是性能优化,也倒逼开发者采用更灵活的内存管理方式,为未来硬件升级铺路。

2025-09-15 08:30:00 2241

原创 字节跳动 PromptPilot:大模型时代的智能提示词利器​

Prompt Pilot 是火山引擎专为解决用户与大语言模型交互问题打造的智能提示词解决方案平台。​它能把我们模糊的想法,精准翻译成模型能理解的专业指令,还能一站式搞定提示词的生成、调试、优化与迭代全流程,让大模型应用变得更简单。

2025-09-10 08:15:00 2247

原创 Android 系统通知内部工作原理揭秘

本文深入解析了Android通知推送的全流程机制。从开发者调用NotificationManager.notify()开始,系统会经过多层处理:首先通过Binder IPC跨进程传递到NotificationManagerService进行验证和持久化存储;然后经StatusBarService转发给SystemUI进程进行界面渲染;最终在状态栏、通知栏或悬浮横幅中展示。文章详细拆解了核心数据结构(如NotificationRecord)、权限检查机制(Android 13+的运行时权限)、通知渠道系统(A

2025-09-09 08:30:00 5597 1

原创 Jetpack Compose 流式布局(Flow Layout)全解析

Jetpack Compose 的流式布局(FlowRow/FlowColumn)为构建响应式UI提供了强大支持。与标准布局不同,流式布局能在空间不足时自动换行,特别适合标签、筛选器等需要动态排版的UI组件。相比惰性布局(LazyRow/LazyColumn),它更适合处理固定数量、数量较少的项目,会一次性渲染所有子项。开发者可通过权重(weight)、对齐方式(align)和最大项目数(maxItemsInEachRow/Column)等参数精细控制布局,还能创建类网格结构。流式布局的主轴和交叉轴排列方式

2025-09-08 08:30:00 1126

原创 架构实战:用 Clean 和 SOLID 守护你的 Android 架构

摘要: Android开发中,忽视架构设计会导致代码臃肿、难以维护。关注点分离是核心原则,需将应用分为展示层(UI)、领域层(业务逻辑)和数据层(数据源)。以电商订单页为例,若将网络请求、业务逻辑和UI操作全塞进Activity,会导致代码脆弱、难测试且无法复用。例如,后端迁移至GraphQL或适配Wear OS时,紧耦合的代码将被迫重构。采用Clean Architecture与SOLID原则分层设计,能提升扩展性、维护性,避免需求变更引发的灾难性重构。

2025-09-05 08:30:00 1771

原创 强烈安利!Warp:这才是 AI 时代下终端该有的样子

Warp是一款革命性的AI终端工具,通过Agent Mode实现自然语言编程,彻底改变开发者与终端的交互方式。它不仅能智能解析复杂指令(如"找出占用8080端口的进程并杀掉"),还支持多任务并行处理、上下文感知纠错和工具集成。通过三种激活方式无缝融入工作流,Warp显著提升开发、游戏、数据处理等场景的效率,将传统"命令记忆"转变为"意图理解"。工具采用安全设计,建议配合基础命令知识使用,实现人机协作的最佳平衡。Warp代表了终端交互的自然语言革命,

2025-09-05 08:30:00 1354

原创 聊聊 Android Wear OS:从系统功能到 Compose 开发的那些事​

摘要: Wear OS 作为主流智能手表系统,经历了从 Android Wear 到 Wear OS 5.1 的迭代,兼容性、健康监测和个性化功能逐步完善。其优势在于交互便捷(如 Tiles 快速访问)、专业健康追踪(整合 Fitbit)、高自由度表盘定制及优化的续航表现。相比 watchOS 和鸿蒙 OS,Wear OS 以跨品牌兼容性和丰富应用生态见长。开发时需聚焦核心功能、适配小屏交互、优化功耗,并遵循 Material Design 规范。与手机应用开发相比,Wear OS 更强调简洁交互和独立运行

2025-09-05 08:15:00 1380

原创 全新 LifecycleOwner 可组合项:让 Composable 具备独立生命周期

AndroidX Lifecycle 2.10.0-alpha01 引入了可组合的 LifecycleOwner,解决了共享生命周期在屏幕过渡时的问题。现有方案通过 LocalLifecycleOwner 共享 Activity 的全局生命周期,导致过渡期间新旧屏幕同时处于 RESUMED 状态,引发资源浪费。新方案通过 NavLocalProvider 动态计算屏幕状态(返回栈状态/过渡状态),为每个屏幕提供独立的生命周期管理:完全显示时用 RESUMED,过渡中用 STARTED,弹出时用 CREATE

2025-09-03 08:30:00 786

原创 Kotlin 2.2 中的嵌套类型别名(Nested Type Aliases)全面指南

Kotlin 2.2引入了嵌套类型别名,允许类型别名限定在类或接口作用域内,提升代码组织性和可读性。类型别名通过简化复杂类型(如lambda、泛型)减少重复代码,便于重构。嵌套类型别名需启用编译器标志,默认可见性为private,可显式设为internal/public。关键限制是不能直接引用外部类的泛型参数,需在别名内重新声明。示例展示了乐器库存服务中嵌套类型别名的实际应用,体现作用域隔离和语义清晰的优势。

2025-09-02 08:30:00 1014

空空如也

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

TA关注的人

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