用Python、C#、JavaScript来写安卓APP,怎么选?autojs是永远的神!

你没听错,除了JAVA,还有其他语言也能编写安卓APP。

当然,随着Kotlin的兴起,传统的JAVA编写安卓APP变得越来越敏捷化和轻量化,这是好事。

今天先不谈JAVA和Kotlin这俩“正统”的编码选手,咱们先来说说这几个“邪魔外道”。

其实,限制不同语言编写安卓APP的门槛,主要就是编译器支持程度,另一个就是UI支持程度。

一、先说Python。

Python开发环境比较复杂,要装一堆东西,包括但不限于Python、Buildozer 、PySide/PyQt、Kivy 等等。

具备创建 Android 应用程序能力的框架和库,主要有 Kivy、BeeWare以及Flet,

我身边一些做Python的朋友比较喜欢 Kivy 的框架,主要是社区丰富。不过他这个框架下的UI是个问题,无法调用系统原生AI,而是他自己用OpenGL自己画出来的,所以组件支持上比较弱。

BeeWare项目主要能力是把Python应用程序转换为本地应用程序、而Flet的优势是允许开发者使用Python代码来设计和操作用户界面元素。三者都具备跨平台开发的能力,可以做到一次开发,编译成APK(安卓架构)和IPA(苹果架构)程序的能力。

from kivy.app import App
from kivy.uix.button import Button

class TestApp(App):
    def build(self):
        return Button(text='Hello World')

TestApp().run()

不过,毕竟还是有诸多限制,用Python开发安卓,适合一些UI不多的小型项目,否则你会累死。

还有就是项目中不能使用OpenCV,否则无法通过编译。

个人不建议使用Python编写APK应用。

二、C#也能开发

约莫2018年的时候,手上正好有一个C#项目,同时需要PC端和安卓、苹果三端互通,我找过相关的资料学习了一下,不过最后还是放弃了。改为了用wex5来实现安卓端和苹果端的数据展现。

使用C#开发移动应用,主要是在Xamarin框架下进行,这是一个让开发者能够使用.NET和C#来创建安卓、iOS和Windows应用的跨平台开发工具。

官方说,使用Xamarin开发的应用程序可以与使用Java或Kotlin开发的安卓应用程序一样,提供原生的用户体验和性能。

我后来放弃他的理由是,对JSON格式数据的处理太繁琐。

而且幸好也没用,微软官方宣布,Xamarin 支持已于 2024 年 5 月 1 日结束……然后官方推荐你使用.NET MAUI ……

天知道这个MAUI项目啥时候又被微软放弃,这不是搞笑吗。

三、JavaScript / ECMAScript,永远的神。

此前提到的wex5,就是基于javascript/ECMAScript来开发移动端应用的。不过wex5比较适合做数据展现,因为他的原理就是套壳了一个浏览器,内嵌H5页面而已。

用纯原生javascript就能开发,前端爱好者很容易就迁移过来。开发工具是WEX5官方改装过的一个Eclipse专用版本。

不过,我个人用的最多的,是autojs,毕竟它能调用很多设备底层的服务,譬如摄像头啊陀螺仪之类的,最重要的是能在开启无障碍服务后,直接操控手机实现自动化,这才是YYDS。

autojs的语法跟ECMAScript大差不多,然后加入了一些封装的函数和类,学习成本不高。

我从1999年开始学习使用javascript,经历过它跟微软的JScript以及后续规范化为ECMAScript的所有历程,现在看着NodeJS的出现、以及ECMAScript在微信小程序、抖音小程序等等中的大放异彩,可以说,javascript从未辜负过我,是永远的神。

然后,使用get/post可以直接跟后端进行数据交互(NodeJS / PHP+NGINX / Python+WSGI  /  .NET+IIS / )也是很方便【别提JSP和tomcat,我讨厌JAVA】。

最近就开发了一款带后端数据的,供大家学习参考:互阅帮  (访问密码:6380) 。有学习仿麦呢疑问或者有业务需求的也可以私信我。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值