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