力抗Android 微軟WP、RT 考慮變免費

sturn-01 wrote:
Android運作效率不佳是因為Android程式是透過類似JVM的virtual machine在執行程式,多一層轉換,效率自然比較差。...(恕刪)


4核心的硬體已經掩蓋住這個致命的缺點....硬體進步速度比軟體快。
要是wp在 android單核心時就搶市場也不會落得現在這樣子。

單核心的android 手機實在真是超級鈍。

但是現在連紅米這種android 4核心低價手機都順暢得很沒有效率不佳的問題。
sturn-01 wrote:
Android運作效率不佳是因為Android程式是透過類似JVM的virtual machine在執行程式,多一層轉換,效率自然比較差。...(恕刪)


那個是「跨平台」的考量,

JAVA 的精神:
write once,run any where。(寫一次,在任何地方運行)

Android 的硬體平台太多了,處理器也都不一樣。

如果它不用 JVM 的方式,軟體作者可能寫一套程式軟體,換個硬體就無法運行了。

天底下那麼多的硬體裝置,根本不可能針對每一種硬體去特地開發對應的軟體。


iOS 的硬體是僅此一家,別無分號,只有蘋果出的機子可以跑,所以它不用在乎跨平台性。

Windows Phone、WIN RT 印象中是用 .net 寫程式的,.net 就是抄 JVM 那個架構的東西,一樣是虛擬機器的。說穿也是多一層轉換。


誠如樓上網友說的,多一層轉換的效能問題,靠硬體就可以解決。4核、8核的,處理器愈來愈快,幾乎沒差別了。


此外這種 JVM 物件導向的寫軟體方式,也可以使軟體開發更容易。

Android 甚至有一種開發工具,只要滑鼠拉一拉,就可以"做出"軟體,一行程式碼也不必寫。這就是為何 Google Play 上垃圾軟體那麼多的原因.....

fedora wrote:
Windows Phone、WIN RT 印象中是用 .net 寫程式的,.net 就是抄 JVM 那個架構的東西,一樣是虛擬機器的。說穿也是多一層轉換。


.NET Framework不是虛擬機器,也不是JVM架構。
.NET程式最後是compile成native code執行,runtime是負責管理執行環境和提供library。
Win RT也不是.NET專用。Windows Runtime是純native code、繼Win32 API之後一組全新的COM API。取材自C++/CLI的語法,VC compiler會自動產生COM物件對應的程式碼,和.NET Framework完全無關。

fedora wrote:
Android 甚至有一種開發工具,只要滑鼠拉一拉,就可以"做出"軟體,一行程式碼也不必寫。這就是為何 Google Play 上垃圾軟體那麼多的原因........(恕刪)

雖然無關主題,但這感覺是初學者研究用的好幫手,可以分享一下嗎?
謝謝!
riklin wrote:
但是現在連紅米這種android 4核心低價手機都順暢得很沒有效率不佳的問題。...(恕刪)


程式執行的效率高低是跟其它軟體架構比,而不是說硬體效能愈來愈高,就說沒有效率不佳的問題。
riklin wrote:
硬體進步速度比軟體快。...(恕刪)


不同的東西比進步速度實在不太恰當,如果你是說硬體效能夠讓軟體順跑的話,其實這也不一定,像是很多電影CG的畫面表現要讓目前的顯示卡即時運算運用在遊戲上的話,以現在一般的硬體而言,硬體效能是遠遠不足的。

惡魔推銷員 wrote:
雖然無關主題,但這感覺是初學者研究用的好幫手,可以分享一下嗎?..(恕刪)


開發工具名稱:App Inventor





它是完全圖形化、物件導向 的開發軟體,包括:GUI 界面的設計,插入感應器觸發條件、甚至 if 判斷式、loop 迴圈之類的也都是用拼圖的方式。

有中文的電腦教學書,我在書局有看過。
整本都是圖片,沒有一行程式碼....

不過我沒用過,不知好不好用。


用這個來做超連結的軟體,應該不用幾分鐘就能生產出來。很多那種垃圾軟體 APP,運行後只不過是打開瀏覽器連到某個網址。不然後就是顯示幾張圖片,幾篇小說什麼的,那種垃圾軟體超多,大概都是用這個做的。
微軟一直是敗給他自己,可能是一朝不如一朝;
藥方是不要打仗,保持元氣,只開發最先端技術,
靜待G公司或A公司沒落再伺機而動.....
sigh
freaky_jon wrote:
.NET程式最後是compile成native code執行,runtime是負責管理執行環境和提供library。...(恕刪)


也許官方或書本都講的很好聽,為了建立使用者的信心

但如果它是編譯成原生的機械碼,那為何需要 runtime 執行環境

難道你從未懷疑過這一點嗎?


JAVA 從來不會去掩飾它須要 JVM 執行環境的事實

雖說經過一層轉換肯定會減速,但好處大的多,這樣才有可能實現跨平台。

而且 JAVA 歷來年改版,JVM 運行速度也愈來愈快。經過虛擬機器會很卡,那已經是早期 N年前的古老觀感了。


Android 早期硬體貧弱時會卡,主要是因為它一開始就採用多工架構,JVM 那個是其次並不是主要原因。

iOS 一開始是設計只能單工運作的(同一時間只能有一個軟體 APP 運作),這給了它早期速度上的優勢。

但隨著 iOS 一直改版,最終它也走向多工的路了。現在這時代,3C 裝置同時只能運作一個軟體,像話嗎。

舊款 iPhone、iPAD,有人刷新版的 iOS,變超卡,就是因為架構改成多工的原因,舊機器處理器太慢、RAM 太小,規格跑不了。


******************************************************

WIN RT 的話,就算它免費,但它不開源,那就沒人能夠製作第三方 ROM 。最終仍是得被微軟吃死。

不像以 Linux 為核心的 Android,是開源的,只要有能力的人,人人都可以製作 ROM。

這就是為何 Android 的 ROM 亂七八糟的原因,但反過來說也是大放異彩,選擇多,讓使用者隨高興去刷機。

除了原生的 ROM,還有 小米 MIUI、樂蛙、阿里雲.....一大堆。

同一台機子,這個 ROM 覺得不好用,大可刷另一個。選擇多多,更新也沒煩惱。


fedora wrote:
也許官方或書本都講的很好聽,為了建立使用者的信心

但如果它是編譯成原生的機械碼,那為何需要 runtime 執行環境

難道你從未懷疑過這一點嗎?


你可以試著拿個.net disassembler+WinDbg trace看看,一切就一目瞭然了。有懷疑是好事,但是不去驗證心中所想憑空推論無助於釐清事實。
.NET code又稱managed code,因為程式執行環境受到.NET runtime的管理,可以達到安全及跨語言的支援。

文章分享
評分
評分
複製連結

今日熱門文章 網友點擊推薦!