Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
kivy python for android,从安装到运行android应用程序教程_Android_Python_Kivy - Fatal编程技术网

kivy python for android,从安装到运行android应用程序教程

kivy python for android,从安装到运行android应用程序教程,android,python,kivy,Android,Python,Kivy,我正在尝试将Kivy Python用于android,之前没有android开发经验。 我安装了pyjnius,安装了所有sdk、ndk和必要的文件。 我的问题是我找不到任何教程,我花了很多时间试图找到一个教程,从安装所有东西到在android设备上创建一个可以工作的应用程序,每一步都贯穿其中 以下面的文语转换示例为例 我不知道这一切是如何结合在一起的,从我在谷歌搜索答案和教程的过程中所看到的情况来看,我并不孤单。我现在还不知道有任何类似的大规模教程。(编辑:我所知道的最接近的事情是,这是一组关

我正在尝试将Kivy Python用于android,之前没有android开发经验。 我安装了pyjnius,安装了所有sdk、ndk和必要的文件。 我的问题是我找不到任何教程,我花了很多时间试图找到一个教程,从安装所有东西到在android设备上创建一个可以工作的应用程序,每一步都贯穿其中

以下面的文语转换示例为例


我不知道这一切是如何结合在一起的,从我在谷歌搜索答案和教程的过程中所看到的情况来看,我并不孤单。

我现在还不知道有任何类似的大规模教程。(编辑:我所知道的最接近的事情是,这是一组关于如何构建kivy应用程序的10篇文章,最终部署到android上)

然而,我想真正的问题是你想做什么?例如,对于许多类型的应用程序,您根本不需要了解pyjnius。只有当您想与android api进行某些特定的交互时,才需要这样做。android api尚未打包在python for android提供的python模块中。如果你只想(例如)使用加速度计或振动手机,pyjnius的细节对你来说并不重要

从安装所有东西到在安卓设备上创建一个工作应用程序,每一步都在进行

我不能在这里代替深入的教程,但我可以尝试澄清一些过程。原则上,你真的只需要了解kivy本身就可以创建一个android应用程序——这是一个图形框架,一个纯kivy应用程序在不同的平台上或多或少会运行相同

如果你想制作一个android apk,python for android会为你处理所有的编译(并在后台使用pyjnius与java api接口),但是你不需要知道后台细节就能让你的应用正常工作。pythonforandroid还提供了一个Python模块,让您可以访问一些android api,其中一些api是有文档记录的。事实上,在我看来,这个医生现在不是很好——甚至比我记忆中的还要糟糕——但它正在改变和改进。android版Python的开发相当活跃

使用python for android(或该工具,它是一个更友好的前端)制作apk不需要任何特殊知识,配置都只是一些东西,比如你的应用程序名以及编译哪些python模块。编辑:如果您还没有看到,那么关于构建apk的kivy文档是。这不是一个非常深入的教程,但过程应该不是很复杂

如果您想访问尚未用python包装的android api的某些部分,则需要查看pyjnius。实际上,这是一个联合过程,您还需要查看(有良好文档记录的)android api
autoclass
自动将java类包装在python包装器中,然后该示例所做的所有其他操作都以这种方式调用android api—例如,
tts.speak
正在调用android api类的。本例中的所有其他内容都在做同样的事情,尽管
PythonActivity
是一个针对android的python类,它记录在其中,而不是android文档中

那么,为了完成最初的问题,你想做什么?如果你想制作一个没有任何特定平台的图形应用程序,只要看看kivy,你不需要了解pyjnius等等。如果您考虑了一些特定的android功能,那么现有的文档不是很详细,这是对的,但我希望很清楚,这可能不是很难做到——就像您的示例一样,它只是从python中调用了经过良好记录的java类和方法


我还强烈建议您购买kivy和/或。我完全同意kivy(或者更具体地说是它的相关项目,比如android版python和pyjnius)可能缺少文档或教程,但kivy确实有一个非常有用的社区。如果你对你的目标有任何疑问或疑问,那里的人都会很乐意讨论。

我想那一刻你能在Kivy页面上找到的唯一信息是——但是没有教程告诉你如何一步一步地做到这一点。我仍然没有尝试使用VirtualBox image(来自Kivy页面)运行linux发行版,并使用工具为android创建
apk
。感谢您的详细回复,我想制作一个需要在android手机上访问gps的应用程序。最让人困惑的部分是如何访问android api,如何在avd上测试代码,例如在kivy应用程序中有android特定代码的avd。我知道我缺乏安卓系统的经验可能会让这变得更加困难,但我仍然认为,一段关于编码、测试并最终将应用程序部署到安卓设备上的简短视频会真正帮助很多像我这样的人。嗯……视频教程,我从来没有真正对它们感兴趣,但也许(也许)我可以试一试。这是不是像写一个简短的应用程序并解释整个过程,或者拿一个应用程序并输入所有android构建命令并进行解释?是的,如果你可以制作一个视频,使用kivy创建一个包含android特定代码的简单应用程序,展示所有这些是如何联系在一起的,包括如何测试代码并使其在android设备上运行。我看过所有与kivy相关的视频,包括下面qua-non推荐的视频,并阅读了大量文档等。。但是我认为从新手程序员的角度来看,所有教程和相关文章都是针对有经验的程序员的
from jnius import autoclass
Locale = autoclass('java.util.Locale')
PythonActivity = autoclass('org.renpy.android.PythonActivity')
TextToSpeech = autoclass('android.speech.tts.TextToSpeech')

tts = TextToSpeech(PythonActivity.mActivity, None)
# Queue something in french
tts.setLanguage(Locale.FRANCE)
tts.speak('Bonjour tout le monde.', TextToSpeech.QUEUE_ADD, None)