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

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

    網易手機注冊怎么登陸,請問網易163郵箱除了號碼注冊還可以怎么注冊那這種除了號碼注冊
    win10安裝驅動被阻止怎么辦啊(win10安裝驅動被阻止怎么辦恢復)
    手機屏幕變負片了怎么處理(手機屏幕負色怎么辦)
    華為系統閃退怎么辦,華為手機系統更新后軟件閃退
    百度裝修app(百度裝修公司)
    安卓4.4虛擬機下載(安卓4.4.2虛擬機)
    蘋果手機做雙系統教程(蘋果手機怎么設置雙系統啟動)
    手機數據恢復中心在哪里,vivox3手機的飛爾數據恢復中心在哪
    正版win7安裝步驟(正版win7安裝方法)
    怎么把申請表導出來(導出申請表之后在哪里找)
    長城和七彩虹固態硬盤,長城350sd靜音大師能帶的起I5 4430 跟七彩虹9600烈焰戰神1G 華碩Z
    京東訂單取消失敗,無法再次申請退款客服能退嗎(京東訂單取消失敗,無法再次申請退款怎么回事)
    u盤格式化怎么操作(u盤格式化的正確步驟)
    光驅改固態硬盤,華碩x550c光驅改固態硬盤
    win10怎么更新軟件版本呢(windows10怎么升級軟件)
    怎樣刪除電腦查詢記錄(如何查看電腦的刪除記錄)
    三星最好的固態硬盤是哪一款,三星哪個系列的固態硬盤比較出眾
    電腦桌邊便簽(電腦桌面 便簽)
    小米怎么用全景拍攝,小米11Ultra全景拍攝
    微信怎么清空消息列表,如何徹底刪除微信聊天消息記錄
    主站蜘蛛池模板: 免费看无码自慰一区二区| 国产一区二区内射最近更新| 精品一区二区AV天堂| 国产成人综合亚洲一区| 国产在线精品一区二区中文| 亚洲欧洲无码一区二区三区| 精品国产日韩亚洲一区| 国内精品视频一区二区三区| 一区二区三区四区免费视频| www一区二区三区| 国产熟女一区二区三区五月婷| 久久一区二区三区精品| 久久久国产一区二区三区| 日韩一区二区三区电影在线观看| 91无码人妻精品一区二区三区L| 国产免费一区二区三区免费视频 | 东京热人妻无码一区二区av| 日本一区二区三区中文字幕| 精品国产日韩亚洲一区在线| 亚洲日韩一区精品射精| 精品人妻码一区二区三区| 成人免费区一区二区三区| 奇米精品一区二区三区在| 日本v片免费一区二区三区 | 在线视频一区二区| 日本欧洲视频一区| 久久精品动漫一区二区三区| 国产一区二区视频在线播放| 香蕉免费看一区二区三区| 一区二区三区四区国产| 精品久久久久中文字幕一区 | 免费无码毛片一区二区APP| 亚洲国产精品一区二区第一页 | 国产精品综合一区二区三区| 精品无码国产一区二区三区51安| 97久久精品无码一区二区| 在线观看日本亚洲一区| 精产国品一区二区三产区| 国产精品一区不卡| 一区二区三区免费视频观看| 国产精品成人一区二区|