python开发安卓app教程(安卓版python开发工具)

http://www.itjxue.com  2023-04-01 13:26  来源:未知  点击次数: 

怎么用python编android app

前言:用Python写安卓APP肯定不是最好的选择,但是肯定是一个很偷懒的选择,而且实在不想学习Java,再者,就编程而言已经会的就Python与Golang(注:Python,Golang水平都一般),那么久Google了一下Python写安卓的APP的可能性,还真行。

既然要写个APP,那么总得要有个想法吧。?

其实笔者想做两个APP来着,一个是自己写着好玩的,一个是关于运维的。?

关于运维的APP,设计应该如下?

可能长这样:

然后设计应该是这样:

如果觉得可行的话,评论留言一下你觉得应该写进这个APP的运维常用命令吧^_^,笔者暂时想到的是top,free -m,df –h,uptime,iftop,iotop,如果有什么好的想法就狠狠的砸过来吧,笔者到时应该也会把这个写成一个项目放到github上,大家一起用嘛,开源才是王道,哈哈。

好吧,进入正题。?

我们使用kivy开发安卓APP,Kivy是一套专门用于跨平台快速应用开发的开源框架,使用Python和Cython编写,对于多点触控有着非常良好的支持,不仅能让开发者快速完成简洁的交互原型设计,还支持代码重用和部署,绝对是一款颇让人惊艳的NUI框架。?

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

本文会带大家写一个Hello world并瞧一瞧Python版的2048的代码

kivy安装?

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

这里仅介绍windows平台安装?

更新pip,setuptools

python -m pip install --upgrade pip wheel setuptools12

然后是安装所需要的依赖

python -m pip install docutils pygmentspypiwin32 kivy.deps.sdl2 kivy.deps.glew \

kivy.deps.gstreamer --extra-index-url?

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

然后就是安装kivy了

python -m pip install kivy12

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

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

如果kivy在python中应该就能导入了。

按照世界惯例,我们”hello”一下吧。?

新建一个.py文件

from kivy.app import App

from kivy.uix.button importButton

class TestApp(App):

def build(self):

return Button(text='Hello,kivy')

TestApp().run()123456789

运行:

然后会弹出一个框,大概如下,点击”hello,kivy”会变颜色

点击窗口并按“F1”会这个窗口的一些属性

然后我们回过头看一看代码。

##导入App,然后让TestApp这个类继承

from kivy.app import App

##导入一个Button,运维有这个button,当你点击的时候才会有所反应

from kivy.uix.button importButton

###定义类,名字必须是xxxApp

class TestApp(App):

###build一个Button

def build(self):

###返回一个Button,文字内容是“Hello,kivy”

return Button(text='Hello,kivy')

##运行,因为继承了App,所以才有的run这个方法

TestApp().run()123456789101112131415

上面就是我们的Hello了?

在windows上运行当然没有什么太大的意义,怎么在安卓手机上运行才是我们想要的,?

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

官方说明的环境,如下:

You’ll need:

A ? ? linux computer or a virtual machine

Java

Python ? ? 2.7 (not 2.6.)

Jinja2 ? ? (python module)

Apache ? ? ant

Android ? ? SDK12345678

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

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

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/12

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

buildozer init12

修改buildozer.spec文件

vi buildozer.spec12

至少修改下面三项

# (str) Title of your application

title = helloworld

# (str) Package name

package.name = helloapp

# (str) Package domain (needed for android/ios packaging)

package.domain = youer.com123456789

然后注释

# (str) Application versioning (method 1)

#version.regex = __version__ = ['"](.*)['"]

#version.filename = %(source.dir)s/main.py

下面这行改为非注释

version = 1.2.0123456

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

buildozer -v android debug12

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

helloapp-1.2.0-debug.apk

安装以后应该是这样

话说在编译的时候可能出现空间不足的情况,根据虚拟机的不同(vmware或virtualbox)自行扩容吧。

最后我们来瞧瞧简易版Python开发的2048这个游戏的源代码。?

先看效果图

试玩了一下,还是蛮流畅的,有兴趣的可以下载玩一下?

这个游戏代码虽然不长,但是还是蛮占篇幅的,所以简要的说明一下流程:

主要由三部分组成,一是素材,图片音频之类的文件,二是Python代码,三是kv文件,这个kv文件有点像html中的css。?

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

然后一定有一个叫做XXXApp的类,并继承App。?

比如该类叫做GameApp,那么该目录下的kv文件则必须为Game,如上图所示,如果不是,那么kv文件中的一些设定就不会生效。?

比如设定一个标签

Label:

id: time

text: 'xxxx'

font_size: 6012345

id为time,text文本内容为’xxxx’,然后字体为60?

好吧,点到为止吧,不过似乎什么都没点到~~~

从无到有做一个App,我想我会另起一篇文章吧。

如何Python写一个安卓APP

使用kivy开发安卓APP,Kivy是一套专门用于跨平台快速应用开发的开源框架,使用Python和Cython编写,对于多点触控有着非常良好的支持,不仅能让开发者快速完成简洁的交互原型设计,还支持代码重用和部署,绝对是一款颇让人惊艳的NUI框架。

操作

更新pip,setuptools;

安装所需要的依赖;

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

如果kivy在python中应该就能导入了。

如何使用QPython开发Android应用

QPython入门

QPython WebApp应用框架能够让具有Web开发背景的开发者快速构建Android本地应用. 作为开发者,充分掌握你手中的利器,才能做到庖丁解牛,游刃有余地推动项目,接下来,你只需要30分钟,即可掌握QPython以及WebApp应用框架.

QPython的使用

QPython是我们项目的运行容器,我们所开发的项目需要运行在QPython之上(当然QPython也提供其他不同定位的程序开发支持,可以在以后的Codelab教程中逐一展示),因此你需要掌握以下使用技巧:

了解QPython的基本功能,能使用开始按钮以及开发者工具面板

你需要知道如何把项目上传或更新到QPython中

你需要掌握如何使用QPython运行项目

程序运行出错,如何查看错误信息,这个是作为开发者必备的技能

有些小的改动,比起上传或者更新整个项目而言,使用自带的QEdit方便第修改源代码可能会更简单

如果你想使用第三方库,你需要知道如何使用QPython来安装第三方库

更多详情可以参考如何使用QPython,以及如何使用QPython开发第一个HelloWorld

QPython的WebApp框架

为了让Web开发者能够快速上手Android应用开发,QPython推出了WebApp框架,它包括两个部分 - 基于Bottle框架的可定制本地Web服务器 - 构建于Android系统的WebView容器,

实现上述两个特性,就我们能够轻松地让QPython运行本地WebApp,避免传统服务端WebApp的网络传输瓶颈问题,获得更佳用户体验,此外,通过让Python能作为Backend语言,拥有更强大的包括网络,图像,运算等多种处理能力. 再加上强大的Python第三方库支撑,拥有Python/Web开发经验的人即可轻松开发体验良好的WebApp

更多详情可以参考QPython WebApp帮助

应用设计

掌握了QPython基础使用以及其WebApp框架后,我们可以开始针对我们的项目目标设计应用系统

应用的使用流程分析

输入:输入部分及为根据用户地理位置

输出:用户所在城市的PM2.5数值以及对应的防护措施建议

业务处理:通过地理位置坐标获得所在城市,通过请求PM2.5接口数据源获得PM2.5数值,再根据等级区分展示对应的防护措施建议

关键数据来源

地理位置信息:通过QPython的SL4A接口可轻易获得

根据地理位置查询所在城市

PM2.5数据来源:根据PM2.5API可以查询到所在城市的PM2.5数值情况

了解QPython的地理位置的SL4A接口,掌握PM2.5的数据来源接口,Google的根据地理坐标查询所在城市

应用的交互设计

主要为根据不同的PM2.5展示做不同的预警展示,并能满足用户查看详情的需求

技术实现方面我们选定使用Bootstrap作为前端框架:Bootstrap能根据设备的宽度的不同提供适配的界面框架.

推进过程以及FAQ

如何开始

在开发机器上安装bootstrap, bottle,象Web开发一样去开发, 本地调试后

以上传到QPython运行目录/sdcard/com.hipipal.qpyplus/projects/

通过QPython的运行按钮运行查看效果

将在个人电脑上开发的项目上传到手机上有以下方法 - 启动QPython自带的FTP服务:在设置中可以看到FTP服务,开启FTP服务后会显示当前侦听的地址,端口以及帐号,你可以通过FTP客户端将项目目录上传到QPython运行目录 - 如果你的电脑安装了Android开发套件,你也可以连接手机到开发机后,执行 adb push 本地目录 /sdcard/com.hipipal.qpyplus/projects/PM2.5 来把项目上传到QPython的项目目录

用Web开发模式开发QPython WebApp

我们可以使用标准的本地Web开发流程去推进应用开发,左侧为浏览器, 中间为VIM窗口,右侧我们启动bottle开发的Web进程(QPython内建支持Bootle Web框架)

在你的开发机上下载Bootstrap, 并配置Python+bottle运行环境,按照QPython WebApp的规范建立项目目录

获得Bootstrap,获得Bottle

了解QPython中WebApp中文件的结构

上传到QPython运行

你可以将项目上传到手机的QPython项目目录

点击开始按钮即可看到PM2.5选项

启动后可以看到运行效果

功能开发

在UI开发的基础上进行能攻开发,即可得到我们最终的版本,下列为几个关键过程的参考代码:

获得地理坐标

Droid = androidhelper.Android()

location = Droid.getLastKnownLocation().result

location = location.get('network', location.get('gps'))

获得所在城市示范代码

ud ?= urllib.urlopen(';sensor=true' % location)

json_result = ud.read()

ud.close()

""" process json_result """

获得所在城市PM2.5

ud = urllib.urlopen(';token=%s' % (city, token))

json_result = ud.read()

ud.close()

""" process json_result """

根据PM2.5数值给出建议

if pm25_quality == '优':

? ...

elif pm25_quality == '良好':

? ...

elif pm25_quality == '不好':

? ...

elif pm25_quality == '差劲':

? ...

else:

? ...

将关键代码实现后输出即可实现我们本次的目标

你可以获得PM2.5早知道项目源代码源代码

此外,你还想增加什么功能?天气预报, PM2.5变化趋势图以及预测 ?Just do IT !

如何用手机编程Python?

1.QPython3:这是一个在安卓手机上运行python3的脚本引擎,整合了python3解释器、控制台、QEdit编辑器和SLA4库,可以在安卓手机上运行python开发的程序,下面我简单介绍一下这个软件的安装及使用:

下载安装QPython3,这个可以直接在手机应用商店中搜索,如下,大概也就12兆左右:

请点击输入图片描述

安装完成后,打开这个软件,主界面如下,分为6部分:终端、编辑器、程序、QPYPI、课程和社区:

请点击输入图片描述

终端:类似python shell(或者cmd窗口),可以直接运行输入的python代码:

请点击输入图片描述

编辑器:类似电脑的记事本,可以直接编辑python代码,提供基本年的自动补全的功能,编辑完成后,可以点击运行按钮运行程序:

请点击输入图片描述

程序:这个是QPython3官方自带的一些简单示例,供初学者参考、学习:

请点击输入图片描述

QPYPI:这个模块主要用来安装python的第三方包,包括numpy,scipy,tornado等:

请点击输入图片描述

课程:主要是官方提供的一些入门课程,用于初学者更好地学习和掌握这个软件:

请点击输入图片描述

2.Termux:这是一个功能强大的高级终端,可以运行shell命令(ssh等),在线安装python后,也可以编辑运行python代码,下面我简单介绍一下这个软件:

安装Termux,这个与上面的QPython3类似,直接下载安装(首次安装,时间可能比较长,保持联网,耐心等待一下):

请点击输入图片描述

安装成功后,界面如下,可以使用pkg install来安装包,安装python的话,命令是“pkg install python”,如下:

请点击输入图片描述

成功安装python后,就可以运行python了,输入python命令,就会进入python交互式环境如下:

请点击输入图片描述

(责任编辑:IT教学网)

更多

推荐通讯数据软件文章