1
在運行應用程序時,.dex文件有什麼變化? 爲了測試這個,我從「data/dalvic-cache」中刪除了一個.dex文件[whatsapp],然後運行該應用程序。它完美地工作。 據我所知,.dex文件是在應用程序安裝時創建的。 我的問題是爲什麼我們需要一個.dex文件以及ART如何使用它?Android運行時間(ART)的工作? .dex文件發生了什麼變化?
在運行應用程序時,.dex文件有什麼變化? 爲了測試這個,我從「data/dalvic-cache」中刪除了一個.dex文件[whatsapp],然後運行該應用程序。它完美地工作。 據我所知,.dex文件是在應用程序安裝時創建的。 我的問題是爲什麼我們需要一個.dex文件以及ART如何使用它?Android運行時間(ART)的工作? .dex文件發生了什麼變化?
是的。 。我的結論是.dex文件不會在我們啓動應用程序時創建。通過我的實驗,我認爲在dalvic-cache應用程序中沒有.dex文件可以工作(但速度很慢),而當我們重新啓動系統時,android會優化應用程序並重新創建.dex文件。另一件事是現在沒有Dalvic虛擬機,在Android vr。 5.0或更高版本只有ART(取代Dalvic虛擬機)。
只是一個猜測,你從_cache_中刪除了一個文件,所以它被重新創建了......? – lelloman
如果你對java非常瞭解,那麼你有JVM的想法,就像Android有DVM dalvik虛擬機一樣,它將存儲在這個.dex文件中的特殊字節碼中的代碼轉換爲dalvik executablew文件,所以無論何時你首先運行應用程序相同的Java應用程序,應用程序將編譯並生成可執行文件,然後它將運行。 – Vickyexpert
@lelloman no。這是問題..它不會重新創建。該應用程序仍在工作。但現在我覺得它有點慢。我在氰模式。 lolipop 5.1 –