作者EdisonX (卡卡兽)
站内Programming
标题[问题] 跨平台之 dll 制作
时间Thu Sep 12 00:11:21 2013
小弟最近手边新来的专案有跨平台需求,目前没完全决定要跨哪些平台,
有几个问题想请教。
[1] Java 到底可以跨哪些平台?
一份具有 GUI 设计之 Project
就我所知 Java 是可以跨 Windows, Linux, 但我不知道同一份 code
能不能编完 class 後也让 Andriod, ios 之 VM 也能正常执行 ?
如果要达成这需求,是否有公认 UI 移植性最高之 library 可用?
[2] 呼叫 dll 问题
假设一些较低阶、极需速度需求的动作 (如和硬体沟通),
一般在 windows 底下,会先用 C 写 dll 出来,而复杂 UI 部份交由较高阶之程式
语言处理 (如 C# / Java / BCB / MFC , call dll),回到上一个问题时,
"假设" Java UI 可跨 windows / linux / Andriod / ios ,那在底层部份该如何处理?
是 windows 底下写个 dll , linux 写个 .so 吗? 这样针对每个 os 不就
都要写一份动态连结?还是要速度快的话就只能这样搞了?还是这是个矛盾问题?
( 矛盾指的是,
要移植性,底层也用 java 完成,但 java 底层和硬体沟通部份也可跨平台吗?
要速度的话,底层就必须针对每个 os 开发一份动态连结?)
-------
问题述叙已尽可能清楚,但由於是最近才接触到的问题,有事先 google 过
部份资源,不过似乎还是没办法解决我的疑惑。
请有经验的版友给予一些意见,或一些 keyword ,非常感谢各位!
--
就算把新鲜的肝拿回去,还是一样写码到秃头,加班到天亮,
永远当老板的傀儡 你是不是想这麽做?
是的话你就拿回去~ 拿啊!!
九世宅男 : 下辈子不要再让我干工程师了 ~
< Kuso 星爷语录 >
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 123.195.168.230
※ EdisonX:转录至看板 java 09/12 00:15
1F:→ azureblaze:我听说java是write once, 36.229.173.226 09/12 00:43
2F:→ azureblaze:debug everywhere XD 36.229.173.226 09/12 00:43
3F:→ EShensh:你每个平台都要重新写底层的话… 125.230.131.86 09/12 01:53
4F:→ EShensh:用 Java 的意义在哪里? 125.230.131.86 09/12 01:53
5F:→ EShensh:然後,iOS 不支援 Java,所以直接Pass吧 125.230.131.86 09/12 01:54
6F:→ EShensh:要写真的写一份,全部平台能用的话 125.230.131.86 09/12 01:55
7F:→ EShensh:就是得受限在框架中(像Java VM) 125.230.131.86 09/12 01:55
8F:→ EShensh:又像 Flash 那样,他什麽平台浏览器都做好 125.230.131.86 09/12 01:56
9F:→ EShensh:你要能接触各平台底层,又要跨得多嘛…~"~ 125.230.131.86 09/12 01:56
10F:推 qrtt1:写 web app 吧220.130.128.164 09/12 09:36
11F:推 pttnews:不要VM 要快 坚持一code到底 有那麽神吗? 210.63.96.2 09/13 09:52
12F:→ EdisonX:底层和硬体沟通的动态函式库可能没办法避123.195.168.230 09/14 23:07
13F:→ EdisonX:免要多份 code,但 UI 不知道有没有机会...123.195.168.230 09/14 23:07
14F:→ EShensh:如果只是 UI 与基本操作,那麽选择还蛮多 114.41.83.78 09/16 05:14
15F:推 Bencrie:dll 跟 so 有冲突吗? 140.92.71.39 09/17 09:12
16F:推 soheadsome:js140.122.199.246 09/24 15:18