
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
flutter学习总结

AIDL是Android跨进程通信的核心机制,通过Binder驱动实现进程间方法调用。编译时自动生成Stub(服务端骨架)和Proxy(客户端代理)类,Stub负责解码请求并调用真实逻辑,Proxy则将调用序列化为Parcel数据包。关键点包括:1) 必须实现Parcelable接口进行高效序列化;2) 服务端采用Binder线程池处理并发请求;3) 可使用oneway实现异步调用。AIDL通过封

ViewModel负责存储UI相关数据,LiveData作为可观察的数据持有者,通知UI层数据变化。LiveData具有生命周期感知能力,确保数据更新仅在活跃状态下通知观察者,避免内存泄漏。ViewModel的生命周期与Activity或Fragment绑定,确保数据在配置变更时不会丢失。LiveData自身具备自动取消订阅的能力,不依赖ViewModel。自定义LiveData可通过继承Live

Kotlin协程调度机制通过CoroutineContext容器管理上下文信息,其中ContinuationInterceptor接口及其实现CoroutineDispatcher负责调度逻辑。Dispatchers提供预定义调度器(如Main、IO),通过拦截Continuation实现线程切换。CoroutineScope则通过强制绑定Job元素形成N叉树结构管理协程生命周期,实现父子协程的取

Kotlin扩展函数在编译时转换为静态方法,接收者对象作为第一个参数传入,实现功能扩展而不修改原类字节码。协程通过状态机和Continuation接口实现挂起与恢复,挂起函数编译为带Continuation参数的普通函数,避免线程阻塞。Java调用Kotlin函数时,需注意参数可空性,非空类型传入null会抛出NullPointerException。

Java和kotlin代码之间的区别和apk打包时的不同

kotlin和Java基本使用之间的区别以及apk打包的不同

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

flutter的场景运用

Glide的缓存和生命周期的讲解








