1
我想在Eclipse中使用Android AIDL創建遠程服務。我創建了我AIDL文件IRemoteService.aidl在/ src目錄如下:使用aidl的Android遠程服務
package com.vtrandal.bluesentry;
interface IRemoteService {
String getData();
}
做一個構建,我得到一個巨大的文件IRemoteService.java在/根含有這些類和方法,具體如下(不象任何我的文檔中看到):
public interface IRemoteService extends android.os.IInterface
public static abstract class Stub extends android.os.Binder implements com.vtrandal.bluesentry.IRemoteService
private static final java.lang.String DESCRIPTOR = "com.vtrandal.bluesentry.IRemoteService";
public Stub()
public static com.vtrandal.bluesentry.IRemoteService asInterface(android.os.IBinder obj)
public android.os.IBinder asBinder()
public boolean onTransact(int code, android.os.Parcel data, android.os.Parcel reply, int flags) throws android.os.RemoteException
private static class Proxy implements com.vtrandal.bluesentry.IRemoteService
Proxy(android.os.IBinder remote)
public android.os.IBinder asBinder()
public java.lang.String getInterfaceDescriptor()
public java.lang.String getData() throws android.os.RemoteException
public java.lang.String getData() throws android.os.RemoteException;
那麼,爲什麼IRemoteService.java包含在文件中沒有提到這麼多的垃圾?我怎麼可能知道如何處理這一切?我怎麼可能知道如何處理它呢?
謝謝@Alex但生成的代碼沒有記錄,所以我不能使用它。爲什麼編譯器甚至會打擾我向我展示?我找不到我需要的東西。也許我甚至不需要AIDL,因爲即使我切換到另一個活動,我已經有一個後臺線程繼續運行(每個logcat)。 – Vince 2011-05-26 02:44:46
@Vince你不需要使用這段代碼。你所要做的就是擴展存根並從接口實現方法。所有代碼僅供框架使用。我認爲Android文檔很好地描述了這個過程。 http://developer.android.com/guide/developing/tools/aidl.html – 2011-05-26 05:04:05
我發現了一本書「Pro Android 2」,它將生成的代碼記錄在.aidl文件中,基本上我同意我不需要擔心關於它。謝謝。我還了解到,使用AIDL通常意味着應用程序之間的溝通,我不需要這樣做。所以我沒有使用AIDL。 – Vince 2011-05-29 20:50:43