日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Dalvik控制VM详解

發布時間:2024/4/17 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Dalvik控制VM详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.擴展的JNI檢測

? ? ?JNI(Java native Interface)是Java本地接口,提供了Java語言程序調用本地(C/C++)代碼的方法。為了能觸發CheckJNI標志位,第二種特性是dalvik.vm.checkjni,它的值覆蓋了ro.kernel.Android.checkjni的值。如果這個特性沒有被定義,dalvik.vm.checkjni也沒有設置成false,那么-Xcheck:jni標志位就沒有傳入,JNI檢測也就沒有是能。

打開JNI檢測,使用以下命令:

adbshell setprop dalvik.vm.checkjni true

也可以通過系統特性將JNI檢測選項傳遞給虛擬機,dalvik.vm.jniopts的值可以通過-Xjniopts參數,命令如下:

adb shellsetprop dalvik.vm.jniopts forcecopy

2.斷言

設置dalvik.vm.enableassertions特性 ?dalvikm -ea..

命令如下:

adbshell setprop dalvik.vm.enableassertin all


3.字節碼校驗和優化

adbshell setprop dalvik.vm.dexopt-flags v=a o=v

那么Android框架將-Xverfy:all-Xdexopt:verified傳遞給虛擬機,使能校驗并且只優化校驗成功的class。這是最安全的設定,也是默認的。

? ?使能校驗使得dexopt命令明顯花費更多時間,因為校驗過程相對較慢,一旦校驗和優化過的dex文件準備就緒,校驗就不會占用額外的開銷,除非在加載與校驗失敗的class。

adbshell "rm /data/dalvik-cache/*" ?它刪除了暫存的dex文件,記住終止在打開運行時(adb shell stop: adb shell start).

4.Dalvik的運行模式

當前Dalvik VM的實現包括三個獨立的解釋內核:“快速”、“可移植”、“調試”.快速解釋器是為當前平臺優化的,可能包括手動優化的匯編文件;相對的,可移植解釋器用C語言寫的,可以在廣泛的平臺上使用;

? ? ?Dalvik vm允許用戶通過-Xint參數在快速、可移植和JIT中選擇,如為了選擇可移植解釋器,命令如下:

? adb shell setpropdalvik.vm.execution-mode int:portable

5.死鎖預測

? 如果虛擬機以WITH_DEADLOCK_PREDICTION參數編譯,那么死鎖預測器會在-Xdeadlockpredict參數中是能。

6.dump堆棧追蹤

dalvik收到SIGQUIT,會為所有的線程dump所有的堆棧追蹤。默認寫入Android的日志,但是也可以寫入一個文件。

? dalvik.vm.stack-trace-file特性允許你指定將線程堆棧跟蹤寫入文件名,如果不存在,將創建,新的信息將最佳到文件尾

adbshell setprop dalvik.vm.stack-trace-file /tmp/stack-traces.txt

7.dex文件和校驗

為了快速診斷這種失敗,虛擬機提供了-Xchekdexsum參數,如果設置了該參數,在內容被使用之前所有的.dex文件會進行和檢驗。

adbshell setprop dalvk.vm.check-dex-sum true

8.產生標志位

在Honeycomb版本引入了匯編,通過標志位寫入虛擬機。

adb shell setprop dalvik.vm.extra-opts "flag1flag2...flagN"

總結

以上是生活随笔為你收集整理的Dalvik控制VM详解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。