繁体   English   中英

如何使用android模拟器(使用Ubuntu 12.04 + kivy)测试python应用程序?

[英]How can I test my python apps using the android emulator (using Ubuntu 12.04 + kivy)?

我设法在ubuntu 12.04 64位上构建了kivy提供的两个示例,并使用以下命令在python-for-android网站上基本上按照以下说明在Nexus 4设备上运行了这些示例:

./build.py --package org.test.touchtracer --name touchtracer --version 1.0 --dir /home/bernhard/Development/kivy/examples/demo/touchtracer debug

为了进行进一步的开发和必要的调试,我想在Android模拟器上测试我编译的python程序,因为将应用程序复制到设备上比较麻烦,并且转移时间也很长,我想(请纠正我,如果您认为这是不正确的-我还没有经验)。

因此,我使用在模拟Nexus 4设备上运行Android 4.4.2的Android SDK Manager [19.0.2]创建了一个AVD。 当我启动仿真器时,会出现一个新窗口,以闪亮的字体显示“ android”,但没有其他反应,看起来像是冻结的(仿真)设备(即我无法与仿真器进行交互)。 AVD Manager将位于我的〜/ .android / avd中的该AVD列为“有效的Android虚拟设备”。 我已经尝试过将Intel Atom(x86)和ARM armeabiv7a用作CPU,但没有尝试。 由于找不到关于如何在模拟器上复制和测试python应用程序的良好说明,因此我尝试了以下操作,将天真的调试选项从上面更改为installd

./build.py --package org.test.touchtracer --name touchtracer --version 1.0 --dir /home/bernhard/Development/kivy/examples/demo/touchtracer installd

但大多数情况下,我得到以下信息:

install:
    [echo] Installing /home/bernhard/Development/python-for-android/dist/default/bin/touchtracer-1.0-debug.apk onto default emulator or device...
    [exec] error: device not found
    [exec] - waiting for device -
    [exec] rm failed for /data/local/tmp/touchtracer-1.0-debug.apk, No such file or directory

BUILD FAILED
    /home/bernhard/Development/android-sdk-linux/tools/ant/build.xml:1364: The following error occurred while executing this line:
    /home/bernhard/Development/android-sdk-linux/tools/ant/build.xml:1378: exec returned: 1

Total time: 51 seconds
Traceback (most recent call last):
  File "./build.py", line 412, in <module>
    make_package(args)

 File "./build.py", line 336, in make_package
   subprocess.check_call([ANT, arg])
 File "/usr/lib/python2.7/subprocess.py", line 511, in check_call
   raise CalledProcessError(retcode, cmd)
 subprocess.CalledProcessError: Command '['ant', 'installd']' returned non-zero exit status 1

这是令人困惑的,因为仿真器正在运行。 一旦我得到了更多有希望的东西,那仍然没有改变模拟器的输出:

install:
     [echo] Installing /home/bernhard/Development/python-for-android/dist/default/bin/touchtracer-1.0-debug.apk onto default emulator or device...
     [exec] 979 KB/s (6559511 bytes in 6.542s)
     [exec] WARNING: linker: libdvm.so has text relocations. This is wasting memory and is a security risk. Please fix.
     [exec] Error: Could not access the Package Manager.  Is the system running?

installd:

BUILD SUCCESSFUL

要么:

install:
     [echo] Installing /home/bernhard/Development/python-for-android/dist/default/bin/touchtracer-1.0-debug.apk onto default emulator or device...
     [exec] 988 KB/s (6559511 bytes in 6.482s)
     [exec] WARNING: linker: libdvm.so has text relocations. This is wasting memory and is a security risk. Please fix.
     [exec]     pkg: /data/local/tmp/touchtracer-1.0-debug.apk
     [exec] - waiting for device -
     [exec] rm failed for /data/local/tmp/touchtracer-1.0-debug.apk, No such file or directory

对于不同的输出太不精确,我感到抱歉,我自己也不了解造成差异的原因。 我认为这可能与实际设备在一次试用之前就已连接,或者我已经删除了python-for-android / dist / default / bin文件夹中的所有touchtracer *文件有关。 所以,最后我的问题是:

1)我可以正确使用build命令在模拟器上安装编译后的代码吗?

2)为什么模拟器仅显示闪亮的“ android”字母而无法交互?

3)您知道如何在Ubuntu上使用Android模拟器的良好链接/教程吗?

提前谢谢了! 最好的问候,伯恩哈德

我不清楚您的实际问题是什么。

您是说没有模拟器,您的apk 确实可以正常运行吗? 我问,因为仿真器的存在并不能真正改变任何东西。 您可以通过以下方法进行测试:停止模拟器,使用build命令,然后将apk手动复制到您的设备。

(看起来您的构建有时确实成功完成。即使它无法复制到设备,它也会位于bin目录中。)

您可以通过多种方式将apk上传到手机(甚至只是通过电子邮件发送),但是最简单的方法是使用android sdk中的adb工具-将手机插入计算机,打开其开发者模式,然后运行adb install /path/to/apk 这只需几秒钟。

因为将应用程序复制到设备上比较麻烦,而且转移时间也很长,所以我认为(如果您认为这不是真的,请更正我

我的上一段也谈到了这一点。 使用adb进行安装非常简单容易,在为android开发时,我一直都会这样做。 实际上,使用仿真器可能具有竞争优势,因为两种方式最终都键入相同的命令并传输到设备(真实或仿真)。

我还建议使用buildozer工具,该工具是android构建过程的一个很好的包装,具有更方便的界面。 它还能够自行下载适当的android依赖项,并与adb接口。

听起来您的Android模拟器无法正常运行。 新AVD的首次运行或运行速度非常慢,尤其是在旧计算机上。 如果您的CPU速度很慢,则可能需要10-20分钟才能到达Android桌面。

您需要确保的一件事是,您的AVD在其选项中选择了“使用主机GPU”。 如果没有该选项,Kivy将无法在Android模拟器上运行。 但是,对我来说,这听起来像是您永远无法完全实现AVD引导。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM