
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
除了标准库提供的委托,还可以自定义委托类,实现更灵活的逻辑(如协程安全的延迟初始化、数据库存储委托等)。类委托:将接口中包含 suspend 函数的实现委托给其他类,简化代码复用(如代理网络请求、异步任务)。lazy委托:延迟初始化协程中需要的资源(注意线程安全,复杂场景需自定义协程安全委托)。observable委托:监听属性变化时,通过启动协程处理异步逻辑(如网络请求、数据库更新)。自定义委托
组件作用返回值适用场景suspend标记可暂停的函数无(函数自身有返回值)定义耗时操作launch启动无返回值的协程Job后台任务(无结果)async启动有返回值的协程需结果的异步任务指定协程运行的线程池控制任务执行的线程环境。
五、内联扩展函数之also适用于let函数的任何场景,also函数和let很像,只是唯一的不同点就是let函数最后的返回值是最后一行的返回值而also函数的返回值是返回当前的这个对象。一般可用于多个扩展函数链式调用。

如何将数据传递到布局文件中呢?首先,在布局文件中定义布局变量,指定对象的名字和类型,当然数据的操作在标签里。LiveData是Jetpack提供的一种响应式编程组件,它可以包含任何类型的数据,并在数据发生变化的时候通知给观察者,适合与ViewModel结合在一起使用,就可以让ViewModel将数据的变化主动通知给Activity。DataBinding为了方便使用,对布局变量提供了Setter类

运行服务端:将你的应用安装到手机或模拟器上。启动,点击 "绑定服务" 按钮。观察 Logcat:你会看到打印出 "Service bound by client." 的日志。调用方法:点击 "调用服务方法" 按钮。客户端会通过 Binder 调用服务端的add方法,并显示结果 "10 + 20 = 30"。服务端的 Logcat 也会打印出收到的参数。解绑服务:点击 "解绑服务" 按钮,连接断开。
若要传递自定义对象(如User),需:创建User类并实现Parcelable// 实现Parcelable的序列化和反序列化方法@Override@Override@Overridereturn 0;@Override为User创建对应的 AIDL 文件(同名,用于声明可跨进程传输):// 声明自定义Parcelable对象同步项目:点击菜单栏,让 Android Studio 自动生成 AID
Binder 是 Android 多进程通信的 “支柱”,通过内存映射实现高效数据传递,通过C/S 架构 + ServiceManager实现服务注册与调用,通过AIDL简化开发。其核心优势(高效、安全、易用)使其成为 Android 系统中最核心的 IPC 机制,支撑了系统服务、跨应用交互等关键功能。理解 Binder 原理,是掌握 Android 多进程开发的基础。
Android项目构建过程1.AAPT(Android Asset Packaging Tool)工具会打包应用中的资源文件,如AndroidManifest.xml、layout布局中的xml等,并将xml文件编译为二进制形式,当然assets文件夹中的文件不会被编译,图片及raw文件夹中的资源也会保持原来的形态,需要注意的是raw文件夹中的资源也会生成资源id。AAPT编译完成之后会生成R.j







