綁定帳號登入

Android 台灣中文網

打印 上一主題 下一主題

[其他] X86如何解決Android應用兼容性問題?

[複製連結] 查看: 905|回覆: 2|好評: 2
跳轉到指定樓層
樓主
aas54432 | 收聽TA | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
發表於 2013-4-15 05:52

馬上加入Android 台灣中文網,立即免費下載應用遊戲。

您需要 登錄 才可以下載或查看,沒有帳號?註冊

x
前幾日拿到聯想K900,這款機器無論是硬件還是軟件都十分不錯,工業設計也很強。但很多網友仍然關心一個問題,X86的應用兼容性怎麼樣?在他們看來,兼容性很大程度上影響他們是否購買這款機器。

經過測試,X86的應用兼容性已經做的十分完善,英特爾此前宣布可達95%的兼容性不假,大家大可放下心裡包袱。不過英特爾是如何做到的,這背後的原因很多人並不知道。恰好在IDF上,筆者遇到了一位英特爾軟件部門工程師,他通俗的講述了其中的原因。

其實問題主要出在指令集上,X86使用的是SSE指令集,而ARM是用的NEON指令集,兩者差異導致了應用不兼容。不過好在Android的大部分應用運行在Dalvik虛擬機之上,並不依賴CPU架構,因此這些應用可以很好地跑在X86上。

支持Dalvik的程序佔據大多數,但仍然會有一些應用繞過Dalvik。比如需要更高的性能或者需要硬件的支持的時候,前者通常是大型遊戲,後者則是結合了感應器或者電源管理等硬件相關的應用。Angry Bird兩者都不佔,所以可以兼容,賽車遊戲兩者都需要,所以大多不兼容。

這些稍顯複雜的應用數量並不低,且用戶需求強烈。為了快速解決這些問題,英特爾試圖通過技術去完善,開發了一種轉換技術“Houdini”。“Houdini”相當於一個中間層,可以讓原本不兼容的應用跑在X86上。但這種強行結合的技術運行起來往往效率不高,容易出問題,且會增加2%左右的耗電。

從源頭解決問題顯然是更好的辦法,儘管速度會慢一下。自從英特爾和Android合作之後,英特爾就提供了X86的NDK。開發者只需在應用中支持這個NDK,應用在提交時會自動生成2個App,設備在下載時會根據自己的架構下載合適的App。這種方法並不難,效果也最好,難的是如何讓眾多開發商甘願合作。所以英特爾以及手機廠商會去和應用廠商挨個合作,督促其支持X86的NDK。

現在已經有很多大型遊戲支持X86架構,包括極品飛車、Epic Citadel 等。用戶大可不必擔心,因兼容性引起的影響已經十分微小了。

況且用戶日常使用最頻繁的恰恰是那些十分簡單、無需重新適配的應用。由於Android使用虛擬機,應用性能常遭人詬病,但是這樣做的好處是,應用可以輕鬆跨平台運行。如果沒有這個,那對英特爾來說將是災難性的,從這點來看,英特爾還是十分幸運的。

「用Android 就來APK.TW」,快來加入粉絲吧!
Android 台灣中文網(APK.TW)

評分

參與人數 5碎鑽 +7 幫助 +13 收起 理由
9816 + 3 + 5 讚一個!
giza + 1 偶像,看完你的內容,讓我找到了活著的意義.
99141083yang + 1 + 1 非常讚
darren0937 + 1 好內容。朕有賞,還不謝主隆恩.
magkono + 3 + 5 很重要的重點:跨平台運行兼容性.

查看全部評分

收藏收藏 分享分享 分享專題
用Android 就來Android 台灣中文網(https://apk.tw)
回覆

使用道具 舉報

沙發
gigaboy77 | 收聽TA | 只看該作者
發表於 2013-4-15 08:50
可達95%兼容性
這樣的話使用Intel處理器的Android手機
可能還是有小小程式不相榮的潛在風險
可惜了Intel處理器的性能強大

評分

參與人數 1經驗 +1 幫助 +5 收起 理由
aas54432 + 1 + 5 很給力!

查看全部評分

用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

板凳
gdemon | 收聽TA | 只看該作者
發表於 2013-4-15 14:14
簡單的說……dalvik本來就有x86版的virtual machine,上面跑的是java,所以剛好跟平台

但用到ndk的就需要recompile了....

評分

參與人數 1經驗 +1 幫助 +5 收起 理由
aas54432 + 1 + 5 很給力!

查看全部評分

用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則