本文将带你了解Android应用开发Android 中AIDL的使用与理解,希望本文对大家学Android有所帮助。
AIDL的使用:
最常见的aidl的使用就是Service的跨进程通信了,那么我们就写一个Activity和Service的跨进程通信吧。
首先,我们就在AS里面新建一个aidl文件(ps:现在AS建aidl不要求和java包名相同了):
package aidl;
interface IMyInterface {
String getInfor(String s);
}
可以看到,在这里面我们就一个方法getInfor(String s),接受一个字符串参数,然后返回一个字符串,相当的简单。
接着你sync project一下就可以在app/generated/source/aidl/debug/aidl里面发现由aidl文件生成的java文件了。
然后就看看Service:
public class MyService extends Service {
public final static String TAG = MyService;
private IBinder binder = new IMyInterface.Stub() {
@Override
public String getInfor(String s) throws RemoteException {
Log.i(TAG, s);
return 我是 Service 返回的字符串;
}
};
@Overrid
public void onCreate() {
super.onCreate();
Log.i(TAG, onCreat);
}
@Override
public IBinder onBind(Intent intent) {
return binder;
}
}
这里我们写了一个Service,看一下也比较简单。先new了一IMyInterface.Stub()并把它向上转型成了IBinder,最后在onBind方法中返回回去。可能你注意到了&#x