谷歌致力於推進種族平等的黑人社區。 怎麼看。
本頁面由 Cloud Translation API 翻譯而成。
Switch to English

Android的運行時(ART)和Dalvik的

Android的運行時(ART)是由應用程序和Android上的一些系統服務所使用的管理運行。 ART及其前身的Dalvik最初的Android項目創建的。 ART作為運行時執行Dalvik可執行格式和地塞米松字節碼的規範。

ART和Dalvik的是運行敏捷字節碼,所以應用與藝術中運行時的Dalvik開發工作應該兼容運行時。然而,一些技術,對Dalvik的工作不上的藝術作品。有關的最重要問題的信息,請參閱在Android上運行時(ART)驗證應用程序的行為

藝術特點

下面是一些由ART實現的主要功能。

名列前茅的時間(AOT)編譯

ART推出名列前茅的時間(AOT)編譯,從而提高應用程序的性能。 ART還具有比Dalvik的更嚴格的安裝時間驗證。

在安裝時,使用該設備上dex2oat工具ART編譯應用程序。此實用工具接受DEX文件作為輸入,並且生成用於目標設備已編譯的應用程序的可執行文件。該實用程序應該能夠編譯所有有效DEX文件沒有困難。然而,一些後期處理工具產生可由Dalvik的容忍,但不能被ART編譯無效文件。欲了解更多信息,請參閱解決垃圾收集問題

改進垃圾收集

垃圾回收(GC)可以削弱應用程序的性能,從而在波濤洶湧的顯示,用戶界面的響應性差,和其他問題。 ART改善在幾個方面的垃圾收集:

  • 一個GC暫停,而不是兩個
  • 其餘的GC暫停期間並行處理
  • 收藏家與更低的總GC時間清理最近分配的,短命的對象的特殊情況
  • 改進垃圾收集的人體工程學設計,使得並發垃圾收集更及時,這使得GC_FOR_ALLOC事件的典型應用案例極為罕見
  • 壓實GC以減少背景內存使用量和碎片

開發和調試改進

ART提供了許多功能,以提高應用程序開發和調試。

採樣分析器支持

在歷史上,開發者已經使用的Traceview工具(設計用於跟踪應用程序執行),為分析器。雖然Traceview給出有用的信息,其對Dalvik的結果已經由每個方法調用的開銷是扭曲的,並使用該工具的顯著影響運行時性能。

ART增加了對不具有這些限制專門的採樣分析器支持。這給沒有顯著放緩一個應用程序執行的更準確的視圖。採樣支持加入Traceview為Dalvik的在奇巧的釋放。

更多的調試功能的支持

ART支持許多新的調試方案,特別在監控儀和垃圾收集相關的功能。例如,您可以:

  • 請參閱堆棧跟踪持有什麼樣的鎖,然後跳轉到該持有鎖的線程。
  • 問他有多少真實的實例有一個給定類的,要求看實例,看看引用保持一個對象現場。
  • 過濾事件(如斷點)為特定的實例。
  • 看到當其離開(用“方法退出”事件)的方法返回的值。
  • 當訪問一個特定的字段和/或經修飾的組場觀察點到暫停程序的執行。

改進的診斷詳細的異常和崩潰報告

當運行時異常發生的技術為您提供更多背景和詳細越好。 ART提供擴展的異常詳細信息java.lang.ClassCastExceptionjava.lang.ClassNotFoundException ,並java.lang.NullPointerException 。 (Dalvik的更高版本只要擴大異常詳細信息為java.lang.ArrayIndexOutOfBoundsExceptionjava.lang.ArrayStoreException外的邊界偏移和ART這是否為好。,現在包括所述陣列的大小和)

例如, java.lang.NullPointerException現在顯示哪些應用程序正在試圖用空指針做的信息,如該領域的應用正試圖寫,或者方法,它試圖打電話。下面是一些典型的例子:

java.lang.NullPointerException: Attempt to write to field 'int
android.accessibilityservice.AccessibilityServiceInfo.flags' on a null object
reference
java.lang.NullPointerException: Attempt to invoke virtual method
'java.lang.String java.lang.Object.toString()' on a null object reference

ART還提供了原生的應用程序崩潰報告改進的上下文信息,通過包括Java和本地堆棧信息。

報告問題

如果碰上的是不是由於應用JNI問題的任何問題,請通過報告這些Android開源項目問題跟踪系統 。包括adb bugreport ,並鏈接在谷歌Play商店如果可用的應用程序。否則,如果有可能,請將再現問題的APK。