Java实现_hello服务

Java实现_hello服务

  • 定义接口:aidl文件————相对于Cpp的.h文件
    sayhello
    sayhello_to
    编译生成IHelloService.java
    该文件声明有接口,定义了Stub类,定义了Proxy类

  • server端:
    定义:HelloService类,继承于Stub
    实现sayhello、sayhello_to

TestServer.java
main()
{
addService;
while(1){
读取、解析、调用执行、返回 ===== 整个循环都不用自己写 
}
  • client端
    代理类已有,直接使用即可
TestClient.java
main()
{
getService;
调用sayhello、sayhello_to
}

定义接口

  • 写IHelloServic.aidl文件,上传、编译,得到IHElloService.java
    里面有Stub:onTransact,它会分辨收到的数据然后调用sayhello、sayhello_to
    Proxy:提供有sayhello、sayhello_to两个函数,它们会构造数据然后发送给server
  1. 把IHelloService.aidl放入frameworks/base/core/java/android/os
  2. 修改frameworks/base/Android.mk 添加一行
core/java/android/os/IVibratorService.aidl\
core/java/android/os/IHelloService.aidl\
  1. mmm frameworks/base
  2. 它会自动生成IHelloService.java文件
out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/src/core/java/android/os/IHelloService.java
  • 实现服务类:HelloService.java
    在里面实现sayhello、sayhello_to(因为生成的Stub里并没有实现)
  • 实现app:TestServer、TestClient
    TestServer:addService,循环
    TestClient:getService,调用sayhello、sayhello_to(来自Proxy)

Test

logcat TestServer:* TestClient:* HelloService:* *:S &
CLASSPATH=/mnt/android_fs/TestServer.jar app_process / TestServer &
CLASSPATH=/mnt/android_fs/TestClient.jar app_process / TestClient hello
CLASSPATH=/mnt/android_fs/TestClient.jar app_process / TestClient hello h233
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值