1. 程式人生 > >如果我是Android面試官十

如果我是Android面試官十

一、Android 各版本新特性

這個先開個坑,以後填。

二、Android兩種虛擬機器

Java提供了JVM虛擬機器,而Android出於優化的考慮,又提供了自己的虛擬機器Dalvik。

JVM基於棧架構,每次取資料是從記憶體中取。

Dalvik虛擬機器是基於暫存器架構,每次去資料從暫存器中取,效率要比從記憶體中取要高。

二者執行的位元組碼也不一樣,java虛擬機器是執行jar檔案,而DVM虛擬機器是執行dex檔案。

在Android 4.4以後,ART虛擬機器用來替換DVM虛擬機器。

ART相比於DVM,在安裝應用時會進行一次預編譯,將位元組碼編譯成機器碼並存儲在本地,這樣應用執行時就不需要編譯了,執行效率大大提升。

ART比DVM佔用空間要大,也就是用空間換時間。

同時,ART比DVM的GC種類也要多。

三、asset目錄與res目錄區別

asset目錄下的資源獲取方式為檔案路徑+檔名。而res目錄下檔案獲取方式為R.xxx.xxx。

如果在目錄下建立了子目錄。asset目錄下的檔案可以通過修改檔案路徑名稱來獲取資源。而res目錄下則不能通過R.xxx.xx.xx來獲取,這樣會報錯。

asset目錄下資源不會生成資源ID,使用時通過方法如getImageFromAssetsFile等獲取。