Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發 >> 關於android開發 >> 安卓高手之路之 ClassLoader,安卓classloader

安卓高手之路之 ClassLoader,安卓classloader

編輯:關於android開發

安卓高手之路之 ClassLoader,安卓classloader


 我不喜歡那些泛泛而談的去講那些形而上學的道理,更不喜歡記那些既定的東西。靠記憶去彌補思考的人,容易陷入人雲亦雲的境地,最後必定被記憶所圍困,而最終消亡的是創造力。希望這個高手之路系列能夠記錄我學習安卓的點點滴滴。從而匯成流,聚為江,成為海。

        下面就結合代碼分析一下ClassLoader這個東西。

        安卓應用程序是一個Dalvik虛擬機,加載的是Dex格式的文件。加載Dex格式的文件從直觀上理解就是ClassLoader做的事情。那麼,我們就從應用程序的啟動說起,因為應用程序的啟動一定是與ClassLoader密不可分的。

        我們講應用程序的啟動在《安卓高手之路之 應用程序》裡面從應用層面分析到了Process.start方法,啟動一個activity調用的是Process的start方法,Process的start方法又是調用的Zygote的一些方法。到這裡,過程還算清晰。下面的過程就顯得有些繞圈,因為安卓上面的java與其他java不同,安卓每一個應用程序都是一個進程。為了實現一個應用一個虛擬機的理想【這個理想滿足了可以很好地保護應用程序不受其他應用程序干擾的可能性,僅僅是為了保護應用的數據不被其他應用侵犯而浪費了如此大的力氣,可見google在為了應用程序的安全費了多大的心血啊。。。因為google砸在這個上面的心血比較多,所以後續一定要把google設置的安全機制吃透】。JVM的安全模型不適合在手機上使用。權限管理是一個大的話題,其實無非就是兩種:

      1.執行期保護:保護正在執行的java代碼是正確的,不被侵犯的。

      2.數據保護:保護數據不被惡意侵犯。

1.第一種,執行期保護。類加載體系結構、class文件檢驗器、Java虛擬機(及語言)的安全特性一起達到一個共同的目的:保持Java虛擬 機的實例和它正在運行的應用程序的內部完整性,使得它們不被下載的惡意代碼或有漏洞的代碼侵犯

2.第二種,數據保護。這個安卓有自己的數據保護方法。就是數字簽名,類似於qq登陸。

 

很明顯,第一種保護與這個ClassLoader關系很大。而第二種保護也與ClassLoader或多或少有關系,因為apk文件裡面的dex文件也是私有數據的一種。

 

  而且安卓的classloader和普通java的classloader有所不同。那麼就得從代碼進行分析,到底classloader又是什麼東西,這個神秘之神又是如何影響到權限問題的?

  累了,打字真辛辛苦。休息。明天繼續。從zygote的啟動開始看。

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved