安卓4.4虛擬機(jī)下載(安卓4.4.2虛擬機(jī))

    本文為大家介紹安卓4.4虛擬機(jī)下載(安卓4.4.2虛擬機(jī)),下面和小編一起看看詳細(xì)內(nèi)容吧。
    請(qǐng)問在虛擬機(jī)中安裝安卓44系統(tǒng)如何設(shè)置實(shí)現(xiàn)上網(wǎng)謝謝!
    在虛擬機(jī)設(shè)置中,網(wǎng)絡(luò)適配器選擇橋接(需要有dhcp的路由器環(huán)境)
    或nat(本地上網(wǎng),對(duì)應(yīng)vmware
    dhcp
    服務(wù)和vmware
    網(wǎng)絡(luò)地址轉(zhuǎn)換
    服務(wù),并啟用vmnet8 網(wǎng)卡)。
    以上是vmware
    在工作站的虛擬機(jī)上安裝android x86
    4.4 適用。
    聽說安卓4.4采用了新的虛擬機(jī)?
    藝術(shù)
    長(zhǎng)期以來,dalvik 虛擬機(jī)一直被android 應(yīng)用程序滯后所困擾,谷歌團(tuán)隊(duì)現(xiàn)在將注意力轉(zhuǎn)向了android 的核心組件,即dalvik。新的art 運(yùn)行時(shí)可以讓android 省去解釋代碼的過程,直接運(yùn)行預(yù)編譯的程序。為了讓android適配多種設(shè)備,讓現(xiàn)有的開發(fā)者能夠快速適應(yīng)android開發(fā)平臺(tái),android最初設(shè)計(jì)為使用java語言作為應(yīng)用程序編寫語言。開發(fā)者編寫的應(yīng)用程序在運(yùn)行時(shí)需要通過一個(gè)名為dalvik的虛擬機(jī)進(jìn)行解釋和編譯。應(yīng)用開發(fā)者不需要知道android系統(tǒng)運(yùn)行在什么樣的硬件和底層環(huán)境上,因?yàn)榕c底層通信的是dalvik,而不是應(yīng)用本身。但是,為兼容性付出的代價(jià)是,由于中間嵌套了一層虛擬機(jī),應(yīng)用程序無法充分高效地利用硬件的所有功能,也無法針對(duì)一些專有的進(jìn)行專門的優(yōu)化。解決方案。因此,android 應(yīng)用程序在ios 上的執(zhí)行效率會(huì)慢一些。應(yīng)用程序在運(yùn)行過程中,虛擬機(jī)dalvik通過一個(gè)叫做jit(just-in-time)的解釋器動(dòng)態(tài)編譯執(zhí)行,這也拖慢了運(yùn)行效率。現(xiàn)在在新的android 4.4中,谷歌為開發(fā)者提供了兩種編譯模式,一種仍然是默認(rèn)的dalvik模式,另一種是art模式。 art模式下發(fā)布的應(yīng)用在用戶安裝時(shí)進(jìn)行預(yù)編譯,將原本在程序運(yùn)行時(shí)進(jìn)行的編譯動(dòng)作提前到應(yīng)用安裝時(shí)。省去解釋代碼的過程后,應(yīng)用程序的運(yùn)行效率會(huì)更高。
    安卓art虛擬機(jī)在什么位置
    一、概述
    我們知道,android程序雖然也是用java/kotlin語言編寫的,生成.class字節(jié)碼,但是不能直接運(yùn)行在jvm上,而是運(yùn)行在自己的vm上。 android程序不能在jvm上運(yùn)行的根本原因是.class字節(jié)碼文件不是android最終的可執(zhí)行文件(執(zhí)行效率問題),而是一個(gè)過渡產(chǎn)物,最終會(huì)生成一個(gè)dex文件在android上執(zhí)行虛擬機(jī)。
    1.1 android虛擬機(jī)分類:
    android vm大致分為兩種:dalvik虛擬機(jī)和art虛擬機(jī)。
    dilvik虛擬機(jī):android 5.0之前的版本。
    art虛擬機(jī):完全使用android 5.0版本。
    1.2 虛擬機(jī)的演進(jìn)與優(yōu)化:
    android 1.0使用dalvik作為android虛擬機(jī)的運(yùn)行環(huán)境,此時(shí)的虛擬機(jī)是一個(gè)解釋執(zhí)行器。
    android 2.2,android虛擬機(jī)中加入了jit編譯器(just-in-time compiler)。
    android 4.4,全新的art虛擬機(jī)運(yùn)行環(huán)境誕生。此時(shí)art和dalvik并存,用戶可以在兩者之間進(jìn)行選擇。
    android 5.0,art全面取代dalvik作為android虛擬機(jī)運(yùn)行環(huán)境,并采用aot預(yù)編譯技術(shù),在安裝時(shí)預(yù)編譯全量apk。
    android 7.0,art虛擬機(jī)采用jit/aot混合編譯方式。
    2.達(dá)爾維克
    dalvik 是google 為android 平臺(tái)設(shè)計(jì)的虛擬機(jī)。它是android平臺(tái)的重要組成部分,支持運(yùn)行dex格式(dalvik executable)的java應(yīng)用程序。 dex格式是專門為dalvik設(shè)計(jì)的一種壓縮格式,適用于內(nèi)存和處理器速度有限的系統(tǒng)。谷歌專門對(duì)其進(jìn)行了優(yōu)化。優(yōu)化后的dalvik 高效、簡(jiǎn)潔、節(jié)省資源。它還允許多個(gè)虛擬機(jī)實(shí)例在有限的內(nèi)存中同時(shí)運(yùn)行,每個(gè)dalvik 應(yīng)用程序作為一個(gè)獨(dú)立的linux 進(jìn)程執(zhí)行。單獨(dú)的進(jìn)程防止所有程序在虛擬機(jī)崩潰時(shí)關(guān)閉。
    2.1 dalvik和jvm的區(qū)別
    dalvik 是基于寄存器的,而jvm 是基于堆棧的。
    指令數(shù):基于寄存器的操作指令會(huì)增加操作數(shù)的大?。ㄈ秉c(diǎn)),但會(huì)大大減少操作指令的數(shù)量(優(yōu)點(diǎn))
    運(yùn)行效率:基于寄存器(在cpu上)的指令運(yùn)行速度比基于操作數(shù)棧(主存)的快。
    可移植性:基于寄存器的執(zhí)行效率高,但可移植性差,難以跨平臺(tái)。
    dalvik虛擬機(jī)有共享機(jī)制,不同的應(yīng)用在運(yùn)行時(shí)可以共享同一個(gè)類,效率更高。
    2.2 jit(即時(shí)編譯)
    /p>android 2.2之前,dalvik虛擬機(jī)是通過解釋器 (解釋器逐條讀入字節(jié)碼 - 逐條翻譯成機(jī)器碼 - 執(zhí)行機(jī)器碼)來執(zhí)行程序的,效率低。針對(duì)這個(gè)問題,引進(jìn)了jit(即時(shí)編譯器)技術(shù)。它是一種優(yōu)化手段。
    jit技術(shù):將解釋過的機(jī)器碼緩存起來,下次再執(zhí)行時(shí)到這個(gè)方法的時(shí)候,則直接從緩存里面取出機(jī)器碼來執(zhí)行。減少了讀取字節(jié)碼和翻譯字節(jié)碼的操作。以此來提高效率。jit技術(shù)的引入使得dalvik的性能提升了3~6倍。
    注意: 并不是所有執(zhí)行過的代碼對(duì)應(yīng)的機(jī)器碼都會(huì)被緩存起來。而是只有被認(rèn)定為熱點(diǎn)代碼(hot spot code) 的代碼才會(huì)。這里所指的熱點(diǎn)代碼主要有兩類,包括:
    被多次調(diào)用的方法
    被多次執(zhí)行的循環(huán)體(雖然只是循環(huán)體被多次執(zhí)行,但仍是將整個(gè)方法的機(jī)器碼緩存起來)。
    缺點(diǎn): jit技術(shù)的缺點(diǎn):
    每次重新啟動(dòng)引用都需要重新編譯。
    運(yùn)行時(shí)比較耗電。
    三、art 虛擬機(jī)
    art虛擬機(jī)在android 5.0開始替換dalvik虛擬機(jī),其處理應(yīng)用程序執(zhí)行的方式不同于dalvik虛擬機(jī),它不使用jit而是使用了aot(ahead-of-time),也就是提前編譯技術(shù)。并對(duì)垃圾收集器也進(jìn)行了改進(jìn)和優(yōu)化。
    預(yù)先編譯機(jī)制(aot)可提高應(yīng)用的性能。同時(shí)art 還具有比 dalvik 更嚴(yán)格的安裝時(shí)驗(yàn)證。
    3.1 aot(ahead-of-time)預(yù)先編譯技術(shù)
    aot(提前編譯技術(shù)): 簡(jiǎn)單來說就是提前將字節(jié)碼轉(zhuǎn)換成本地機(jī)器碼,然后存儲(chǔ)在本地磁盤上,運(yùn)行時(shí)可以直接執(zhí)行,避免了dalvik時(shí)期的應(yīng)用運(yùn)行時(shí)再來解釋字節(jié)碼。運(yùn)行時(shí)效率大大提高。
    在android 7.0 之前,android系統(tǒng)安裝apk時(shí),會(huì)進(jìn)行一次全量預(yù)編譯,將字節(jié)碼預(yù)先編譯成本地機(jī)器碼,生成 oat文件,并存儲(chǔ)在本地磁盤上。這樣在app每次運(yùn)行時(shí)就不需要重新編譯,可以直接使用編譯好本地機(jī)器碼,運(yùn)行效率大大提升。但是這也使得安裝應(yīng)用的時(shí)間大大增加,于是在android7.0及之后,又重新引進(jìn)了jit技術(shù),形成jit/aot混合編譯模式。
    混合編譯的特點(diǎn):
    應(yīng)用在安裝的時(shí)候,不進(jìn)行aot預(yù)編譯。
    應(yīng)用運(yùn)行時(shí)直接通過解釋器翻譯字節(jié)碼為機(jī)器碼然后執(zhí)行。(在應(yīng)用運(yùn)行期間使用了jit技術(shù))并同時(shí)記錄熱點(diǎn)代碼信息到profile文件中。
    手機(jī)進(jìn)入空閑或充電狀態(tài)的時(shí)候,系統(tǒng)會(huì)掃描app目錄下的profile文件,并通過aot對(duì)熱點(diǎn)代碼進(jìn)行編譯。
    下一次啟動(dòng)時(shí),會(huì)根據(jù)profile文件來運(yùn)行已編譯好的機(jī)器碼,避免在運(yùn)行時(shí)對(duì)已經(jīng)轉(zhuǎn)換為機(jī)器碼的方法又進(jìn)行了jit編譯。
    應(yīng)用運(yùn)行期間會(huì)持續(xù)對(duì)熱點(diǎn)代碼進(jìn)行記錄,以方便在空閑或充電時(shí)進(jìn)行aot,以此循環(huán)。
    使用jit編譯器來對(duì)aot編譯器進(jìn)行補(bǔ)充,降低了apk安裝的時(shí)間,提升了運(yùn)行時(shí)性能,節(jié)省了存儲(chǔ)空間,加快應(yīng)用運(yùn)行速度。
    小結(jié):
    android 7.0以前,采用aot全量預(yù)編譯,apk安裝時(shí)預(yù)編譯dex生成對(duì)應(yīng)的機(jī)器碼文件。但預(yù)編譯量大導(dǎo)致apk安裝時(shí)間長(zhǎng)。
    android 7.0及之后,采用jit/aot混合編譯模式,根據(jù)對(duì)應(yīng)的profile在空閑時(shí)進(jìn)行aot預(yù)編譯。
    參考: 實(shí)現(xiàn) art 即時(shí) (jit) 編譯器
    3.2 dalvik與art虛擬機(jī)的區(qū)別
    dalvik每次都要編譯再運(yùn)行,art只會(huì)安裝時(shí)啟動(dòng)編譯(7.0之前全量預(yù)編譯)。
    art占用空間比dalvik大(原生代碼占用的存儲(chǔ)空間更大),就是用“空間換時(shí)間”。
    art減少編譯,減少了cpu使用頻率,使用明顯改善電池續(xù)航。
    art應(yīng)用啟動(dòng)更快、運(yùn)行更快、體驗(yàn)更流暢、觸感反饋更及時(shí)。
    3.3 interpreter解釋器、jit、aot的在art上的使用
    解釋器: 逐條讀入字節(jié)碼 - 逐條翻譯成機(jī)器碼 - 執(zhí)行機(jī)器碼,重復(fù)執(zhí)行同一代碼時(shí)需要重新翻譯執(zhí)行。
    jit編譯器: 對(duì)運(yùn)行時(shí)的熱點(diǎn)代碼(熱點(diǎn)代碼)進(jìn)行編譯,且緩存在內(nèi)存中,當(dāng)下次繼續(xù)執(zhí)行時(shí),直接從內(nèi)存中獲取,減少重復(fù)編譯。
    aot編譯器: 在運(yùn)行前將字節(jié)碼轉(zhuǎn)換為機(jī)器碼,在運(yùn)行時(shí)直接運(yùn)行轉(zhuǎn)換后的機(jī)器碼。
    在這里插入圖片描述
    3.4 垃圾回收方面的優(yōu)化
    android虛擬機(jī)(dalvik art)學(xué)習(xí)
    四、android中的幾種文件
    4.1 apk文件
    apk 文件其實(shí)是 zip 格式,在window平臺(tái)上可以直接將后綴格式改為zip進(jìn)行解壓。解壓后的目錄如下圖所示:
    在這里插入圖片描述
    文件名 說明
    meta-inf/ 信息描述,簽名等用途。編譯生成一個(gè)apk包時(shí),會(huì)對(duì)所有要打包的文件做一個(gè)校驗(yàn)計(jì)算,并把計(jì)算結(jié)果放在meta-inf目錄下。而在android手機(jī)上安裝apk包時(shí),應(yīng)用管理器會(huì)按照同樣的算法對(duì)包里的文件做校驗(yàn),如果校驗(yàn)結(jié)果與meta-inf下的內(nèi)容不一致,系統(tǒng)就不會(huì)安裝這個(gè)apk。這就保證了apk包里的文件不能被隨意替換
    res/ 存放資源文件
    libs/ 存放的是 ndk 編出來的 so 庫
    androidmanifest.xml 程序全局清單文件
    classes.dex dalvik 字節(jié)碼
    resources.ars 編譯后的二進(jìn)制資源文件,主要是對(duì)應(yīng)的索引
    assets/ 保留工程中assets目錄,其他工程下的、jar包中的assets也會(huì)合并到該assets目錄下。
    4.2 dex文件
    dex 文件是可被dalvik虛擬機(jī)識(shí)別并執(zhí)行的文件, dalvik 會(huì)執(zhí)行 .dex 文件中的 dalvik 字節(jié)碼,但一般dalvik在執(zhí)行dex優(yōu)化后的文件(即odex文件)。
    dex文件特點(diǎn):
    dex文件是android系統(tǒng)中的一種文件,是一種特殊的數(shù)據(jù)格式,和apk、jar等格式文件類似。
    文件更加緊湊:dex文件是能夠被dvm識(shí)別,加載并執(zhí)行的文件格式。相比于jar文件,dex會(huì)把所有包含的信息整合在一起,減少冗余信息,從而降低了加載文件時(shí)的i/o耗時(shí),提高類的查找速度。
    dex文件包含應(yīng)用程序的全部操作指令和運(yùn)行時(shí)數(shù)據(jù)。
    相對(duì)于pc上的jvm能運(yùn)行 .class文件,android上的dalvik虛擬機(jī)能運(yùn)行 .dex 文件。
    .dex文件和 .class文件的格式對(duì)照:
    在這里插入圖片描述
    dex 文件結(jié)構(gòu):
    在這里插入圖片描述
    4.3 引起dex文件65535問題的原因
    當(dāng)android系統(tǒng)啟動(dòng)一個(gè)apk時(shí),會(huì)通過 dexopt 工具對(duì)dex進(jìn)行優(yōu)化。dexopt 的執(zhí)行過程是在第一次加載dex文件的時(shí)候執(zhí)行的。這個(gè)過程會(huì)生成一個(gè)odex文件,即optimised dex (執(zhí)行odex的效率會(huì)比直接執(zhí)行dex文件的效率要高很多)。但早期android系統(tǒng)中, dexopt 有一個(gè)問題(即65535問題)。dexopt會(huì)把每一個(gè)類的方法id檢索起來,存在一個(gè)鏈表結(jié)構(gòu)里面。但是這個(gè)鏈表的長(zhǎng)度是用一個(gè) short類型(2^16=65536)來保存的,導(dǎo)致了方法id的數(shù)目不能夠超過65536個(gè)。
    4.4 odex文件 (optimized dex)
    背景: 對(duì)android dex文件進(jìn)行優(yōu)化來說,需要注意的一點(diǎn)是dex文件的結(jié)構(gòu)是緊湊的,但是我們還是要想方設(shè)法進(jìn)行運(yùn)行速度的提高,因此我們?nèi)匀恍枰獙?duì)dex文件進(jìn)一步優(yōu)化。
    odex文件的使用場(chǎng)景:
    安裝階段: apk在安裝時(shí),系統(tǒng)會(huì)進(jìn)行驗(yàn)證和優(yōu)化,目的是為了校驗(yàn)代碼合法性及優(yōu)化代碼執(zhí)行速度。當(dāng)驗(yàn)證和優(yōu)化后,系統(tǒng)會(huì)從apk中提取dex文件進(jìn)行優(yōu)化,并將優(yōu)化后的產(chǎn)物(odex文件)保存到 data/dalvik-cache 目錄下。
    運(yùn)行階段: 當(dāng)運(yùn)行apk的時(shí)候,會(huì)直接加載odex文件,避免重復(fù)驗(yàn)證和優(yōu)化,加快了apk的響應(yīng)時(shí)間。
    odex 文件的生成過程:
    android 5.0之前:dalvik虛擬機(jī)
    dalvik虛擬機(jī)會(huì)在執(zhí)行dex文件前對(duì)dex文件做優(yōu)化,生成可執(zhí)行文件odex,保存到 data/dalvik-cache 目錄,最后把a(bǔ)pk文件中的dex文件刪除。
    注意: 此時(shí)生成的odex文件后綴依然是dex ,它是一個(gè)dex文件,里面仍然是字節(jié)碼,而不是本地機(jī)器碼。
    android5.0 = version android 8.0 (android o):art虛擬機(jī)
    android5.0之后使用art虛擬機(jī),art虛擬機(jī)使用aot預(yù)編譯生成oat文件。oat文件是art虛擬機(jī)運(yùn)行的文件,是elf格式二進(jìn)制文件。oat文件包含dex和編譯的本地機(jī)器指令,因此比android5.0之前的odex文件更大。
    oat文件生成過程:
    app在首次安裝的時(shí)候,dex2oat 工具默認(rèn)會(huì)把 dex文件翻譯成本地機(jī)器指令,生成elf格式的oat文件,并將其放在了 /data/dalvik-cache 或 /data/app/packagename/ 目錄下,此時(shí)oat文件后綴格式為odex。
    art加載oat文件后不需要經(jīng)過處理就可以直接運(yùn)行,它在編譯時(shí)就從字節(jié)碼裝換成機(jī)器碼了,因此運(yùn)行速度更快。
    dalvik虛擬機(jī)執(zhí)行程序dex文件前,系統(tǒng)會(huì)對(duì)dex文件做優(yōu)化,生成可執(zhí)行文件odex,保存到 data/dalvik-cache 目錄,最后把a(bǔ)pk文件中的dex文件刪除。 (注意:此時(shí)生成的odex文件后綴依然是dex ,它是一個(gè)dex文件,里面仍然還是字節(jié)碼,而不是本地機(jī)器碼。)
    注意: android5.0及之后版本生成的 oat文件后綴還是odex,但是已經(jīng)不是android5.0 及之前版本的文件格式,而是elf格式封裝的本地機(jī)器碼??梢哉J(rèn)為oat在dex上加了一層殼,可以從oat里提取出dex。
    android o及之后(=android 8.0):art虛擬機(jī)
    android 8.0及之后版本,dex2oat會(huì)直接生成兩個(gè)oat文件 (即vdex文件 和 odex文件)。其中 odex 文件是從vdex 文件中提取了部分模塊生成的一個(gè)新的可執(zhí)行二進(jìn)制碼文件,odex 從vdex 中提取后,vdex 的大小就減少了。
    文件生成過程:
    app在首次安裝的時(shí)候,odex 文件就會(huì)生成在 /system/app/packagename/oat/ 下。
    在系統(tǒng)運(yùn)行過程中,虛擬機(jī)將其 從/system/app 下 copy 到 /data/davilk-cache/ 下。
    odex + vdex = apk 的全部源碼 (vdex 并不是獨(dú)立于odex 的,文件 odex + vdex 才代表一個(gè)apk )。
    odex 的優(yōu)點(diǎn)和缺點(diǎn):
    優(yōu)點(diǎn):
    啟動(dòng)快: 省去了系統(tǒng)第一次啟動(dòng)應(yīng)用時(shí)從apk文件中讀取dex文件,并對(duì)dex文件做優(yōu)化的過程。和
    對(duì)ram的占用(apk文件中的dex如果不刪除,同一個(gè)應(yīng)用就會(huì)存在兩個(gè)dex文件:apk中和 data/dalvik-cache 目錄下)。
    安全性:防止第三方用戶反編譯系統(tǒng)的軟件(odex文件是跟隨系統(tǒng)環(huán)境變化的,改變環(huán)境會(huì)無法運(yùn)行;而apk文件中又不包含dex文件,無法獨(dú)立運(yùn)行)
    劣勢(shì):
    優(yōu)化后的odex文件大小通常是原dex文件的1~4倍 (空間換時(shí)間)。
    4.5 vdex文件
    vdex文件是 android o (android 8.0) 新增的格式包,其目的是為了降低dex2oat時(shí)間。
    dex2oat的觸發(fā)場(chǎng)景:
    當(dāng)系統(tǒng)ota (系統(tǒng)升級(jí)) 后,用戶自己安裝的應(yīng)用是不會(huì)發(fā)生任何變化的,但 framework 代碼已經(jīng)發(fā)生了變化,因此就需要重新對(duì)這些應(yīng)用也做dex2oat。如果沒有vdex文件,則需要重新校驗(yàn)apk里dex文件合法性;如果存在vdex文件,就可以省略校驗(yàn)的過程,節(jié)省一部分時(shí)間。
    當(dāng)app的 jit profile 信息變化時(shí),background dexopt會(huì)在后臺(tái)重新做dex2oat,因?yàn)橛辛藇dex,這個(gè)時(shí)候也可以直接跳過dex文件的校驗(yàn)流程。
    dex 文件直接轉(zhuǎn)化的可執(zhí)行二進(jìn)制碼文件:
    app在首次安裝的時(shí)候,vdex文件就會(huì)生成在 /system/app/packagename/oat/下。
    在系統(tǒng)運(yùn)行過程中,虛擬機(jī)將其從 /system/app 下 copy 到 /data/davilk-cache/ 下。
    4.6 art文件
    art文件是由虛擬機(jī)執(zhí)行odex文件后,記錄虛擬機(jī)執(zhí)行apk啟動(dòng)的常用函數(shù)地址信息后生成出來的文件(記錄函數(shù)地址信息方便尋址),目的 是用于加快應(yīng)用啟動(dòng)速度。通常會(huì)在data/dalvik-cache/ 目錄中保存常用的jar包的相關(guān)地址記錄。
    第一次開機(jī)不會(huì)生成在 /system/app/packagename/oat/ 下,以后也不會(huì)。
    odex 文件在運(yùn)行時(shí),虛擬機(jī)會(huì)計(jì)算函數(shù)調(diào)用頻率,進(jìn)行函數(shù)地址的修改。
    最后在 /data/davilk-cache/ 由虛擬機(jī)生成 art文件(art文件生成)。
    生成 art文件后,/system/app 下的odex 和 vdex 會(huì)無效,即使你刪除,apk也會(huì)正常運(yùn)行。
    push 一個(gè)新的apk file 覆蓋之前 /system/app 下apk file ,會(huì)觸發(fā) pms 掃描時(shí)下發(fā) force_dex 的flag ,強(qiáng)行生成新的vdex 文件 ,覆蓋之前的vdex 文件,由于某種機(jī)制,這個(gè)新vdex 文件會(huì)copy到 /data/dalvik-cache/ 下,于是 art 文件也變化了。
    4.7 oat文件
    art虛擬機(jī)運(yùn)行的是oat文件,oat文件是一種android私有elf文件格式,oat文件包含有從dex文件翻譯而來的本地機(jī)器指令,還包含有原來的dex文件內(nèi)容(如下圖所示),因此oat文件比odex文件更大。apk在安裝的過程中,會(huì)通過dex2oat工具生成一個(gè)oat文件(文件后綴還是odex)。對(duì)于apk來說,oat文件實(shí)際上就是對(duì)odex文件的包裝,即oat=odex。
    注意: android5.0 及之后的版本,oat文件的后綴還是odex,但是已經(jīng)不是android5.0 之前的文件格式,而是elf格式封裝的本地機(jī)器碼??梢哉J(rèn)為oat在dex上加了一層殼,可以從oat里提取出dex。
    請(qǐng)問怎么在vm上安裝好的安卓4.4虛擬機(jī)上安裝app? 直接在虛擬安卓里面聯(lián)網(wǎng)下載apk安裝。
    還有就是vm虛擬安卓操作有問題,經(jīng)常捕捉不到鼠標(biāo),建議你下載《靠譜助手》
    專業(yè)的安卓虛擬機(jī)!
    想知道有沒有支持安卓4.0系統(tǒng)的虛擬機(jī)app?? vmos pro支持安卓4.4,應(yīng)該和安卓4.0的區(qū)別不大。
    手機(jī)虛擬機(jī)可以模擬安卓4嗎 虛擬機(jī)是在電腦上模擬出手機(jī)的效果的意思,并不是手機(jī)上的一款軟件.
    全球只有逍遙安卓模擬器支持4.2.2、4.4.4和5。1.1三個(gè)安卓系統(tǒng)的模擬器
    好了,安卓4.4虛擬機(jī)下載(安卓4.4.2虛擬機(jī))的介紹到這里就結(jié)束了,想知道更多相關(guān)資料可以收藏我們的網(wǎng)站。

    網(wǎng)易手機(jī)注冊(cè)怎么登陸,請(qǐng)問網(wǎng)易163郵箱除了號(hào)碼注冊(cè)還可以怎么注冊(cè)那這種除了號(hào)碼注冊(cè)
    win10安裝驅(qū)動(dòng)被阻止怎么辦啊(win10安裝驅(qū)動(dòng)被阻止怎么辦恢復(fù))
    手機(jī)屏幕變負(fù)片了怎么處理(手機(jī)屏幕負(fù)色怎么辦)
    華為系統(tǒng)閃退怎么辦,華為手機(jī)系統(tǒng)更新后軟件閃退
    百度裝修app(百度裝修公司)
    安卓4.4虛擬機(jī)下載(安卓4.4.2虛擬機(jī))
    蘋果手機(jī)做雙系統(tǒng)教程(蘋果手機(jī)怎么設(shè)置雙系統(tǒng)啟動(dòng))
    手機(jī)數(shù)據(jù)恢復(fù)中心在哪里,vivox3手機(jī)的飛爾數(shù)據(jù)恢復(fù)中心在哪
    正版win7安裝步驟(正版win7安裝方法)
    怎么把申請(qǐng)表導(dǎo)出來(導(dǎo)出申請(qǐng)表之后在哪里找)
    長(zhǎng)城和七彩虹固態(tài)硬盤,長(zhǎng)城350sd靜音大師能帶的起I5 4430 跟七彩虹9600烈焰戰(zhàn)神1G 華碩Z
    京東訂單取消失敗,無法再次申請(qǐng)退款客服能退嗎(京東訂單取消失敗,無法再次申請(qǐng)退款怎么回事)
    u盤格式化怎么操作(u盤格式化的正確步驟)
    光驅(qū)改固態(tài)硬盤,華碩x550c光驅(qū)改固態(tài)硬盤
    win10怎么更新軟件版本呢(windows10怎么升級(jí)軟件)
    怎樣刪除電腦查詢記錄(如何查看電腦的刪除記錄)
    三星最好的固態(tài)硬盤是哪一款,三星哪個(gè)系列的固態(tài)硬盤比較出眾
    電腦桌邊便簽(電腦桌面 便簽)
    小米怎么用全景拍攝,小米11Ultra全景拍攝
    微信怎么清空消息列表,如何徹底刪除微信聊天消息記錄
    主站蜘蛛池模板: 国产精品成人免费一区二区| 国产福利电影一区二区三区,免费久久久久久久精| 精品人伦一区二区三区潘金莲| 夜夜精品视频一区二区| 精品一区二区三区免费视频| 亚洲高清一区二区三区电影| 无码人妻精品一区二区三区66| 国产成人一区二区三区电影网站| 国产精品区一区二区三在线播放| 一区二区三区免费在线视频 | 亚洲av无码一区二区乱子伦as| 国产精品一区二区久久沈樵| 国产精品视频一区二区三区经| 国99精品无码一区二区三区| 亚洲AV成人精品日韩一区18p | 日本不卡一区二区三区视频| 麻豆视频一区二区三区| 亚州AV综合色区无码一区| 人妻体内射精一区二区三四| 日本一区二区不卡在线| 国产一区二区三区在线2021| 区三区激情福利综合中文字幕在线一区亚洲视频1 | 国产一区二区三区无码免费| 在线精品视频一区二区| 2018高清国产一区二区三区| 美女毛片一区二区三区四区| 久久人做人爽一区二区三区| 91精品国产一区| 亚洲福利视频一区二区三区| 在线观看亚洲一区二区| 人妻无码一区二区三区AV| 91视频一区二区三区| 韩国理伦片一区二区三区在线播放 | 日韩成人无码一区二区三区| 亚洲熟女乱色一区二区三区| 无码日本电影一区二区网站| 国产熟女一区二区三区五月婷| 精品一区二区三区四区电影| 精品福利一区二区三区| 亚洲AV无码一区二区二三区软件| 69福利视频一区二区|