加速(使用HAXM)android mac模拟器冻结

Ser*_*rov 5 macos android android-emulator haxm

情况:我在Mac OS X上有android x86加速模拟器.它正常启动(并显示HAX is working and emulator runs in fast virt mode行),我可以运行程序.程序启动后,模拟器会工作一段时间并冻结,所以我无法与之交互.

示例:如果我调用adb shell ls -l /sdcard/(或许多其他adb命令)控制台中没有打印任何内容,我必须按control + C才能返回控件.

模拟器重启问题消失后,再次发生.

适用于非加速仿真器.仅在启用HAXM时才能正常工作.

我试过了

  • 重新安装android SDK
  • 创建具有不同属性的模拟器
  • 在另一台mac机器上运行
  • 重启模拟器/计算机
  • 启用64位内核和扩展(已禁用)

我需要让模拟器一直工作(不仅仅是前N分钟).

这不是这个问题的重复,因为:

  1. Mac OS X版本低于10.9,我不能使用Intel提供的修补程序
  2. 这里没有发现崩溃
  3. 计算机不会冻结(但模拟器停止工作)
  4. 模拟器工作一段时间后(最长30分钟)发生冻结

可能与这个问题有关,但是

  1. 不能分析它是同一个问题
  2. 那里没有有用的答案

系统信息:

型号标识符:iMac10,1

内存:8 GB

系统版本:Mac OS X 10.6.8(10K549)

内核版本:达尔文10.8.0

HAXM版本1.0.6

它符合英特尔的要求

支持的操作系统:

Mac OS X*10.6 Snow Leopard和10.7 Lion(32/64位)

进行设置我遵循developer.android的说明.我在HAXM安装期间分配了2048 Mb并创建了具有512 Mb RAM的仿真器.

dmesg在此期间有一些消息.历史:

1)模拟器启动后(工作正常)

Kext com.intel.kext.intelhaxm not found for unload request.
13

  possible map ffffffffffffffff cpu_online_map 3
haxm_error: fc_msr haxm_error: fc_msr 5
5
haxm_error: vt_enablhaxm_error: vt_enable e 1
haxm_error: nx_enable 1
haxm_error: nx_enable 2048
2048
haxm_error: ---- HAXM release 1.0.6 --------
haxm_error: This log collects runnging status of HAXM driver.

haxm_error: set memlimit 0x80000000
Run Code Online (Sandbox Code Playgroud)

2)经过一段时间后(它仍然有效!)

23

 possible map ffffffffffffffff cpu_online_map 3
haxm_error: fc_msr h5
axm_error: fc_msr h5
ahaxm_error: vt_enable xm_error: vt_enable 1
1
haxm_error: nx_haxm_error: nx_enable ena2048
ble 2048
haxm_error: ---- HAXM release 1.0.6 --------
haxm_error: This log collects runnging status of HAXM driver.

.......hax_vm_create_ui 0
cvcpu 0x1d803000 vmid 0 vcpu_id 0
minor id 1000before the crate node
setup hax tunnel request for already setup one
haxm_error: hax_vm_alloc_ram: size 0x20000000
haxm_error: !VM_STATE_FLAGS_MEM_ALLOC
haxm_error: Memory allocation, va:123787000, size:20000000
haxm_error: !VM_STATE_FLAGS_MEM_ALLOC: spare_ram 0x5800000
haxm_error: hax_vm_alloc_ram: size 0x20000
haxm_error: spare alloc: mem_limit 0x0, size 0x20000, spare_ram 0x5800000
haxm_error: VM_STATE_FLAGS_MEM_ALLOC: spare_ram 0x5800000
haxm_error: hax_vm_alloc_ram: size 0x20000
haxm_error: spare alloc: mem_limit 0x0, size 0x20000, spare_ram 0x5800000
haxm_error: VM_STATE_FLAGS_MEM_ALLOC: spare_ram 0x5800000
haxm_error: 
...........hax_teardown_vm
.......hax_vm_create_ui 0
cvcpu 0x1d585800 vmid 0 vcpu_id 0
minor id 1000before the crate node
setup hax tunnel request for already setup one
haxm_error: hax_vm_alloc_ram: size 0x20000000
haxm_error: !VM_STATE_FLAGS_MEM_ALLOC
haxm_error: Memory allocation, va:123637000, size:20000000
haxm_error: !VM_STATE_FLAGS_MEM_ALLOC: spare_ram 0x5800000
haxm_error: hax_vm_alloc_ram: size 0x20000
haxm_error: spare alloc: mem_limit 0x0, size 0x20000, spare_ram 0x5800000
haxm_error: VM_STATE_FLAGS_MEM_ALLOC: spare_ram 0x5800000
haxm_error: hax_vm_alloc_ram: size 0x20000
haxm_error: spare alloc: mem_limit 0x0, size 0x20000, spare_ram 0x5800000
haxm_error: VM_STATE_FLAGS_MEM_ALLOC: spare_ram 0x5800000
haxm_error: 
...........hax_teardown_vm
.......hax_vm_create_ui 0
cvcpu 0x1d7a8800 vmid 0 vcpu_id 0
minor id 1000before the crate node
setup hax tunnel request for already setup one
haxm_error: hax_vm_alloc_ram: size 0x20000000
haxm_error: !VM_STATE_FLAGS_MEM_ALLOC
haxm_error: Memory allocation, va:123637000, size:20000000
haxm_error: !VM_STATE_FLAGS_MEM_ALLOC: spare_ram 0x5800000
haxm_error: hax_vm_alloc_ram: size 0x20000
haxm_error: spare alloc: mem_limit 0x0, size 0x20000, spare_ram 0x5800000
haxm_error: VM_STATE_FLAGS_MEM_ALLOC: spare_ram 0x5800000
haxm_error: hax_vm_alloc_ram: size 0x20000
haxm_error: spare alloc: mem_limit 0x0, size 0x20000, spare_ram 0x5800000
haxm_error: VM_STATE_FLAGS_MEM_ALLOC: spare_ram 0x5800000
Run Code Online (Sandbox Code Playgroud)

3)模拟器挂起后

.......hax_vm_create_ui 0
cvcpu 0xf5e5000 vmid 0 vcpu_id 0
minor id 1000before the crate node
setup hax tunnel request for already setup one
haxm_error: hax_vm_alloc_ram: size 0x20000000
haxm_error: !VM_STATE_FLAGS_MEM_ALLOC
haxm_error: Memory allocation, va:123641000, size:20000000
haxm_error: !VM_STATE_FLAGS_MEM_ALLOC: spare_ram 0x5800000
haxm_error: hax_vm_alloc_ram: size 0x20000
haxm_error: spare alloc: mem_limit 0x0, size 0x20000, spare_ram 0x5800000
haxm_error: VM_STATE_FLAGS_MEM_ALLOC: spare_ram 0x5800000
haxm_error: hax_vm_alloc_ram: size 0x20000
haxm_error: spare alloc: mem_limit 0x0, size 0x20000, spare_ram 0x5800000
haxm_error: VM_STATE_FLAGS_MEM_ALLOC: spare_ram 0x5800000
Run Code Online (Sandbox Code Playgroud)

请原谅我所有这些类似的日志,但我希望他们可以帮助诊断.我没有发现其他输出面临冻结.

我在这里做错了吗?我可以以某种方式修复/解决这些冻结?

PS

$ top 
PID    COMMAND      %CPU TIME     #TH  #WQ  #POR #MREG RPRVT  RSHRD  RSIZE  VPRVT  VSIZE  PGRP  PPID  STATE    UID  FAULTS    COW     MSGSENT    MSGRECV    SYSBSD     SYSMACH   CSW        PAGEINS
35308  emulator64-x 99.9 93:35.44 2/1  1    67   114   13M    18M-   179M   297M   3459M  35303 35303 running  503  180922    477     134488     1390       604431027+ 1732      83769+     7
Run Code Online (Sandbox Code Playgroud)

G3M*_*G3M 0

请确保您在安装期间为模拟器分配的内存始终大于您在创建模拟器实例时指定的内存。