導航:首頁 > 源碼編譯 > art編譯adb

art編譯adb

發布時間:2023-03-31 12:34:28

『壹』 ART、OAT格式介紹與dex文件提取

dex文件經過dex2oat編譯,會生成.art、.oat兩個文件,oat是一個android定製的elf文件,原喚坦始dex也保存在其中。8.0後,dex單獨保存到.vdex文件中。art文件類似於一個內存映像,緩存常用的ArtField、ArtMethod、DexCache等內容,載入後可直接使用,避免解析耗時。

以boot.art為例,它分為Image Section和Bitmap Section區域。每個Section在文件中的偏移量和大小由ImageSection類來描述。
主要Section介紹:

Bitmap Section:
Bitmap區域是一個點陣圖,用於描述Object Section里各個Object的地址,以8位元組對齊。如果一個比特位的值為1,則它指向Object Section中的一個Object對象。
假設Object存儲的基地址是0x70000000,如果點陣圖第N個比特位為1,那麼這個比特位指向的Object對象地址為0x70000000+N*8。

art/runtime/image.h:

oat文件本質上是一個ELF文件,它將OAT文件格式內嵌在ELF文件里。
在oat文件的dymanic section中,導出了三個符號oatdata、oatexec和oatlastword,分別用來描述oatdata和oatexec段載入到內存後的起止地址。

oatdata段中,包含原dex文件的完整內容(8.0後在.vdex文件),dex文件裡面的類方法所對脊橡應的本櫻鏈旁地機器指令保存在oatexec段中。
OAT主要內容介紹:

vdex格式:

boot.art、boot.oat、boot.vdex三者是一體的,相互依賴。

zygote啟動創建Heap的時候,會載入boot.art,然後載入boot.oat,再然後載入boot.vdex。
調用流程如下:

dextra
vdexExtractor
compact_dex_converter
Android 9(Pie)推出了一種新型Dex文件,即Compact Dex(Cdex)。Cdex是一種ART內部文件格式,它壓縮各種Dex數據結構(例如方法頭)並對多索引文件中的常見數據blob(例如字元串)進行重復數據刪除。來自輸入應用程序的Dex文件的重復數據刪除數據存儲在Vdex容器的共享部分中。
由於Vdex容器存儲的是Cdex文件而不是標準的Dex,因此需要藉助compact_dex_converter工具來實現提取dex。

安裝提取工具步驟(ubuntu):

提取: (工具並不完美,提取dex後有些不能正常jadx反編譯)

『貳』 ART模式是什麼

ART模式英文全稱為:Android RunTime,是Android 4.4系統新增的一種仿緩應用運行模式,與傳統的Dalvik模式相比,ART模式可以實現更為流暢的安卓系統體驗。
ART模式與Dalvik模式最大的不同,就是對程序的編譯方式。在Dalvik模式下,每次運行應用時都需要進行編譯,將應用代碼編譯為機器語言,這樣當前設備才能夠運行這一應用;在ART模式下,系統廳跡對程序只進行一次編譯,就是在程序安裝時。在安裝應用時會先將程序代碼轉換為機器語言存儲在本地,這樣在運行程序時就不會每次都進行備伏模一次編譯了,執行效率也大大提升。

『叄』 安卓ART模式是什麼意思 ART模式有什麼作用及功能

ART代表Android Runtime,其處理應用程序執行的方式完全不同於Dalvik,Dalvik是依靠一個Just-In-Time (JIT)編譯器去解釋位元組碼。開發者編譯後的應用代碼需要通過一個解釋器在用戶的設備上運行,這一機制並不高效,但讓應用能更容易在不同硬體和架構上運 行。ART則完全改變了這套做法,在應用安裝時就預編譯位元組碼到機器語言,這一機制叫Ahead-Of-Time (AOT)編譯。在移除解釋代碼這一過程後,應用程序執行將更有效率,啟動更快。

『肆』 如何在官方rom上開啟art模式,求申精

首先機器雀胡旅必須要root掉。便於用R.E
管理器查看系統文件。
打開R.E管理器,先查看有沒有以下幾個art模式的編譯文件
/system/lib/libart.so
/system/lib/libart—compiler
/system/framework/core-libart.jar
這三個文件是編譯art模式的編譯文件必須要有。
關機進入頃凳rec界面
進入刷入Enableart.zip
然後進入advance>wipe dalvik cache
然後重啟
若有問題,或要換回dalvik模式,則刷入Enable dalvik.zip恢復dalvik模式
同樣恢復也做彎要 advance>wipe dalvik cache
樓主發放art的文件補丁包以及轉換模式的刷機包
官方art的已知問題
有部分自帶的軟體會fc。不影響系統,可根據fc的名字刪掉該apk。一般在/system/app裡面或者/system/priv-app裡面。或者用R.E管理器在/system文件裡面搜索。

『伍』 安卓4.4.2 請問ART模式怎麼開啟 在開發人員選項里沒找到

某些安卓4.4手機的開發者選項里是沒有art模式選擇的,但是libart.so保留系統里。

方法一:通過adb命令開啟:

adb shell setprop persist.sys.dalvik.vm.lib libart.so
adb reboot

----------------------------------------------------

方法二:於是我就想到通過手動修改文件去實現:

1.已ROOT。
2.已安裝R.E.管理器
3.R.E.管理器進去/data/property/persist.sys.dalvik.vm.lib,在文本編輯器中打開將libdvm.so修改為libart.so
4.刪除/data/下的dalvik-cache文件夾(可以跳過此步驟)
5.重啟手機即可.

PS:如已安裝xposed框架,要先卸載,否則重啟後會自動還原為libdvm.so。

『陸』 如何開啟手機ART運行環境

安卓系統的ART模式在安卓4.4+後就可以使用了,雖然谷歌沒有大動作的推出ART,但是這個基於安卓底層的改變或許會給安卓帶來全新的戰鬥力,甚至是匹敵IOS。簡單科普一下,安卓系統原先是運行在叫做Dalvik的虛擬機上,而要與這個這個環境溝通就必須在運行程序是進行轉換編譯成Dalvik能夠解析的語言。這樣就加重了資源耗用和程序運行負擔,造成安卓長期被詬病的「卡頓」現象。ART模式就是省去中間的轉換編譯環節,直接實現程序的快速運行,解放系統資源。工具/原料
安卓4.4及以上手機
方法/步驟
1
【第一步】剛剛刷機後的朋友首先要到手機設置中,找到關於手機--版本,不停點擊根據提示就可以開啟【開發者選項】了

2
【第二步】在開發者選項中找到【運行環境】,這裡面就有兩種運行模式一種是默認的Dalvink,另一種就是ART模式。這是只有選擇ART就行。

3
【第三步】選中ART模式後,手機會給出類似於安全聲明之類的提示,然後就會提示重啟,按提示操作後。重啟的時候就會出現手機在自動升級的通知,這個根據你手機中有的軟體需要的時間3-5分鍾不等。

4
【第四步】ART模式雖然使得程序運行流暢多了,但是,也佔用了更多的系統內存,同時在安裝程序的時候時間也相對增多了(ART好像就是在這時候進行預編譯的),這樣開機也會慢了一些。相對而言,這還是在可接受的范圍內。

END
ART個人使用體會
【第一】在了解到ART的詳細後,小編嘗試刷了安卓的4.4.2,並且成功切換到了ART模式,就其優點而言,自我感覺並沒有多麼特別的感覺。但在左右切換界面的時候,流暢感是挺好的。而開啟應用,也是挺速度的。
【第二】就其缺點BUG來說,偶爾會出現返回鍵失靈,還有輸入法自動回復到默認輸入法,目前就這兩個問題,這兩點都是很讓人捉急的BUG。
【總結】個人推薦手機發燒友大膽切換嘗鮮,這個被眾多人看好的ART模式究竟如何,只有自己體驗過才知道,當然,要有手機報銷後重新救機的決心。而對於其他朋友,不建議隨便切換到ART,因為這東西BUG還是挺麻煩的,希望你切換到ART如果失敗了,體驗差了不用罵小編。
END
注意事項
ART模式雖然有很好的優勢,但是官方現在並不保持其穩定性。所以請慎重選擇切換,可能造成手機死機無法開機之類的問題。
覺得我的經驗對你有幫助點贊一個吧謝謝。

『柒』 為什麼有的要編art

有的要編art是因為可以提高啟動和運行速度。
ART是一個AOT編譯器。所謂AOT (Ahead of Time)是指在運行以前就把中間代碼靜態編譯成本地代碼,而JIT (Just inTime)則是在運行時動態編譯。
AOT的主要編譯過程發生於開發用機,因此編譯得慢一點沒關系,可以充分的做各種耗時的優化,JIT在運行時動態編譯,通常不能做太耗時的優化,否則影響啟動和運行速度 更具體一點。

『捌』 Android 的 ART 是什麼東西,有何作用

ART 的機制與 Dalvik 不同。在Dalvik下,應用每次運行的時候,位元組碼都需要通過即時編譯器(just in time ,JIT)轉換為機器碼,這會拖慢應用的運行效率,而在ART 環境中,應用在第一次安裝的時候,位元組碼就會預先編譯成機器碼,使其成為真正的本地應用。這個過程叫做預編譯(AOT,Ahead-Of-Time)。這樣的話,應用的啟動(首次)和執行都會變得更加快速。
ART有什麼優缺點呢?
優點:
1、系統性能的顯著提升。
2、應用啟動更快、運行更快、體驗更流暢、觸感反饋更及時。
3、更長的電池續航能力。
4、支持更低的硬體。
缺點:
1.機器碼佔用的存儲空間更大,位元組碼變為機器碼之後,可能會增加10%-20%(不過在應用包中,可執行的代碼常常只是一部分。比如最新的 Google+ APK 是 28.3 MB,但是代碼只有 6.9 MB。)
2.應用的安裝時間會變長。
tips:現在智能手機大部分都可以讓用戶選擇使用Dalvik還是ART模式。當然默認還是使用Dalvik模式。
用法:設置-輔助功能-開發者選項(開發人員工具)-選擇運行環境(不同的手機設置的步驟可能不一樣)。

『玖』 安卓art模式如何打開切換

安卓art模式如何打開切換

安卓art模式如何打開切換,ART模式相信大家都比較陌生,不過ART模式越來越多的被媒體提及,很多網友對於ART模式是什麼以及有什麼用確認詳細的了解。匯總了ART模式相關知識匯總,您可以全面了解ART模式是什麼以及art模式如何打開切換。

安卓art模式如何打開切換1

Android 4.4系統針對RAM的佔用進行了深度的優化,即使是運行僅有512MB的手機,同樣可以流暢運行Android 4.4系統,這要歸功於其獨特的ART模式。ART模式是Android runtime的簡稱,它免去了傳統Dalvik模式要時時轉換代碼,從而實現高效率、省電、佔用更低的系統,讓手機更加流暢。那我們如何將手機從Dalvik模式切換到ART模式呢,很簡單。

1、打開手機的設置,進入「開發者選項」,找不到「開發者選項」的進入「關於手機」連續點擊版本號幾次就行了;

2、進入「開發者選項」後下拉,找到「選擇運行環境」,可以看到目前使用的是Dalvik模式,點擊彈出兩個選項,我們點擊「使用ART」,這時彈出警告提示重啟,本人此系統未完全漢化警告顯示為英文,若漢化過的會顯示「要重新啟動以將運行模式從libdvm.so改為libart.so嗎」或者相似的提示,我們點擊確定,手機將關機重啟。

3、重啟過程系統會對所有應用程序進行優化,時間由已裝應用數量決定,待優化完畢開機,手機就正式進入ART模式運行了。

4、我們來看看兩模式的區別,首先看看程序儲存空間的佔用,以qq為例,ART模式明顯佔用空間多了近20MB,

5、裝的程序相同,總佔用也由261MB增至472MB,ART模式明顯需要佔用更過的儲存空間

6、另外運行內存佔用有所增加,但實際使用可以感受到流暢度要比Dalvik模式好。

注意事項

ART模式也有一些問題,如應用會佔用略高一些的運行內存、存儲空間,安裝程序時需要比Dalvik模式下要長一些時間來實現預編譯。

部分手機的rom不完美,可能開啟ART模式後會出現喊哪無法啟動,死機等情況,這種情況建議重新刷機並不打開ART模式。

安卓art模式如何打開切換2

一、ART模式是什麼?

ART模式英文全稱為:Android runtime,谷歌Android 4.4系統新增的一種應用運行模式,與傳統的Dalvik模式不同,ART模式可以實現更為流暢的安卓系統體驗,對於大家來說,只要明白ART模式可讓系統體驗更加流暢,不過只有在安卓4.4以上系統中採用此功能。

在4.4系統之前,Android系統在Linux的底層下構築Dalvik一層的虛擬機,通過其可以更好適應多樣的硬體架構,開發者只需要按一套規則進行應用便可,無需因為不同的硬體架構而處理與底層的驅動關系,大大提高開發的效率。

不過提高了開發效鄭州碼率,但因為應用均是運行在Dalvik虛擬機中,因此應用程序每次運行的時候,一部分代碼都需要重新進行編譯,這過程需要消耗一定的時間和降低應用的執行效率,最明顯的便是拖延了應用的啟動時間和降低運行速度。谷歌在安卓跡螞4.4之前的系統中加多一層虛擬機的初衷,不但是為了加快應用的開發效率,更是為了適應Android誕生之初硬體多樣性的問題。

不過最新的Android 4.4,谷歌准備利用新的'模式去代替之前Dalvik虛擬機,那便是ART模式。ART模式便是Android Runtime,其能夠令系統更加高效和省電,執行效率大大提高。

二、ART模式有什麼用?

通過以上詳細的ART模式介紹,相信大家對於ART模式的作用已經有所了解了,ART模式最大的作用就是提升了安卓系統流暢度,相比Dalvik模式中出現的耗電快、佔用內存大、即使是旗艦機用久了也會卡頓嚴重等現象,ART模式中這種問題得到了很好的解決,通過在安裝應用程序時,自動對程序進行代碼預讀取編譯,讓程序直接編譯成機器語言,免去了Dalvik模式要時時轉換代碼,實現高效率、省電、佔用更低的系統內存、手機運行流暢。

之前谷歌宣稱,安卓4.4運行內存僅有512M RAM即可流暢運行,也就是所,一些老款低配機也可以流暢運行Android 4.4系統,從側面也可以看出ART模式對於提升系統流暢度還是非常有幫助的。

三、ART模式其他問題

任務事物都有兩面性, ART模式可以降低手機硬體配置要求,減少RAM內存依賴,不過在安卓4.4系統中,安裝應用的時間比安卓4.4以下版本系統更長,這主要由於應用安裝過程中需要先執行編碼導致,並且安裝應用更占存儲空間 (ROM)。

ART模式更佔ROM存儲空間

根據目前的測試, ART模式安裝應用所佔的ROM空間比Dalvik模式多了接近一倍 ,不過鑒於目前手機ROM存儲空間越來越大,並且支持擴展,這些都不是什麼問題。

另外值得一提的是,ART模式目前還存在一些兼容性問題,絕大多數硬體均可以正常運行運行,但也有部分應用會不兼容,會出現閃退現象。這主要是由於Android 4.4並未大規模普及,後期會逐漸得到普及優化。

ART模式兼容性還有待普及

文至於此,相信大家對於ART模式是什麼已經有一個深度了解了,作為安卓4.4系統的一項模式,用戶可以在安卓4.4系統的手機中自由切換傳統Dalvik模式和ART模式,大大方便用戶使用,概括的是ART模式可以大大提升安卓系統的流暢性。

『拾』 安卓art和dalvik的區別

Dalvik是Google公司自己設計用於Android平台的Java虛擬機。Dalvik虛擬機是Google等廠商合作開發的Android移動設備平台的核心組成部分之一。它可以支持已轉換為 .dex(即Dalvik Executable)格式的Java應用程序的運行,.dex格式是專為Dalvik設計的一種壓縮格式,適合內存和處理器速度有限的系統。Dalvik 經過優化,允許在有限的內存中同時運行多個虛擬機的實例,並且每一個Dalvik 應用作為一個獨立的Linux 進程執行。獨立的進程可以防止在虛擬機崩潰的時候所有程序都被關閉。
Android操作系統已經成熟,Google的Android團隊開始將注意力轉向一些底層組件,其中之一是負責應用程序運行的Dalvik運行時。Google開發者已經花了兩年時間開發更快執行效率更高更省電的替代ART運行時。 ART代表Android Runtime,其處理應用程序執行的方式完全不同於Dalvik,Dalvik是依靠一個Just-In-Time (JIT)編譯器去解釋位元組碼。開發者編譯後的應用代碼需要通過一個解釋器在用戶的設備上運行,這一機制並不高效,但讓應用能更容易在不同硬體和架構上運 行。ART則完全改變了這套做法,在應用安裝時就預編譯位元組碼到機器語言,這一機制叫Ahead-Of-Time (AOT)編譯。在移除解釋代碼這一過程後,應用程序執行將更有效率,啟動更快。

閱讀全文

與art編譯adb相關的資料

熱點內容
安卓怎麼搞jpg 瀏覽:538
如來佛祖命令雷神去下界 瀏覽:854
新電腦管家下載好怎麼解壓 瀏覽:528
php獲取介面數據 瀏覽:763
最後的命令 瀏覽:921
如何添加手機app桌面快捷圖標 瀏覽:427
ui設計師與程序員 瀏覽:417
壽司pdf 瀏覽:828
pythonbg是什麼 瀏覽:248
c數值演算法程序大全 瀏覽:785
android整點報時 瀏覽:221
稀土pdf 瀏覽:536
單片機電子鎖 瀏覽:596
通達信機智資金流指標公式源碼 瀏覽:216
php安裝xsl擴展 瀏覽:842
python如何使用help 瀏覽:367
上汽榮威app在哪裡查詢 瀏覽:903
冰櫃壓縮機溫度108 瀏覽:720
阿里雲郵smtp伺服器地址 瀏覽:253
解壓館認知理解 瀏覽:240