1
tyzandhr 132 天前 1
因为谷歌选择了 jvm 平台而已。
|
2
Belmode 132 天前 via Android
因为 Android 上没有对应的 php 运行时和 php 基础库的支持。
你要愿意,可以用 android 的 so 库实现 php 运行时,开发一个能跑 php 的 app ,在 app 内借助 java Bridge ,来渲染 activity ,来套娃开发页面,也是可以的。 类似 autojs 的独立 Ui 模式,它就是用的 js Bridge 。 本质上可以,但是没有意义,花活而已。 |
3
pi7m1Dr691wfl95q 132 天前
小型系统才是 java 的本家好吧。
Wiki 一下就有了: Java 是一种广泛使用的计算机编程语言,拥有跨平台、面向对象、泛型编程的特性,广泛应用于企业级 Web 应用开发和移动应用开发。 任职于 Sun 微系统的詹姆斯·高斯林等人于 1990 年代初开发 Java 语言的雏形,最初被命名为 Oak ,目标设置在家用电器等小型系统的编程语言,应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun 微系统放弃了该项计划。随着 1990 年代互联网的发展,Sun 微系统看见 Oak 在互联网上应用的前景,于是改造了 Oak ,于 1995 年 5 月以 Java 的名称正式发布。Java 伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。 |
4
msg7086 132 天前
Did you mean https://github.com/jphp-group/jphp-android
|
5
songpengf117 132 天前 via iPhone
所谓的后端语言指的是 web 开发框架中后端 API 的开发语言,开发 Android 客户端的 Java 不再是后端语言,此时的 Java 更多的时候指的是前端 UI 开发
|
6
iminto 132 天前 via Android
因为 PHP 社区太差,成天吹牛逼,互相吹捧。看国内这一帮什么某哥,某神,什么开发者大会上一顿输出就知道了。
10 年前,安卓 2.3 年代倒是真有个 php4android 项目,昙花一现。 |
7
skuuhui 132 天前
可以啊,为啥不可以,java 也不是直接运行呀,你自己实现一个把 php 编译成 class 字节码就行了。
|
8
yKXSkKoR8I1RcxaS 132 天前
B/S 语言和 C/S 语言各有各的领域,PHP 就是为了 B/S 而生,为什么要拿去搞 C/S?
|
9
yKXSkKoR8I1RcxaS 132 天前
可以搞,但没必要。在 C/S 领域太多优秀的语言了,PHP 还是老老实实在 B/S 深耕比较好,不然又要招惹很多骂名,说 PHP 不自量力吹牛逼。
|
10
sagaxu 132 天前
告诉他,技术上的选择甚至人生选择,并不是简单的能不能的问题
|
11
error451 132 天前
缺乏完整成熟的解决方案。
PHP 的定位的就是处理 http 的,官网的标题就是:PHP:Hypertext Preprocessor 所以 PHP 围绕 web 相关的成熟解决方案非常多, 但是适合于嵌入式开发的解决方案几乎没有。 当然,理论上 PHP 也可以做嵌入式开发, 但是这种话毫无意义,因为需要有大量的工作去做,没有人会这么自虐。 这就好比,理论上单纯用 0/1 可以编写出世界上任何一个程序, 但是谁脑子坏了会去这么干?? |
12
woodfizky 132 天前 3
你把语言理解成铁路轨距标准、车厢标准等,每种语言都有不同的特性,适用于不同的场景。
第一,没有最好的标准,只有最适合的; 第二,铺轨道是要代价的,很大的代价; 第三,基于第二点,谁先去铺了轨道,后面的人大概率是不会去改它的,而是反过来去适应它。 谷歌已经花代价把轨道铺好了,那你想再用另一个轨距标准在同一片土地上铺不同的轨道嘛? 除非你的轨道标准提升的生产力/效率能够降维打击前者,就像现在的高铁比普通铁路的优势,否则没必要新铺。 |
13
ala2008 132 天前
php 有啥优势先,java 开发者应该是最多的吧。。
|
14
coderzhangsan 132 天前
楼上都已经说的很清楚了,php 自诞生之日起,就是锚定 web 市场的,你现在让它做除了 web 之外的事,太难为她了,就比如现在有的 php 开发者搞的那些框架和库,要做 tcp/udp 服务器,物联网什么的,我都不知道他们脑子里装的是什么,暂且不说市面上有那么多合适和成熟的语言可以做这些事,一个动态脚本语言做这些事有什么意义呢!
现在有些人的思维是一门语言承担所有业务,那还要其他语言干什么呢?合适的时间用合适的工具做合适的事,做对的事比把事情做对更重要。 |
15
meshell 132 天前
看下这个吧,https://nativephp.com/
|
16
shadowyue 132 天前
语言还分后端、客户端吗?我觉得只是看对应平台支不支持罢了
|
17
sujin190 132 天前
没啥不可以,只不过没现成的 Android GUI 适配基础库呗,你可以去做下适配那不就可以写了,Android 的窗口管理、绘图和消息事件都可以越过 java 写的 framework 直接调 native 库,写个 php c 扩展适配下就可以写 Android 客户端了啊,所以不存在不可以的情况吧,只不过好像用处不大,毕竟越过 framework 毕竟不方便而且 php 也没这生态啊
|
19
qcbf111 132 天前
没人做而已,任何语言都可以支持,其实不仅仅是 java ,就算彻底脱离 java ,也有像 flutter 现在有很多 APP 了,c#也有王者荣耀原神这些游戏,通过自己调用图形 api 的方式自己渲染来开发 Android 。
|
20
lisxour 132 天前
不是不可以,而是没人搞
|
21
fkdtz 132 天前
本质上来说无论用什么语言编写的程序,最终都可以编译成二进制可执行文件并在设备上运行,我认为从技术上来讲并不存在只有哪个语言可以做,哪个语言不可以做的情况。
之所以选择用 Java 开发 Android 是因为 Java 在端上运行有一些其他语言不具备的优势,最主要的就是有 JVM 的存在,Java 以“一次编写到处运行”而著称,这个特性在小型终端场景的优势尤其明显,可以让应用层开发可以尽量少的关注底层设备的差异,毕竟 Android 设备的型号架构可能千差万别,甚至于说最初 Android 是给数码相机开发的操作系统你敢信? |
22
zjsxwc 132 天前
php 没有多线程,早期安卓给的权限高,你客户端基于事件的 GUI 交互,php 就不合适。
现在权限收拢,js 也适合做安卓 GUI 客户端。 所有没多线程但有浏览器支持的 js ,更合适做 GUI 客户端,那么如果有浏览器支持、没多线程的 php 也能适合做 GUI 客户端,比如 PHP WASM,把 php 编译到 wasm ,然后浏览器里运行 php 脚本,于是 php 前后端代码也同构了。 |
23
me1onsoda 132 天前
语言从来就没有限定它是后端还是前端。以前好多功能机小游戏开屏就是 Java logo
|
24
janus77 132 天前
第一因为谷歌给他做了个定制的 JVM 虚拟机
第二,安卓原生的代码都是编译成字节码的,性能比 php 这种脚本语言高很多,还有成熟的和 C++交互的方案,这尤其对于图形界面等性能敏感场景非常重要 |
25
crocoBaby 132 天前
理论上所有编程语言可以做所有开发,但是前提是有人用爱发电去做编译配套
|
26
brando 132 天前
PHP 可以开发,但没优势,性能,成本等摆在那的。开发总要考虑经济成本的,后续可持续性等等,所以 PHP 一般适合 WEB 脚本。
|
27
815979670 132 天前
我之前学 php 的时候老师举过一个例子,用 php 开发客户端软件就是用屎盆子吃饭,从原理上说是可以这样用的,但没有人会这样用
|
28
kid1412621 132 天前 via iPhone
别说 GUI 了,CLI 都没怎么看到过
|
29
cexll 132 天前
语言只是语法 就如同方言,得看有人底层开发了什么,有人用 c 写了客户端 只支持 java 那你就只能用 java 写,永远都是底层要求什么,然后你使用什么语言
|
30
mightybruce 132 天前
因为 Android 的虚拟机 DVM(Dalvik VM) 让 java 成为了主要语言, 但是关键要求性能的开发已经不用 java, 都用 c++ 和 rust 来做,比如字节就招 rust 做安卓开发。
PHP 本身能做客户端,但是没有任何优势, 比 PHP 好点的 react-native 还不是很多人用来做客户端。 |
31
cheng6563 132 天前
Java 一开始是可以在浏览器上跑的,并不是什么后端语言...
|
32
kalman03 132 天前
什么是后端语言,什么是前端语言? JSP 算前端语言吗? Swing 呢?基于 Java Applet 运行的呢?
很明显,职能分的太细了!真正的全栈已经越来越少了。 |
33
resetsix 132 天前 via Android
主要有以下原因
1. 语言设计目的: - Java:最初设计为通用编程语言,可用于服务器端、桌面应用和嵌入式系统。 - PHP:主要设计用于服务器端 Web 开发。 2. 执行环境: - Java:可以编译成字节码,在 Java 虚拟机( JVM )上运行。Android 使用一种特殊的 JVM 叫做 Dalvik/ART 。 - PHP:通常在服务器上解释执行,不直接在客户端设备上运行。 3. 移动平台支持: - Java:Android 选择 Java 作为其主要开发语言,提供了完整的 Android SDK 。 - PHP:没有专门为移动平台设计的运行时环境。 4. 性能考虑: - Java:编译后的字节码执行效率较高,适合资源受限的移动设备。 - PHP:作为解释型语言,在移动设备上可能会面临性能问题。 5. API 和库支持: - Java:Android 提供了大量 Java API 来访问设备功能(如相机、传感器等)。 - PHP:缺乏访问移动设备硬件和系统功能的原生 API 。 6. 开发工具链: - Java:有成熟的 IDE 和工具链支持 Android 开发(如 Android Studio )。 - PHP:开发工具主要针对 Web 开发,不适用于移动应用开发。 7. 编译 vs 解释: - Java:可以预先编译,生成可直接在 Android 设备上运行的 APK 。 - PHP:通常需要服务器环境来解释执行,不适合打包成独立应用。 总结,Java 之所以可以用于 Android 开发,主要是因为 Android 平台的设计决策和 Java 语言的特性非常匹配,而 PHP 的设计初衷和特性更适合服务器端 Web 开发。收工 |
34
kokerkov 131 天前
因为之前从 Nokia 功能机时代以来,java 一直是手机端的开发语言。这样转换对程序员来说比较容易?我猜的。要知道安卓起步阶段市场上也有其他操作系统比如 win 、S60 之类的。
|
35
cnzjl 131 天前
整一个 pvm:php on Jvm !
|