講完了Android 基礎元件、觀念及第三方套件後,今天我想來談一談AOSP,什麼是AOSP? Android Open Soure Project,他就是一個google支援的開源Android OS程式碼,姑且不論今後是否會仍然是開源的專案。
開源程式的實作細節中,一直以來都不乏許多值得讓開發者學習的部分:
- 你會想知道Activity是怎麼做出來的嗎?
- IBinder又是如何實作的呢?
- Android是如何與其他硬韌體溝通的呢?
- ANR是怎麼實作的?
- Camera 的圖片或Streaming到了Android的底層後,是怎麼傳輸的?
- 6.0以上的權限為什麼會這樣規範?又或者說具體而言,他們是如何去實作這些權限的限縮及要求的?
當然最好的方式是去手機廠,一個部門一個部門的輪替,這樣就可以具體而細微的了解整個Android OS,但既然網路上有公開的Source Code,其實我們現在就可以開始了。
即便以上的這些文章都不是開發者真的必備的知識,但越了解也可以方便遇到程式問題的時候如何除錯,有些時候遇到某些自己沒碰過的Android source code error,筆者會去androidxref 看一下這個版本的這個元件是怎麼實作的,由此去判斷Bug root cause可能的原因。
但也有遇到系統廠商開發出來的版本跟Open source code完全是不同的情況就是,不過依然可以當成了解的依據。
最後,附上官方網址:https://source.android.com/