AIDL

AIDL 原名:Android Interface definition language 即Android内部进程之间的通信,通俗的说就是两个APP(服务端(APP或者Service)、客户端)之间的通信。

AIDL例子如下:

         服务端:

1,创建新的Android工程,然后新建AIDL文件IMyAidlInterface
,此时运行工程在编译目录下面会看到AIDLService.java文件,在AIDLService 中声明需要实现的函数名称

2,创建一个Service类,继承服务类Service,并在AndroidMainfest.xml 中注册(注意:此时注册应该声明Action )如下:

<service android:name=".JavaService"
    android:process=":remote">
    <intent-filter >
        <action android:name="aidl.javaService"></action>
    </intent-filter>
</service>
.JavaService为 继承 Service的类

      3,在服务类中添加如下代码:

public class  MyJavaService extends  IMyAidlInterface.Stub
{

    @Override
    public void basicTypes(int anInt, long aLong, boolean aBoolean, float aFloat, double aDouble, String aString) throws RemoteException {
        Log.d("basicTypes","basicTypes-========================");

    }

    @Override
    public void init() throws RemoteException {
        Log.d("JavaService start-servier","=================================");
    }
}
init()为自定义函数

客户端:

1,将IMyAidlInterface.aidl在服务端的包全部复制到客户端中,并重新生成工程

        2,在客户端添加如下代码,

private  IMyAidlInterface imyaidl;
private ServiceConnection serconn = new ServiceConnection()
{

    @Override
    public void onServiceConnected(ComponentName name, IBinder service) {
        Log.d("服务绑定","Build service =============================");
        imyaidl =  IMyAidlInterface.Stub.asInterface(service);
        try {
            imyaidl.init();
        } catch (RemoteException e) {
            e.printStackTrace();
        }
    }

    @Override
    public void onServiceDisconnected(ComponentName name) {

    }
};
3,绑定启动serson 代码如下:
Log.d("测试开","测评开始");
Intent intent = new Intent();
intent.setAction("aidl.javaService");
//startService(intent);
bindService(intent,serconn, BIND_AUTO_CREATE);
Log.d("测试结束","测试结束");
此时就可以看到客户端与服务器可以通过 AIDL进行通信了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值