作者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
→ azureblaze:我聽說java是write once, 36.229.173.226 09/12 00:43
→ azureblaze:debug everywhere XD 36.229.173.226 09/12 00:43
→ EShensh:你每個平台都要重新寫底層的話… 125.230.131.86 09/12 01:53
→ EShensh:用 Java 的意義在哪裡? 125.230.131.86 09/12 01:53
→ EShensh:然後,iOS 不支援 Java,所以直接Pass吧 125.230.131.86 09/12 01:54
→ EShensh:要寫真的寫一份,全部平台能用的話 125.230.131.86 09/12 01:55
→ EShensh:就是得受限在框架中(像Java VM) 125.230.131.86 09/12 01:55
→ EShensh:又像 Flash 那樣,他什麼平台瀏覽器都做好 125.230.131.86 09/12 01:56
→ EShensh:你要能接觸各平台底層,又要跨得多嘛…~"~ 125.230.131.86 09/12 01:56
推 qrtt1:寫 web app 吧220.130.128.164 09/12 09:36
推 pttnews:不要VM 要快 堅持一code到底 有那麼神嗎? 210.63.96.2 09/13 09:52
→ EdisonX:底層和硬體溝通的動態函式庫可能沒辦法避123.195.168.230 09/14 23:07
→ EdisonX:免要多份 code,但 UI 不知道有沒有機會...123.195.168.230 09/14 23:07
→ EShensh:如果只是 UI 與基本操作,那麼選擇還蠻多 114.41.83.78 09/16 05:14
推 Bencrie:dll 跟 so 有衝突嗎? 140.92.71.39 09/17 09:12
推 soheadsome:js140.122.199.246 09/24 15:18