我们知道了Python可以开发桌面应用(PyQt、wxPython等),可以开发服务端(twisted等),可以开发web端(Django、Flask等),开发爬虫(pyspider等),开发硬件stm32(PyBoard等),是一个全栈开发语言。那么他能否挑战一下安卓呢?
我们可以使用 kivy 开发安卓 APP,Kivy 是一套专门用于跨平台快速应用开发的开源框架,使用 Python 和 Cython 编写,对于多点触控有着非常良好的支持,不仅能让开发者快速完成简洁的交互原型设计,还支持代码重用和部署,绝对是一款颇让人惊艳的NUI框架。

因为跨平台的,所以只写一遍代码,就可以同时生成安卓及 IOS 的 APP,很酷吧。

1.kivy安装

环境说明:笔者在用的是 Python2.7.10

这里仅介绍 Windows 平台安装

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

更新 pip,setuptools

python -m pip install --upgrade pip wheel setuptools

然后是安装所需要的依赖

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

值得注意的是,上面的安卓需要访问 Google,所以请自备梯子,而且 kivy.deps.gstreamer这个包比较大(95MB),可以单独本地安装

然后就是安装kivy了

python -m pip install kivy

至此,安装就已经完毕了,值得注意的是64位系统没有开启虚拟化支持,在导入 kivy 的时候会报错,如果是 64 位系统就设置一下机器的 BIOS,开启虚拟化支持吧。

注:这里只是 kivy 的运行环境,这样我就能直接在 Windows 机器上直接调试了,怎么将代码编译成 APK 文件我们会在后面讲到。

2.测试Hello World

新建一个.py文件

from kivy.app import Appfrom kivy.uix.button importButton
class TestApp(App):def build(self):return Button(text='Hello World')
TestApp().run()

运行如下
弹窗如下

3.实战

1.环境

官方说明的环境,如下:

You’ll need:

A linux computer or a virtual machine
Java
Python 2.7 (not 2.6.)
Jinja2 (python module)
Apache ant
Android SDK

虽然官方提供了一个似乎还不错的虚拟机镜像,但是还是有很多内容需要F出去,所以笔者在这里提供相对而言更加完善的镜像。

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

注:virtualbox,vmware 需自行下载。

root密码:kivy

默认使用账户kivy,密码:kivy123

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

2.Virtual Machine

A Virtual Machine with Android SDK and NDK and all otherpre-requisites pre installed to ease apk generation:

Kivy Buildozer VM
Or select the Torrent

在笔者提供的镜像里,桌面上有一个dev_and,只要将上面写的代码,放入这个文件夹即可(当然也可以在其他目录,后面会讲到)。

cd Desktop/dev_and/

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

buildozer init

###修改buildozer.spec文件

vi buildozer.spec

至少修改下面三项

# (str) Title of your applicationtitle = helloworld
# (str) Package namepackage.name = helloapp
# (str) Package domain (needed for android/ios packaging)package.domain = youer.com

然后注释

# (str) Application versioning (method 1)#version.regex = __version__ = ['"](.*)['"]#version.filename = %(source.dir)s/main.py

下面这行改为非注释

version = 1.2.0

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

buildozer -v android debug

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

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

buildozer命令会在当前文件夹创建一个bin,该文件夹里面有我们想要的apk文件

helloapp-1.2.0-debug.apk

安装以后是这样:

使用kivy开发的安卓小游戏
https://github.com/mvasilkov/kb/tree/master/6_2048

原文链接:https://mp.weixin.qq.com/s/NTxNPZRci_b7zhZgU2MrGw

用Python写安卓APP,你怕不怕相关推荐

  1. python写安卓app控制蓝牙_Python脚本利用adb进行手机控制的方法

    一. adb 相关命令: 1. 关闭adb服务:adb kill-server 2. 启动adb服务 adb start-server 3. 查询当前运行的所有设备 adb devices 4. 可能 ...

  2. python写安卓app控制蓝牙_基于python实现蓝牙通信代码实例

    这篇文章主要介绍了基于python实现蓝牙通信代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 安装和示例 linux下安装 sudo apt ...

  3. python安卓app炒股软件下载_python写安卓app

    putukchi安卓版软件是一款可快速语音录入维吾尔文字的实用软件,是专为维吾尔族和学习维吾尔语的用户打造的维吾尔语连续语音输入系统.python写安卓app旨在让用户们可快速的输入维吾尔文字,学习维 ...

  4. python编程器app_有了这个神器,轻松用 Python 写个 App

    原标题:有了这个神器,轻松用 Python 写个 App 菜鸟学Python",选择加"星标" 重磅干货,第一时间送达 作者:Adrien Treuille机器之心编译 ...

  5. python写安卓游戏_python写lol游戏脚本(用python开发安卓脚本)

    python写lol游戏脚本 俾格米人和搅拌机的引擎. python-ogre和panda3d是用c/c编写的,但只提供了一个python接口. 你好,蟒蛇可以在Android上工作. 因为你可以在A ...

  6. python写一个app接收摄像头传输的视频_使用Python的Flask框架实现视频的流媒体传输...

    Flask 是一个 Python 实现的 Web 开发微框架.这篇文章是一个讲述如何用它实现传送视频数据流的详细教程. 我敢肯定,现在你已经知道我在O'Reilly Media上发布了有关Flask的 ...

  7. python写安卓游戏_10分钟学会python写游戏脚本!Python其实很简单

    前言 最近在玩儿公主连结,之前也玩儿过阴阳师这样的游戏,这样的游戏都会有个初始号这样的东西,或者说是可以肝的东西. 当然,作为一名程序员,肝这种东西完全可以用写代码的方式帮我们自动完成.游戏脚本其实并 ...

  8. 从零开始写安卓APP 《第一行代码》笔记 第一周

    这是软件开发课的任务,本人其实不会java也不会安卓开发.以前只做过web端,因为某课程的爆炸实验单人撸了全栈.不过好在很早前就想学了,这里记录一下过程.放的主要是<第一行代码>的一些笔记 ...

  9. python模拟安卓app登录_[新手入门] Win7+ Macaca + Python+PyCharm+Genimotion:运行 Android App 登录实例...

    环境配置: 1.配置 Java环境[必须] 2.配置 Android SDK[必须](系统环境变量path中,加入platforms.platform-tools.tools路径)(SDK\platf ...

最新文章

  1. 響應式設計中百分比 % 的問題
  2. 前端模块化开发学习之gulpbrowserify篇
  3. 提高SQLITE 大数据量操作效率的方法
  4. HTML默认样式表CSS属性
  5. python odoo_Odoo开发教程20-使用 Python 虚拟环境安装 Odoo第二讲
  6. docker部署redis集群_Docker部署Redis集群----第九节(docker-redis哨兵集群“轮询分流”篇实例一)...
  7. 通讯录管理系统课设使用c编写基于链表增查删改分组文本操作随程序实时同步
  8. using System.Threading.Tasks;
  9. 1+X云计算平台运维与开发认证(初级)样卷E
  10. Xshell5:Xshell下载和安装教程
  11. Tkinter教程(每天半小时,3天彻底掌握Tkinter)day2
  12. Chromium源码中 media::VideoFrame 的3个属性(coded_size, visible_rect, natual_size)的理解
  13. 计网与操作系统作业(1)
  14. 微信公众号svg互动_“戴上太阳镜,弗兰克”:与SVG面罩的互动
  15. windows系统镜像修复计算机,Win7操作系统下系统还原和映像修复方法
  16. oracle 11客户端精简版,oracle_11g精简版客户端配置
  17. Endsley 的情境意识理论回顾
  18. M70003中型Android平板电脑亦称IPED 13价格ipad的
  19. 【分布式 论文】之 1. MapReduce——Simplified Data Processing on Large Clusters
  20. 用latex的tikz宏包mindmap包绘制mindmap

热门文章

  1. Your ApplicationContext is unlikely tostart due to a @ComponentScan of the defau
  2. 使用Python写一个天天酷跑
  3. 香港计算机授课型研究生,香港城市大学授课型研究生的要求高不高啊?
  4. 外文网站对CMap用法的精辟解释
  5. 不同网段间访问共享文件
  6. 亲测!Ubuntu18.04与WIN10双系统(USB EFI方式安装—Grub2.0引导修复)完整教程
  7. 手把手教你申请lynda高级账号,长期免费使用 lynda.com
  8. 解决SSD+HDD双硬盘下电脑卡顿问题,CPU和内存使用率低,电脑依旧卡顿
  9. [C语言] 发牌洗牌
  10. 飞思卡尔XS128系列(三) PIT