作者realmeat (真肉)
看板java
标题Re: [问题] 跨平台之 dll 制作
时间Thu Sep 12 03:17:56 2013
※ 引述《PsMonkey (痞子军团团长)》之铭言:
: ※ 引述《EdisonX (卡卡兽)》之铭言:
: : 作者: EdisonX (卡卡兽) 站内: Programming
: : 标题: [问题] 跨平台之 dll 制作
: : 时间: Thu Sep 12 00:11:21 2013
: : 小弟最近手边新来的专案有跨平台需求,目前没完全决定要跨哪些平台,
: : 有几个问题想请教。
: : [1] Java 到底可以跨哪些平台?
: : 一份具有 GUI 设计之 Project
: : 就我所知 Java 是可以跨 Windows, Linux, 但我不知道同一份 code
: : 能不能编完 class 後也让 Andriod, ios 之 VM 也能正常执行 ?
: : 如果要达成这需求,是否有公认 UI 移植性最高之 library 可用?
: 首先,用 Java「语法」写,未必就能在 JVM 上头跑
: 经典例子是 GWT(compile 完之後是在 browser 上跑)
: Andorid 是不是如此(或着说 .class 能不能直接拿到 Android 上头用)
: 我没碰过不确定
: 用更简单的说法,Java 的那句口号「Write once, run/debug any where」
: 这个「where」必须是有 JVM 的机器
: 如果有人替 ios 写 ios 版的 JVM,那这个问题的答案就是「是」
: 当然你要 debug 多久才能正常 run 就......
: 至於... 你想要写一个「application」
: 同时能应付 desktop,还有 ios / Android
: 也许 Unity 办得到(非常不负责任地不确定 XD)
: 不然就是假 application 真 web,套 responsive design 之类的鬼
: 我到是觉得 business logic 能只要写一份
: view 依照各个环境重新写,能接的起来就阿弥陀佛了
: ====
: 有错误还请各方大德指正 Orz
有两方面的事, dll是微软os上用的
我知道原作者想表达的动态函式库
dll这种东西是c++在windows上才用的, 标题总会让我有点混乱 (题外话
c/c++在某些方面其实很死, 不同os没办法跨,
不过写c/c++的人也不是省油的灯, 这点小事根本不是问题
一套code内拆了相当多的#ifdef #endif 再pre-compile时期就会做到不同
也就是compile的第一个阶段建出object档就必须决定好是那一份os
或是在那一种硬体环境下,
细节的设定其实很多, 有兴趣可以自己去摸索,
简单说起来就是, c/c++跨平台能是你要知道各平台如何实作并实作
而且必须编出那个环境的binary 才能使用
所以为原Po 最後一个问题的回应是确实就是如此,
就不同平台就都要搞一次,
我这种跨平台搞到都已经麻痹了
JAVA很爽, 没这问题, 因为下面的事别人都帮你做好了
.class档可以搬去不同的环境下是绝对可行
不过要在两边的jvm版本要是相近的才可以
java是很爽没错但是.class要反组译的难度也相对下降
至於说要web application server的project能否直接搬进mobile上
还是取决在两端的jvm差异性
就算你成功搬了过去, 也只是变成...用mobile当base的web applicatoin server
不幸的消息是android上的并不是jvm而应该是 Dalvik vm
i/o跟基础api也不是完全相同的一件事 (烟
--
还在过美国时间, 就当我在胡言乱语好了
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.231.87.52
※ 编辑: realmeat 来自: 61.231.87.52 (09/12 03:43)
1F:→ EdisonX:.dll / .so 看来是避不开多重实作就是了,谢谢 :D 09/14 23:04