本發(fā)明涉及通訊技術領域,尤其涉及的是一種基于終端的多安卓系統(tǒng)實現方法、存儲介質及終端。
背景技術:
隨著智能設備的普及,智能移動終端(如手機、平板電腦等)的配置逐漸提升且用戶需求呈多樣分化,在移動終端上實現低耦合、高獨立性的需求越來越普遍。經調查,市場上的終端設備已出現有“隱私模式”,即在一個終端上區(qū)別對待某些數據,通過某些限定條件允許訪問這部分數據,其優(yōu)點是實現簡單,缺點是對安卓(android)的多用戶模式兼容性差,安卓系統(tǒng)原生的多用戶模式僅僅是一個高耦合低安全性的多用戶操作一臺終端的實現方式,有不少案例中出現涉及用戶之間數據的共享、隱私等泄露問題。一般安卓的多用戶模式是通過修改、添加接口,增加驅動接口等實現方式容易被第三方應用通過接口創(chuàng)建上下文數據包(createpackagecontext)等方式注入代碼、本地篡改接口實現讀取到這部分數據,安全性低。
因此現有技術有待于進一步的改進。
技術實現要素:
鑒于上述現有技術中的不足之處,本發(fā)明的目的在于為用戶提供一種基于終端的多安卓系統(tǒng)實現方法、存儲介質及終端,實現一套硬件多個安卓系統(tǒng),支持單一系統(tǒng)多用戶及多系統(tǒng)多用戶模式,且能夠避免第三方應用注入代碼調用私密數據,安全性高,能夠滿足高端手機中要求低耦合、高安全性的多操作系統(tǒng)需求。
本發(fā)明解決技術問題所采用的技術方案如下:
一種基于終端的多安卓系統(tǒng)實現方法,其中,所述方法包括步驟:
a、終端接收到用戶操作指令時,啟動一個供用戶選擇多安卓系統(tǒng)中任一個的切換界面;
b、所述切換界面檢測到用戶選擇的任一個安卓系統(tǒng)時,下發(fā)一操作系統(tǒng)的控制信息至驅動層;
c、所述驅動層控制前臺程序切換為用戶選擇的所述任一個安卓系統(tǒng);
d、所述任一個安卓系統(tǒng)讀取虛擬輸入設備數據,并下發(fā)至自身環(huán)境下的應用app。
所述的基于終端的多安卓系統(tǒng)實現方法,其中,還包括:
在所述步驟a之前,正常開啟一個安卓系統(tǒng)。
所述的基于終端的多安卓系統(tǒng)實現方法,其中,所述步驟c具體包括:
c1、驅動層在所述任一個安卓系統(tǒng)啟動時創(chuàng)建一對應于所述任一個安卓系統(tǒng)的虛擬輸入設備接口,用于監(jiān)聽虛擬輸入設備;
c2、所述虛擬輸入設備接口監(jiān)聽所述任一個安卓系統(tǒng)輸出的數據;
c3、切換至用戶選擇的所述任一個安卓系統(tǒng)。
所述的基于終端的多安卓系統(tǒng)實現方法,其中,所述步驟c2具體包括:
c21、所述任一個安卓系統(tǒng)打開自身的虛擬輸入設備;
c22、輸出數據至驅動層的虛擬輸入設備接口。
所述的基于終端的多安卓系統(tǒng)實現方法,其中,所述步驟c之后還包括:驅動層控制當前安卓系統(tǒng)進入屏幕熄滅狀態(tài),控制用戶選擇或創(chuàng)建的所述任一個安卓系統(tǒng)進入屏幕亮起狀態(tài)。
所述的基于終端的多安卓系統(tǒng)實現方法,其中,所述步驟d具體包括:
d1、所述任一個安卓系統(tǒng)讀取虛擬輸入設備數據;
d2、調取其自身環(huán)境下的安卓系統(tǒng)進程;
d3、安卓系統(tǒng)進程將所述虛擬輸入設備數據發(fā)送至其自身環(huán)境下的應用app。
所述的基于終端的多安卓系統(tǒng)實現方法,其中,硬件抽象層通過socket通信復刻進程,將當前存在的多個安卓系統(tǒng)自增自適應出相應的socket端口,用于任一個安卓系統(tǒng)創(chuàng)建其自身的安卓進程。
所述的基于終端的多安卓系統(tǒng)實現方法,其中,所述多安卓系統(tǒng)基于同一個系統(tǒng)映像或多個系統(tǒng)映像進行構建。
一種存儲介質,其中,所述存儲介質存儲有計算機程序,所述計算機程序能夠被執(zhí)行以實現如上任一項所述的方法。
一種終端,其中,包括:處理器、與處理器通信連接的存儲器,所述存儲器存儲有計算機程序,所述計算機程序用于被執(zhí)行時實現如上任一項所述的方法;所述處理器用于調用所述存儲器中的計算機程序,以實現如上任一項所述的方法。
有益效果:本發(fā)明所提供的一種基于終端的多安卓系統(tǒng)實現方法、存儲介質及終端,方法包括:終端接收到用戶操作指令時,啟動一個供用戶選擇多安卓系統(tǒng)中任一個的切換界面;所述切換界面檢測到用戶選擇的任一個安卓系統(tǒng)時,下發(fā)一操作系統(tǒng)的控制信息至驅動層;所述驅動層控制前臺程序切換為用戶選擇的所述任一個安卓系統(tǒng);所述任一個安卓系統(tǒng)讀取虛擬輸入設備數據,并下發(fā)至自身環(huán)境下的應用app。本發(fā)明通過架構一機多安卓(兩個或兩個以上)系統(tǒng),采用在軟件層面對底層內核系統(tǒng)及部分硬件抽象層層的適配來達到多界面、低耦合、高獨立的一機多安卓系統(tǒng)的實現,更徹底的實現了一套硬件多個安卓系統(tǒng),無需特意支持安卓多用戶,實現方式為支持單一系統(tǒng)多用戶或多系統(tǒng)多用戶。由于無用戶層接口暴露,第三方應用等無法采用創(chuàng)建上下文數據包(createpackagecontext)等方式注入代碼調用到私密數據,因此安全性高;多個安卓系統(tǒng)之間可以通過增添虛擬按鈕或硬件按鈕直接在底層內核系統(tǒng)(即linux系統(tǒng))/驅動層切換多個系統(tǒng),且無任何相關切換的流程會干擾任一個安卓系統(tǒng),而由底層內核系統(tǒng)/驅動層直接完成切換;每個安卓系統(tǒng)之間幾乎互不影響,特別地,即使其中一個安卓系統(tǒng)崩潰需重新啟動,也僅僅是該安卓重新啟動,底層linux系統(tǒng)仍舊正常工作,因此,linux系統(tǒng)監(jiān)控下的其他安卓系統(tǒng)也仍舊可以正常工作。
附圖說明
圖1是本發(fā)明所述的基于終端的多安卓系統(tǒng)實現方法較佳實施例的流程圖。
圖2是本發(fā)明所述的基于終端的多安卓系統(tǒng)實現方法較佳實施例中底層linux系統(tǒng)與各個安卓系統(tǒng)的關系示意圖。
圖3是本發(fā)明所述的基于終端的多安卓系統(tǒng)實現方法中切換安卓系統(tǒng)的工作流程圖。
圖4是本發(fā)明所述的基于終端的多安卓系統(tǒng)實現方法較佳實施例中任一個安卓系統(tǒng)啟用自身app應用的流程圖。
圖5是本發(fā)明所述的終端的功能原理框圖。
具體實施方式
為使本發(fā)明的目的、技術方案及優(yōu)點更加清楚、明確,以下參照附圖并舉實施例對本發(fā)明進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用于解釋本發(fā)明,并不用于限定本發(fā)明。
請參見圖1-2,圖1為本發(fā)明所述基于終端的多安卓系統(tǒng)實現方法較佳實施例的流程圖,圖2是本發(fā)明所述的基于終端的多安卓系統(tǒng)實現方法較佳實施例中底層linux系統(tǒng)與各個安卓系統(tǒng)的關系示意圖。如圖1-2所示,所述方法包括步驟:
步驟s100、終端接收到用戶操作指令時,啟動一個供用戶選擇多安卓系統(tǒng)中任一個的切換界面。
步驟s200、所述切換界面檢測到用戶選擇的任一個安卓系統(tǒng)時,下發(fā)一操作系統(tǒng)的控制信息至驅動層。
步驟s300、所述驅動層控制前臺程序切換為用戶選擇的所述任一個安卓系統(tǒng)。
步驟s400、所述任一個安卓系統(tǒng)讀取虛擬輸入設備數據,并下發(fā)至自身環(huán)境下的應用app。
我們知道,一般終端的安卓系統(tǒng),各個應用app之間、應用app與安卓系統(tǒng)之間的關系是:一個安卓系統(tǒng)下可以運行多個應用app,例如,“app-1”、“app-2”、“app-3”、“app-4”,各個應用app之間的運行相互獨立,應用app與安卓系統(tǒng)之間獨立又具有聯系。用戶當前所選擇的就是前臺正在運行并展現給用戶的應用app。同理,我們把多個安卓系統(tǒng)看作是一個linux操作系統(tǒng)上的多個“應用app”,而linux操作系統(tǒng)為一個內核系統(tǒng),我們可以推理到如圖2所示的架構。如圖2所示,安卓的底層為linux操作系統(tǒng),驅動終端運行起來的是linux內核操作系統(tǒng)(包括驅動層),而每一個安卓系統(tǒng)實際上可以看作是linux操作系統(tǒng)上的一個大型java架構的應用程序(包含jni模塊)。java架構即指一些類和接口的集合,通過這些類和接口協調來完成一系列的程序實現,java架構可以分為三層:表示層,業(yè)務層和物理層。為了便于理解,我們將安卓系統(tǒng)的殼(shell)分別命名為殼1(shell-1android)、殼2(shell-2android)、殼3(shell-3android)、殼4(shell-4android),例如,位于各個“殼”中心的“current(當前的)”所指的可以是用戶當前所選擇的前臺正在運行并展現給用戶的安卓系統(tǒng)為“殼1(shell-1android)”或殼3(shell-3android)等。實際上這樣每一個安卓系統(tǒng)對于底層linux內核操作系統(tǒng)來說,就是一個殼(shell),一個具有多樣化界面(ui)顯示及內建生態(tài)系統(tǒng)架構運行的“殼”。這正如java虛擬機一般,一個系統(tǒng)里可以獨立運行多個java虛擬機,我們通過架構調整,使得一個linux操作系統(tǒng)可以獨立運行多個安卓系統(tǒng)。優(yōu)選地,所述多個安卓系統(tǒng)最多限制為4個。
根據安卓系統(tǒng)上切換應用的經驗,當按下recent(最近的)按鍵時,會顯示近期任務列表(recentsactivity),安卓系統(tǒng)應用之間的切換有兩個途徑:一、如果當前只有一個應用,則無法切換,此時可以通過重新啟動一個新的應用去“切換”到另一個應用;二、如果當前有多個應用,則可以通過安卓系統(tǒng)的程式鍵(recentkey)進行應用切換。同理,對于殼(shell)之間的切換,類似于安卓系統(tǒng)的應用app之間的切換。設置一個爆炸鍵功能按鍵(boomkey),其可以是虛擬按鍵,也可以是添加在硬件上的按鈕。boomkey,即爆炸鍵功能按鍵,當終端處于不同狀態(tài)時可喚醒不同功能,例如鎖屏時,解鎖并拍照;主界面,激活當前天氣動畫;音樂應用,低音和音量增強;相冊,立刻創(chuàng)建貼圖。該按鍵類似于現市場上大多數安卓系統(tǒng)終端的最新操作鍵(recentkey),不過它的功能是進行殼(shell)之間的切換。
具體的,按下爆炸鍵功能按鍵后,硬件驅動會收到通知,從而調起一個新的安全界面,這個安全界面類似于安卓系統(tǒng)的近期任務列表界面,即爆炸鍵功能按鍵按下后會調起一個安全切換界面(shellswtichsecureui),用于供用戶選擇多安卓系統(tǒng)中的任一個。所述切換界面與其他shell安卓一樣,是一個本地獨立進程(nativeprocess),其對各個殼(shell)之間是透明的,也不被底層內核驅動監(jiān)聽,而只負責監(jiān)聽底層獨立的一個設備(例如/dev/input/boom_key),并接收其信息。一般情況下,用戶選擇殼(shell)后會自動隱藏在后臺,不會消耗系統(tǒng)資源,安全切換界面屬于linux系統(tǒng)的本地程序(或者是基于其他虛擬機平臺完成的程序),不與殼(shell)產生任何聯系,而只接受從爆炸鍵功能按鍵發(fā)起的事件,由于終端在非根(root)的情況下,不會接受來自任何程序的事件,因此,我們可以認為它是安全的。
因此,具體實施時,當用戶通過爆炸鍵功能按鍵調起安全切換界面選擇了一個(或者創(chuàng)建一個新的)殼(shell)后,所述安全切換界面通過控制代碼(ioctl)下發(fā)一個消息給驅動層操作系統(tǒng)(os,operatingsystem),驅動層進行一系列操作后,把前臺的程序切換成對應用戶選擇或創(chuàng)建的殼(shell)。
可見,本發(fā)明通過架構一機多安卓(兩個或兩個以上)系統(tǒng),采用在軟件層面對底層內核系統(tǒng)及部分硬件抽象層層的適配來達到多界面、低耦合、高獨立的一機多安卓系統(tǒng)的實現,更徹底的實現了一套硬件多個安卓系統(tǒng),無需特意支持安卓多用戶,實現方式為支持單一系統(tǒng)多用戶或多系統(tǒng)多用戶。安全性高,能夠滿足高端手機中要求低耦合、高安全性的多操作系統(tǒng)需求。要求兩個界面/用戶之間透明,數據之間具有低耦合、高獨立性。在高端智能機、安全性要求高的多界面實現智能機有較大的需求空間。
進一步地,如圖3所示,所述步驟s300具體包括:
s301、驅動層在所述任一個安卓系統(tǒng)啟動時創(chuàng)建一對應于所述任一個安卓系統(tǒng)的虛擬輸入設備接口,用于監(jiān)聽虛擬輸入設備。
s302、所述虛擬輸入設備接口監(jiān)聽所述任一個安卓系統(tǒng)輸出的數據。
s303、切換至用戶選擇的所述任一個安卓系統(tǒng)。
具體實施時,本發(fā)明的較佳實施例中,首先,為了保證殼(shell)部分代碼的一致性以及減低沖擊,驅動層在所述任一個安卓系統(tǒng)啟動的同時創(chuàng)建一對應于所述任一個安卓系統(tǒng)的虛擬輸入設備接口,該接口可用于監(jiān)聽虛擬輸入設備,所述虛擬輸入設備接口開始監(jiān)聽所述任一個安卓系統(tǒng)輸出的數據,即完成了切換至用戶選擇或創(chuàng)建的所述任一個安卓系統(tǒng)。其中,步驟s302還包括所述任一個安卓系統(tǒng)打開自身的虛擬輸入設備;輸出數據至驅動層的虛擬輸入設備接口。特別地,當完成切換后,驅動層控制當前安卓系統(tǒng)進入屏幕熄滅狀態(tài),并控制用戶選擇或創(chuàng)建的所述任一個安卓系統(tǒng)進入屏幕亮起狀態(tài)。
進一步地,如圖4所示,所述步驟s400具體包括:
s401、所述任一個安卓系統(tǒng)讀取虛擬輸入設備數據。
s402、調取其自身環(huán)境下的安卓系統(tǒng)進程。
s403、安卓系統(tǒng)進程將所述虛擬輸入設備數據發(fā)送至其自身環(huán)境下的應用app。
具體實施時,本發(fā)明的較佳實施例中,首先,所述任一個安卓系統(tǒng)讀取虛擬輸入設備數據,調取其自身環(huán)境下的安卓系統(tǒng)進程,安卓系統(tǒng)進程將所述虛擬輸入設備數據發(fā)送至其自身環(huán)境下的應用app。其中,硬件抽象層通過socket通信復刻進程,將當前存在的多個安卓系統(tǒng)自增自適應出相應的socket端口,用于任一個安卓系統(tǒng)創(chuàng)建其自身的安卓進程,也就是說,硬件抽象層(hal,hardwareabstractionlayer)通過socket通信復刻(fork)進程,使本地文件socket根據當前存在的安卓系統(tǒng)個數,自增自適應出一個socket端口,供任一個安卓系統(tǒng)創(chuàng)建屬于自己的安卓進程,此時即完成了zygote進程適配。
進一步地,所述多安卓系統(tǒng)基于同一個系統(tǒng)映像或多個系統(tǒng)映像構建。所述系統(tǒng)并非是原生安裝系統(tǒng)編譯出來的系統(tǒng)映像(system.img),它是經過裁剪后,僅僅供殼(shell)部分加載的一個系統(tǒng)映像。若把驅動層與底層內核系統(tǒng)之間的部分單獨抽離出來,形成一個單獨的統(tǒng)一的系統(tǒng)映像,其優(yōu)點是簡潔、省空間,但是同時會缺乏多個殼(shell)之間的個性化;而基于多個系統(tǒng)映像的多個shell安卓,優(yōu)點是多個殼(shell)之間可以存在高度個性化、差異化,同時殼(shell)之間的安全性會更加高,因為殼(shell)是來自于不同的系統(tǒng)映像,但是缺點是每個系統(tǒng)映像都會占用空間,會導致整個只讀內存(rom)最終會比較臃腫龐大。rom是只讀內存(read-onlymemory)的簡稱,是一種只能讀出事先所存數據的固態(tài)半導體存儲器,其特性是一旦儲存資料就無法再將之改變或刪除,通常用在不需經常變更資料的電子或電腦系統(tǒng)中,并且資料不會因為電源關閉而消失。其結構較簡單,讀出較方便,因而常用于存儲各種固定程序和數據。本發(fā)明中設置動態(tài)選擇方案,即所述多安卓系統(tǒng)基于同一個系統(tǒng)映像或多個系統(tǒng)映像構建。所述動態(tài)選擇的方案具有高度的靈活性,底層內核可以存在多個系統(tǒng)系統(tǒng)映像,但是殼(shell)可以動態(tài)選擇其中一個進行啟動,既可以分化出多個殼(shell)均來源于一個系統(tǒng)映像,也可以是基于完全不同的系統(tǒng)映像,靈活多樣。
本發(fā)明還提供了一種終端,如圖5所示,所述終端包括:處理器(processor)10、存儲器(memory)20、通信接口(communicationsinterface)30和總線40;其中,
所述處理器10、存儲器20、通信接口30通過所述總線40完成相互間的通信;
所述通信接口30用于所述終端的通信設備之間的信息傳輸;
所述處理器10用于調用所述存儲器20中的計算機程序,以執(zhí)行上述各方法實施例所提供的方法,例如包括:終端接收到用戶操作指令時,啟動一個供用戶選擇多安卓系統(tǒng)中任一個的切換界面;所述切換界面檢測到用戶選擇或創(chuàng)建的任一個安卓系統(tǒng)時,下發(fā)一操作系統(tǒng)的控制信息至驅動層;所述驅動層控制前臺程序切換為用戶選擇或創(chuàng)建的所述任一個安卓系統(tǒng);所述任一個安卓系統(tǒng)讀取虛擬輸入設備數據,并下發(fā)至自身環(huán)境下的應用app。
本發(fā)明還提供一種存儲介質,其中,所述存儲介質存儲有計算機程序,所述計算機程序能夠被執(zhí)行以實現所述基于終端的多安卓系統(tǒng)實現方法。
綜上所述,本發(fā)明所提供的一種基于終端的多安卓系統(tǒng)實現方法、存儲介質及終端,方法包括:終端接收到用戶操作指令時,啟動一個供用戶選擇多安卓系統(tǒng)中任一個的切換界面;所述切換界面檢測到用戶選擇的任一個安卓系統(tǒng)時,下發(fā)一操作系統(tǒng)的控制信息至驅動層;所述驅動層控制前臺程序切換為用戶選擇的所述任一個安卓系統(tǒng);所述任一個安卓系統(tǒng)讀取虛擬輸入設備數據,并下發(fā)至自身環(huán)境下的應用app。本發(fā)明通過架構一機多安卓(兩個或兩個以上)系統(tǒng),采用在軟件層面對底層內核系統(tǒng)及部分硬件抽象層層的適配來達到多界面、低耦合、高獨立的一機多安卓系統(tǒng)的實現,支持單一系統(tǒng)多用戶及多系統(tǒng)多用戶模式,且能夠避免第三方應用注入代碼調用私密數據,安全性高,能夠滿足高端手機中要求低耦合、高安全性的多操作系統(tǒng)需求。
當然,本領域普通技術人員可以理解實現上述實施例方法中的全部或部分流程,是可以通過計算機程序來指令相關硬件(如處理器,控制器等)來完成,所述的程序可存儲于一計算機可讀取的存儲介質中,該程序在執(zhí)行時可包括如上述各方法實施例的流程。其中所述的存儲介質可為存儲器、磁碟、光盤等。
可以理解的是,對本領域普通技術人員來說,可以根據本發(fā)明的技術方案及其發(fā)明構思加以等同替換或改變,而所有這些改變或替換都應屬于本發(fā)明所附的權利要求的保護范圍。