天天看點

為什麼Android5.0系統之後的應用都會比之前的啟動要快?

首先看一下Android系統的層次架構

層次 描述
應用層(Systeml Apps) 系統内置的和非系統級的應用程式都在這一層,都是用Java語言編寫的,負責與使用者進行直接互動。
應用架構層(Java API Framework) 為開發應用層的程式提供了所需要的API,這一層也是用Java語言編寫的
系統運作庫層(Native):(1)C/C++程式庫 (2)Android運作時庫 C/C++程式庫通過應用構架層向應用層的程式提供服務,換言之,應用層要通過應用架構層來調用C/C++程式庫的服務;Android運作時庫請看下文的介紹
硬體抽象層(HAL) 這一層是位于作業系統核心與硬體電路之間的接口層
Linux核心層(Linux Kernel) Android的核心系統服務基于Linux核心,在此基礎上添加了部分Android專用的驅動。系統的安全性、記憶體管理、程序管理、網絡協定棧、驅動模型都依賴于該核心

了解android系統架構的基本情況後,我們現在來回答文章的主題。

Android5.0系統之後,Android運作時庫有了很大的變化,這一點變化讓應用程式的啟動變得更快了。我們來看看Android運作時庫到底改變了什麼?

android 運作時庫又分為核心庫和虛拟機部分。核心庫主要提供了Java語言核心庫的大多數功能,正因為有核心庫的存在,是以開發者才可以使用Java語言編寫Android應用程式。虛拟機部分則在Android 5.0系統之後,由Dalvik換成了ART,這是運作效率得到提高的生要原因。

與JVM相比,Dalvik虛拟機是專門為移動裝置定制的。它允許在有限的記憶體中同時運作多個虛拟機執行個體,并且是每個Dalvik應用作為一個獨立的Linux程序執行。是以獨立的程序可以防止在虛拟機崩潰時,所有程式也跟着被關閉的情況發生。是以你現在應該明白,你的android應用程式出現崩潰後,其他的應用程式還在正常運作的原因了吧。