嘿嘿!被我骗进来了吧!有这种想法的人不在少数,但谁都明白这是不明智的,然而不明智不代表不可行,不管怎样,有一点永远不会变,那就是有这种想法的靓仔靓女一定和小瓦一样帅气逼人!噢耶~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?(上)相关推荐

  1. 手把手教你写一个安卓app

    最近有很多小伙伴在后台留言:Android Studio.我想大家是想写一个手机app,前面已经分享了在QT上如何写一个安卓蓝牙app,虽然qt可以做app,但是比起Android Studio还是差 ...

  2. 如何写一个安卓APP

    写一个安卓APP需要以下步骤: 首先确定你的APP要实现什么功能,明确需求. 然后准备好开发工具和环境.一般来说,安卓APP的开发工具为Android Studio,需要先下载并安装. 接着,学习Ja ...

  3. 如何用Java写一个斗地主(一)

    如何用Java写一个斗地主(一) 序言 正文 创建卡牌 打乱牌序 发牌 课后吐槽 序言 作为一名大三的普普通通大学生,被实习老师(?)强迫下,第一次开始写CSDN的博客,如果写的不好,请多多包涵咯. ...

  4. 如何用LaTeX写一个PPT

    如何用LaTeX写一个PPT  说到写PPT大家一般会想到的是微软的Microsoft PowerPoint,因为他更易于制作并且拥有丰富的动画,但是当你需要制作一个学术相关的ppt时,你需要更好的排 ...

  5. 如何用java写一个年日历

    如何用java写一个年日历 没啥难的,话不多说上代码

  6. 循环彩灯编程c语言环境,如何用汇编语言写一个循环彩灯的程序,采用定时器方式1工作...

    如何用汇编语言写一个循环彩灯的程序,采用定时器方式1工作 关注:120  答案:2  信息版本:手机版 解决时间 2019-01-09 23:07 遮云壑 2019-01-09 14:42 由89C5 ...

  7. 如何用HTML写一个百度浏览器

    如何用HTML写一个浏览器!!! 制作可以选择搜索引擎的浏览器 先写一个form表单,初始action为"http://www.baidu.com/baidu",引用一个文本框输入 ...

  8. 手把手教你写一个Matlab App(一)

    对于传统工科的学生用的最多的编程软件应该就是matlab,其集成度高,计算能力强,容易上手,颇受大众青睐.今天挖的这个新坑,主要是分享用matlab app designer设计GUI界面的一些方法和 ...

  9. 如何用Python写一个安卓APP

    前言:用Python写安卓APP肯定不是最好的选择,但是肯定是一个很偷懒的选择,而且实在不想学习Java,再者,就编程而言已经会的就Python与Golang(注:Python,Golang水平都一般 ...

  10. python能开发安卓app吗_如何Python写一个安卓APP

    前言:用Python写安卓APP肯定不是最好的选择,但是肯定是一个很偷懒的选择,而且实在不想学习Java,再者,就编程而言已经会的就Python与Golang(注:Python,Golang水平都一般 ...

最新文章

  1. 【PAT乙级】1075 链表元素分类 (25 分)
  2. 【mathematical statistics】4 hypothesis testing
  3. jqueryui dialog asp.net服务端控件失效问题解决
  4. Cookie禁用了,Session还能用吗?
  5. php b64encode,[转]PHP base64_encode 在URL地址参数编码上使用
  6. 魅族手机Root之后如何恢复
  7. Thinkpad自修壁纸 2019
  8. java 权重_java实现权重的简单算法
  9. 微信公众号自定义模板内容换行
  10. pythonturtle艺术字_字体风格迁移,卷积神经网络打败艺术字,生成最美汉字
  11. 灵遁者哲学书籍《 重构世界》:意识是物质逆熵存在的本征
  12. 苹果Mac OS X 系统下屏幕截图快捷键
  13. 安全健康的使用计算机就要注意,长时间使用电脑应该注意健康
  14. 什么是DHCP?为什么要用DHCP?(中科三方)
  15. 计算机组成原理——存储地址与边界对齐
  16. OmniPlan 项目管理入门
  17. 一个U盘装N款系统不是梦!超级好用的装机神器来了!
  18. 命令行检查win10自动唤醒原因
  19. tp5.1实现Token验证
  20. Matlab的渐变色填充(一)

热门文章

  1. 2021秋招IC验证面经-华为/英伟达/兆易创新/ZeKu
  2. 区块链baas平台告警方案
  3. python xlrd 错误:xlrd.biffh.XLRDError: Unsupported format, or corrupt file: Expected BOF reco
  4. 如何根据vin码查询_车架号查询-VIN查询-车辆识别码查询-宜配网
  5. glove.840B.300d、glove.42B.300d、glove.6B下载
  6. 关于DoG角点检测matlab实现
  7. python opencv 读取图片_Python opencv 读取图像
  8. Codeforces C. Destroying Array
  9. 实习每日总结_20161222
  10. mysql chm 文档_最简单,最实用的数据库CHM文档生成工具——DBCHM