python是android的开发语言吗_【语言】移动应用编程语言梳理

目前有多少种编程语言用到android/ios移动应用开发中,现在梳理一下:

1 , Java/C/C++语言

Android应用开发主流语言,本身Android 框架及其API就是使用Java进行开发的,C/C++被游戏及其一些高性能应用使用,Java通过JNI机制使用C/C++

2 ,Kotlin语言

Kotlin目前被Android作为first-class推荐语言使用,Google推荐的AndroidX应用开发框架,使用了Kotlin语言。Kotlin语言与Java无缝互操作,及其Kotlin较好的生产效率备受大家推崇。

3, ObjectC/Swift语言

IOS开发的主要官方推荐语言。

4, JS/HTML5语言

主流跨平台框架使用的方式,通过webview和js engine潜入到每个应用中去,让app运行js/html5代码,主要互操作方式是通过java c/c++ js engine js

5, Dart语言

目前大火的Flutter框架语言,Flutter框架使用Android/IOS底层框架,然后通过Dart语言封装一套独立的应用开发框架,屏蔽操作系统差异。

6,C#和F# dotnet语言

微软推行的跨平台框架Xamarin框架使用的开发语言,后续可以看看是否跟Flutter设计思路类似,通过引入一个runtime和完全新的应用API开发框架构造应用?

7,Scala语言

2015年就有人把Scala语言引入到Android应用开发中,用来解决java语言写UI代码的不足问题。scala本身也是一种jvm语言,具体如何解决scala跟java的互操作及其运行环境是不是转化为字节码需要进一步分析。

7, Haskell语言

从资料看,Haskell主要尝试是用于jni层替换c/c++,使用ghc编译器;另外GHC也有一个jvm backend,可以将Haskell语言编译成jar包。搜索了一下相关的项目没有怎么成功的应用

8,Ruby语言

RubyMotion:is a toolchain that permits the development of iOS, OS X and Android applications using the Ruby programming language.

这个框架挺有意思的,他基于Android虚拟机 + RubyMotion Runtime实现很好的互操作。

Ruboto: Ruby on Android:IBM,将ruby代码编译成jar包

9,Lua语言

应用可以内嵌lua解释器runtime,执行lua代码

10,Ocaml语言

主要是将ocaml语言编译成native arm二进制指令,没有看到在android应用上开发使用。

11,python语言

QPython is a script engine which runs Python programs on android devices:https://www.qpython.com/

QPython 是一个android app,里面集成了python运行时,大家可以通过这个app去开发一些python程序。

总结:

1, jvm语言:java/kotlin/scala/haskell/Ruby可以将代码转成jar,跟java语言互操作性较好

2,引入新的runtime:Dart/C#/F#/Ruby/Js/Lua在APP中内嵌一个runtime来执行自身代码,通过跟c/c++都可以互操作,然后进行bridge。

3,native:ocaml/c/c++直接编译成机器指令,被runtime通过jni类似机制调用

值得关注的就是各种语言及其对应的应用框架实现原理的共性:Dart/Flutter,Kotlin/AndroidX,dotnet/xamarin,Ruby/RubyMotion,JS/React Native

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值