帝游网提供最新手游APP下载和游戏攻略!

用Python编写Android应用程序

发布时间:2024-10-14浏览:82

老铁们,大家好,相信还有很多朋友对于用Python编写Android应用程序和的相关问题不太懂,没关系,今天就由我来为大家分享分享用Python编写Android应用程序以及的问题,文章篇幅可能偏长,希望可以帮助到大家,下面一起来看看吧!

也许它看起来像这样

那么设计应该是这样的。

如果您认为可行,请留言您认为应该写入本APP的运维常用命令^_^。笔者临时的想法是top、free -m、df h、uptime、iftop、iotop,如果有什么好的就狠狠打击一下这个想法吧。作者也应该把这个写成一个项目放到github上。大家可以一起使用。开源才是正路,哈哈。

开发安卓APP

我们使用kivy来开发Android APP。 Kivy是一套专门用于跨平台快速应用开发的开源框架。它是用Python 和Cython 编写的,对多点触控有很好的支持。它不仅可以让开发者快速完成简洁的交互原型,而且还支持代码复用和部署,绝对是一个令人惊叹的NUI框架。

因为是跨平台的,所以只需要写一次代码就可以同时生成Android和IOS的APP,很酷。

基维安装

环境描述:作者使用的是Python2.7.10

这里只介绍windows平台安装

所有平台参考: https://kivy.org/#download

更新pip、setuptools

python -m pip install --升级pipwheel setuptools

然后安装需要的依赖

python -m pip install docutils pygmentspypiwin32 kivy.deps.sdl2 kivy.deps.glewkivy.deps.gstreamer --extra-index-url https://kivy.org/downloads/packages/simple/

值得注意的是,以上Android需要访问Google,所以请自带梯子,并且kivy.deps.gstreamer包比较大(95MB),可以单独安装在本地,http://pan.baidu.com/s/1o7mlxNk

然后安装kivy即可

python -m pip 安装kivy

至此,安装完成。值得注意的是,64位系统没有启用虚拟化支持。导入kivy的时候会报错。如果是64位系统,设置机器的BIOS并启用虚拟化支持。

注:这只是kivy的运行环境,方便我直接在windows机器上调试。稍后我们会讲如何将代码编译成APK文件。

如果kivy是python中的,应该可以导入。

按照世界惯例,我们说“你好”。

创建一个新的.py 文件

跑步

然后会弹出一个框,大致如下。点击“hello, kivy”,颜色就会改变。

单击窗口并按“F1”访问该窗口的一些属性

然后我们回去看代码。

以上是我们的Hello

当然,在Windows 上运行它没有多大意义。如何在Android手机上运行它是我们想要的。

这时候我们就需要一个编译环境。

官方对环境的描述如下:

你需要:

Linux计算机或虚拟机

爪哇

Python 2.7(不是2.6。)

Jinja2(python 模块)

阿帕奇蚂蚁

安卓软件开发工具包

虽然官方提供的虚拟机镜像看起来还不错,但是还有很多内容需要翻译,所以笔者这里提供了一个相对更完整的镜像。

下载地址:http://pan.baidu.com/s/1geyAY7x

注意:virtualbox,vmware需要自己下载

根密码:kivy

默认账号为kivy,密码:kivy123

当然,你也可以下载官方镜像,因为第一次编译需要从国外下载很多东西,所以请自行下载。

虚拟机

预先安装了Android SDK 和NDK 以及所有其他先决条件的虚拟机,以简化apk 生成:

Kivy 构建器虚拟机

或者选择种子

在作者提供的图片中,桌面上有一个dev_and。把上面写的代码放到这个文件夹里就可以了(当然也可以放在其他目录下,后面会讲到)。

cd 桌面/dev_and/

初始化会在当前目录生成一个buildozer.spec文件,用于配置生成的apk相关信息。

构建器初始化

###修改buildozer.spec文件

vi buildozer.spec

修改以下至少三项

# (str) 应用程序的标题title=helloworld# (str) 包名称package.name=helloapp# (str) 包域名(android/ios 打包时需要)package.domain=youer.com

然后评论

# (str) 应用程序版本控制(方法1)#version.regex=__version__=[''](.*)['']#version.filename=%(source.dir)s/main.py

将以下行更改为非注释版本=1.2.0

最后生成我们需要的apk文件

buildozer -v android 调试

buildozer.spec更详细的参数配置参考:

http://buildozer.readthedocs.org/en/latest/specifications.html

buildozer命令会在当前文件夹中创建一个bin,其中包含我们想要的apk文件。

helloapp-1.2.0-debug.apk

helloapp-1.2.0-debug.apk

安装后看起来像这样:

据说编译时可能空间不足。您可以根据不同的虚拟机(vmware或virtualbox)自行扩展容量。

最后我们看一下用简单版本的Python开发的游戏2048的源代码。

代码:

https://github.com/mvasilkov/kb/tree/master/6_2048

我们先看一下效果图:

我尝试了一下,发现非常顺利。如果您有兴趣,可以下载并玩一下。

下载地址:http://pan.baidu.com/s/1eQZACDW

游戏代码虽然不长,但还是占用了不少篇幅,所以我简单介绍一下流程。

主要由三部分组成,一是资料、图片和音频文件,二是Python代码,三是kv文件。这个kv文件有点像html中的css。

Python代码的文件名一般命名为main.py

那么必须有一个类叫XXXApp并继承App。

比如类名为GameApp,那么该目录下的kv文件一定是Game,如上图所示。否则,kv文件中的某些设置将不会生效。

例如设置一个标签

label: id: 时间text: 'xxxx' font_size: 60

用户评论

红尘烟雨

太酷了!我一直想学习Android开发,用Python写真是个新颖的想法,不知道难度如何?希望作者能分享一些学习资源,可以让我更快上手!

    有13位网友表示赞同!

风中摇曳着长发

这想法太棒了!如果可以用Python直接开发Android应用,那简直美滋滋。相比Java和Kotlin,Python语法更简洁易学,这样就能吸引更多人来参与移动端开发了

    有11位网友表示赞同!

小清晰的声音

虽然我对 Python 很有好感, 但我觉得对于复杂的 Android 应用来说,用 Java 或 Kotlin 开发可能更合适一些。毕竟, 这些语言针对安卓开发进行了深度优化。

    有16位网友表示赞同!

执妄

Python 写安卓App确实听起来让人兴奋!不过我有点担心 app 的性能问题, Python 的执行效率相对较低,会不会影响到用户体验呢?

    有17位网友表示赞同!

可儿

我一直想在移动端开发一些小工具,但 Java 是入门门槛太高了。这下可以使用 Python 了,真是太棒了,终于可以实现我的愿望!

    有20位网友表示赞同!

米兰

我也很想知道用 Python 开发 Android 应用的优势和局限性是什么?有哪些常用的框架或工具可以用呢? 作者能不能详细介绍一下?

    有18位网友表示赞同!

如你所愿

这篇文章让我对 Python 在安卓开发上应用的可能性充满了期待! 如果你能分享一些成功案例,或者推荐一些学习资料,那将非常棒。

    有16位网友表示赞同!

疲倦了

感觉这个想法有点过于理想化了,Python 在移动端开发领域的运用毕竟还比较少见,能否真正替代 Java 和 Kotlin 还需要时间的检验。

    有15位网友表示赞同!

放肆丶小侽人

期待看到更多关于 Python 写安卓 APP 的作品和成果!希望这项技术能够快速成熟发展,为移动端开发带来新的思路和可能性。

    有18位网友表示赞同!

冷月花魂

我倒是觉得用 Python 开发 Android 应用听起来很有趣!毕竟 Python 在数据科学和机器学习领域很受欢迎,如果能将其应用于移动端开发,会开拓出更多创意的应用场景呢?

    有17位网友表示赞同!

心安i

作者写的比较笼统啊!具体怎么做啊? 有代码示例或者详细教程吗? 感觉就像是在忽悠似的 。

    有5位网友表示赞同!

陌颜

希望这个想法能够真正落地,让学习 Android 开发变得更轻松简单。那样能为更多人打开移动端开发的大门,促进软件行业的发展。

    有17位网友表示赞同!

ok绷遮不住我颓废的伤あ

虽然我对Python很熟悉, 但我还是觉得安卓APP开发本身就很复杂,用 Python 代替 Java 和 Kotlin 可能不能完全达到理想的效果

    有9位网友表示赞同!

尘埃落定

这篇文章很有启发意义!让我看到了 Python 在移动应用程序开发领域的潜力。期待这个技术能够得到更广泛的应用和发展。

    有12位网友表示赞同!

あ浅浅の嘚僾

我觉得这种方法虽然看起来很新颖, 但能不能胜任复杂的 Android 应用开发呢? 还是需要更多实践来证明它的可行性

    有10位网友表示赞同!

ヅ她的身影若隐若现

用 Python 写安卓应用确实很酷! 但是这个技术会不会太过于前沿? 目前大部分的开发者都专注于 Java 和 Kotlin 语言,这样的人才库会是一个很大的挑战吗?

    有8位网友表示赞同!

代价是折磨╳

我更喜欢使用传统方式开发 Android app。 python 语法虽然简单,但是能否保证 app 的性能和安全呢?

    有13位网友表示赞同!

焚心劫

文章标题很有吸引力! 但文章内容稍微有点贫乏啊! 希望作者能提供更多具体的案例分析和技术细节,让我更好地了解 Python 写安卓 APP 的方法和局限性

    有7位网友表示赞同!

热点资讯