从Python-Django启动Android模拟器

Mar*_*ark 5 python django android web-applications

def start_test(request):
    os.system('echo Starting emulator...')
    os.system('./android-sdk-linux_x86/tools/emulator -avd testavd &')
    return HttpResponse("OK")
Run Code Online (Sandbox Code Playgroud)

这是我想要做的准系统代码.
执行此代码时,服务器在运行模拟器时停止响应.任何帮助赞赏.
我正在使用django开发服务器.这是服务器输出:

Django version 1.1.1, using settings 'Cloust.settings'
Development server is running at http://0.0.0.0:8000/
Quit the server with CONTROL-C.
Starting emulator...
[21/Apr/2011 02:00:06] "GET /start_test/a.apk/ HTTP/1.1" 200 5
emulator: warning: opening audio output failed

emulator: emulator window was out of view and was recentred
Run Code Online (Sandbox Code Playgroud)

Mar*_*ark 0

我还没有抽出时间来正确解决这个问题,但是使用 subprocess.Popen 允许我随后在模拟器上执行命令:

print 'Starting emulator...'
subprocess.Popen(['emulator', '-avd', 'testavd'])
os.system('adb wait-for-device')
os.system('Perform whatever adb commands you need')
Run Code Online (Sandbox Code Playgroud)

值得注意的是,这是使用 django 开发服务器,该服务器是使用 sudo 启动的,所以显然这远非理想。