Android之什麼是樁程式碼(Stub)?

lvxiangan發表於2019-01-29

Android SDK自帶的Source原始碼包很小,並沒有包括所有的Android Framework的原始碼,僅僅提供給應用開發參考用,一些比較少用的系統類的原始碼並沒有給出,所以有時候你會看到如下:
public void xxx() {
        throw new RuntimeException("Stub!"); // 樁程式碼,真正執行時會由Android ROM裡面相同的類代替執行。
        // 拋異常後下面就不執行了,所以不用寫返回值
}

 

Stub原義是(樹)樁,在這裡引申為“佔坑”。 樁程式碼是臨時性的/待編輯的,它使得程式在結構上能夠符合標準,又能夠使程式設計師可以暫時不編輯這段程式碼。

拋異常目的:提醒呼叫者,這個程式碼沒有實現。

產生原因:

  • Android Studio 沒有關聯原始碼

    注:部分程式碼在關聯後依舊無法檢視,請參照下面第二點說明。


     
  • 出於安全或者某些原因,這些API不能暴露給應用層的開發者,所以編譯完成的android.jar包裡會把這些API隱藏掉。

 

如何檢視:在Android SDK Source中找不到的時候,需要去AOSP(Android Open Source Project)專案查詢。

相關文章