你没听错,除了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) 。有学习仿麦呢疑问或者有业务需求的也可以私信我。