基于硬件芯片的應用程序執(zhí)行方法及裝置的制造方法
【專利摘要】本公開是關于一種基于硬件芯片的應用程序執(zhí)行方法及裝置,屬于計算機技術領域。方法包括:接收應用程序的本地服務組件通過第一調用接口發(fā)送的執(zhí)行指令;通過硬件芯片對應的底層接口調用所述執(zhí)行指令對應的功能對象,所述功能對象用于驅動所述硬件芯片實現(xiàn)所述執(zhí)行指令對應的硬件功能;向所述本地服務組件返回對所述功能對象的調用結果,由所述應用程序的界面交互組件展示所述調用結果;設置一個向應用程序的本地服務組件提供統(tǒng)一調用接口的中間轉接層,在適配不同的硬件芯片時,只需要改動中間轉接層調用底層接口部分的邏輯代碼即可,從而減少硬件適配的工作量,降低應用程序的開發(fā)和維護成本。
【專利說明】
基于硬件芯片的應用程序執(zhí)行方法及裝置
技術領域
[0001]本公開涉及計算機技術領域,特別涉及一種基于硬件芯片的應用程序執(zhí)行方法及
目.0
【背景技術】
[0002]隨著電子技術的不斷發(fā)展,智能手機等移動終端中的應用程序也越來越多,其中部分應用程序,比如,收音機、錄音機以及指南針等,需要基于移動終端中集成的硬件芯片來實現(xiàn)。
[0003]以安卓系統(tǒng)中的收音機類應用程序為例,在接收到用戶在該應用程序交互界面中執(zhí)行的操作時,應用程序的主代碼根據(jù)該控制操作調用相應的底層接口來控制收音機芯片實現(xiàn)相應的功能。其中,不同型號的移動終端上的收音機芯片種類繁多,對應的底層接口也不一樣,在為收音機應用程序適配不同的移動終端時,需要針對每一個收音機芯片編寫不同的主代碼,以使其能夠調用相應的底層接口。
【發(fā)明內容】
[0004]本公開實施例提供了一種基于硬件芯片的應用程序執(zhí)行方法及裝置,技術方案如下:
[0005]根據(jù)本公開實施例的第一方面,提供了一種基于硬件芯片的應用程序執(zhí)行方法,所述方法包括:
[0006]接收應用程序的本地服務組件通過第一調用接口發(fā)送的執(zhí)行指令;
[0007]通過硬件芯片對應的底層接口調用所述執(zhí)行指令對應的功能對象,所述功能對象用于驅動所述硬件芯片實現(xiàn)所述執(zhí)行指令對應的硬件功能;
[0008]向所述本地服務組件返回對所述功能對象的調用結果,由所述應用程序的界面交互組件展示所述調用結果。
[0009]可選的,在不同的硬件環(huán)境中,所述第一調用接口相同,所述硬件環(huán)境包括:所述硬件芯片的廠商、架構以及驅動程序。
[0010]可選的,所述接收應用程序的本地服務組件通過所述第一調用接口發(fā)送的執(zhí)行指令,包括:
[0011]接收所述界面交互組件在通過所述本地服務組件提供的第二調用接口將所述執(zhí)行指令發(fā)送給所述本地服務組件之后,所述本地服務組件通過所述第一調用接口發(fā)送的所述執(zhí)行指令。
[0012]可選的,所述方法還包括:
[0013]向所述本地服務組件發(fā)送完成指令,所述完成指令用于指示所述本地服務組件回調所述界面交互組件中的監(jiān)聽對象,所述監(jiān)聽對象用于通知所述界面交互組件、已完成對所述功能對象的調用。
[0014]可選的,所述方法還包括:
[0015]當所述界面交互組件對所述調用結果的展示出錯時,獲取所述界面交互組件與所述本地服務組件之間、與所述執(zhí)行指令相關的調用及回調記錄;
[0016]根據(jù)所述調用及回調記錄確定發(fā)生異常的代碼。
[0017]可選的,所述根據(jù)所述調用及回調記錄確定發(fā)生異常的代碼,包括:
[0018]當所述調用及回調記錄指示所述界面交互組件通過所述第二調用接口成功發(fā)送所述執(zhí)行指令,且所述本地服務組件回調所述監(jiān)聽對象失敗時,確定所述本地服務組件的代碼為發(fā)生異常的代碼;
[0019]當所述調用及回調記錄指示所述界面交互組件通過所述第二調用接口發(fā)送所述執(zhí)行指令失敗時,確定所述界面交互組件的代碼為發(fā)生異常的代碼;
[0020]當所述調用及回調記錄指示所述界面交互組件通過所述第二調用接口成功發(fā)送所述執(zhí)行指令,且所述本地服務組件成功回調所述監(jiān)聽對象時,確定所述界面交互組件的代碼為發(fā)生異常的代碼。
[0021]根據(jù)本公開實施例的第二方面,提供了一種基于硬件芯片的應用程序執(zhí)行裝置,所述裝置包括:
[0022]指令接收模塊,用于接收應用程序的本地服務組件通過第一調用接口發(fā)送的執(zhí)行指令;
[0023]調用模塊,用于通過硬件芯片對應的底層接口調用所述執(zhí)行指令對應的功能對象,所述功能對象用于驅動所述硬件芯片實現(xiàn)所述執(zhí)行指令對應的硬件功能;
[0024]結果返回模塊,用于向所述本地服務組件返回對所述功能對象的調用結果,由所述應用程序的界面交互組件展示所述調用結果。
[0025]可選的,在不同的硬件環(huán)境中,所述第一調用接口相同,所述硬件環(huán)境包括:所述硬件芯片的廠商、架構以及驅動程序。
[0026]可選的,所述指令接收模塊,用于接收所述界面交互組件在通過所述本地服務組件提供的第二調用接口將所述執(zhí)行指令發(fā)送給所述本地服務組件之后,所述本地服務組件通過所述第一調用接口發(fā)送的所述執(zhí)行指令。
[0027]可選的,所述裝置還包括:
[0028]指令發(fā)送模塊,用于向所述本地服務組件發(fā)送完成指令,所述完成指令用于指示所述本地服務組件回調所述界面交互組件中的監(jiān)聽對象,所述監(jiān)聽對象用于通知所述界面交互組件、已完成對所述功能對象的調用。
[0029]可選的,所述裝置還包括:
[0030]記錄獲取模塊,用于當所述界面交互組件對所述調用結果的展示出錯時,獲取所述界面交互組件與所述本地服務組件之間、與所述執(zhí)行指令相關的調用及回調記錄;
[0031]異常確定模塊,用于根據(jù)所述調用及回調記錄確定發(fā)生異常的代碼。
[0032]可選的,所述異常確定模塊,包括:
[0033]第一確定子模塊,用于當所述調用及回調記錄指示所述界面交互組件通過所述第二調用接口成功發(fā)送所述執(zhí)行指令,且所述本地服務組件回調所述監(jiān)聽對象失敗時,確定所述本地服務組件的代碼為發(fā)生異常的代碼;
[0034]第二確定子模塊,用于當所述調用及回調記錄指示所述界面交互組件通過所述第二調用接口發(fā)送所述執(zhí)行指令失敗時,確定所述界面交互組件的代碼為發(fā)生異常的代碼;
[0035]第三確定子模塊,用于當所述調用及回調記錄指示所述界面交互組件通過所述第二調用接口成功發(fā)送所述執(zhí)行指令,且所述本地服務組件成功回調所述監(jiān)聽對象時,確定所述界面交互組件的代碼為發(fā)生異常的代碼。
[0036]根據(jù)本公開實施例的第三方面,提供了一種基于硬件芯片的應用程序執(zhí)行裝置,所述裝置包括:
[0037]處理器;
[0038]用于存儲所述處理器的可執(zhí)行指令的存儲器;
[0039]其中,所述處理器被配置為:
[0040]接收應用程序的本地服務組件通過第一調用接口發(fā)送的執(zhí)行指令;
[0041]通過硬件芯片對應的底層接口調用所述執(zhí)行指令對應的功能對象,所述功能對象用于驅動所述硬件芯片實現(xiàn)所述執(zhí)行指令對應的硬件功能;
[0042]向所述本地服務組件返回對所述功能對象的調用結果,由所述應用程序的界面交互組件展示所述調用結果。
[0043]本公開實施例提供的技術方案可以包括以下有益效果:
[0044]通過接收本地服務組件通過第一調用接口發(fā)送的執(zhí)行指令,并通過硬件芯片對應的底層接口調用該執(zhí)行指令對應的功能對象,并向本地服務組件返回對該功能對象的調用結果。設置一個向應用程序的本地服務組件提供統(tǒng)一調用接口的中間轉接層,由中間轉接層來調用硬件芯片的底層接口,即在適配不同的硬件芯片時,應用程序的主代碼可以不變,只需要改動中間轉接層調用底層接口部分的邏輯代碼即可,從而減少硬件適配的工作量,降低應用程序的開發(fā)和維護成本。
[0045]應當理解的是,以上的一般描述和后文的細節(jié)描述僅是示例性和解釋性的,并不能限制本公開。
【附圖說明】
[0046]此處的附圖被并入說明書中并構成本說明書的一部分,示出了符合本公開的實施例,并與說明書一起用于解釋本公開的原理。
[0047]圖1是根據(jù)一示例性實施例示出的一種基于硬件芯片的應用程序執(zhí)行方法的流程圖;
[0048]圖2是根據(jù)另一示例性實施例示出的一種基于硬件芯片的應用程序執(zhí)行方法的流程圖;
[0049]圖3是根據(jù)又一示例性實施例示出的一種基于硬件芯片的應用程序執(zhí)行方法的流程圖;
[0050]圖4是根據(jù)一示例性實施例示出的一種基于硬件芯片的應用程序執(zhí)行裝置的框圖;
[0051]圖5是根據(jù)另一示例性實施例示出的一種基于硬件芯片的應用程序執(zhí)行裝置的框圖;
[0052]圖6是根據(jù)一示例性實施例示出的一種裝置的框圖。
【具體實施方式】
[0053]這里將詳細地對示例性實施例進行說明,其示例表示在附圖中。下面的描述涉及附圖時,除非另有表示,不同附圖中的相同數(shù)字表示相同或相似的要素。以下示例性實施例中所描述的實施方式并不代表與本公開相一致的所有實施方式。相反,它們僅是與如所附權利要求書中所詳述的、本公開的一些方面相一致的裝置和方法的例子。
[0054]圖1是根據(jù)一示例性實施例示出的一種基于硬件芯片的應用程序執(zhí)行方法的流程圖,該方法應用于電子設備中,并基于該電子設備提供的硬件芯片向用戶提供該硬件芯片對應的功能。如圖1所示,該基于硬件芯片的應用程序執(zhí)行方法可以包括如下幾個步驟:
[0055]在步驟101中,接收應用程序的本地服務組件通過第一調用接口發(fā)送的執(zhí)行指令。
[0056]在步驟102中,通過硬件芯片對應的底層接口調用該執(zhí)行指令對應的功能對象,該功能對象用于驅動該硬件芯片實現(xiàn)該執(zhí)行指令對應的硬件功能。
[0057]在步驟103中,向該本地服務組件返回對該功能對象的調用結果,由該應用程序的界面交互組件展示該調用結果。
[0058]綜上所述,本公開實施例示出的基于硬件芯片的應用程序執(zhí)行方法,接收本地服務組件通過第一調用接口發(fā)送的執(zhí)行指令,并通過硬件芯片對應的底層接口調用該執(zhí)行指令對應的功能對象,并向本地服務組件返回對該功能對象的調用結果,通過設置一個向應用程序的本地服務組件提供統(tǒng)一調用接口的中間轉接層,由中間轉接層來調用硬件芯片的底層接口,即在適配不同的硬件芯片時,應用程序的主代碼可以不變,只需要改動中間轉接層調用底層接口部分的邏輯代碼即可,從而減少硬件適配的工作量,降低應用程序的開發(fā)和維護成本。
[0059]圖2是根據(jù)另一示例性實施例示出的一種基于硬件芯片的應用程序執(zhí)行方法的流程圖,該方法應用于電子設備中,并基于該電子設備提供的硬件芯片向用戶提供該硬件芯片對應的功能。如圖2所示,該基于硬件芯片的應用程序執(zhí)行方法可以包括如下幾個步驟:
[0060]在步驟201中,檢測到用戶在交互界面中執(zhí)行的控制操作時,界面交互組件在通過本地服務組件提供的第二調用接口將執(zhí)行指令發(fā)送給本地服務組件。
[0061]以安卓系統(tǒng)為例,在本公開實施例中,一個基于硬件芯片的應用程序的代碼可以包括界面交互組件、本地服務組件以及中間轉接層,界面交互組件負責為用戶提供用戶界面,檢測在用戶界面上進行的各種操作,并展示操作結果。本地服務組件負責處理交互界面中產(chǎn)生的交互邏輯。其中,界面交互組件和本地服務組件可以看作該應用程序的主代碼。
[0062]當檢測到交互界面中的某一項控制操作時,界面交互組件通過本地服務組件提供的、與該控制操作相對應的第二調用接口,向該本地服務組件發(fā)送相應執(zhí)行指令,以通知本地服務組件執(zhí)行該操作對應的處理步驟。
[0063]在步驟202中,本地服務組件通過第一調用接口向中間轉接層發(fā)送該執(zhí)行指令。
[0064]其中,在不同的硬件環(huán)境中,該第一調用接口相同,該硬件環(huán)境包括:該硬件芯片的廠商、架構以及驅動程序。該第一調用接口是實現(xiàn)該執(zhí)行指令相對應的控制操作的接口,對于不同的硬件芯片,該第一調用接口都是相同的。
[0065]本地服務組件在接收到界面交互組件發(fā)送的該執(zhí)行指令后,可以通過第一調用接口向中間轉接層發(fā)送該執(zhí)行指令。
[0066]在步驟203中,中間轉接層接收到本地服務組件通過該第一調用接口發(fā)送的該執(zhí)行指令后,通過硬件芯片對應的底層接口調用該執(zhí)行指令對應的功能對象。
[0067]其中,該功能對象用于驅動該硬件芯片實現(xiàn)該執(zhí)行指令對應的硬件功能。
[0068]在步驟204中,中間轉接層向本地服務組件返回對該功能對象的調用結果,由該應用程序的界面交互組件展示該調用結果。
[0069]中間轉接層接收到本地服務組件通過第一調用接口發(fā)送的執(zhí)行指令后,即可以通過上述控制操作對應的底層接口調用該控制操作對應的功能對象,該功能對象是一個用于實現(xiàn)上述控制操作功能的方法對象,其由硬件芯片的底層驅動提供。中間轉接層執(zhí)行該功能對象,控制硬件芯片實現(xiàn)相應的功能后,將調用結果返回給本地服務組件,由本地服務組件轉發(fā)給界面交互組件,界面交互組件根據(jù)調用結果在交互界面中進行展示,從而完成該控制操作的實現(xiàn)流程。
[0070]在本公開實施例中,中間轉接層可以包括兩部分功能,一是向本地服務組件提供統(tǒng)一的調用接口,同時封裝底層千差萬別的硬件芯片實現(xiàn)接口。在不同的硬件環(huán)境下,中間轉接層會有不同的實現(xiàn)形式,但是向本地服務組件提供的接口保持不變。在適配不同硬件芯片時,可以保持應用程序的主代碼(即界面交互組件和本地服務組件)不變,只需要改動中間轉接層向下調用底層接口的邏輯即可,通過中間轉接層來屏蔽底層接口的差異性,從而極大的減少了應用程序開發(fā)和維護的成本。
[0071 ]比如,以安卓系統(tǒng)中的收音機應用為例,在本公開實施例中,收音機應用包括:FmActivity (界面交互組件)、FmLocalService(本地服務組件)以及FmServiceManager(即上述中間轉接層KFmActivity向用戶提供包含各種收音機功能的交互界面,包括打開收音機、關閉收音機、調頻到某個頻道、向前或向后搜索頻道等。當FmActi vity檢測到某一控制操作,比如打開收音機操作時,通過調用FmLocal Servi ce提供的第二調用接口向FmLocal Servi ce發(fā)送打開收音機的指令,F(xiàn)mLocal Servi ce調用FmServi ceManager提供的第一調用接口向FmServiceManager發(fā)送該打開收音機的指令,F(xiàn)mServiceManager通過相應的底層接口調用收音機的驅動程序提供的打開收音機的功能對象,在執(zhí)行該功能對象控制收音機成功打開后,向FmLocal Servi ce返回收音機打開成功的調用結果,F(xiàn)mLocal Service將調用結果通知給FmActivity,由FmActivity在交互界面中展示收音機打開成功的畫面。
[0072]需要說明的是,本公開實施例上述方案以收音機應用程序的代碼結構和實現(xiàn)過程為例進行說明,在實際應用中,本公開實施例所示的方案還可以應用于其它基于硬件芯片的應用程序中,比如錄音機應用程序、指南針應用程序等等,本公開實施例對于硬件芯片的具體功能不做限定。
[0073]綜上所述,本公開實施例示出的基于硬件芯片的應用程序執(zhí)行方法,接收本地服務組件通過第一調用接口發(fā)送的執(zhí)行指令,并通過硬件芯片對應的底層接口調用該執(zhí)行指令對應的功能對象,并向本地服務組件返回對該功能對象的調用結果,通過設置一個向應用程序的本地服務組件提供統(tǒng)一調用接口的中間轉接層,由中間轉接層來調用硬件芯片的底層接口,即在適配不同的硬件芯片時,應用程序的主代碼可以不變,只需要改動中間轉接層調用底層接口部分的邏輯代碼即可,從而減少硬件適配的工作量,降低應用程序的開發(fā)和維護成本。
[0074]圖3是根據(jù)又一示例性實施例示出的一種基于硬件芯片的應用程序執(zhí)行方法的流程圖,該方法應用于電子設備中,并基于該電子設備提供的硬件芯片向用戶提供該硬件芯片對應的功能。如圖3所示,該基于硬件芯片的應用程序執(zhí)行方法可以包括如下幾個步驟:
[0075]在步驟301中,檢測到用戶在交互界面中執(zhí)行的控制操作時,界面交互組件在通過本地服務組件提供的第二調用接口將執(zhí)行指令發(fā)送給本地服務組件。
[0076]在步驟302中,本地服務組件通過第一調用接口向中間轉接層發(fā)送該執(zhí)行指令。
[0077]在步驟303中,中間轉接層接收到本地服務組件通過該第一調用接口發(fā)送的該執(zhí)行指令后,通過硬件芯片對應的底層接口調用該執(zhí)行指令對應的功能對象。
[0078]在步驟304中,中間轉接層向本地服務組件返回對該功能對象的調用結果,由該應用程序的界面交互組件展示該調用結果。
[0079]上述步驟301至步驟303的實現(xiàn)過程與圖2對應實施例中的描述類似,此處不再贅述。
[0080]在步驟305中,中間轉接層向該本地服務組件發(fā)送完成指令。
[0081]在步驟306中,本地服務組件回調該界面交互組件中的監(jiān)聽對象,該監(jiān)聽對象用于通知該界面交互組件、已完成對該功能對象的調用。
[0082]本公開實施例所示的方法還可以在界面交互組件和本地服務組件之間設置一個回調邏輯,使得本地服務組件在成功執(zhí)行某一個方法之后,可以通知界面交互組件該方法執(zhí)行完成,以便在代碼發(fā)生錯誤時能夠快速確定哪一部分代碼發(fā)生異常。
[0083]比如,以安卓系統(tǒng)中收音機應用程序為例包括FmActivity、FmLocalService以及FmServiceManager例,該回調邏輯可以通過下述方法實現(xiàn):
[0084]I)設置一個回調接口 IFmLocalServiceCallback。
[0085]2)FmActivity 生成一個對象FmLocal Servi ce Ca I Iback,這個對象負責實現(xiàn)IFmLocalServiceCalIback接口中方法的具體內容。
[0086]3)在FmLoca I Servi ce 中設置一個 IFmLoca I ServiceCa 11 back接口類型的對象Listeners ,Listeners對象由FmActivity中的FmLocalServiceCalIback賦值。
[0087]4)當FmLocalService中有某個方法(比如通過第一調用接口向中間轉接層發(fā)送打開收音機的執(zhí)行指令)調用完成后,就會調用Listeners中相應的回調方法。由于實際上Listeners 和 FmLocalServiceCallback 是同一個對象,因此,F(xiàn)mActivity 會通過FmLocalServiceCalIback獲知相應的回調方法已經(jīng)被調用,由此可以得知FmLocalService成功完成通過第一調用接口向中間轉接層發(fā)送打開收音機的執(zhí)行指令。
[0088]在步驟307中,當該界面交互組件對該調用結果的展示出錯時,中間轉接層獲取該界面交互組件與該本地服務組件之間、與該執(zhí)行指令相關的調用及回調記錄。
[0089]在步驟308中,中間轉接層根據(jù)該調用及回調記錄確定發(fā)生異常的代碼。
[0090]其中,在根據(jù)該調用及回調記錄確定發(fā)生異常的代碼時,當該調用及回調記錄指示該界面交互組件通過該第二調用接口成功發(fā)送該執(zhí)行指令,且該本地服務組件回調該監(jiān)聽對象失敗時,確定該本地服務組件的代碼為發(fā)生異常的代碼;當該調用及回調記錄指示該界面交互組件通過該第二調用接口發(fā)送該執(zhí)行指令失敗時,確定該界面交互組件的代碼為發(fā)生異常的代碼;當該調用及回調記錄指示該界面交互組件通過該第二調用接口成功發(fā)送該執(zhí)行指令,且該本地服務組件成功回調該監(jiān)聽對象時,確定該界面交互組件的代碼為發(fā)生異常的代碼。
[0091]仍然以上述收音機應用程序為例,當用戶在打開交互界面中點擊打開收音機后,收音機并未正確打開,中間轉接層在獲取到錯誤提醒后,可以獲取FmActivity調用第二調用接口的記錄以及FmLocalService調用回調接口的記錄,當成功獲取到FmActivity調用第二調用接口的記錄,但并未獲取到FmLocalService調用回調接口的記錄時,說明該界面交互組件通過該第二調用接口成功發(fā)送該執(zhí)行指令,而該本地服務組件回調監(jiān)聽對象失敗,此時,確定該本地服務組件的代碼為發(fā)生異常的代碼;當未成功獲取到FmActivity調用第二調用接口的記錄時,說明界面交互組件通過該第二調用接口發(fā)送該執(zhí)行指令失敗,此時可以確定該界面交互組件的代碼為發(fā)生異常的代碼;當成功獲取到FmActivity調用第二調用接口的記錄以及FmLocalService調用回調接口的記錄時,說明界面交互組件顯示結果失敗,此時可以確定該界面交互組件的代碼為發(fā)生異常的代碼。
[0092]需要說明的是,上述確定異常代碼的步驟由中間轉接層來執(zhí)行,在實際應用中,在該界面交互組件對該調用結果的展示出錯時,應用程序也可以直接將界面交互組件與該本地服務組件之間、與該執(zhí)行指令相關的調用及回調記錄以文本的形式輸出,由開發(fā)測試人員進行人工排查。
[0093]
[0094]綜上所述,本公開實施例示出的基于硬件芯片的應用程序執(zhí)行方法,接收本地服務組件通過第一調用接口發(fā)送的執(zhí)行指令,并通過硬件芯片對應的底層接口調用該執(zhí)行指令對應的功能對象,并向本地服務組件返回對該功能對象的調用結果,通過設置一個向應用程序的本地服務組件提供統(tǒng)一調用接口的中間轉接層,由中間轉接層來調用硬件芯片的底層接口,即在適配不同的硬件芯片時,應用程序的主代碼可以不變,只需要改動中間轉接層調用底層接口部分的邏輯代碼即可,從而減少硬件適配的工作量,降低應用程序的開發(fā)和維護成本。
[0095]此外,本公開實施例示出的基于硬件芯片的應用程序執(zhí)行方法,還在界面交互組件和本地服務組件之間設置一個回調邏輯,在該界面交互組件對該調用結果的展示出錯時,中間轉接層獲取該界面交互組件與該本地服務組件之間、與該執(zhí)行指令相關的調用及回調記錄,并根據(jù)該調用及回調記錄確定發(fā)生異常的代碼,能夠快速定位異常代碼,不需要對所有的主代碼進行排查,從而縮短了錯誤排查的時間,進一步減少開發(fā)和維護成本。
[0096]圖4是根據(jù)一示例性實施例示出的一種基于硬件芯片的應用程序執(zhí)行裝置的框圖。該基于硬件芯片的應用程序執(zhí)行裝置可以通過硬件電路或者軟件與硬件的結合實現(xiàn)成為電子設備的一部分,并執(zhí)行如圖1至圖3任一所示實施例中的全部或部分步驟。請參考圖4,該裝置可以包括:指令接收模塊401、調用模塊402、結果返回模塊403。
[0097]指令接收模塊401,被配置為用于接收應用程序的本地服務組件通過第一調用接口發(fā)送的執(zhí)行指令;
[0098]調用模塊402,被配置為用于通過硬件芯片對應的底層接口調用所述執(zhí)行指令對應的功能對象,所述功能對象用于驅動所述硬件芯片實現(xiàn)所述執(zhí)行指令對應的硬件功能;
[0099]結果返回模塊403,被配置為用于向所述本地服務組件返回對所述功能對象的調用結果,由所述應用程序的界面交互組件展示所述調用結果。
[0100]綜上所述,本公開實施例示出的基于硬件芯片的應用程序執(zhí)行裝置,接收本地服務組件通過第一調用接口發(fā)送的執(zhí)行指令,并通過硬件芯片對應的底層接口調用該執(zhí)行指令對應的功能對象,并向本地服務組件返回對該功能對象的調用結果,通過設置一個向應用程序的本地服務組件提供統(tǒng)一調用接口的中間轉接層,由中間轉接層來調用硬件芯片的底層接口,即在適配不同的硬件芯片時,應用程序的主代碼可以不變,只需要改動中間轉接層調用底層接口部分的邏輯代碼即可,從而減少硬件適配的工作量,降低應用程序的開發(fā)和維護成本。
[0101]圖5是根據(jù)另一示例性實施例示出的一種基于硬件芯片的應用程序執(zhí)行裝置的框圖。該基于硬件芯片的應用程序執(zhí)行裝置可以通過硬件電路或者軟件與硬件的結合實現(xiàn)成為電子設備的一部分,并執(zhí)行如圖1至圖3任一所示實施例中的全部或部分步驟。請參考圖5,該裝置可以包括:指令接收模塊401、調用模塊402、結果返回模塊403。
[0102]所述指令接收模塊401,被配置為用于接收應用程序的本地服務組件通過第一調用接口發(fā)送的執(zhí)行指令;
[0103]所述調用模塊402,被配置為用于通過硬件芯片對應的底層接口調用所述執(zhí)行指令對應的功能對象,所述功能對象用于驅動所述硬件芯片實現(xiàn)所述執(zhí)行指令對應的硬件功會K;
[0104]所述結果返回模塊403,被配置為用于向所述本地服務組件返回對所述功能對象的調用結果,由所述應用程序的界面交互組件展示所述調用結果。
[0105]可選的,在不同的硬件環(huán)境中,所述第一調用接口相同,所述硬件環(huán)境包括:所述硬件芯片的廠商、架構以及驅動程序。
[0106]可選的,所述指令接收模塊401,被配置為用于接收所述界面交互組件在通過所述本地服務組件提供的第二調用接口將所述執(zhí)行指令發(fā)送給所述本地服務組件之后,所述本地服務組件通過所述第一調用接口發(fā)送的所述執(zhí)行指令。
[0107]可選的,所述裝置還包括:指令發(fā)送模塊404;
[0108]所述指令發(fā)送模塊404,被配置為用于向所述本地服務組件發(fā)送完成指令,所述完成指令用于指示所述本地服務組件回調所述界面交互組件中的監(jiān)聽對象,所述監(jiān)聽對象用于通知所述界面交互組件、已完成對所述功能對象的調用。
[0109]可選的,所述裝置還包括:記錄獲取模塊405以及異常確定模塊406;
[0110]所述記錄獲取模塊405,被配置為用于當所述界面交互組件對所述調用結果的展示出錯時,獲取所述界面交互組件與所述本地服務組件之間、與所述執(zhí)行指令相關的調用及回調記錄;
[0111]所述異常確定模塊406,被配置為用于根據(jù)所述調用及回調記錄確定發(fā)生異常的代碼。
[0112]可選的,所述異常確定模塊406,包括:第一確定子模塊406a、第二確定子模塊406b以及第三確定子模塊406c;
[0113]所述第一確定子模塊406a,被配置為用于當所述調用及回調記錄指示所述界面交互組件通過所述第二調用接口成功發(fā)送所述執(zhí)行指令,且所述本地服務組件回調所述監(jiān)聽對象失敗時,確定所述本地服務組件的代碼為發(fā)生異常的代碼;
[0114]所述第二確定子模塊406b,被配置為用于當所述調用及回調記錄指示所述界面交互組件通過所述第二調用接口發(fā)送所述執(zhí)行指令失敗時,確定所述界面交互組件的代碼為發(fā)生異常的代碼;
[0115]所述第三確定子模塊406c,被配置為用于當所述調用及回調記錄指示所述界面交互組件通過所述第二調用接口成功發(fā)送所述執(zhí)行指令,且所述本地服務組件成功回調所述監(jiān)聽對象時,確定所述界面交互組件的代碼為發(fā)生異常的代碼。
[0116]綜上所述,本公開實施例示出的基于硬件芯片的應用程序執(zhí)行裝置,接收本地服務組件通過第一調用接口發(fā)送的執(zhí)行指令,并通過硬件芯片對應的底層接口調用該執(zhí)行指令對應的功能對象,并向本地服務組件返回對該功能對象的調用結果,通過設置一個向應用程序的本地服務組件提供統(tǒng)一調用接口的中間轉接層,由中間轉接層來調用硬件芯片的底層接口,即在適配不同的硬件芯片時,應用程序的主代碼可以不變,只需要改動中間轉接層調用底層接口部分的邏輯代碼即可,從而減少硬件適配的工作量,降低應用程序的開發(fā)和維護成本。
[0117]此外,本公開實施例示出的基于硬件芯片的應用程序執(zhí)行裝置,還在界面交互組件和本地服務組件之間設置一個回調邏輯,在該界面交互組件對該調用結果的展示出錯時,中間轉接層獲取該界面交互組件與該本地服務組件之間、與該執(zhí)行指令相關的調用及回調記錄,并根據(jù)該調用及回調記錄確定發(fā)生異常的代碼,能夠快速定位異常代碼,不需要對所有的主代碼進行排查,從而縮短了錯誤排查的時間,進一步減少開發(fā)和維護成本。
[0118]本公開一示例性實施例還提供了一種基于硬件芯片的應用程序執(zhí)行裝置,能夠實現(xiàn)本公開實施例提供的基于硬件芯片的應用程序執(zhí)行方法。該裝置包括:處理器,以及用于存儲處理器的可執(zhí)行指令的存儲器。
[0119]其中,處理器被配置為:
[0120]接收應用程序的本地服務組件通過第一調用接口發(fā)送的執(zhí)行指令;
[0121]通過硬件芯片對應的底層接口調用所述執(zhí)行指令對應的功能對象,所述功能對象用于驅動所述硬件芯片實現(xiàn)所述執(zhí)行指令對應的硬件功能;
[0122]向所述本地服務組件返回對所述功能對象的調用結果,由所述應用程序的界面交互組件展示所述調用結果。
[0123]可選的,在不同的硬件環(huán)境中,所述第一調用接口相同,所述硬件環(huán)境包括:所述硬件芯片的廠商、架構以及驅動程序。
[0124]可選的,所述接收應用程序的本地服務組件通過所述第一調用接口發(fā)送的執(zhí)行指令,包括:
[0125]接收所述界面交互組件在通過所述本地服務組件提供的第二調用接口將所述執(zhí)行指令發(fā)送給所述本地服務組件之后,所述本地服務組件通過所述第一調用接口發(fā)送的所述執(zhí)行指令。
[0126]可選的,所述方法還包括:
[0127]向所述本地服務組件發(fā)送完成指令,所述完成指令用于指示所述本地服務組件回調所述界面交互組件中的監(jiān)聽對象,所述監(jiān)聽對象用于通知所述界面交互組件、已完成對所述功能對象的調用。
[0128]可選的,所述方法還包括:
[0129]當所述界面交互組件對所述調用結果的展示出錯時,獲取所述界面交互組件與所述本地服務組件之間、與所述執(zhí)行指令相關的調用及回調記錄;
[0130]根據(jù)所述調用及回調記錄確定發(fā)生異常的代碼。
[0131]可選的,所述根據(jù)所述調用及回調記錄確定發(fā)生異常的代碼,包括:
[0132]當所述調用及回調記錄指示所述界面交互組件通過所述第二調用接口成功發(fā)送所述執(zhí)行指令,且所述本地服務組件回調所述監(jiān)聽對象失敗時,確定所述本地服務組件的代碼為發(fā)生異常的代碼;
[0133]當所述調用及回調記錄指示所述界面交互組件通過所述第二調用接口發(fā)送所述執(zhí)行指令失敗時,確定所述界面交互組件的代碼為發(fā)生異常的代碼;
[0134]當所述調用及回調記錄指示所述界面交互組件通過所述第二調用接口成功發(fā)送所述執(zhí)行指令,且所述本地服務組件成功回調所述監(jiān)聽對象時,確定所述界面交互組件的代碼為發(fā)生異常的代碼。
[0135]圖6是根據(jù)一示例性實施例示出的一種裝置600的框圖。例如,裝置600可以是智能手機、可穿戴設備、智能電視和車載終端等電子設備。
[0136]參照圖6,裝置600可以包括以下一個或多個組件:處理組件602,存儲器604,電源組件606,多媒體組件608,音頻組件610,輸入/輸出(I/O)的接口 612,傳感器組件614,以及通信組件616。
[0137]處理組件602通??刂蒲b置600的整體操作,諸如與顯示,電話呼叫,數(shù)據(jù)通信,相機操作和記錄操作相關聯(lián)的操作。處理組件602可以包括一個或多個處理器620來執(zhí)行指令,以完成上述的方法的全部或部分步驟。此外,處理組件602可以包括一個或多個模塊,便于處理組件602和其他組件之間的交互。例如,處理組件602可以包括多媒體模塊,以方便多媒體組件608和處理組件602之間的交互。
[0138]存儲器604被配置為存儲各種類型的數(shù)據(jù)以支持在裝置600的操作。這些數(shù)據(jù)的示例包括用于在裝置600上操作的任何應用程序或方法的指令,聯(lián)系人數(shù)據(jù),電話簿數(shù)據(jù),消息,圖片,視頻等。存儲器604可以由任何類型的易失性或非易失性存儲設備或者它們的組合實現(xiàn),如靜態(tài)隨機存取存儲器(SRAM),電可擦除可編程只讀存儲器(EEPROM),可擦除可編程只讀存儲器(EPROM),可編程只讀存儲器(PROM),只讀存儲器(ROM),磁存儲器,快閃存儲器,磁盤或光盤。
[0139]電源組件606為裝置600的各種組件提供電力。電源組件606可以包括電源管理系統(tǒng),一個或多個電源,及其他與為裝置600生成、管理和分配電力相關聯(lián)的組件。
[0140]多媒體組件608包括在裝置600和用戶之間的提供一個輸出接口的屏幕。在一些實施例中,屏幕可以包括液晶顯示器(LCD)和觸摸面板(TP)。如果屏幕包括觸摸面板,屏幕可以被實現(xiàn)為觸摸屏,以接收來自用戶的輸入信號。觸摸面板包括一個或多個觸摸傳感器以感測觸摸、滑動和觸摸面板上的手勢。觸摸傳感器可以不僅感測觸摸或滑動動作的邊界,而且還檢測與觸摸或滑動操作相關的持續(xù)時間和壓力。在一些實施例中,多媒體組件608包括一個前置攝像頭和/或后置攝像頭。當裝置600處于操作模式,如拍攝模式或視頻模式時,前置攝像頭和/或后置攝像頭可以接收外部的多媒體數(shù)據(jù)。每個前置攝像頭和后置攝像頭可以是一個固定的光學透鏡系統(tǒng)或具有焦距和光學變焦能力。
[0141]音頻組件610被配置為輸出和/或輸入音頻信號。例如,音頻組件610包括一個麥克風(MIC),當裝置600處于操作模式,如呼叫模式、記錄模式和語音識別模式時,麥克風被配置為接收外部音頻信號。所接收的音頻信號可以被進一步存儲在存儲器604或經(jīng)由通信組件616發(fā)送。在一些實施例中,音頻組件66還包括一個揚聲器,用于輸出音頻信號。
[0142]I/O接口612為處理組件602和外圍接口模塊之間提供接口,上述外圍接口模塊可以是鍵盤,點擊輪,按鈕等。這些按鈕可包括但不限于:主頁按鈕、音量按鈕、啟動按鈕和鎖定按鈕。
[0143]傳感器組件614包括一個或多個傳感器,用于為裝置600提供各個方面的狀態(tài)評估。例如,傳感器組件614可以檢測到裝置600的打開/關閉狀態(tài),組件的相對定位,例如組件為裝置600的顯示器和小鍵盤,傳感器組件614還可以檢測裝置600或裝置600—個組件的位置改變,用戶與裝置600接觸的存在或不存在,裝置600方位或加速/減速和裝置600的溫度變化。傳感器組件614可以包括接近傳感器,被配置用來在沒有任何的物理接觸時檢測附近物體的存在。傳感器組件614還可以包括光傳感器,如CMOS或CCD圖像傳感器,用于在成像應用中使用。在一些實施例中,該傳感器組件614還可以包括加速度傳感器,陀螺儀傳感器,磁傳感器,壓力傳感器或溫度傳感器。
[0144]通信組件616被配置為便于裝置600和其他設備之間有線或無線方式的通信。裝置600可以接入基于通信標準的無線網(wǎng)絡,如WiFi,2G或3G,或它們的組合。在一個示例性實施例中,通信組件616經(jīng)由廣播信道接收來自外部廣播管理系統(tǒng)的廣播信號或廣播相關信息。在一個示例性實施例中,通信組件616還包括近場通信(NFC)模塊,以促進短程通信。例如,在NFC模塊可基于射頻識別(RFID)技術,紅外數(shù)據(jù)協(xié)會(IrDA)技術,超寬帶(UWB)技術,藍牙(BT)技術和其他技術來實現(xiàn)。
[0145]在示例性實施例中,裝置600可以被一個或多個應用專用集成電路(ASIC)、數(shù)字信號處理器(DSP)、數(shù)字信號處理設備(DSPD)、可編程邏輯器件(PLD)、現(xiàn)場可編程門陣列(FPGA)、控制器、微控制器、微處理器或其他電子元件實現(xiàn),用于執(zhí)行上述方法。
[0146]在示例性實施例中,還提供了一種包括指令的非臨時性計算機可讀存儲介質,例如包括指令的存儲器604,上述指令可由裝置600的處理器620執(zhí)行以完成上述方法。例如,非臨時性計算機可讀存儲介質可以是R0M、隨機存取存儲器(RAM)、⑶-R0M、磁帶、軟盤和光數(shù)據(jù)存儲設備等。
[0147]一種非臨時性計算機可讀存儲介質,當存儲介質中的指令由裝置600的處理器執(zhí)行時,使得裝置600能夠執(zhí)行上述圖1至圖3任一實施例所示的基于硬件芯片的應用程序執(zhí)行方法。
[0148]本領域技術人員在考慮說明書及實踐這里公開的發(fā)明后,將容易想到本公開的其它實施方案。本申請旨在涵蓋本公開的任何變型、用途或者適應性變化,這些變型、用途或者適應性變化遵循本公開的一般性原理并包括本公開未公開的本技術領域中的公知常識或慣用技術手段。說明書和實施例僅被視為示例性的,本公開的真正范圍和精神由下面的權利要求指出。
[0149]應當理解的是,本公開并不局限于上面已經(jīng)描述并在附圖中示出的精確結構,并且可以在不脫離其范圍進行各種修改和改變。本公開的范圍僅由所附的權利要求來限制。
【主權項】
1.一種基于硬件芯片的應用程序執(zhí)行方法,其特征在于,所述方法包括: 接收應用程序的本地服務組件通過第一調用接口發(fā)送的執(zhí)行指令; 通過硬件芯片對應的底層接口調用所述執(zhí)行指令對應的功能對象,所述功能對象用于驅動所述硬件芯片實現(xiàn)所述執(zhí)行指令對應的硬件功能; 向所述本地服務組件返回對所述功能對象的調用結果,由所述應用程序的界面交互組件展示所述調用結果。2.根據(jù)權利要求1所述的方法,其特征在于,在不同的硬件環(huán)境中,所述第一調用接口相同,所述硬件環(huán)境包括:所述硬件芯片的廠商、架構以及驅動程序。3.根據(jù)權利要求1所述的方法,其特征在于,所述接收應用程序的本地服務組件通過所述第一調用接口發(fā)送的執(zhí)行指令,包括: 接收所述界面交互組件在通過所述本地服務組件提供的第二調用接口將所述執(zhí)行指令發(fā)送給所述本地服務組件之后,所述本地服務組件通過所述第一調用接口發(fā)送的所述執(zhí)行指令。4.根據(jù)權利要求3所述的方法,其特征在于,所述方法還包括: 向所述本地服務組件發(fā)送完成指令,所述完成指令用于指示所述本地服務組件回調所述界面交互組件中的監(jiān)聽對象,所述監(jiān)聽對象用于通知所述界面交互組件、已完成對所述功能對象的調用。5.根據(jù)權利要求4所述的方法,其特征在于,所述方法還包括: 當所述界面交互組件對所述調用結果的展示出錯時,獲取所述界面交互組件與所述本地服務組件之間、與所述執(zhí)行指令相關的調用及回調記錄; 根據(jù)所述調用及回調記錄確定發(fā)生異常的代碼。6.根據(jù)權利要求5所述的方法,其特征在于,所述根據(jù)所述調用及回調記錄確定發(fā)生異常的代碼,包括: 當所述調用及回調記錄指示所述界面交互組件通過所述第二調用接口成功發(fā)送所述執(zhí)行指令,且所述本地服務組件回調所述監(jiān)聽對象失敗時,確定所述本地服務組件的代碼為發(fā)生異常的代碼; 當所述調用及回調記錄指示所述界面交互組件通過所述第二調用接口發(fā)送所述執(zhí)行指令失敗時,確定所述界面交互組件的代碼為發(fā)生異常的代碼; 當所述調用及回調記錄指示所述界面交互組件通過所述第二調用接口成功發(fā)送所述執(zhí)行指令,且所述本地服務組件成功回調所述監(jiān)聽對象時,確定所述界面交互組件的代碼為發(fā)生異常的代碼。7.—種基于硬件芯片的應用程序執(zhí)行裝置,其特征在于,所述裝置包括: 指令接收模塊,用于接收應用程序的本地服務組件通過第一調用接口發(fā)送的執(zhí)行指令; 調用模塊,用于通過硬件芯片對應的底層接口調用所述執(zhí)行指令對應的功能對象,所述功能對象用于驅動所述硬件芯片實現(xiàn)所述執(zhí)行指令對應的硬件功能; 結果返回模塊,用于向所述本地服務組件返回對所述功能對象的調用結果,由所述應用程序的界面交互組件展示所述調用結果。8.根據(jù)權利要求7所述的裝置,其特征在于,在不同的硬件環(huán)境中,所述第一調用接口相同,所述硬件環(huán)境包括:所述硬件芯片的廠商、架構以及驅動程序。9.根據(jù)權利要求7所述的裝置,其特征在于,所述指令接收模塊,用于接收所述界面交互組件在通過所述本地服務組件提供的第二調用接口將所述執(zhí)行指令發(fā)送給所述本地服務組件之后,所述本地服務組件通過所述第一調用接口發(fā)送的所述執(zhí)行指令。10.根據(jù)權利要求9所述的裝置,其特征在于,所述裝置還包括: 指令發(fā)送模塊,用于向所述本地服務組件發(fā)送完成指令,所述完成指令用于指示所述本地服務組件回調所述界面交互組件中的監(jiān)聽對象,所述監(jiān)聽對象用于通知所述界面交互組件、已完成對所述功能對象的調用。11.根據(jù)權利要求10所述的裝置,其特征在于,所述裝置還包括: 記錄獲取模塊,用于當所述界面交互組件對所述調用結果的展示出錯時,獲取所述界面交互組件與所述本地服務組件之間、與所述執(zhí)行指令相關的調用及回調記錄; 異常確定模塊,用于根據(jù)所述調用及回調記錄確定發(fā)生異常的代碼。12.根據(jù)權利要求11所述的裝置,其特征在于,所述異常確定模塊,包括: 第一確定子模塊,用于當所述調用及回調記錄指示所述界面交互組件通過所述第二調用接口成功發(fā)送所述執(zhí)行指令,且所述本地服務組件回調所述監(jiān)聽對象失敗時,確定所述本地服務組件的代碼為發(fā)生異常的代碼; 第二確定子模塊,用于當所述調用及回調記錄指示所述界面交互組件通過所述第二調用接口發(fā)送所述執(zhí)行指令失敗時,確定所述界面交互組件的代碼為發(fā)生異常的代碼; 第三確定子模塊,用于當所述調用及回調記錄指示所述界面交互組件通過所述第二調用接口成功發(fā)送所述執(zhí)行指令,且所述本地服務組件成功回調所述監(jiān)聽對象時,確定所述界面交互組件的代碼為發(fā)生異常的代碼。13.—種基于硬件芯片的應用程序執(zhí)行裝置,其特征在于,所述裝置包括: 處理器; 用于存儲所述處理器的可執(zhí)行指令的存儲器; 其中,所述處理器被配置為: 接收應用程序的本地服務組件通過第一調用接口發(fā)送的執(zhí)行指令; 通過硬件芯片對應的底層接口調用所述執(zhí)行指令對應的功能對象,所述功能對象用于驅動所述硬件芯片實現(xiàn)所述執(zhí)行指令對應的硬件功能; 向所述本地服務組件返回對所述功能對象的調用結果,由所述應用程序的界面交互組件展示所述調用結果。
【文檔編號】G06F9/30GK105975249SQ201511032585
【公開日】2016年9月28日
【申請日】2015年12月31日
【發(fā)明人】韓偉, 劉聰, 劉培龍
【申請人】小米科技有限責任公司