MIUI 8 的「應用分身」、「手機分身」分別是如何實現的?

MIUI 8 新特性

--------------------

原題為「MIUI8雙系統是怎麼實現的?」,但官方主頁中不存在「雙系統」的說法,只有「應用分身」和「手機分身」。


謝邀!

小米昨天發布了MIUI8沒多久,就有一些LBE的老用戶問我,應用分身的功能,跟你們之前上線的LBE平行空間雙開應用是不是一樣的原理,是不是用了LBE的技術?MIUI8是怎麼實現的?作為LBE平行空間的攻城獅,在這裡回復下。

首先,MIUI8應用分身、手機分身背後的技術並不是LBE提供的。當然小米與LBE的合作一直比較多,應用許可權管理一直採用的就是LBE的定製方案。這次更新的MIUI8中,還增加了新的技術合作,比如MIUI8支持鏈式啟動管理,禁止應用互相調起的「葫蘆娃」行為,這個功能用的就是LBE提供的數據。

據了解,小米是集成了國外一個OS虛擬化解決方案。沒錯,你看到了「虛擬化」的技術關鍵詞。LBE平行空間背後的技術也是虛擬化技術引擎,我們內部代號是MultiDroid,當然我們的產品上架比MIUI8要早幾個月。虛擬化可以在不同的軟體層實現。MIUI作為一個手機ROM,極有可能是在OS層實現的虛擬化技術,需要通過修改Android Framework以及OS的源碼。這個虛擬化的實現,與系統的耦合性很大,它比較依賴MIUI的定製系統,不能在其他Android版本上運行。

與MIUI8不同,LBE平行空間不是在操作系統層實現的,而是在應用層上實現的。它與OS的邊界清晰,不依賴於特定的ROM。LBE平行空間兼容所有主流的Android版本,所有主流的國內外安卓手機,支持雙開幾乎所有的安卓應用。

(關於LBE平行空間的技術實現原理,請看我之前發的帖子:

發現一個支持微信雙開的安卓應用(LBE平行空間)想知道這個技術是如何實現的?能否成為新移動入口級產品? - 方振宇的回答)

還有朋友認為,MIUI8就是採用了原生Android多用戶的機制,我認為並非僅限於此。多用戶機制也可以實現所謂分身的功能,但對用戶來說,使用體驗相對較差。為了雙開微信,還需要切換不同用戶,使用繁瑣,不能同時即時收到兩個微信的消息等等。限於目前披露的技術細節並不多,也不好過多妄加猜測,等後續上手實際體驗和研究了再說。

最後給大家出個題,小米手機分身x應用分身xLBE平行空間,一部手機可以同時登錄幾個微信?


手機分身小米在兩年前已經在探索,雙系統在很早以前就實現並用在幾乎所有機型上,只是用戶沒有太多感知。

小米的手機分身是基於Android多用戶開發的,小米在Android多用戶的基礎上底層做了數據分和進程分離和很高強度的安全加固,保證了手機分身和主用戶之間的高度安全隔離,同時在交互設計上又做了很多細節優化,這樣主用戶和分身用戶的使用過程中就沒有原生系統的割裂感.

手機分身因為要說的內容太多了,有空再補充吧.

然後說說應用分身。

MIUI8的應用分身,一個工程師,從調研到實現原型用了一個月,完成了雛形。

然後加入兩個小夥伴,又用了一個多月,實現了產品化。

目前還有5%尚待完善和探索。

不是LBE類似的虛擬化技術,也不是Graphite Software 提供的「Secure Spaces」。

開發過程是有趣並輕鬆的(當然碰到難題也經常熬到凌晨一兩點),因為可以合理的擴展和修改系統底層,所以我們實現要比LBE類似的虛擬化成本要低,分身應用運行效率要高,用戶體驗要好。

但是並不是100%完美,是的,我承認。

因為有很多三方應用調用介面不標準和Android AOSP原生邏輯bug。這些問題需要發現、解決、迭代,需要可愛的小米用戶和我們繼續優化和改進。

等大家用上了MIUI8,意見和建議報給我,掌聲留給MIUI。

應米粉要求先貼幾個應用分身的圖吧:

是的,不是僅僅的微信雙開,我們支持幾乎所有應用的雙開運行:

在桌面上還挺壯觀的:

最近任務對於雙開應用區分的很清楚:

隨意選擇雙開的微信、微博、QQ進行登陸和支付:

先這麼多,有空再貼更多細節。


看發布會的時候就料到,會有大神掏出原生倒騰出一堆神器或者訪客模式來實現所謂雙系統。以此證明miui並非首創。

但UI的存在意義,就是利用安卓的開放性把深層功能用清晰的方式交給使用者,為少搞機的大眾提供便利,這已具有開創性。在這個層面上,Miui這次有誠意。


上面一群訪客模式的,我印象中miui v5就有訪客模式了,要真是訪客模式,也是人家miui先出的,更何況不是訪客模式,別給自己臉上貼金了,論原理得票第一的人已經講的很清楚了,還訪客訪客的,你是強行秀嗎


重新算了一下,上了MIUI8一部手機可以開24個QQ!

(QQ+國際版QQ+日本版QQ+雙開QQ+雙開國際版QQ+雙開日本版QQ)*2分身*2系統分身=24個QQ

即:

QQ,分身QQ,雙開QQ,雙開分身QQ+

系統分身QQ,系統分身分身QQ,系統分身雙開QQ,系統分身雙開分身QQ+

國際版QQ,分身國際版QQ,雙開國際版QQ,雙開分身國際版QQ+

系統分身國際版QQ,系統分身分身國際版QQ,系統分身雙開國際版QQ,系統分身雙開分身國際版QQ+

日本版QQ,分身日本版QQ,雙開日本版QQ,雙開分身日本版QQ+

系統分身日本版QQ,系統分身分身日本版QQ,系統分身雙開日本版QQ,系統分身雙開分身日本版QQ!

簡直無敵

這感覺想想就爽透了…


非正經Android開發者……其實窩覺得MIUI真的想做到NB的話,直接做出個/data/data2得了,然後副系統(UI)用這個作為應用數據存儲區,安裝應用時公用/data/app區,然後可以選擇在每個UI里要顯示的app,卸載時需要手勢確認是否真的卸載……至於切換時,休眠原賬戶內的所有非核心進程,不佔內存,多好~說不定還能加一個功能,讓不需要第二賬戶的用戶把/data/data2作為備份區……_(:з」∠)_


MIUI 8系統集成了加拿大移動技術公司 Graphite Software 提供的「Secure Spaces」虛擬手機解決方案,實現小米手機的成功分身。


這個難道不是安卓版的虛擬機模式,明顯就不是訪客模式啊。

老實說,我覺得這個對我這種搞機黨非常好。

主系統我打算就是裝些及時通訊類QQ微信,和學習類WPS,背單詞的小應用。

副系統就是裝那些遊戲王者榮耀爐石傳說,以及淘寶搜狐視頻類的。把副系統用到卡為止,然後哈哈哈哈哈一鍵通通刪光。我的安卓機又變得流暢了。

紅米Note3全網通16g用戶。


講個笑話。

話說有一天大家發明了一個四方形的輪子

蘋果發布了四方輪子 蘋果:我們今天定義了輪胎 i-輪胎,果粉:買買買,take my money

其他粉絲:這好牛逼

華為發布了四方輪子 華為:這是我們與法拉利合作共同開發,速度比蘋果多百分之一百

花粉:好牛逼秒殺蘋果 其他粉絲:怎麼你曲軸怎麼細還用的上代產品

魅族發布了四方輪子 魅族:今天我們發明了一個M-輪子 是我們與xx獨立開發專門定製

煤油:牛逼牛逼牛逼 其他粉絲:這明明是別人發明了,你看我也可以用還比你便宜

小米發布了四方輪子 小米:我們今天發布了一款輪子,與其他家對比我們只要999隻有別人四分之一的價格 米粉:又傻逼了這麼差得設計(結果買買買) 其他粉絲:你看你外面黑色內部白色是抄襲原型輪子的,你看你用橡膠是抄襲蘋果的,你看你用橡膠沒有我金屬好

小米卒(圖片借用李季羽微博)


測試環境:Nexus 5X CM13 6.0.1

待測的APP:

雙開助手(版本2.0.13)

LBE平行空間(版本1.0.3124)

克隆大師(版本1.42)

LBE平行空間有一個國際版,沒測。

實際上這些雙開,就是 ClassLoader.....

首先測試互相雙開,然後再測雙開裡面再雙開。

(一)互相雙開

LBE平行空間可以成功雙開雙開助手和克隆大師。

克隆大師可以雙開雙開助手和LBE平行空間。

雙開助手也可以成功雙開LBE平行空間和克隆大師。

結論:三個雙開APP互相雙開沒任何問題。

那麼在已經克隆(雙開)的APP裡面,還能再雙開嗎?

(二)雙開中再雙開

LBE平行空間裡面雙開的克隆大師不能雙開雙開助手(提示程序包無法解析)

克隆大師中複製的LBE平行空間裡面再開克隆大師,沒法啟動(卡在Splash Screen)

克隆大師複製的雙開助手裡面再開一個克隆大師 (沒問題,正常)

雙開助手中雙開的平行空間可以雙開平行空間,沒有任何問題。

平行空間和雙開助手都能雙開克隆大師,但是雙開的克隆大師數據繼承了原本克隆的應用的數據,所以不算雙開。


很早我就希望能有雙系統,沒有手機出的時候我就這麼想了,後來看電視廣告有手機真出了,當時我就震驚了!跟我的想法不謀而合!果然是個偉大的公司!這個手機就是————

8848!


新學了一句繞口令:雙開助手可以雙開雙開助手嗎?



我只是想知道這樣是不是兩個系統每個系統兩個程序所以就能同時推送四個廣告。可怕可怕。


用的應該是加拿大軟體公司Graphite Software的Secure Spaces技術,以下是官網截圖


不期望更多新奇功能,只希望有一天miui能去廣告化


不怎麼用的軟體再也不用糾結刪還是不刪,終於可以愉快的下一堆軟體備用。


安卓原生支持多用戶…


看了半天沒看懂 大家討論的到底是應用雙開還是系統共存啊


不得不說小米炒作的能力真的很強,比鎚子還厲害。硬體能炒作屏幕能炒作不鏽鋼邊框能炒作黑科技;口碑能炒作新國貨;軟體能把別人一堆都支持的功能拿出來炒作。

都說了,不知道它的是訪客模式還是真雙系統;如果是訪客模式,那支持的品牌不少;如果是雙系統,2014年華為的mate7發布的時候就推出了好嗎?

不過雙系統的emui並不是作為穩定版全體推送的,而是提供給需要的用戶下載的。


推薦閱讀:

MIUI 有什麼讓你使用最不爽的地方?
為什麼MIUI 7不使用Android 5.X?
到底什麼人會認為miui比原生安卓好用?這些人用過1年以上的原生安卓嗎?
橫豎屏切換時候 activity 的生命周期?
國內ROM哪些功能是原生Android不解鎖、Root做不到的?

TAG:小米科技 | 編程 | 米柚MIUI | Android | MIUI8 |