AIDL

aidl的机制实际上是android提供的一个简化的Ipc工具。让开发者更轻易进行ipc通信。

  • 本文主要介绍在android studio上如何使用AIDL,适合初学者。(android studio)

创建AIDL文件

  • 在project面板中选择右击new file-> aidl file即可,系统自动生成指定文件名的aidl文件。生成的文件代码如下:
package j.nes.com.testaidl;//除了这一行代码外都可以删除。// Declare any non-default types here with import statementsinterface IMyBeanManager {    /**     * Demonstrates some basic types that you can use as parameters     * and return values in AIDL.     */    void basicTypes(int anInt, long aLong, boolean aBoolean, float aFloat,            double aDouble, String aString);}

创建服务端service

  • 创建好文件之后我们可以根据自己需求增加方法,点击make project,系统会自动在gen目录下生成该文件的IBinder接口。
  • 创建service,实现对应IBinder接口。
private Binder mBinder = new IMyBeanManager.Stub() {        @Override        public List getMyBeans() throws RemoteException {            Log.d("getBeans","getBean is coming ");            return mMyBeans;        }        @Override        public void addBeans(MyBean myBean) throws RemoteException {            mMyBeans.add(myBean);            Log.d("addBeans","myBean.name is " + myBean.getName());        }    };
  • 既然是进程间通信,那么该服务就得向绑定它的进程公开该IBinder,重写service的onBind方法返回一个IBinder对象。
@Nullable    @Override    public IBinder onBind(Intent intent) {        return mBinder;    }

客户端代码

  • 将server端整个aidl目录拷贝到客户端的main文件目录下,不拷贝也行,但是一定保证文件名包名一致。
  • 绑定service获取IBinder对象
 mServiceConnection = new ServiceConnection() {                @Override                public void onServiceConnected(ComponentName name, IBinder service) {                    mIMyBeanManager = IMyBeanManager.Stub.asInterface(service);                }                @Override                public void onServiceDisconnected(ComponentName name) {                }            };
  • 绑定服务成功会即会调用onServiceConnected方法,获取IBinder对象进行通信。

更多相关文章

  1. Android进阶(六)文件读操作
  2. Android欢迎界面的创建方法
  3. Android(安卓)之 getSharedPreferences 和 getPreferences
  4. 实战试用 Android(安卓)NDK 初见成效
  5. (转载)Android平台,jni调用原始C运态库技术总揽
  6. 如何在android style文件中使用自定义属性
  7. Android(安卓)Spinner 下拉菜单的使用
  8. Android开发学习之WallPaper设置壁纸详细介绍与实例
  9. Android使用SpannableString实现文本框里插入表情

随机推荐

  1. android强制弹出键盘
  2. Android 弹出框
  3. 如何记忆Android模拟器中的快捷键
  4. Android(安卓)adb shell相关命令基本使用
  5. android 照相源码
  6. Android 常用的ui(单选框 多选框 下拉列表
  7. android之调用系统自带资源的两种方式
  8. onSaveInstanceState和onRestoreInstance
  9. Android 手电筒 附源码
  10. Android简单练习(TableLayout)