【讀書筆記】安卓學習筆記第一篇——個人雜談

Ox9A82發表於2016-06-21

  最近打算轉向安卓平臺的安全了,因為之前一直沒有接觸過安卓平臺的安全,所以要從最底層的安全機制開始學起。一直以來都是在做Windows平臺的安全的,對於Linux的瞭解不多,而安卓恰好又是基於linux平臺的東西。所以搞安卓平臺就很有必要去學習一下系統機制方面的東西了。最近看了一些資料, 對於安卓平臺有了一個初步的理解,首先安卓給我的感受就是系統的層次很複製。我比較熟悉Windows的東西,Windows是基於子系統進行架構的,但是事實上子系統根本就只有一個win32,對於應用層來說很簡明,就是系統提供Win32 API分發給ntdll.dll,而核心層面也只是簡單的各種管理器機制。但是安卓則完全不同,安卓是一個基於虛擬機器的系統。而且是多層級的架構。

  根據我的理解,安卓是在linux核心的基礎上擴充套件驅動程式以增加核心的功能,然後在應用層上使用Dalvik虛擬機器以支援dex檔案的指令執行。 關鍵就在於這裡,對於Windows來說應用層就是應用層,就是直接暴露給使用者和開發者的東西。 但是安卓不一樣,安卓有虛擬機器。對於Linux來說安卓的那些東西都應該是應用層的,但是使用者是看不到的,安卓是把Linux的應用層分為執行時庫、Dalvik虛擬機器 、應用程式框架、和應用程式,安卓使用者真正能看到的東西就只有應用程式了。 所以這是完全不一樣的。

  目前,我對於安卓的認識還是比較粗淺的,但是我覺得學習安卓要從核心模組學到應用程式框架。。這個跨度比較大。而且,對於一個功能來說,不僅僅是在核心層面而是可能在不同的層面上都暴露出介面,層層封裝實現功能。

  最後感覺的一點就是,學習的廣度比較大,如果是學習Windows平臺的底層安全,那麼會C就可以通吃應用層和核心層,頂多要用點C++。但是Android就不一樣了,首先ARM平臺就是一個要接觸的新東西,其次核心是C寫的,應用是java寫的,Dalvik虛擬機器還有自己的彙編語法,各層次的東西感覺好複雜啊0.0

  感覺要學習的東西還有好多啊0.0又是好多的不眠夜                                                                                                                                                                                                                                                                                                      

相關文章