序:
上邊提的雙系統,是指在乙個手機內,同時執行兩個作業系統,並支援自由切換。對於這兩個作業系統,暫且稱為生活系統和工作系統。這和乙個手機內安裝兩種作業系統是有區別的,主要表現在是否快速切換上。
雙系統面臨的問題總體分為硬體和軟體。從硬體上來說,記憶體ram應該足夠大,以同時執行兩個系統。各種外設如螢幕、wifi、藍芽、gps、camera、nfc、感測器、usb等只有乙個,如何被兩個系統有序使用,都是設計上要重點考慮的。
從軟體上來說,兩個系統完全隔離、核心隔離、框架層隔離或者僅launcher隔離。不同的隔離對應著不同的修改難度,能否達到預期目的,也是未知數。幸好android是基於linux核心,許多linux相關的解決方案和開源軟體,可以借鑑或直接引用過來,完成這一設想。
此外還應關注安全問題,對於一些特殊行業,對安全是極為敏感的,如何讓乙個android系統變得安全,也是要不斷探索與試驗。
最後就是使用者感知,不能低於單系統的感知滿意度,比如apk執行流暢性,先機功耗等。
美國紐約市曼哈頓的哥倫比亞大學(columbia university)對此進行了長期研究,衡量了軟硬問題和現有技術,得出從android框架層隔離兩個系統是乙個較好的選擇。即共用乙個linux核心,兩個系統分為前台域和後台域,同一時刻,只有乙個前台域,並且獨佔每些硬體裝置。
圖1 哥倫比亞雙系統架構
從圖1可以看出,在linux核心之上,有兩個虛擬phone:vp1和vp2,這是在使用者空間上存在的兩個android系統。同時還有乙個root namesapce,裡面有celld、nat、ril這些是什麼?目前暫時不分析。再看下kernel,有不少驅動,還包括android特有的binder,底下是乙個device namespace,那這和雙系統有什麼關係?
看了上圖,只能初步了解雙系統的架構,對於其如何實現,想必是很複雜的。涉及到核心和眾多模組的改動,如果直通實現上圖的框架,可以推測再加乙個vp3應該不會太難。
雖然不清楚具體實現細節,但還是可以從圖1梳理下雙系統需要的技術。
當然,還要分割槽問題,system、data、cache、boot分割槽如何規劃、日誌如何輸出、adb如何除錯等,想想都頭大,不過如果把這些都理清楚了,應該可以得到一次較大的提公升。
mysql 的基本問題 MySQL 基本問題整理
整理 mysql 安裝部署運維問題解決優化記錄。1 安裝 系統為 centos7 1 rpm 包方式安裝yum install wget wget wget 解壓到某個路徑,安裝全部的 rpm 包yum install mysql rpm 2 yum 庫方式安裝 可參考官網切換版本 rpm ivh ...
推薦系統中的基本問題
什麼是推薦系統?1.能做什麼?2.需要什麼?需要已經存在的 user 和 item 之間的連線記錄 3.怎麼做?使用者評分和偏好 機器推薦和人工推薦 什麼時候需要推薦系統?1.符合產品的目的。比如工具類產品就肯定不需要,但社群類產品就需要 比如可以計算 connection user item 如果...
C 基本問題
一 編譯為程式集 編譯c 源 檔案將得到程式集檔案,例如 乙個程式集檔案包含 4部分 pe表頭 clr表頭 元資料和 il pe表頭是 windows 作業系統要求的標準資訊 clr表頭專門用於那些需要 clr才能執行的模組 元資料實際上就是一塊二進位制資料,其中包含著一些表,我們可以將元資料表劃分...