java vm art 2.1.0_ART Runtime 创建(二)--启动参数

Android 7.0 aosp_shamu-userdebug

一. 启动时获取的参数

AndroidRuntime::startVm(/framework/bae/cpre/jni/AndroidRuntime.cpp)方法会首先获取大量系统属性,并将这些系统属性转化为实际的启动参数,下面是获取的系统属性以及对应的启动参数:

dalvik.vm.checkjni(ro.kernel.android.checkjni)

真实值:无

默认为false, 如果为true, 则添加参数-Xcheck:jni

dalvik.vm.execution-mode

真实值:无

默认为KEMDefault, 有四个取值:KEMDefault, kEMIntPortable, kEMIntFast, kEMJitCompiler. 如果不是kEMDefault,则相应的参数为:-Xint:portable, -Xint:fast, -Xint:jit

dalvik.vm.stack-trace-file

真实值:/data/anr/traces.txt

参数的形式为:-Xstacktracefile:/data/anr/traces.txt

dalvik.vm.jniopts

真实值:没有设置

如果有设置的话,参数形式为:Xjnipots:...

{exit, runtime_exit}

Hook Runtime的exit()为runtime_exit(int code)函数

{vfprintf, runtime_vfprintf}

Hook Runtime的fprintf()为runtime_vfprintf(FILE* fp, const char* format, va_list ap)函数

{sensitiveThread, runtime_isSensitiveThread()}

Hook Runtime的sensitiveThread()为runtime_isSensitiveThread()函数

直接添加参数-verbose:gc

dalvik.vm.heapstartsize

真实值:8m

参数的形式为:-Xms8m

dalvik.vm.heapsize

真实值:512m

参数的形式为:-Xmx512m

dalvik.vm.heapgrowthlimit

真实值:256m

参数形式为:-XX:HeapGrowthLimit=256m

dalvik.vm.heapminfree

真实值:512k,

参数形式为:-XX:HeapMinFree=512k

dalvik.vm.heapmaxfree

真实值:8m

参数形式为:-XX:HeapMaxFree=8m

dalvik.vm.heaputilization

真实值:0.75

参数形式为:-XX:HeapTargetUtilization=0.75

dalvik.vm.usejit

真实值:true

参数形式为:-Xusejit:true

dalvik.vm.jitmaxsize

真实值是:无

如果设置则参数形式为:-Xjitmaxsize:${dalvik.vm.jitmaxsize}

dalvik.vm.jitinitialize

真实值:无,

如果设置参数形式为:-Xjitinitialize:${dalvik.vm.jitinitialize}

dalvik.vm.jitthreshold

真实值:无

如果设置参数形式为:-Xjitthreshold:..

dalvik.vm.usejitprofiles

真实值:true,

参数形式为:-Xjitsaveprofilinginfo

dalvik.vm.jitprithreadweight

真实值:无

如果设置,参数的形式为:-Xjitprithreadweight

dalvik.vm.jittransitionweight

真实值:无

如果设置,参数的形式为:-Xjittransitionweight:${dalvik.vm.jittransitionweight}

ro.config.low_ram

真实值:无

如果设置,参数形式为:-XXLowMemoryMode

dalvik.vm.gctype

真实值:无

如果设置,参数形式为:-Xgc:${dalvik.vm.gctype}

dalvik.vm.backgroundgctype

真实值:无

如果设置,参数形式为:-XX:BackgroundGC=${dalvik.vm.backgroundgctype}

直接添加参数-agentlib:jdwp=transport=dt_android_adb,suspend=n,server=y

dalvik.vm.lockprof.threshold

真实值:500

参数形式为:-Xlockprofthreshold:500

vold.decrypt

trigger_restart_framework

因为不等于trigfer_restart_min_framework和1,所以还要获取属性dalvik.vm.image-dex2oat-filter, 系统中并未设置该值,如果设置了,参数的形式为:--compiler-filter=${dalvik.vm.image-dex2oat-filter}, -Ximage-compiler-option

直接添加参数Ximage-compiler-option

直接添加参数--compiled-classes=/system/etc/preloaded-classes

如果文件/system/etc/compiled-classes存在(实际存在),则添加参数:-Ximage-compiler-option, --compiled-classes=/system/etc/compiled-classes

dalvik.vm.imgae-dex2oat-flags

真实值:无

如果设置,参数形式为:-Ximage-compile-option, ${image-dex2oat-flags}

dalvik.vm.dex2oat-Xms

真实值:64m

参数形式为:-Xcompiler-option, --runtime-arg, -Xcompiler-option, -Xms64m

dalvik.vm.dex2oat-Xmx

真实值:512m

参数形式为:-Xcompiler-option, --runtime-arg, -Xcompiler-option, -Xms512m

dalvik.vm.dex2oat-filter

真实值:无

如果设置了,参数的形式为:-Xcompiler-option, --runtime-arg, -Xcompiler-option, --compiler-filter=${dalvik.vm.dex2oat-filter}

dalvik.vm.dex2oat-threads

真实值:无

如果设置了,参数形式为:-Xcompiler-option, --runtime-arg, -Xcompiler-option, -j${dalvik.vm.dex2oat-threads}

dalvik.vm.image-dex2oat-threads

真实值:无

如果设置了,参数形式为:-Ximage-compiler-option, --runtime-arg, -Ximage-compiler-option, -j${dalvik.vm.image-dex2oat-threads}

dalvik.vm.isa.arm.variant

真实值:krait

参数最终形式为:-Ximage-compiler-o

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值