为了偷懒,我开始用Python编写Android应用程序
2021/6/2 20:22:34
本文主要是介绍为了偷懒,我开始用Python编写Android应用程序,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
为了偷懒,我开始用Python编写Android应用程序
- 说明
- 环境准备
- 开发环境准备(windows)
- 编译环境准备
- 自行配置制作编译环境
- 偷懒:直接下载配置好的虚拟机
- 编译
- 验证APK
- 总结
说明
环境 | 详情 | 备注 |
---|---|---|
开发环境系统 | windows | 代码生成环境 |
编译环境系统 | centos | 安卓apk编译环境 |
编程语言 | Python | 3.8.1 |
软件依赖(cetneos) | vim make wget tar unzip zip bzip2 patch autoconf automake libtool lld zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc gcc-c++ make libffi-devel java java-devel git | 配置编译环境时使用 虚拟硬盘最少给到8G以上的存储空间 |
Python第三方包(win环境下) | docutils pygments pypiwin32 kivy.deps.sdl2 kivy.deps.glew kivy.deps.gstreamer kivy | 其中pip是自带一般可以忽略或者升级一下 kivy必须最后才可以安装 |
Python第三方包(centos环境下) | cython kivy buildozer | 其中pip是自带一般可以忽略或者升级一下 kivy必须最后才可以安装 |
其他工具 | VirtualBox:虚拟机 XFTP:**Centos<==>本地(Win)**文件上传下载 |
环境准备
开发环境准备(windows)
- 更新pip、wheel、setuptools
python -m pip install --upgrade pip wheel setuptools
- 安装Python第三方包/模块
python -m pip install docutils pygmentspypiwin32 kivy.deps.sdl2 kivy.deps.glew kivy.deps.gstreamer
- 安装kivy模块
python -m pip install kivy
- 测试
- 将如下代码写入新文件,并命名为 mian.py
from kivy.app import App from kivy.uix.button import Button class TestApp(App): def build(self): return Button(text='Hello World') TestApp().run()
- 运行如图所示
编译环境准备
自行配置制作编译环境
- Centos软件升级更新
yum -y upgrade
- 安装依赖
# 安装系统工具 yum -y install vim make wget tar unzip zip bzip2 patch autoconf automake libtool lld # 安装基础依赖 yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc gcc-c++ make libffi-devel # java依赖安装 yum -y install java java-devel git
- Python安装(这里采用的Python3.8.1)
这里不做详细简述,可以参照Centos 下载+ 安装 + 配置 Python3(新) - 更新pip、wheel、setuptools
python3 -m pip install --upgrade pip wheel setuptools
- 安装会用到的第三方Python包
pip3 install cython
- 安装kivy 和 buildozer
# 当整个环境配置完成后。buildozer将会占据5G左右的存储空间 pip3 install kivy buildozer
偷懒:直接下载配置好的虚拟机
由于,整个虚拟环境的配置过程坑多,且时间漫长,其中又需要从github下载,虽然国内有gitee但不一定有copy
因此,我将我编制好的系统上传到百度云,
下载传送门链接:Centos_kivy.ova
提取码:kivy
登录账户:root
账户密码:kivy2021
下载下来导入OrVirtualBox即可仅直接进项下面的编译操作
PS:下载链接过期/被封/失效通知我
编译
为了下载buildozer其他所需组件,导入main.py 初始化buildozer并首次编译
- 将main.py到上传至指定目录(这里的目录是/root/text/),并进入该目录
cd /root/text/
- 生成android应用程序配置(应用名、版本等)
buildozer init
- 在执行完buildozer init后,会在当前目录下生成一个buildozer.spec的文件,该文件内容即使配置信息。我们一般修改以下几项内容
vim buildozer.spec
# (str) Title of your application title = My Application # 应用名称 # (str) Package name package.name = myapp # 包名 # (str) Package domain (needed for android/ios packaging) package.domain = org.test # 域名 # (str) Application versioning (method 1) version = 0.1 # 版本
- 开始编译
buildozer -v android debug # 由于这里是初次配置,因此为首次编译,因此它会自动下载 android sdk、apache ant、android ndk等组件 # 这些下载是通过git下载的,因此在执行之前可以先ping一下自己的centos到github的延迟 # 如果延迟过高可以进到buildozer源代码中去修改android.py # 比如我的python安装在/usr/local/python3 vim /usr/local/python3/lib/python3.8/site-packages/buildozer/targets/android.py # 将代码中用到的https://github全部替换成https://gitee即可 # 下载过程中,在下载完android adk相关组件时回需要手动同意安装SDKtools和platform的下载和安装,需要这样手动处理的有两个地方
验证APK
-
编译完成!并产生成APk文件
编译成功后,会在当前目录下创建一个新的bin目录,并在该目录下生成一个apk文件
-
测试apk
关于测试生成的apk文件有以下几个方法- 真机USB调试:配置虚拟机usb选项,并链接手机进行usb直接同步到手机安装调试
- 将该apk文件下载到本地,导入手机模拟器
在这里我采用第二种方法进行
Centos系统中通过 buildozer 编译打包 Python-kivy 的 android APK 安装运行测试
总结
使用kivy开发框架,相比于传统的Android SDK开发来比:
一般的Android应用,直接调用Android系统的原生控件,例如:文字渲染(颜色、距离、大小等)交由系统处理。
而Kivy,它的各种控件都不是系统原生提供的,而是用OpenGL自己画出来的,所以很作组件需要另行他法。
如果说你要开发中大型的Android应用,kivy很多轮子需要单独来造,时间成本和效率成本是很低的
但是说如果只是开发一个简单的小应用,还可以可以学习一下
另外如果说要开发Android/IOS/Win多平台的GUI应用程序,kivy也是可以考虑以下的。
不过,大型或者企业级的多平台GUI开发都是专项的,比如:
- Android用java/Kotlin;
- Win用C#/.net;
- IOS用C/C++/Objective-C,新潮点的还有Swift
而如果说只是想制作一个Android或者其他平台的图形化软件,不想话另外的精力和时间去学习其他的语言即其框架,那就用kivy吧。虽然坑多点,不过都是小问题,没有什么能阻止你学习的脚步
这篇关于为了偷懒,我开始用Python编写Android应用程序的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-10-04Python外包有哪些常见的主要库-icode9专业技术文章分享
- 2024-10-02基于深度学习的钢铁缺陷检测系统(yolov8、注意力机制、PyQt5界面、Python)
- 2024-10-01怎么用python搭建一个系统-icode9专业技术文章分享
- 2024-09-30Python基础入门教程
- 2024-09-30获取参数学习:Python中的基础教程
- 2024-09-30Python编程基础详解
- 2024-09-29点击加载学习:Python编程基础教程
- 2024-09-29数据科学五大Python前端库:第二部分
- 2024-09-27使用python 将ETH账户的资产打散
- 2024-09-26Python编程基础