logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

android中mvc、mvp、mvvm模式区别

特性MVCMVPMVVM职责分离Activity 兼任 ControllerPresenter 处理业务逻辑ViewModel 管理数据状态耦合度高(View 和 Model 直接交互)低(通过接口解耦)低(数据绑定)测试便利性难以测试便于单元测试便于单元测试代码量较少(但易臃肿)较多(需定义接口)中等(利用 Jetpack)适用场景简单页面需要测试的中型项目复杂 UI 或数据驱动项目。

文章图片
#android
Android中Navigation使用介绍

所有页面需在 XML 预定义,大型项目修改成本高。:目标 Fragment 会经历完整生命周期。响应 NavController 指令。所有目的地(Destination):无法根据条件(如登录状态)动态设置。管理返回栈(BackStack):当前页面被销毁,目标页面重建。参数(Argument)声明。:回退后栈中页面保留原有参数。:向上导航(遵循导航图层级):传递参数的 Bundle。:是否同时

#android
kotlin中密封类介绍

Q:解释Kotlin密封类及其应用场景?A“Kotlin密封类()是受限的类层次结构1. 类型安全的状态管理编译器知晓所有子类,确保when表达式全覆盖示例:UI状态(Loading/Success/Error)2. 类型安全的API响应封装网络响应:Success(data)/Error(code)避免null和异常传递3. 领域模型表达精确建模业务概念(如支付方式、文件类型)支持携带数据的异构

#kotlin#开发语言#android
Kotlin 协程线程切换机制详解

Kotlin 协程是如何实现线程切换的?调度器 (Dispatcher)协程使用(如 Main、IO、Default)指定代码块执行线程。调度器底层维护线程池,如 IO 调度器使用 64 线程池。挂起/恢复机制当遇到等挂起点时:保存当前执行状态到对象释放当前线程资源目标调度器从线程池获取新线程执行代码执行完成后恢复并切回原线程编译器转换Kotlin 编译器通过 CPS(Continuation P

#kotlin#开发语言#android
Kotlin 枚举类

Q:请解释Kotlin枚举类及其适用场景?A“Kotlin枚举类(enum class)是定义固定值集合1. 类型安全常量管理替代魔法数字/字符串,如HTTP状态码、错误类型2. 有限选项建模表示预定义选项集合,如方向、颜色、配置3. 行为差异化实现通过抽象方法为每个常量提供不同行为示例策略模式:关键优势编译时安全:杜绝无效值自描述性:通过名称直接表达含义功能扩展:支持属性、方法和接口实现对比密封

#kotlin#开发语言#android
Kotlin中Flow

A协程集成深度Flow 是 Kotlin 协程原生组件,支持结构化并发LiveData 是 Android 生命周期感知组件RxJava 是独立响应式扩展库背压处理能力Flow 内置多种背压策略(bufferconflateLiveData 无背压概念(仅最新值)RxJava 需手动配置背压策略流控制能力LiveData 仅支持简单值观察RxJava 操作符更丰富但学习曲线陡峭Android 集成

#kotlin#开发语言#android
KSP与ASM深度对比:原理、性能与使用场景

Q:请解释KSP和ASM的区别以及各自的适用场景A1. 核心目的不同KSP是代码生成框架,用于在编译时生成新代码(如路由表、DI配置)ASM是字节码操作框架,用于直接修改现有字节码(如方法插桩、热修复)2. 工作阶段不同KSP在编译早期工作(Kotlin AST阶段),处理高级符号ASM在编译晚期工作(字节码阶段),操作JVM指令3. 性能特点不同KSP处理速度更快(避免Java Stub生成),

#android
Kotlin中协程挂起函数的本质

挂起函数(Suspending Function)是 Kotlin 协程的核心机制,它允许函数在执行过程中暂停(挂起)而不阻塞线程,并在条件满足时恢复执行。问题: 挂起函数本质回答挂起函数的本质是通过编译器生成的状态机机制实现非阻塞式暂停与恢复。当调用挂起函数时,编译器会将其转换为一个包含多个状态的状态机类,每个挂起点对应一个状态标签(label)。函数执行时,遇到挂起操作会保存当前状态(局部变量

文章图片
#开发语言#kotlin
Kotlin 协程启动方式

Q:请解释Kotlin协程的启动方式及其区别?A1.launch- 任务执行器返回Job对象,用于控制协程生命周期不返回结果,适用于'发后即忘'场景示例:后台日志上传、定时清理任务2.async- 结果获取器返回(继承Job),通过await()获取结果支持并行任务组合,如并发网络请求示例:同时获取用户资料和好友列表3.- 阻塞桥接器阻塞当前线程直到协程完成主要用于测试、main函数和桥接阻塞代码

#kotlin#开发语言#android
    共 15 条
  • 1
  • 2
  • 请选择