关于AIDL的Demo


压缩中有两个项目,一为客户端一为服务端,均为Android Studio项目,且均用git管理。每个项目均有两条分支,其中 master分支对应博客:你真的理解AIDL中的in,out,inout么? simple分支对应博客:Android:学习AIDL,这一篇文章就够了(上) 两篇博客均在:http://blog.csdn.net/luoyanglizi 处可找到。
资源截图
代码片段和文件信息
/*
 * This file is auto-generated.  DO NOT MODIFY.
 * Original file: /home/lypeer/dev/workplace/workplace_android_project/IPCClient/app/src/main/aidl/com/lypeer/ipcclient/BookManager.aidl
 */
package com.lypeer.ipcclient;
public interface BookManager extends android.os.IInterface
{
/** Local-side IPC implementation stub class. */
public static abstract class Stub extends android.os.Binder implements com.lypeer.ipcclient.BookManager
{
private static final java.lang.String DEscriptOR = “com.lypeer.ipcclient.BookManager“;
/** Construct the stub at attach it to the interface. */
public Stub()
{
this.attachInterface(this DEscriptOR);
}
/**
 * Cast an IBinder object into an com.lypeer.ipcclient.BookManager interface
 * generating a proxy if needed.
 */
public static com.lypeer.ipcclient.BookManager asInterface(android.os.IBinder obj)
{
if ((obj==null)) {
return null;
}
android.os.IInterface iin = obj.queryLocalInterface(DEscriptOR);
if (((iin!=null)&&(iin instanceof com.lypeer.ipcclient.BookManager))) {
return ((com.lypeer.ipcclient.BookManager)iin);
}
return new com.lypeer.ipcclient.BookManager.Stub.Proxy(obj);
}
@Override public android.os.IBinder asBinder()
{
return this;
}
@Override public boolean onTransact(int code android.os.Parcel data android.os.Parcel reply int flags) throws android.os.RemoteException
{
switch (code)
{
case INTERFACE_TRANSACTION:
{
reply.writeString(DEscriptOR);
return true;
}
case TRANSACTION_getBooks:
{
data.enforceInterface(DEscriptOR);
java.util.List _result = this.getBooks();
reply.writeNoException();
reply.writeTypedList(_result);
return true;
}
case TRANSACTION_addBook:
{
data.enforceInterface(DEscriptOR);
com.lypeer.ipcclient.Book _arg0;
if ((0!=data.readInt())) {
_arg0 = com.lypeer.ipcclient.Book.CREATOR.createFromParcel(data);
}
else {
_arg0 = null;
}
this.addBook(_arg0);
reply.writeNoException();
if ((_arg0!=null)) {
reply.writeInt(1);
_arg0.writeToParcel(reply android.os.Parcelable.PARCELABLE_WRITE_RETURN_VALUE);
}
else {
reply.writeInt(0);
}
return true;
}
}
return super.onTransact(code data reply flags);
}
private static class Proxy implements com.lypeer.ipcclient.BookManager
{
private android.os.IBinder mRemote;
Proxy(android.os.IBinder remote)
{
mRemote = remote;
}
@Override public android.os.IBinder asBinder()
{
return mRemote;
}
public java.lang.String getInterfaceDescriptor()
{
return DEscriptOR;
}
@Override public java.util.List getBooks() throws android.os.RemoteException
{
android.os.Parcel _data = android.os.Parcel.obtain();
android.os.Parcel _reply = android.os.Parcel.obtain();
java.util.List _result;
try {
_data.writeInterfaceToken(DEscriptOR);
mRemote.transact(Stub.TRANSACTION_getBooks _data _reply 0);
_reply.readException();
_result = _reply.createTypedArrayList(com.lypeer.ipcclient.Book.CREATOR);
}
finally {
_reply.recycle();
_data.recycle();
}
return _result;
}
@Override public void addBook(com.lypeer.ipcc

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2016-07-20 10:46  IPCClient
     文件          93  2016-07-20 01:37  IPCClient.gitignore
     文件         840  2016-07-19 02:29  IPCClientgradle.properties
     文件         963  2016-07-19 02:37  IPCClientIPCClient.iml
     文件          16  2016-07-16 03:37  IPCClientsettings.gradle
     文件         455  2016-07-19 02:17  IPCClientlocal.properties
     文件        2404  2016-07-16 03:37  IPCClientgradlew.bat
     文件        4971  2016-07-16 03:37  IPCClientgradlew
     文件         521  2016-07-16 03:37  IPCClientuild.gradle
     目录           0  2016-07-21 06:18  IPCClient.git
     文件          92  2016-07-20 01:35  IPCClient.gitconfig
     文件          13  2016-07-20 10:45  IPCClient.gitCOMMIT_EDITMSG
     文件          73  2016-07-20 01:35  IPCClient.gitdescription
     文件        5125  2016-07-21 02:22  IPCClient.gitindex
     文件          23  2016-07-20 10:45  IPCClient.gitHEAD
     目录           0  2016-07-21 06:21  IPCClient.idea
     文件         180  2016-07-20 01:37  IPCClient.ideavcs.xml
     文件         564  2016-07-19 02:29  IPCClient.idea
unConfigurations.xml
     文件         159  2016-07-19 02:17  IPCClient.ideaencodings.xml
     文件         686  2016-07-19 02:17  IPCClient.ideacompiler.xml
     文件         739  2016-07-19 02:37  IPCClient.ideagradle.xml
     文件         355  2016-07-19 02:37  IPCClient.ideamodules.xml
     文件           9  2016-07-19 02:17  IPCClient.idea.name
     文件      186852  2016-07-21 06:21  IPCClient.ideaworkspace.xml
     文件        2226  2016-07-21 06:11  IPCClient.ideamisc.xml
     目录           0  2016-07-21 02:19  IPCClientuild
     目录           0  2016-07-16 03:41  IPCClient.gradle
     目录           0  2016-07-21 06:11  IPCClientapp
     文件        9506  2016-07-21 06:11  IPCClientappapp.iml
     文件         764  2016-07-20 10:20  IPCClientappuild.gradle
     文件         669  2016-07-16 03:37  IPCClientappproguard-rules.pro
............此处省略3552个文件信息

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。

发表评论

评论列表(条)