專利名稱:在基于Android內(nèi)核的電視系統(tǒng)中集成Android應(yīng)用系統(tǒng)的方法
技術(shù)領(lǐng)域:
本發(fā)明屬于通信電子領(lǐng)域,尤其涉及一種在基于Android內(nèi)核的電視系統(tǒng)中集成 Android應(yīng)用系統(tǒng)的方法。
背景技術(shù):
Android應(yīng)用系統(tǒng)為Google公司開發(fā)的一種應(yīng)用程序系統(tǒng),該系統(tǒng)中內(nèi)核的結(jié)構(gòu)和標(biāo)準(zhǔn)Linux內(nèi)核基本相同,Android在Linux基礎(chǔ)上增加了私有的內(nèi)容,在此為了和標(biāo)準(zhǔn) Linux內(nèi)核區(qū)分,稱之為Android內(nèi)核,Android應(yīng)用系統(tǒng)是基于Android內(nèi)核的應(yīng)用集合。目前已經(jīng)存在大量基于標(biāo)準(zhǔn)Linux內(nèi)核的電視系統(tǒng),這些電視系統(tǒng)可以通過修改移植到Android內(nèi)核上運(yùn)行,在此稱這些移植后的電視系統(tǒng)(基于標(biāo)準(zhǔn)Linux內(nèi)核的應(yīng)用系統(tǒng))為基于Android內(nèi)核的電視系統(tǒng)。然而,若將電視系統(tǒng)和Android應(yīng)用系統(tǒng)同時(shí)運(yùn)行在Android內(nèi)核上,由于電視系統(tǒng)有自己的⑶I、輸入/輸出體系,而Android應(yīng)用系統(tǒng)也有自己的GUI、輸入/輸出體系,所以,在運(yùn)行Android應(yīng)用程序時(shí),就會(huì)存在兩個(gè)系統(tǒng)的輸入/輸出資源的沖突問題。
發(fā)明內(nèi)容
為解決上述技術(shù)問題,本發(fā)明提供一種在基于Android內(nèi)核的電視系統(tǒng)中集成 Android應(yīng)用系統(tǒng)的方法,所述方法包括將Android應(yīng)用系統(tǒng)的Binder驅(qū)動(dòng)適配層、Binder核心框架層和Binder框架代碼移植到該基于Android內(nèi)核的電視系統(tǒng)中,以形成Binder通信機(jī)制;設(shè)置該Android應(yīng)用系統(tǒng)的第一應(yīng)用管理客戶端、該基于Android內(nèi)核的電視系統(tǒng)的第二應(yīng)用管理客戶端以及應(yīng)用管理服務(wù)端的應(yīng)用管理器架構(gòu),其中,第一應(yīng)用管理客戶端和第二應(yīng)用管理客戶端分別通過Binder通信機(jī)制與應(yīng)用管理服務(wù)端通信;定義第一應(yīng)用管理客戶端的第一客戶端接口、第二應(yīng)用管理客戶端的第二客戶端接口以及應(yīng)用管理服務(wù)端的服務(wù)端接口和應(yīng)用管理器接口 ;通過該第一客戶端接口、第二客戶端接口、服務(wù)端接口及應(yīng)用管理器接口為應(yīng)用管理器提供運(yùn)行或停止Android應(yīng)用系統(tǒng)的應(yīng)用程序的接口。本發(fā)明提供的在基于Android內(nèi)核的電視系統(tǒng)中集成Android應(yīng)用系統(tǒng)的方法可以將Android應(yīng)用程序集成到基于Android內(nèi)核的電視系統(tǒng)中,實(shí)現(xiàn)無縫的運(yùn)行效果,使用戶感覺Android應(yīng)用系統(tǒng)的Android應(yīng)用程序就是基于Android內(nèi)核的電視系統(tǒng)的一部分,由于Android系統(tǒng)有很多的應(yīng)用程序,因此,有效地解決了在運(yùn)行Android應(yīng)用程序時(shí), 兩個(gè)系統(tǒng)的輸入/輸出資源的沖突問題。
圖1是本發(fā)明在基于Android內(nèi)核的電視系統(tǒng)中集成Android應(yīng)用系統(tǒng)的方法的較佳實(shí)施方式的流程圖;圖2是圖1中所述Android Binder的基本架構(gòu)圖;圖3是圖1中所述應(yīng)用管理器架構(gòu)具體實(shí)施例方式為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。本發(fā)明提供的一種在基于Android內(nèi)核的電視系統(tǒng)中集成Android應(yīng)用系統(tǒng)的方法,該方法如圖1所示,包括在步驟SlO中,將Android應(yīng)用系統(tǒng)的Binder驅(qū)動(dòng)適配層、Binder核心框架層和 Binder框架代碼移植到該基于Android內(nèi)核的電視系統(tǒng)中,以形成Binder通信機(jī)制。具體地,對于Binder的移植,配合圖2所示,Android Binder的基本架構(gòu)包括 Binder驅(qū)動(dòng)程序、Binder驅(qū)動(dòng)適配層、Binder核心框架層、Java Binder框架、Java Binder 的服務(wù)器/客戶端、C++Binder框架、C++Binder的服務(wù)器/客戶端,關(guān)于Binder的基本架構(gòu)的上述各層的作用為本領(lǐng)域現(xiàn)有技術(shù),故在此不再贅述。本實(shí)施方式中,如果該基于Android內(nèi)核的電視系統(tǒng)是采用C/C++語言開發(fā)的,則需要移植Binder驅(qū)動(dòng)適配層、 Binder核心框架層和本地Binder框架代碼到該基于Android內(nèi)核的電視系統(tǒng)中,以形成 Binder通信機(jī)制,如果該基于Android內(nèi)核的電視系統(tǒng)是采用Java語言開發(fā)的,則需要移植Binder驅(qū)動(dòng)適配層、Binder核心框架層和Java Binder框架代碼到該基于Android內(nèi)核的電視系統(tǒng)中,以形成Binder通信機(jī)制。而Binder通信機(jī)制也為本領(lǐng)域現(xiàn)有技術(shù),故在此不再贅述。在步驟Sll中,設(shè)置該Android應(yīng)用系統(tǒng)的第一應(yīng)用管理客戶端、該基于Android 內(nèi)核的電視系統(tǒng)的第二應(yīng)用管理客戶端以及應(yīng)用管理服務(wù)端的應(yīng)用管理器架構(gòu),其中,第一應(yīng)用管理客戶端和第二應(yīng)用管理客戶端分別通過Binder通信機(jī)制與應(yīng)用管理服務(wù)端通具體地,配圖3所示,圖3是圖1中所述應(yīng)用管理器架構(gòu)圖,所述應(yīng)用管理器架構(gòu)中的應(yīng)用管理服務(wù)端用于實(shí)現(xiàn)注冊和注銷該位于Android應(yīng)用系統(tǒng)的第一應(yīng)用管理客戶端和該基于Android內(nèi)核的電視系統(tǒng)的第二應(yīng)用管理客戶端的功能,以及還用于在運(yùn)行或停止該Android應(yīng)用系統(tǒng)的App時(shí),實(shí)現(xiàn)該Android應(yīng)用系統(tǒng)的第一應(yīng)用管理客戶端和該基于Android內(nèi)核的電視系統(tǒng)的第二應(yīng)用管理客戶端之間切換的功能。所述第一應(yīng)用管理客戶端和第二應(yīng)用管理客戶端用于封裝應(yīng)用管理服務(wù)端的功能,對外提供應(yīng)用管理器運(yùn)行或停止該Android應(yīng)用系統(tǒng)的App而調(diào)用的第一客戶端接口和第二客戶端接口,以及實(shí)現(xiàn)通知函數(shù)的功能,供應(yīng)用管理服務(wù)端在第一應(yīng)用管理客戶端和第二應(yīng)用管理客戶端之間切換時(shí)調(diào)用。在步驟S12中,定義第一應(yīng)用管理客戶端的第一客戶端接口、第二應(yīng)用管理客戶端的第二客戶端接口以及應(yīng)用管理服務(wù)端的服務(wù)端接口和應(yīng)用管理器接口;具體地,配合圖3所示,所述應(yīng)用管理服務(wù)端的服務(wù)端接口為利用Binder 通信機(jī)制,建立第一客戶端接口或者第二客戶端接口與應(yīng)用管理器之間的聯(lián)系的CN 102541558 A
IAppManagerService接ロ類。所述應(yīng)用管理服務(wù)端的應(yīng)用管理器接ロ為用于定義注冊和注銷該第一應(yīng)用管理客戶端或該第二應(yīng)用管理客戶端,以及提供運(yùn)行或停止Android應(yīng)用系統(tǒng)的 App 的 IAppManager 接 ロ類。所述第一客戶端接口和第二客戶端接ロ為實(shí)現(xiàn)通知函數(shù)的功能的 IAppManagerClient 接口類。進(jìn)ー步地,所述IAppManagerService接ロ類利用Binder通信機(jī)制,建立第一應(yīng)用管理客戶端或第二應(yīng)用管理客戶端(AppManagerClient)和應(yīng)用管理器(AppManager)之間
的聯(lián)系。具體實(shí)現(xiàn)可為
class 丄AppManagerService public !Interface
public:
DECLAREMETAINTERFACE(AppManagerService);
virtual sp<IAppManager> connect! const sp<IAppManagerClient>&
AppManagerClient) = 0;
};所述IAppManagerService接ロ類只定義接ロ,沒有具體實(shí)現(xiàn),而接ロ的具體實(shí)現(xiàn)在AppManagerService類中。具體為先通過ー個(gè)利用Binder通信機(jī)制提供進(jìn)程間通訊功能的BnAppManagei^ervice類來繼承IAppManagei^ervice接ロ類,然后通過ー個(gè) $3 IAppManagerService _ Π ^ltl 白勺 connect _ ΓΙ 白勺 AppManagerService ^jfe^S/lc BnAppManagerService類,從而實(shí)現(xiàn)IAppManagei^ervice接ロ類所定義接ロ的功能。進(jìn)ー步地,所述IAppManager接ロ類主要用于定義注冊和注銷該第一應(yīng)用管理客戶端或該第二應(yīng)用管理客戶端,以及提供運(yùn)行或停止Android應(yīng)用系統(tǒng)的接ロ。具體實(shí)現(xiàn)
可為
class IAppManager: public !Interfacepublic:
DECLARE—ΜΕΤΑ—INTERFACE(AppManager); virtual int Register(const uint32—t join—key) = 0; virtual int UnRegister(void) = 0; virtual int RequestToRun(const char *name) = 0; virtual int RequestToExit(const char *name) = 0; virtual int Leave(void) = 0;
};Register 注冊 AppManagerClient 到 AppManager,^ key 標(biāo)示不同的 Client。UnRegister 注銷 AppManagerClient0RequestToRun 運(yùn)行 Android APK 函數(shù)。RequestToExit 要求 Android APK 退出函數(shù)。Leave:退出函數(shù)。所述IAppManager接口類只是定義接口,沒有具體實(shí)現(xiàn),而具體實(shí)現(xiàn)在 AppManagerService: Client類中。具體為先通過一個(gè)利用Binder通信機(jī)制提供進(jìn)程間通信功能的BnAppManager類來繼承IAppManager接口類,然后通過一個(gè)實(shí)現(xiàn)IAppManager 接口類定義的接口的AppManagei^ervice :Client類來繼承BnAppManager類,從而實(shí)現(xiàn) IAppManagerService接口類所定義接口的功能。進(jìn)一步地,所述IAppManagerClient接口類主要是作通知函數(shù)使用,相當(dāng)于回調(diào)
函數(shù)的功能。具體實(shí)現(xiàn)可為
class IAppManagerClient: public IInterface {public:
DECLARE—ΜΕΤΑ—INTERFACE(AppManagerClient); virtual int onCreate(const char *androidApp = NULL) = 0; virtual int onDestroy(void) = 0; virtual int onGetFocus(void) = 0; virtual int onLoseFocus(void) = 0;所述IAppManagerCl ient接口類只是定義接口,沒有具體實(shí)現(xiàn),而具體實(shí)現(xiàn)在AppManager類中。具體可先通過一個(gè)利用Binder通信機(jī)制提供進(jìn)程間通信功能的BnAppManagerClient類來繼承IAppManagerClient接口類,然后通過一個(gè)實(shí)現(xiàn) IAppManagerClient ^ Π ^1 : . Π 的 AppManager ^jfe^S/lc BnAppManagerClient ^,從而實(shí)現(xiàn)IAppManagerClient接口類所定義接口的功能。在步驟S13中,通過該第一客戶端接口、第二客戶端接口、服務(wù)端接口及應(yīng)用管理器接口為應(yīng)用管理器提供運(yùn)行或停止Android應(yīng)用系統(tǒng)的應(yīng)用程序的接口。具體地,所述 IAppManagerService 接口類、IAppManager 接口類、 IAppManagerClient接口類定義了應(yīng)用管理器(AppManager)中間層實(shí)現(xiàn)的框架。所以, 當(dāng)基于Android內(nèi)核的電視系統(tǒng)的AppManager啟動(dòng)時(shí),其可作為Cl ient注冊到應(yīng)用管理服務(wù)端(AppManagei^ervice)中,由 AppManagei^ervcie 來進(jìn)行集中管理;當(dāng) Andorid 應(yīng)用系統(tǒng)的AppManager啟動(dòng)時(shí),其可作為Client注冊到AppManagerService中,由 AppManagerServcie來進(jìn)行集中管理,此時(shí)上層App可以通過AppManager封裝的接口來調(diào)用相關(guān)的功能,比如運(yùn)行或停止Android應(yīng)用程序。本發(fā)明提供在基于Android內(nèi)核的電視系統(tǒng)中集成Android應(yīng)用系統(tǒng)的方法可以將Android應(yīng)用程序集成到基于Android內(nèi)核的電視系統(tǒng)中,實(shí)現(xiàn)無縫的運(yùn)行效果,使用戶感覺Android應(yīng)用系統(tǒng)的Android應(yīng)用程序就是基于Android內(nèi)核的電視系統(tǒng)的一部分, 由于Android系統(tǒng)有很多的應(yīng)用程序,因此,有效地解決了在運(yùn)行Android應(yīng)用程序時(shí),兩個(gè)系統(tǒng)的輸入/輸出資源的沖突問題。以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種在基于Android內(nèi)核的電視系統(tǒng)中集成Android應(yīng)用系統(tǒng)的方法,其特征在于, 所述方法包括將Android應(yīng)用系統(tǒng)的Binder驅(qū)動(dòng)適配層、Binder核心框架層和Binder框架代碼移植到該基于Android內(nèi)核的電視系統(tǒng)中,以形成Binder通信機(jī)制;設(shè)置該Android應(yīng)用系統(tǒng)的第一應(yīng)用管理客戶端、該基于Android內(nèi)核的電視系統(tǒng)的第二應(yīng)用管理客戶端以及應(yīng)用管理服務(wù)端的應(yīng)用管理器架構(gòu),其中,第一應(yīng)用管理客戶端和第二應(yīng)用管理客戶端分別通過Binder通信機(jī)制與應(yīng)用管理服務(wù)端通信;定義第一應(yīng)用管理客戶端的第一客戶端接口、第二應(yīng)用管理客戶端的第二客戶端接口以及應(yīng)用管理服務(wù)端的服務(wù)端接口和應(yīng)用管理器接口;通過該第一客戶端接口、第二客戶端接口、服務(wù)端接口及應(yīng)用管理器接口為應(yīng)用管理器提供運(yùn)行或停止Android應(yīng)用系統(tǒng)的應(yīng)用程序的接口。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述應(yīng)用管理器架構(gòu)中的應(yīng)用管理服務(wù)端用于實(shí)現(xiàn)注冊和注銷該Android應(yīng)用系統(tǒng)的第一應(yīng)用管理客戶端和該基于Android內(nèi)核的電視系統(tǒng)的第二應(yīng)用管理客戶端的功能,以及還用于在運(yùn)行或停止該Android應(yīng)用系統(tǒng)的應(yīng)用程序時(shí),實(shí)現(xiàn)該Android應(yīng)用系統(tǒng)的第一應(yīng)用管理客戶端和該基于Android內(nèi)核的電視系統(tǒng)的第二應(yīng)用管理客戶端之間切換的功能。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述第一應(yīng)用管理客戶端和第二應(yīng)用管理客戶端用于封裝應(yīng)用管理服務(wù)端的功能,對外提供應(yīng)用管理器運(yùn)行或停止該Android應(yīng)用系統(tǒng)的應(yīng)用程序而調(diào)用的第一客戶端接口和第二客戶端接口,以及實(shí)現(xiàn)通知函數(shù)的功能,供應(yīng)用管理服務(wù)端在第一應(yīng)用管理客戶端和第二應(yīng)用管理客戶端之間切換時(shí)調(diào)用。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述應(yīng)用管理服務(wù)端的服務(wù)端接口為利用Binder通信機(jī)制,建立第一客戶端接口與應(yīng)用管理器之間的聯(lián)系的 IAppManagerService接口類;所述應(yīng)用管理服務(wù)端的應(yīng)用管理器接口為用于注冊或注銷該第一應(yīng)用管理客戶端和該第二應(yīng)用管理客戶端,以及提供運(yùn)行或停止Android應(yīng)用系統(tǒng)的應(yīng)用程序的IAppManager接口類。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述第一客戶端接口或第二客戶端接口為實(shí)現(xiàn)通知函數(shù)的功能的IAppManagerClient接口類。
全文摘要
本發(fā)明涉及一種在基于Android內(nèi)核的電視系統(tǒng)中集成Android應(yīng)用系統(tǒng)的方法,包括將Android應(yīng)用系統(tǒng)的Binder驅(qū)動(dòng)適配層、Binder核心框架層和Binder框架代碼移植到該電視系統(tǒng)中,以形成Binder通信機(jī)制;設(shè)置Android應(yīng)用系統(tǒng)的第一應(yīng)用管理客戶端、電視系統(tǒng)的第二應(yīng)用管理客戶端以及應(yīng)用管理服務(wù)端的應(yīng)用管理器架構(gòu),其中,第一應(yīng)用管理客戶端和第二應(yīng)用管理客戶端分別通過Binder通信機(jī)制與應(yīng)用管理服務(wù)端通信;定義第一應(yīng)用管理客戶端的第一客戶端接口、第二應(yīng)用管理客戶端的第二客戶端接口以及應(yīng)用管理服務(wù)端的服務(wù)端接口和應(yīng)用管理器接口;通過第一客戶端接口、第二客戶端接口、服務(wù)端接口及應(yīng)用管理器接口為應(yīng)用管理器提供運(yùn)行或停止Android應(yīng)用程序的接口。
文檔編號(hào)G06F9/44GK102541558SQ201110449640
公開日2012年7月4日 申請日期2011年12月28日 優(yōu)先權(quán)日2011年12月28日
發(fā)明者姜國定 申請人:Tcl集團(tuán)股份有限公司