Blackberry 10 真的可以兼容 Android 和 iOS 的應用嗎?

這究竟是如何做到的?谷歌和蘋果同意嗎?

新聞鏈接:支持安卓iOS應用 黑莓BB10今發布-

官方文檔:Porting apps from iOS

You can port your Apple iOS apps to BlackBerry 10 using the the BlackBerry 10 Native SDK.

If your iOS app is written using Objective-C and uses many open source libraries, the Native SDK provides Native Core libraries to port your iOS app.]


對於 Android 應用

大部分 Android 應用可以經過簡單的轉置在 BB10 上使用(官方介紹頁面)。

之所以能用,是因為 BB10 (其實還有 Playbook )用了 Dalvik 虛擬機。

不止 BB10,N9(MeeGo)、iPad(IOS)也可以通過 Dalvik 虛擬機運行 Android 應用。

MeeGo 甚至有更殘暴的 OpenMobile"s ACL (Application Compatibility Layer)? 可用。

所以某種程度上來講 BB10 支持 Android 應用沒啥可驚訝的。

另外關於 Google 的態度,在這個鏈接中有段寫道:

What does Google think of its open source Dalvik engine being used on a non-Android device? "No comment" said RIM.

對於 iOS 應用

後續補充的第二個鏈接中的官方文檔說的其實是如何把自己的代碼從 iOS 遷移到 BB10 上來,這基本上已經是完全重新開發了,和簡單轉置運行 Android 應用完全不是一個級別的。

如果第二個鏈接這樣也算「可以運行」的話,那所有 APP 都可以算成是跨平台的了。

其它平台其實也存在這類文檔,個人認為這並不能簡單的稱作「可以運行」

例如:

  • iOS 2 WP 的 http://wp7mapping.interoperabilitybridges.com/library

  • Android 2 WP 的 http://wp7mapping.interoperabilitybridges.com/Home/Library?source=Android

其實這樣遷移的成本很高,和轉置存在很大區別,所以 Apple 那邊當然也就不會有什麼意見嘍。

專門吐槽兩句這博眼球的腦殘編輯:

標題里寫的是:

支持安卓 iOS 應用 黑莓 BB10 今發布

內容里寫的卻是:

黑莓BB10的最大亮點無疑是能簡單的將安卓/iOS應用移植到其平台上,目前有兩種說法,一種為安卓/iOS應用僅需進行簡單的簽名處理就可直接應用到黑莓BB10新機上,另一種說法則是需要開發者在進行軟體開發層面上的微調才能進行適配。

這你特么的好意思在標題里寫成是支持


許多年以前講到兼容,常常有一句話說什麼『二進位兼容』,實際上,所謂二進位兼容,是相對於『源碼兼容』而言的。

『二進位兼容』:編譯出來的應用能夠直接在另外一個平台跑。

『源碼兼容』:源代碼可以在新的平台中重新編譯(可能需要經過少量修改),然後生成新平台的應用。

BB10 說所謂可以兼容實際上指的是源碼級別的兼容,也就是說使用 android 的源代碼重新編譯為 BB10 應用,以及使用 iOS 軟體源代碼重新用 BB10 開發包編譯為 BB10 應用。

源碼兼容這事,在 Linux 中很常見,因為當年各種 Unix/BSD/Linux 之間的各種軟體,其實都只能算是源碼兼容的,一個軟體在不同平台上編譯,然後運行。

結論:BB10 號稱的兼容,從說法上沒有錯,但這僅僅對開發者而言,而這對普通用戶顯然會造成一些誤解。


Z10使用的是QNX,基於QNX上RIM搞了個AndroidPlayer,這是一個Android的運行時環境,可以認為是虛擬機,但是目前只支持到Android2.3以下的多數應用。類似的解決方案有前面有人提到的ACL,一個完整的Android運行環境。還有其他一些基於Linux的Android應用容器。都是搞了好幾年的了。

是時候更新一下了。BB10.2版本已經支持直接運行Android4.1的apps,就是效率不夠高,玩遊戲就別指望了。


BlackBerry 10 OS 10.2起已經可以直接安裝android apk,10.3起已經集成Amazon AppStore(為什麼是Amazon?因為這裡面不要求有Google框架),可以直接安裝使用android應用,兼容性方面……目前來看是有點慢啊,另外由於每個應用是一個獨立的虛擬機(猜測),彼此之間的通信問題還沒解決好,最直接的表現就是:

裝了Android版本的微信和飛機大戰結果完全無法開始遊戲!!!

至於iOS應用,之前有位Hacker大爺做出了初版的iOS player,後來就人間蒸發了,估計是被apple警告了。

新聞鏈接:http://www.thegadgetmasters.com/2013/07/28/blackberry-10-can-run-ios-apps-using-ios-app-player/


我用 Z10 設備來直接安裝 apk 效果還可以,畢竟是虛擬機,速度上肯定不如手邊的 Nexus4 快,但既然用了黑莓,能跑 apk 已經是很滿意了;微信微博都沒有問題,只是啟動會慢一些,當然也會更費電。


手裡的10升級到10.2.1.2102後支持android的apk安裝了,但嘗試安裝了幾個都卸載了,因為——UI很不兼容,而且在android機器上能顯示的功能,在黑莓10上莫名就是啟動不了。我的是Q10機器,屏幕是正方的,android應用的UI並沒有根據10的屏幕做任何優化,有時候連「後退」等按鈕都看不到,滾也滾不下去,十分捉急,最後只好刪之。

總之,技術層面可以說「支持」了,但實際應用起來體驗很差。


只有不用太多2.3以後的api的android應用,轉出來都沒啥問題。基於目前市場上4.0的android設備越來越多,blackberry應該會更新bb10中的虛擬機,可以支持android4.0的api


如果有,我說如果,那也是虛擬機。


除非使用虛擬機,否則支持ios應用就是個笑話。


推薦閱讀:

面試官看一個Android項目看的是什麼?
開發者在使用Andoid 6.0 新功能需要注意的地方有哪些?
Android 文字繪製與 DPI 、屏幕尺寸的關係?

TAG:iOS | Android | BlackBerryOS10 |