編輯:關於android開發
我不喜歡那些泛泛而談的去講那些形而上學的道理,更不喜歡記那些既定的東西。靠記憶去彌補思考的人,容易陷入人雲亦雲的境地,最後必定被記憶所圍困,而最終消亡的是創造力。希望這個高手之路系列能夠記錄我學習安卓的點點滴滴。從而匯成流,聚為江,成為海。
下面就結合代碼分析一下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的啟動開始看。
Android插件化(使用Small框架) Android插件化(使用Small框架) 框架源碼 1. Create Project File->New->
Android簽名機制之---簽名驗證過程詳解 一、前言 今天是元旦,也是Single Dog的嚎叫之日,只能寫博客來祛除寂寞了,今天我們繼續來看一下Android中的簽
自定義控件之創建可以復用的組合控件(三) 前面已學習了兩種自定義控件的實現,分別是自定義控件之對現有控件拓展(一)和 自定義控件之直接繼承View創建全新視圖(二),
android support的作用及其常見錯誤的解決,androidsupport 首先我們要明白這些包到底是干什麼用的 google提供了Android Suppor