如果我是Android面試官十
阿新 • • 發佈:2018-12-14
一、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等獲取。