python安卓-如何用python写一个安卓APP?(上)
嘿嘿!被我骗进来了吧!有这种想法的人不在少数,但谁都明白这是不明智的,然而不明智不代表不可行,不管怎样,有一点永远不会变,那就是有这种想法的靓仔靓女一定和小瓦一样帅气逼人!噢耶~Let's Go~~ ——聪明的瓦肯人
1 针对这个问题 我劝大伙儿谨慎尝试 谨慎尝试 为什么咧 我把大家骗进来的目的 就是让大家看看 什么叫做 好惨一男的 不过放心 你依然可以看到 这个问题的 可能有效解决方案 然后 你就可以付诸实践 至于结果 我就不知道了 2 想必大家都知道 正常安卓APP的开发 主流靠的是Java、Kotlin 而其他语言的开发可能就需要 开发框架 python就不例外 要想使用python开发 就需要使用kivy这个 开源的python开发框架 具体如何操作呢 继续往下看 3 首先 你肯定得安装了python 这一点不多说 然后 以Windows为例安装kivy 送上官网安装教程
https://kivy.org/doc/stable/installation/installation-windows.html#install-win-di
算啦 料定你懒得打开 跟着我做吧 官网教程建议你 为你的kivy工程 生成一个虚拟环境 这样更加干净独立 当然这也是可以自主决定的 so 我是怎么简单怎么来 First 键盘win+R 输入cmd,运行 打开命令行窗口 Then 为了确保你有最新的 pip 命令行输入
python -m pip install --upgrade pip
我就不为其生成虚拟环境了 然后开始安装相关依赖文件 建议你换到国内镜像源 否则速度缓慢 甚至要访问外国网站
python -m pip install docutils pygments pypiwin32 kivy.deps.sdl2 kivy.deps.glewpython -m pip install kivy.deps.gstreamer
最后 正式安装kivy (每一步命令都要回车哦)
python -m pip install kivy
你也可以选择安装kivy例程
python -m pip install kivy_examples
验证kivy是否安装成功 其实就是 编写一个kivy程序 运行是否成功 本次就编写下面的程序为例
#!/usr/bin/env python3# -*- coding: utf-8 -*-
from kivy.app import Appfrom kivy.uix.scatter import Scatterfrom kivy.uix.label import Label #以上导入各种类class TestApp(App): #继承了App这个类,派生TestApp类 def build(self): s = Scatter() #实例化一个Scatter控件,这是一个多点触控控件,可以实现缩放、移动、旋转 l = Label(text='hello',font_size=130) #实例化Label标签控件,用来显示文字 s.add_widget(l) #将Label添加到Scatter控件上 return s #返回新生成的Scatter控件
TestApp().run() #作为App的子类,可以执行父类中的run()函数
保存运行 结果
successfully!!! 更多kivy相关知识 请到这里
https://kivy.org/doc/stable/
4 但我们要的是安卓APP 现在仅仅是在电脑上的GUI 怎么办呢 莫急 kivy自然为你解决 还提供了3种方案供你选择 分别是
所以说 小瓦使用的是Buildozer 由于现在只适配于linux 在windows上需要安装虚拟机 我选择的虚拟机管理程序是 virtualbox 打开virtualbox中出现的 bios未开启虚拟机允许等问题 自行解决 kivy官方还算良心 已经帮我做好了安装好buildozer的 虚拟机镜像 下载地址
http://txzone.net/files/torrents/kivy-buildozer-vm-2.0.zip
一切顺利 导入虚拟机 在virtualbox设置中 配置好共享文件夹和内存(很重要) 共享文件夹的目的 就是实现windows主机与linux虚拟机 文件互传 具体点 就是将windows编写的python程序 传到linux处理打包成APK 开启(密码是kivy)
然后将上面的python程序文件 重命名为main.py buildozer只能识别main.py 将其放入共享文件夹 (比如我的共享文件夹:H盘/share-vm) 在虚拟机中将该文件夹sf_share-vm打开 将main.py复制到虚拟机桌面 一切就是这么的easy! 5 ok 是时候进行激动人心的APK打包啦 我的第一款安卓APP近在眼前 噢耶~ 首先 你需要打开终端(Terminal Emulator) 然后
cd Desktop #回车转到桌面
再然后
buildozer init #初始化buildozer,生成buildozer.spec文件 #你可右击open with 'MousePad',修改title、package.name、package.domain
最后
buildozer -v android_new debug # -v可以让下载过程可视化
最终你会在桌面多得这些文件
上面的命令就是 一顿download 一顿check 主要下载的是安卓的SDK、NDK、ANT等 (该过程你可能需要访问外国网站) 然后过了许久 又是一顿骚操作 (buildozer自动化程度就是高) 对于我这种安卓盲 这就是福音呀 满心期待的我等待着桌面bin文件夹中的 APK文件(正常情况下) 然而事实却是
我知道你看不清红色警告 # Aild not found,please install it 这意味着我失败了 buildozer的自动化也是有漏洞的 我以为 我添加了Aild即可 其实 我又开启了一段 与bug要死要活的斗争 over
预知后事如何,请听下回分解! ——聪明的瓦肯人
python安卓-如何用python写一个安卓APP?(上)相关推荐
- 手把手教你写一个安卓app
最近有很多小伙伴在后台留言:Android Studio.我想大家是想写一个手机app,前面已经分享了在QT上如何写一个安卓蓝牙app,虽然qt可以做app,但是比起Android Studio还是差 ...
- 如何写一个安卓APP
写一个安卓APP需要以下步骤: 首先确定你的APP要实现什么功能,明确需求. 然后准备好开发工具和环境.一般来说,安卓APP的开发工具为Android Studio,需要先下载并安装. 接着,学习Ja ...
- 如何用Java写一个斗地主(一)
如何用Java写一个斗地主(一) 序言 正文 创建卡牌 打乱牌序 发牌 课后吐槽 序言 作为一名大三的普普通通大学生,被实习老师(?)强迫下,第一次开始写CSDN的博客,如果写的不好,请多多包涵咯. ...
- 如何用LaTeX写一个PPT
如何用LaTeX写一个PPT 说到写PPT大家一般会想到的是微软的Microsoft PowerPoint,因为他更易于制作并且拥有丰富的动画,但是当你需要制作一个学术相关的ppt时,你需要更好的排 ...
- 如何用java写一个年日历
如何用java写一个年日历 没啥难的,话不多说上代码
- 循环彩灯编程c语言环境,如何用汇编语言写一个循环彩灯的程序,采用定时器方式1工作...
如何用汇编语言写一个循环彩灯的程序,采用定时器方式1工作 关注:120 答案:2 信息版本:手机版 解决时间 2019-01-09 23:07 遮云壑 2019-01-09 14:42 由89C5 ...
- 如何用HTML写一个百度浏览器
如何用HTML写一个浏览器!!! 制作可以选择搜索引擎的浏览器 先写一个form表单,初始action为"http://www.baidu.com/baidu",引用一个文本框输入 ...
- 手把手教你写一个Matlab App(一)
对于传统工科的学生用的最多的编程软件应该就是matlab,其集成度高,计算能力强,容易上手,颇受大众青睐.今天挖的这个新坑,主要是分享用matlab app designer设计GUI界面的一些方法和 ...
- 如何用Python写一个安卓APP
前言:用Python写安卓APP肯定不是最好的选择,但是肯定是一个很偷懒的选择,而且实在不想学习Java,再者,就编程而言已经会的就Python与Golang(注:Python,Golang水平都一般 ...
- python能开发安卓app吗_如何Python写一个安卓APP
前言:用Python写安卓APP肯定不是最好的选择,但是肯定是一个很偷懒的选择,而且实在不想学习Java,再者,就编程而言已经会的就Python与Golang(注:Python,Golang水平都一般 ...
最新文章
- 【PAT乙级】1075 链表元素分类 (25 分)
- 【mathematical statistics】4 hypothesis testing
- jqueryui dialog asp.net服务端控件失效问题解决
- Cookie禁用了,Session还能用吗?
- php b64encode,[转]PHP base64_encode 在URL地址参数编码上使用
- 魅族手机Root之后如何恢复
- Thinkpad自修壁纸 2019
- java 权重_java实现权重的简单算法
- 微信公众号自定义模板内容换行
- pythonturtle艺术字_字体风格迁移,卷积神经网络打败艺术字,生成最美汉字
- 灵遁者哲学书籍《 重构世界》:意识是物质逆熵存在的本征
- 苹果Mac OS X 系统下屏幕截图快捷键
- 安全健康的使用计算机就要注意,长时间使用电脑应该注意健康
- 什么是DHCP?为什么要用DHCP?(中科三方)
- 计算机组成原理——存储地址与边界对齐
- OmniPlan 项目管理入门
- 一个U盘装N款系统不是梦!超级好用的装机神器来了!
- 命令行检查win10自动唤醒原因
- tp5.1实现Token验证
- Matlab的渐变色填充(一)
热门文章
- 2021秋招IC验证面经-华为/英伟达/兆易创新/ZeKu
- 区块链baas平台告警方案
- python xlrd 错误:xlrd.biffh.XLRDError: Unsupported format, or corrupt file: Expected BOF reco
- 如何根据vin码查询_车架号查询-VIN查询-车辆识别码查询-宜配网
- glove.840B.300d、glove.42B.300d、glove.6B下载
- 关于DoG角点检测matlab实现
- python opencv 读取图片_Python opencv 读取图像
- Codeforces C. Destroying Array
- 实习每日总结_20161222
- mysql chm 文档_最简单,最实用的数据库CHM文档生成工具——DBCHM