Android Studio中使用Kotlin语言实现AIDL通信[图文]

    xiaoxiao2026-03-26  13

    Android Studio中使用Kotlin语言实现AIDL通信[图文]

    标签(空格分隔): android


    Android Studio中使用Kotlin语言实现AIDL通信图文服务端 创建AIDL文件创建服务 客户端

    话不多说,直接上步骤:

    服务端

    工程名:KotlinAidlService

    创建AIDL文件

    这里需要提醒的是,一定要用在相应的包(这个包相当重要,建议创建一个独立的aidl包)上 点击 右键->New->AIDL->AIDL file 的方式创建文件,最好不要手动创建。这里我创建了一个名字为MyInterface的文件。 文件创建完成后就该修改文件了,这里添加了这样一个方法

    interface MyInterface { String getString(String info); }

    创建完成后我们点击编译(运行按钮左边的小锤子) 如果你有过Eclipse的AIDL开发经验的话会发现这里貌似找不到生成的接口文件!其实接口文件是有的,只不过隐藏的比较深。 我们不需要关心接口被放在哪了,只要能够正常的调用就行了。

    创建服务

    现在我们创建一个Kotlin类MyAidlService并继承Service 然后我们重写其中的onBind方法,返回我们aidl接口的实现

    class MyAidlService : Service() { override fun onBind(intent: Intent?): IBinder = object : MyInterface.Stub() { override fun getString(info: String?): String = "hello $info" } }

    因为我们这里只是简单地测试,所以我的实现效果就是 客户端发送一个字符串,服务端在字符串的前面加上hello 并返回。

    嗯,服务器写完了。。。。。。吗?是不是应该注册一下。。。 差点忘了,现在我们去注册服务

    <service android:name=".MyAidlService" android:enabled="true" android:exported="true"> <intent-filter> <action android:name="chenxiaomo"/> </intent-filter> </service>

    客户端

    工程名:KotlinAidlClient 为了保证包名一致,我们要先创建一个跟服务端Aidl所在一样的包,然后在这个包上点击右键创建文件,跟上面一样。 我先展示一下代码然后再分析说明 这里的ViewHolder是为了方便控件管理而自定义的类,里面声明一个Edittext用来输入内容,还有一个Button用来点击时发送消息。这个可以使用运行时注入实现,也可以使用编译时注解比如ButterKnife实现

    接下来声明了一个我们的AIDL接口对象 service 在然后我们定义了一个服务连接对象conn,里面所做的操作是当与服务器连接成功后,连接服务器的AIDL接口 在然后的代码我就不说了,剩下就是启动服务,设置点击。最后我们可以在点击事件中去与服务端交互了。

    转载请注明原文地址: https://ju.6miu.com/read-1308186.html
    最新回复(0)