android之stub使用介紹


什么是stub

存根類是一個類,它實現了一個接口,但是實現后的每個方法都是空的。

如果一個接口有很多方法,如果要實現這個接口,就要實現所有的方法。

但是一個類從業務來說,可能只需要其中一兩個方法。如果直接去實現這個接口,除了實現所需的方法,還要實現其他所有的無關方法。而如果通過繼承存根類就實現接口,就免去了這種麻煩。

代碼實例:

接口類:

public interface IRepo {
    public void remove(String... sarr);

    public void add(String... sarr);

    //Lots of other methods I don't need now
}

stub類

public class Repo extend IRepo.Stub {
    @Overread
    public void add(String... sarr) {
    }
}

Stub 和Android

在用binder通信時,stub類是為了方便client,service交互而生成出來的代碼。
AIDL( Interface Definition Language Android接口定義語言)實現進程間通信,尤其是在涉及多進程並發情況下的進程間通信。

IaidlData.aidl會在gen中自動生成一個同名的IaidlData.java接口文件,該接口文件包含一個抽象類stub,其繼承了android.os.Binder、實現IaidlData接口,我們需要繼承IIaidlData.Stub類,完成對IaidlData.java文件是的實現。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM