美文网首页
android之AIDL的基本使用

android之AIDL的基本使用

作者: 番茄焖西红柿 | 来源:发表于2020-05-05 14:55 被阅读0次

AIDL的基本概念

  • aild定义:AIDL是一个缩写,全称是Android Interface Definition Language,也就是Android接口定义语言。是Android开发中提供的一种快速实现binder的工具,而binder就是一种跨进程通信。
  • AIDL支持的基本类型:
    1.Java中的基本数据类型除了short类型,包括 byte,int,long,float,double,boolean,char
    2.CharSequence
    3.String 类型
    4.ArrayList,里面的每个元素也必须是AIDL所支持的类型
    5.HashMap,里面的每个key和value都必须是AIDL所支持的类型
    6.实现Parcelable的类

案例解析

1、定义AIDL文件

IUser.aidl

interface IUser{
    void  setName(String name);
    String  getName();
}
2、服务端实现接口
public class MainProHandleRemoteService extends Service {

    private String name;

    private Binder binder=new IUser.Stub() {
        @Override
        public void setName(String s) throws RemoteException {
            name=s;
        }

        @Override
        public String getName() throws RemoteException {
            return name;
        }
    };

    @Nullable
    @Override
    public IBinder onBind(Intent intent) {
        LogUtil.i("onBind");i
        return binder;
    }
}
3、客户端调用接口
public class AIDLClientAcitvity extends Activity {
    //....
    private IUser mIUser;

    /*
     *bindService获取binder后,就可以提供调用相应的方法
     */
    private void bindServiceByAidl() {
        Intent intent = new Intent(this, AIDLService.class);
        bindService(intent, new ServiceConnection() {
            @Override
            public void onServiceConnected(ComponentName name, IBinder service) {
                LogUtil.i(TAG,"onServiceConnected");
                mIUser= IUser.Stub.asInterface(service);
            }

            @Overridei
            public void onServiceDisconnected(ComponentName name) {
                LogUtil.i(TAG,"onServiceDisconnected");
            }
        }, BIND_AUTO_CREATE);
    }
}

总结

Binder.png

每一个进程都有自己的一块独立的内存,都在自己的内存上存储自己的数据,执行着自己的操作,都在自己的那片狭小的空间里过完自己的一生。而aidl就类似与两个进程之间的桥梁,使得两个进程之间可以进行数据的传输。

相关文章

  • Android中的AIDL

    Android中的AIDL使用详解 AIDL使用解析 Android进阶之AIDL的使用详解

  • AIDL

    Android中AIDL的基本用法Android 中AIDL的使用与理解Android AIDL使用详解彻底明白A...

  • android进阶-AIDL之自定义数据类型

    系列文章 AIDL的基本使用AIDL之自定义数据类型AIDL之重连方法-待AIDL之接口注册/解注册-待AIDL之...

  • android-AIDL之连接池

    系列文章 AIDL的基本使用AIDL之自定义数据类型AIDL之重连方法AIDL之接口注册/解注册AIDL之连接池 ...

  • android-AIDL之接口注册/解注册

    系列文章 AIDL的基本使用AIDL之自定义数据类型AIDL之重连方法AIDL之接口注册/解注册AIDL之连接池-...

  • android进阶AIDL之重连方法

    AIDL的基本使用AIDL之自定义数据类型AIDL之重连方法AIDL之接口注册/解注册-待AIDL之连接池-待 知...

  • android之AIDL的基本使用

    AIDL的基本概念 aild定义:AIDL是一个缩写,全称是Android Interface Definitio...

  • Android Aidl 的使用

    Android Aidl 的使用 Binder框架 -- android AIDL 的使用 Binder框架 – ...

  • Android中的AIDL学习笔记(一)

    这篇主要记录的是AIDL的基本使用。主要参考:Android:学习AIDL,这一篇文章就够了(上) Android...

  • android进阶-AIDL的基本使用

    系列文章 AIDL的基本使用AIDL之自定义数据类型-待AIDL之重连方法-待AIDL之接口注册/解注册-待AID...

网友评论

      本文标题:android之AIDL的基本使用

      本文链接:https://www.haomeiwen.com/subject/izcpghtx.html