本技術(shù)涉及智能終端,尤其涉及一種軟件配置方法及相關(guān)設(shè)備。
背景技術(shù):
1、隨著物聯(lián)網(wǎng)(internet?of?things,iot)技術(shù)的發(fā)展,音頻設(shè)備、穿戴式設(shè)備等物聯(lián)網(wǎng)設(shè)備的應(yīng)用越來越廣泛。物聯(lián)網(wǎng)設(shè)備通常需要與智能手機(jī)等其他終端設(shè)備的應(yīng)用程序交互,以實現(xiàn)相應(yīng)的功能。然而,物聯(lián)網(wǎng)設(shè)備和其他終端設(shè)備可能來自于不同廠商,物聯(lián)網(wǎng)設(shè)備中配置了終端設(shè)備對應(yīng)的軟件開發(fā)工具包(software?development?kit,sdk),并在軟件開發(fā)工具包中配置特性模塊,才能與終端設(shè)備應(yīng)用進(jìn)行交互。
2、在相關(guān)技術(shù)中,終端設(shè)備廠商通常開放源碼給物聯(lián)網(wǎng)設(shè)備廠商,供物聯(lián)網(wǎng)設(shè)備廠商對特性模塊和sdk進(jìn)行自定義配置,使得sdk與物聯(lián)網(wǎng)設(shè)備的固件和特性適配。然而,源碼中包含終端設(shè)備廠商的內(nèi)部通信協(xié)議,如果將源碼開放給物聯(lián)網(wǎng)設(shè)備廠商,終端設(shè)備廠商的內(nèi)部通信協(xié)議的安全得不到保障,導(dǎo)致降低終端設(shè)備廠商私有數(shù)據(jù)的安全性。
技術(shù)實現(xiàn)思路
1、鑒于以上內(nèi)容,有必要提供一種軟件配置方法及相關(guān)設(shè)備,解決上述將sdk源碼開放給物聯(lián)網(wǎng)設(shè)備廠商,供物聯(lián)網(wǎng)設(shè)備廠商對sdk進(jìn)行自定義配置,降低終端設(shè)備廠商的私有數(shù)據(jù)的安全性的問題。
2、第一方面,本技術(shù)提供一種軟件配置方法,應(yīng)用于第一電子設(shè)備,所述方法包括:獲取物聯(lián)網(wǎng)設(shè)備的設(shè)備形態(tài)、特性集合及芯片平臺信息;根據(jù)所述物聯(lián)網(wǎng)設(shè)備的設(shè)備形態(tài)、特性集合及芯片平臺信息,對構(gòu)建文件執(zhí)行sdk通用構(gòu)建腳本,得到所述物聯(lián)網(wǎng)設(shè)備的sdk;將所述sdk發(fā)送至第二電子設(shè)備,所述第二電子設(shè)備通過固件集成鏈接將所述sdk集成在所述物聯(lián)網(wǎng)設(shè)備的固件中,并在所述物聯(lián)網(wǎng)設(shè)備中運(yùn)行sdk。
3、通過上述技術(shù)方案,物聯(lián)網(wǎng)設(shè)備的對端設(shè)備廠商通過第一電子設(shè)備將物聯(lián)網(wǎng)設(shè)備的特性集合以可配置化靜態(tài)庫的方式打包成sdk,再將sdk開放給物聯(lián)網(wǎng)設(shè)備廠商進(jìn)行進(jìn)一步的配置和固件集成,無需將特性模塊的源碼開放給物聯(lián)網(wǎng)設(shè)備廠商,保障了終端設(shè)備廠商的內(nèi)部通信協(xié)議的安全,提高了終端設(shè)備廠商私有數(shù)據(jù)的安全性。
4、在一種可能的實現(xiàn)方式中,所述方法還包括:根據(jù)所述芯片平臺信息判斷所述物聯(lián)網(wǎng)設(shè)備的芯片平臺是否為新增的芯片平臺;若所述物聯(lián)網(wǎng)設(shè)備的芯片平臺為新增的芯片平臺,添加所述芯片平臺的交叉編譯鏈;將所述芯片平臺的編譯選項添加至所述sdk的構(gòu)建文件;添加所述芯片平臺的配置信息;建立所述芯片平臺的交叉編譯鏈和所述構(gòu)建文件之間的關(guān)聯(lián),以及建立所述芯片平臺與所述設(shè)備形態(tài)之間的關(guān)聯(lián)。
5、通過上述技術(shù)方案,可以在第一電子設(shè)備中添加新增的芯片平臺的信息,使得構(gòu)建的sdk可以適配不同的芯片平臺,增強(qiáng)sdk的適配性。
6、在一種可能的實現(xiàn)方式中,所述方法還包括:判斷是否需要更新設(shè)備形態(tài)的特性配置;若需要更新所述設(shè)備形態(tài)的特性配置,響應(yīng)對所述設(shè)備形態(tài)的特性配置的更新請求,運(yùn)行配置工具,對所述設(shè)備形態(tài)的特性進(jìn)行配置和應(yīng)用;更新所述設(shè)備形態(tài)的特性配置文件。
7、通過上述技術(shù)方案,可以對設(shè)備形態(tài)對應(yīng)的特性集合進(jìn)行更新,從而增強(qiáng)sdk中的靜態(tài)特性庫的可擴(kuò)展性。
8、在一種可能的實現(xiàn)方式中,所述方法還包括:判斷是否接收到所述第二電子設(shè)備發(fā)送的特性定制請求;若接收到所述第二電子設(shè)備發(fā)送的所述特性定制請求,響應(yīng)所述第二電子設(shè)備發(fā)送的特性定制請求,運(yùn)行配置工具,導(dǎo)入物聯(lián)網(wǎng)設(shè)備的特性需求列表,配置所述物聯(lián)網(wǎng)設(shè)備所需的特性組合;根據(jù)所述物聯(lián)網(wǎng)設(shè)備的需求,修改特性開關(guān)和特性的靜態(tài)參數(shù)配置;根據(jù)修改后的特性開關(guān)和特性的靜態(tài)參數(shù)配置,生成對應(yīng)接入所述物聯(lián)網(wǎng)設(shè)備的特性配置文件。
9、通過上述技術(shù)方案,可以在物聯(lián)網(wǎng)設(shè)備的對端設(shè)備的廠商進(jìn)行特性的定制化配置,無需物聯(lián)網(wǎng)設(shè)備廠商進(jìn)行特性的自定義配置,可以提高sdk集成在物聯(lián)網(wǎng)設(shè)備中的效率。
10、第二方面,本技術(shù)實施例提供一種軟件配置方法,應(yīng)用于第二電子設(shè)備,所述方法包括:獲取第一電子設(shè)備構(gòu)建的sdk,通過固件集成鏈接將所述sdk集成在物聯(lián)網(wǎng)設(shè)備的固件中;運(yùn)行所述sdk,對所述sdk進(jìn)行初始化;應(yīng)用所述sdk進(jìn)行業(yè)務(wù)處理。
11、通過上述技術(shù)方案,物聯(lián)網(wǎng)設(shè)備廠商可以獲取預(yù)先構(gòu)建好的sdk,并對sdk進(jìn)行進(jìn)一步的配置和固件集成,如此,物聯(lián)網(wǎng)設(shè)備的對端設(shè)備產(chǎn)商無需將特性模塊的源碼開放給物聯(lián)網(wǎng)設(shè)備廠商,保障了終端設(shè)備廠商的內(nèi)部通信協(xié)議的安全,提高了終端設(shè)備廠商私有數(shù)據(jù)的安全性,物聯(lián)網(wǎng)設(shè)備廠商也可以通過對sdk進(jìn)行配置和固件集成,增強(qiáng)了sdk對物聯(lián)網(wǎng)設(shè)備的適配性。
12、在一種可能的實現(xiàn)方式中,所述通過固件集成鏈接將所述sdk集成在物聯(lián)網(wǎng)設(shè)備的固件中,包括:運(yùn)行配置工具,載入所述sdk,通過所述配置工具配置所述物聯(lián)網(wǎng)設(shè)備所需的特性組合;根據(jù)所述物聯(lián)網(wǎng)設(shè)備所需的特性組合生成配置文件;根據(jù)所述配置文件將所述sdk添加至所述物聯(lián)網(wǎng)設(shè)備的固件;修改所述物聯(lián)網(wǎng)設(shè)備中的鏈接腳本;對所述sdk的特性接口進(jìn)行適配;對所述物聯(lián)網(wǎng)設(shè)備的固件進(jìn)行編譯鏈接,生成可執(zhí)行文件;對所述可執(zhí)行文件進(jìn)行運(yùn)行調(diào)試。
13、通過上述技術(shù)方案,物聯(lián)網(wǎng)設(shè)備廠商可以通過固件集成的方式將sdk集成在物聯(lián)網(wǎng)設(shè)備的固件中,使得sdk與物聯(lián)網(wǎng)設(shè)備適配,提高了sdk的運(yùn)行效率。
14、在一種可能的實現(xiàn)方式中,所述修改所述物聯(lián)網(wǎng)設(shè)備中的鏈接腳本,包括:獲取所述sdk中的自動修改腳本,在所述自動修改腳本中配置所述物聯(lián)網(wǎng)設(shè)備的芯片平臺參數(shù)信息和sdk標(biāo)識符插入位置;在所述自動修改腳本導(dǎo)入所述芯片平臺的原始鏈接腳本;運(yùn)行所述自動修改腳本,通過所述自動修改腳本根據(jù)所述sdk標(biāo)識符插入位置將sdk標(biāo)識符插入至所述原始鏈接腳本,得到修改后的鏈接腳本;應(yīng)用所述修改后的鏈接腳本。
15、通過上述技術(shù)方案,采用sdk提供的自動修改腳本將sdk標(biāo)識符插入至物聯(lián)網(wǎng)設(shè)備的原始鏈接腳本,可以實現(xiàn)sdk中可配置模塊的自注冊機(jī)制,提高sdk運(yùn)行過程中可配置模塊的初始化效率。
16、在一種可能的實現(xiàn)方式中,所述修改所述物聯(lián)網(wǎng)設(shè)備中的鏈接腳本,包括:修改所述芯片平臺的原始鏈接腳本;根據(jù)所述sdk標(biāo)識符插入位置將sdk標(biāo)識符插入至所述原始鏈接腳本。
17、通過上述技術(shù)方案,物聯(lián)網(wǎng)設(shè)備廠商可以自行修改平臺的鏈接腳本,并按sdk要求在鏈接腳本中插入標(biāo)識符。
18、在一種可能的實現(xiàn)方式中,所述方法還包括:聲明所述sdk的每個可配置模塊的初始化方法到所述sdk自定義的符號標(biāo)識的對應(yīng)段,根據(jù)初始化的優(yōu)先級生成初始化方法表。
19、通過上述技術(shù)方案,可以實現(xiàn)可配置模塊的自注冊,初始化方法不需要被顯式調(diào)用,只需要在初始化方法定義處通過預(yù)定的方式進(jìn)行聲明,初始化方法就會在sdk運(yùn)行過程中被執(zhí)行。
20、在一種可能的實現(xiàn)方式中,所述對所述sdk進(jìn)行初始化,包括:創(chuàng)建所述sdk的每個可配置模塊的對象,創(chuàng)建每個可配置模塊的服務(wù),將每個可配置模塊的消息處理方法添加至消息處理映射表。
21、通過上述技術(shù)方案,對每個可配置模塊進(jìn)行初始化,可以有效保障sdk正常運(yùn)行。
22、在一種可能的實現(xiàn)方式中,所述將每個可配置模塊的消息處理方法添加至消息處理映射表,包括:設(shè)置所述可配置模塊中每條協(xié)議指令的id和消息處理方法;將每條協(xié)議指令的id轉(zhuǎn)換為索引值;將每條協(xié)議指令的消息處理方法添加至所述消息處理映射表。
23、通過上述技術(shù)方案,結(jié)合哈希算法將可配置模塊的消息處理方法添加至消息處理映射表,可以提高消息處理過程中對消息處理方法的遍歷效率,進(jìn)而提高消息處理效率。
24、在一種可能的實現(xiàn)方式中,所述將每個可配置模塊的消息處理方法添加至消息處理映射表,包括:設(shè)置所述可配置模塊中每條協(xié)議指令的id和消息處理方法;將每條協(xié)議指令的id作為索引值;將所述可配置模塊中所有協(xié)議指令的消息處理方法整體添加至所述消息處理映射表。
25、通過上述技術(shù)方案,可以將可配置模塊中所有協(xié)議指令的消息處理方法整體添加至消息處理映射表,從而提高消息處理方法的注冊效率。
26、在一種可能的實現(xiàn)方式中,所述對所述sdk進(jìn)行初始化,包括:通過注冊公共服務(wù)機(jī)制或弱機(jī)制對所述sdk中的多個可配置模塊進(jìn)行解耦。
27、通過上述技術(shù)方案,對sdk中的多個可配置模塊進(jìn)行解耦,可以增強(qiáng)sdk的可維護(hù)性和可擴(kuò)展性。
28、在一種可能的實現(xiàn)方式中,所述應(yīng)用所述sdk進(jìn)行業(yè)務(wù)處理,包括:通過固件創(chuàng)建所述sdk的處理線程,并將業(yè)務(wù)處理請求發(fā)送至所述sdk;所述sdk調(diào)度所述處理線程在所述消息處理映射表中遍歷所述業(yè)務(wù)處理請求對應(yīng)消息的消息處理方法,并調(diào)用遍歷得到的所述消息處理方法處理所述業(yè)務(wù)處理請求。
29、通過上述技術(shù)方案,對于每個業(yè)務(wù)處理請求對應(yīng)的消息,可以在消息處理映射表中獲取對應(yīng)的消息處理方法,有效提高了業(yè)務(wù)處理請求的處理效率。
30、在一種可能的實現(xiàn)方式中,所述方法還包括:在關(guān)閉所述sdk時,對所述sdk進(jìn)行去初始化。
31、通過上述技術(shù)方案,在關(guān)閉sdk時,對sdk進(jìn)行去初始化,可以及時釋放系統(tǒng)資源,避免占用系統(tǒng)資源,影響設(shè)備其他功能的運(yùn)行。
32、在一種可能的實現(xiàn)方式中,所述對所述sdk進(jìn)行去初始化,包括:從所述消息處理映射表中刪除所述sdk中每個可配置模塊的消息處理方法,刪除每個可配置模塊的服務(wù),刪除每個可配置模塊的對象。
33、通過上述技術(shù)方案,對sdk中每個可配置模塊進(jìn)行去初始化,確保sdk在關(guān)閉后,完全釋放系統(tǒng)資源。
34、第三方面,本技術(shù)實施例還提供一種軟件配置方法,所述方法包括:第一電子設(shè)備根據(jù)獲取的物聯(lián)網(wǎng)設(shè)備的設(shè)備形態(tài)、特性集合及芯片平臺信息,對構(gòu)建文件執(zhí)行sdk通用構(gòu)建腳本,得到所述物聯(lián)網(wǎng)設(shè)備的sdk;所述第一電子設(shè)備將所述sdk發(fā)送至第二電子設(shè)備;所述第二電子設(shè)備獲取第一電子設(shè)備構(gòu)建的sdk,通過固件集成鏈接將所述sdk集成在所述物聯(lián)網(wǎng)設(shè)備的固件中;所述第二電子設(shè)備運(yùn)行所述sdk,對所述sdk進(jìn)行初始化,以及應(yīng)用所述sdk進(jìn)行業(yè)務(wù)處理。
35、通過上述技術(shù)方案,物聯(lián)網(wǎng)設(shè)備廠商可以獲取預(yù)先構(gòu)建好的sdk,并對sdk進(jìn)行進(jìn)一步的配置和固件集成,如此,物聯(lián)網(wǎng)設(shè)備的對端設(shè)備產(chǎn)商無需將特性模塊的源碼開放給物聯(lián)網(wǎng)設(shè)備廠商,保障了終端設(shè)備廠商的內(nèi)部通信協(xié)議的安全,提高了終端設(shè)備廠商私有數(shù)據(jù)的安全性,物聯(lián)網(wǎng)設(shè)備廠商也可以通過對sdk進(jìn)行配置和固件集成,增強(qiáng)了sdk對物聯(lián)網(wǎng)設(shè)備的適配性。
36、在一種可能的實現(xiàn)方式中,所述方法還包括:若根據(jù)所述芯片平臺信息確定所述物聯(lián)網(wǎng)設(shè)備的芯片平臺為新增的芯片平臺,所述第一電子設(shè)備添加所述芯片平臺的交叉編譯鏈;所述第一電子設(shè)備將所述芯片平臺的編譯選項添加至所述sdk的構(gòu)建文件;所述第一電子設(shè)備添加所述芯片平臺的配置信息;所述第一電子設(shè)備建立所述芯片平臺的交叉編譯鏈和所述構(gòu)建文件之間的關(guān)聯(lián),以及建立所述芯片平臺與所述設(shè)備形態(tài)之間的關(guān)聯(lián)。
37、通過上述技術(shù)方案,可以在第一電子設(shè)備中添加新增的芯片平臺的信息,使得構(gòu)建的sdk可以適配不同的芯片平臺,增強(qiáng)sdk的適配性。
38、在一種可能的實現(xiàn)方式中,所述方法還包括:所述第一電子設(shè)備響應(yīng)對所述設(shè)備形態(tài)的特性配置的更新請求,運(yùn)行配置工具,對所述設(shè)備形態(tài)的特性進(jìn)行配置和應(yīng)用;所述第一電子設(shè)備更新所述設(shè)備形態(tài)的特性配置文件。
39、通過上述技術(shù)方案,可以對設(shè)備形態(tài)對應(yīng)的特性集合進(jìn)行更新,從而增強(qiáng)sdk中的靜態(tài)特性庫的可擴(kuò)展性。
40、在一種可能的實現(xiàn)方式中,所述方法還包括:所述第二電子設(shè)備運(yùn)行配置工具,載入所述sdk,通過所述配置工具配置所述物聯(lián)網(wǎng)設(shè)備所需的特性組合;所述第二電子設(shè)備根據(jù)所述物聯(lián)網(wǎng)設(shè)備所需的特性組合生成配置文件;所述第二電子設(shè)備根據(jù)所述配置文件將所述sdk添加至所述物聯(lián)網(wǎng)設(shè)備的固件;所述第二電子設(shè)備修改所述物聯(lián)網(wǎng)設(shè)備中的鏈接腳本;所述第二電子設(shè)備對所述sdk的特性接口進(jìn)行適配;所述第二電子設(shè)備對所述物聯(lián)網(wǎng)設(shè)備的固件進(jìn)行編譯鏈接,生成可執(zhí)行文件;所述第二電子設(shè)備對所述可執(zhí)行文件進(jìn)行運(yùn)行調(diào)試。
41、通過上述技術(shù)方案,物聯(lián)網(wǎng)設(shè)備廠商可以通過固件集成的方式將sdk集成在物聯(lián)網(wǎng)設(shè)備的固件中,使得sdk與物聯(lián)網(wǎng)設(shè)備適配,提高了sdk的運(yùn)行效率。
42、在一種可能的實現(xiàn)方式中,所述方法還包括:所述第二電子設(shè)備獲取所述sdk中的自動修改腳本,在所述自動修改腳本中配置所述物聯(lián)網(wǎng)設(shè)備的芯片平臺參數(shù)信息和sdk標(biāo)識符插入位置;所述第二電子設(shè)備在所述自動修改腳本導(dǎo)入所述芯片平臺的原始鏈接腳本;所述第二電子設(shè)備運(yùn)行所述自動修改腳本,通過所述自動修改腳本根據(jù)所述sdk標(biāo)識符插入位置將sdk標(biāo)識符插入至所述原始鏈接腳本,得到修改后的鏈接腳本;所述第二電子設(shè)備應(yīng)用所述修改后的鏈接腳本。
43、通過上述技術(shù)方案,采用sdk提供的自動修改腳本將sdk標(biāo)識符插入至物聯(lián)網(wǎng)設(shè)備的原始鏈接腳本,可以實現(xiàn)sdk中可配置模塊的自注冊機(jī)制,提高sdk運(yùn)行過程中可配置模塊的初始化效率。
44、在一種可能的實現(xiàn)方式中,所述方法還包括:所述第二電子設(shè)備聲明所述sdk的每個可配置模塊的初始化方法到所述sdk自定義的符號標(biāo)識的對應(yīng)段,根據(jù)初始化的優(yōu)先級生成初始化方法表。
45、通過上述技術(shù)方案,可以實現(xiàn)可配置模塊的自注冊,初始化方法不需要被顯式調(diào)用,只需要在初始化方法定義處通過預(yù)定的方式進(jìn)行聲明,初始化方法就會在sdk運(yùn)行過程中被執(zhí)行。
46、第四方面,本技術(shù)提供一種電子設(shè)備,所述電子設(shè)備包括存儲器和處理器:其中,所述存儲器,用于存儲程序指令;所述處理器,用于讀取并執(zhí)行所述存儲器中存儲的所述程序指令,當(dāng)所述程序指令被所述處理器執(zhí)行時,使得所述電子設(shè)備執(zhí)行上述的軟件配置方法。
47、第五方面,本技術(shù)提供一種芯片,與電子設(shè)備中的存儲器耦合,所述芯片用于控制所述電子設(shè)備的處理器執(zhí)行上述的軟件配置方法。
48、第六方面,本技術(shù)提供一種計算機(jī)存儲介質(zhì),所述計算機(jī)存儲介質(zhì)存儲有程序指令,當(dāng)所述程序指令在電子設(shè)備上運(yùn)行時,使得所述電子設(shè)備的處理器執(zhí)行上述的軟件配置方法。
49、另外,第四方面至第六方面所帶來的技術(shù)效果可參見上述方法部分各設(shè)計的方法相關(guān)的描述,此處不再贅述。