python能做手机软件吗?

python的主要运用领域有运维、爬虫、科学计算、快速验证和web。

不过如果想用Python做手机app可以去了解一下QPython。

《QPython》是一个脚本引擎,他整合了Python解释器、Console、编辑器和SL4A库。可以让你在Android设备上运行Python语言开发的程序。它就是Android上的Python!此外,它提供了开发工具能让你在Android设备上方便地开发Python项目。


可以


可以的,不过要通过第三方类库实现,比如kivy。

kivy语言通过编写界面UI,然后利用Python定义一些业务逻辑,可以移植很多功能模块到移动端直接执行。

下面对kivy常见用法做一个汇总。

1、什么是kivy?

kivy是一个开源跨平台的PythonUI框架,就可以快速开发PC、移动端的GUI。

kivy基于Python,采用Python和CPython,界面代码和业务逻辑代码相互分离。

2、HelloWorld怎么写?

在pycharm中编写kivy代码块前,需要在虚拟环境内安装kivy依赖库。

pip3installkivy

然后,定义一个kivy.app.pyApp类的子类,重写build方法。

fromkivy.appimportApp

classMyApp(App):

defbuild(self):

实现父类的build()方法

:return:

pass

接着新建一个控件实例,作为应用的根控件返回。

fromkivy.uix.labelimportLabel

defbuild(self):

把build()方法实现为返回一个控件实例(这个控件的实例也就是你整个应用的根控件)

:return:

#在这个方法里面使用了Label控件

returnLabel(text=HelloWorld!)

#运行HelloWorld

MyApp().run()

最后,直接调用自定义类的run()方法,运行在PC端展示效果如下。

当然,也可以重命名文件名为:kvmain.py,然后利用adb命令拷贝到/sdcard/kv/下,重新冷启动airport应用就可以在移动端上运行了。

3、创建应用的步骤

使用kivy创建App包含3个步骤,分别是:

创建一个子类继承于App类

重写build()方法,返回一个容器控件或者自定义的控件,这个应用作为整个应用的根控件。

编写自定义控件的UI布局及业务逻辑

创建自定义子类的实例,调用run()方法

4、怎么编写UI布局

编写UI布局常用Builder.load_string()方法,传入一段配置代码,生成控件树。

首先需要声明一个根控件类,可以使用kivy中定义的布局容器控件,也可以使用自定义的控件(常用)。

#1.使用kivy定义的容器控件

BoxLayout:

#2.使用自定义的容器控件

<CustomWidget&;:

然后利用层级关系编写父控件、子控件,包含:id、text、高度和高度、对齐关系、颜色等属性。

TextInput:

id:id_input_password

padding:[20,20,20,20]

text_size:500,None

hint_text:请输入密码

halign:center

valign:middle

最后,对于自定义控件中绑定的各种事件需要定义回调方法进行处理掉。

#定义点击事件,传入参数

on_press:root.login(id_input_username.text,id_input_password.text)意的是,利用adbshellam命令打开应用的方式适用于部分不兼容自动化框架的App。

5、中文乱码问题

默认布局属性中包含中文会显示乱码。

针对PC端,只需要把中文字体文件放到同级目录下,利用font_name属性指定字体即可显示正常。

如果是App端,需要利用adb命令,进入到/syst/fonts/下,寻找能显示中文的字体,然后利用font_name属性指定对应的字体,就能显示正常。

#手机端Miui-Bold.ttf字体能显示中文正常

font_name:/syst/fonts/Miui-Bold.ttf

6、能不能来一个实例

下面以创建一个登录界面来说。

登录界面包含两个输入框,包含用户名和密码、一个登录按钮。

首先,我们创建一个类继承自App,重写build()方法,返回一个自定义的控件。

然后编写自定义控件的布局。

Builder.load_string(

<LoginWidget&;:

orientation:vertical

spacing:30

padding:20

canvas:

Color:

rgba:(1,1,1,1)

Rectangle:

size:self.size

pos:self.pos

BoxLayout:

size_hint_y:None

height:48dp

orientation:horizontal

canvas:

Color:

rgba:(1,1,1,.5)

Rectangle:

size:self.size

pos:self.pos

Label:

text_size:300,None

text:用户名:

font_size:15sp

font_name:/syst/fonts/Miui-Bold.ttf

color:1,0,0,1

TextInput:

text_size:500,None

border:10,10,10,10

id:id_input_username

hint_text:请输入用户名

font_name:/syst/fonts/Miui-Bold.ttf

padding:[20,20,20,20]

halign:center

BoxLayout:

size_hint_y:None

height:48dp

orientation:horizontal

canvas:

Color:

rgba:(1,1,1,.5)

Rectangle:

size:self.size

pos:self.pos

Label:

text_size:300,None

text:密码:

font_name:/syst/fonts/Miui-Bold.ttf

color:1,0,0,1

TextInput:

id:id_input_password

padding:[20,20,20,20]

text_size:500,None

hint_text:请输入密码

font_name:/syst/fonts/Miui-Bold.ttf

halign:center

valign:middle

Button:

id:id_btn_login

size_hint_y:None

text_size:100,50

border:(16,16,16,16)

font_name:/syst/fonts/Miui-Bold.ttf

text:登录

margin:100

on_press:root.login(id_input_username.text,id_input_password.text)

Label:

id:id_label_resut

color:1,0,0,1

)

接着编写登录按钮的回调方法,拿到输入的用户名和密码,就能编写业务逻辑。

deflogin(self,username,pwd):

ifnotusernameornotpwd:

print(用户名和密码不能为空!)

popup=Popup(title=Warning,content=Label(text=用户名和密码不能为空,font_name=/syst/fonts/Miui-Bold.ttf),

size_hint=(None,None),size=(600,500),auto_dismiss=True)

popup.open()

else:

resp=requests.get(p>

#登录成功

ifresp.status_code==200:

result=LoginSuccess!

else:

result=LoginFailed!

self.tv_result.text=result

最后,将文件push到手机的/sdcard/kv目录下,重新运行airport就能展示一个登录页面。

7、了解更多

更多复杂的功能可以参观官方API。

#home


“python可以做app,Python是一种计算机程序设计语言。是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越来越多被用于独立的、大型项目的开发。”


可以考虑webapp,就是用python写网页,然后借助工具打包成Android或iOS的安装包。


Python开发手机APP可以吗?

首先是肯定的回答,是可以的。需要哪些知识:

python作为一门语言来说,很容易上手。稍微复杂一点就是装饰器、元类和少量的函数编程内容。要是说学什么的话,稍后送学习线路图。

选择什么开发框架:

首先推荐:tornado,因为非阻塞的io原因,性能是很高的,特别适合写后端的api,app的后端应该是rest庚哥的api。并且稳定。

部署服务器:

服务器方面的知识点涉及的东西就很多了。有运维,测试,开发很多的方面。部署和测试推荐包:fabric、nose、unittest(这个是python自带的),版本管理的话推荐git,持续集成推荐使用docker+jenkins;

python后台服务最大可以支持多少pv量:

YouTube,reddit、豆瓣、知乎这样的大流量网站都是python写的,如果我们开发的app规模不是很大的话,可能是不会遇到性能问题的,就算出来性能问题很小几率是python的问题。而是任何语言都会有问题。毕竟web后端不是计算密集型的,而IO是密集型。python和其他语言的区别不会很大的,大量的pv是可以靠着服务器堆出来的,如果是计算量很大的任务,那就要考虑用C或者是C++了;

有没有相关的案例,或者python开发的移动后台:

我告诉你有的,但是很少,app后端开源的不常见,但是会涉及到自身的业务和敏感信息。想要资料的可以找我哦。

最后附送python的学习线路图,其实更多的了解之后才会做出更好的项目:


这个真不建议,非常不方便,如果你真想这么做,有2种方法,一种是QPython,一种是Kivy,下面我简单介绍一下这2种方式:

QPython

这个是手机上编写运行Python的一个软件,集成了Python解释器、QEdit编辑器,可以开发简单的安卓程序,下面我简单介绍一下这个软件:

1.下载安装QPython,这个直接在手机应用中搜索就行,如下,也就12兆左右,直接点击下载就行:

2.安装成功后,我们看一下官方自带的示例,一个简单的安卓程序,打印输入的内容,主要用到androidhelper这个包,如下:

程序运行效果如下,一个简单的安卓程序,比较朴素:

Kivy

这个是一个跨平台的应用开发框架,可以快速创建应用程序,只需编写一套代码,即可运行在目前主流的桌面和移动平台上,像Windows,Linux,OSX,Android,iOS等,下面我简单介绍一下框架的安装和使用:

1.安装kivy,这直接参考官网的教程就行,如下,很快就能安装成功:

2.安装成功后,我们可以编写一个简单的测试程序,测试一下kivy框架是否安装成功,如下,很简单:

程序运行效果如下:

3.接着就是打包这程序为手机app,这里需要先下载官方自带的kivy虚拟机,借助这个虚拟机将kivy程序打包成手机app,如下,这个直接在官网上下载就行:

4.启动这个虚拟机,然后上传程序文件,运行buildozer命令打包程序,比较漫长,需要在线下载安卓SDK,NDK等包,打包成功后,就可在当前bin目录下生成apk文件:

5.最后,发送apk到手机上,安装后的效果如下:

目前,就介绍这2种方法吧,其实还有pythonforandroid这种方法,只不过比较麻烦,可以参考一下这个文章qq_29027865/article/details/79191775,介绍的不错。不过,真不建议用python开发手机app,比较麻烦,安卓的话,用Java或Kotlin,苹果的话,用Objective-C或Swift,能更好一些,希望以上分享的内容能对你有所帮助吧,也欢迎大家评论、留言。


原始地址:/xinwen/18341.html