實施例中,其中步驟S200具體包括:
步驟S201、自定義系統(tǒng)控件源碼包在開機初始化時進行加載;
步驟S202、啟動Android平臺的Java虛擬機,初始化預(yù)加載自定義系統(tǒng)控件資源包。
[0032]具體實施時,自定義系統(tǒng)控件源碼包作為Android系統(tǒng)的基礎(chǔ)庫,在開機初始化時進行加載。啟動Android平臺的Java虛擬機,通過孵化器(Zygote)進程初始化預(yù)加載自定義系統(tǒng)控件資源包。其中Zygote進程是接收客戶端創(chuàng)建進程的請求,從而創(chuàng)建進程。
[0033]其中,所述步驟S201具體包括:
步驟S211、重新指定自定義系統(tǒng)控件的資源包的加載路徑,設(shè)置默認路徑為系統(tǒng)路徑、可選路徑為其它路徑;
步驟S212、系統(tǒng)初始化時,根據(jù)動態(tài)選擇的路徑進行加載,若動態(tài)選擇路徑下無自定義系統(tǒng)資源包則加載系統(tǒng)路徑下的自定義資源包。
[0034]具體實施時,在加載自定義系統(tǒng)控件資源包之前,需要預(yù)先設(shè)置指定自定義系統(tǒng)控件資源包加載路徑。
[0035]在系統(tǒng)初始化時,系統(tǒng)資源包(包括系統(tǒng)增量資源)加載路徑會被指定,而自定義系統(tǒng)控件的資源包已經(jīng)從系統(tǒng)資源包中抽離,形成獨立的資源包,需要重新指定加載路徑才會被系統(tǒng)初始化時加載;自定義系統(tǒng)控件的加載路徑以可控方式進行設(shè)定:默認路徑設(shè)置為系統(tǒng)路徑;可選路徑設(shè)定為其它路徑,可用于動態(tài)更替自定義系統(tǒng)資源包使用。
[0036]系統(tǒng)啟動初始化時,根據(jù)動態(tài)選擇的路徑進行加載,若動態(tài)選擇路徑無自定義系統(tǒng)資源包則加載系統(tǒng)路徑下的自定義系統(tǒng)資源包。
[0037]由以上方法實施例可知,本發(fā)明提供了一種自定義系統(tǒng)控件的擴展方法,通過修改android編譯配置文件,修改源碼后,添加自定義系統(tǒng)控件代碼及資源,修改自定義控件源碼編譯文件及控件包名稱,編譯生成的自定義控件包及資源包,系統(tǒng)初始化時,根據(jù)預(yù)先指定的自定義控件資源包路徑,加載自定義系統(tǒng)控件資源。本發(fā)明可降低自定義系統(tǒng)控件與原生代碼的耦合度,減少系統(tǒng)移植的工作量,方便動態(tài)實現(xiàn)系統(tǒng)控件的效果替換,降低系統(tǒng)出錯的幾率。
[0038]在上述方法實施例的基礎(chǔ)上,本發(fā)明還提供了一種自定義系統(tǒng)控件的擴展系統(tǒng)的較佳實施例的功能原理框圖,如圖2所示,所述系統(tǒng)包括:
資源包生成與編譯模塊100,用于將編寫自定義控件的源代碼生成自定義控件源碼包,將加入的相關(guān)資源生成自定義系統(tǒng)控件資源包,并分別進行編譯;具體如上所述。
[0039]加載模塊200,用于系統(tǒng)分別加載自定義系統(tǒng)控件源碼包及自定義系統(tǒng)控件資源包;具體如上所述。
[0040]所述的自定義系統(tǒng)控件的擴展系統(tǒng),其中,所述資源包生成與編譯模塊具體包括:
自定義控件源碼生成單元,用于編寫自定義系統(tǒng)控件源代碼設(shè)置在自定義系統(tǒng)控件目錄下,編寫對應(yīng)的Android編譯配置文件;具體如上所述。
[0041]視圖資源包生成單元,用于編寫自定義控件相關(guān)的資源文件,放置在自定義系統(tǒng)控件目錄下,將自定義系統(tǒng)控件使用的相關(guān)圖片資源放置在自定義系統(tǒng)控件目錄,編寫對應(yīng)的Android編譯配置文件,并為自定義控件系統(tǒng)包定義唯一控件包名稱,將編寫好的編譯配置文件放置在自定義系統(tǒng)控件目錄下;具體如上所述。
[0042]引用方式修改單元,用于修改自定義系統(tǒng)控件源代碼中對于自定義系統(tǒng)控件相關(guān)資源的引用方式,修改為根據(jù)自定義系統(tǒng)控件資源包的包名進行引用;具體如上所述。
[0043]編譯單元,用于編譯生成的自定義系統(tǒng)控件源碼包及自定義系統(tǒng)控件資源包;具體如上所述。
[0044]所述的自定義系統(tǒng)控件的擴展系統(tǒng),其中,所述加載模塊具體包括:
加載單元,用于自定義系統(tǒng)控件源碼包在開機初始化時進行加載;具體如上所述。
[0045]初始化單元,用于啟動Android平臺的Java虛擬機,初始化預(yù)加載自定義系統(tǒng)控件資源包;具體如上所述。
[0046]所述的自定義系統(tǒng)控件的擴展系統(tǒng),其中,所述資源包生成與編譯模塊還包括:
編譯配置文件修改單元,用于修改系統(tǒng)環(huán)境中的Android編譯配置文件;具體如上所述。
[0047]資源包id分配單元,用于修改編譯工具,當編譯自定義系統(tǒng)控件資源時,為自定義系統(tǒng)控件資源包反向分配資源包id ;具體如上所述。
[0048]所述的自定義系統(tǒng)控件的擴展系統(tǒng),其中,所述加載單元具體包括:
路徑設(shè)置模塊,用于重新指定自定義系統(tǒng)控件的資源包的加載路徑,設(shè)置默認路徑為系統(tǒng)路徑、可選路徑為其它路徑;具體如上所述。
[0049]路徑選擇與加載單元,用于系統(tǒng)初始化時,根據(jù)動態(tài)選擇的路徑進行加載,若動態(tài)選擇路徑下無自定義系統(tǒng)資源包則加載系統(tǒng)路徑下的自定義資源包;具體如上所述。
[0050]綜上所述,本發(fā)明公開了一種自定義系統(tǒng)控件的擴展方法及系統(tǒng),所述方法包括:將編寫自定義控件的源代碼生成自定義控件源碼包,將加入的相關(guān)資源生成自定義系統(tǒng)控件資源包,并分別進行編譯;系統(tǒng)分別加載自定義系統(tǒng)控件源碼包及自定義系統(tǒng)控件資源包。本發(fā)明可將自定義系統(tǒng)控件資源獨立打包,減少與系統(tǒng)資源的偶合度,便于動態(tài)實現(xiàn)自定義系統(tǒng)控件資源包的效果替換;降低維護成本,提供開發(fā)效率。
[0051]應(yīng)當理解的是,本發(fā)明的應(yīng)用不限于上述的舉例,對本領(lǐng)域普通技術(shù)人員來說,可以根據(jù)上述說明加以改進或變換,所有這些改進和變換都應(yīng)屬于本發(fā)明所附權(quán)利要求的保護范圍。
【主權(quán)項】
1.一種自定義系統(tǒng)控件的擴展方法,其特征在于,方法包括: A、將編寫自定義控件的源代碼生成自定義控件源碼包,將加入的相關(guān)資源生成自定義系統(tǒng)控件資源包,并分別進行編譯; B、系統(tǒng)分別加載自定義系統(tǒng)控件源碼包及自定義系統(tǒng)控件資源包。2.根據(jù)權(quán)利要求1所述的自定義系統(tǒng)控件的擴展方法,其特征在于,所述步驟A具體包括: A1、編寫自定義系統(tǒng)控件源代碼設(shè)置在自定義系統(tǒng)控件目錄下,編寫對應(yīng)的Android編譯配置文件; A2、編寫自定義控件相關(guān)的資源文件,放置在自定義系統(tǒng)控件目錄下,將自定義系統(tǒng)控件使用的相關(guān)圖片資源放置在自定義系統(tǒng)控件目錄,編寫對應(yīng)的Android編譯配置文件,并為自定義控件系統(tǒng)包定義唯一控件包名稱,將編寫好的編譯配置文件放置在自定義系統(tǒng)控件目錄下; A3、修改自定義系統(tǒng)控件源代碼中對于自定義系統(tǒng)控件相關(guān)資源的引用方式,修改為根據(jù)自定義系統(tǒng)控件資源包的包名進行引用; A4、編譯生成的自定義系統(tǒng)控件源碼包及自定義系統(tǒng)控件資源包。3.根據(jù)權(quán)利要求2所述的自定義系統(tǒng)控件的擴展方法,其特征在于,所述步驟B具體包括: B1、自定義系統(tǒng)控件源碼包在開機初始化時進行加載; B2、啟動Android平臺的Java虛擬機,初始化預(yù)加載自定義系統(tǒng)控件資源包。4.根據(jù)權(quán)利要求3所述的自定義系統(tǒng)控件的擴展方法,其特征在于,所述步驟A2之前還包括具體包括: A21、修改系統(tǒng)環(huán)境中的Android編譯配置文件; A22、修改編譯工具,當編譯自定義系統(tǒng)控件資源時,為自定義系統(tǒng)控件資源包反向分配資源包id。5.根據(jù)權(quán)利要求4所述的自定義系統(tǒng)控件的擴展方法,其特征在于,所述步驟B1具體包括: B11、重新指定自定義系統(tǒng)控件的資源包的加載路徑,設(shè)置默認路徑為系統(tǒng)路徑、可選路徑為其它路徑; B12、系統(tǒng)初始化時,根據(jù)動態(tài)選擇的路徑進行加載,若動態(tài)選擇路徑下無自定義系統(tǒng)資源包則加載系統(tǒng)路徑下的自定義資源包。6.一種自定義系統(tǒng)控件的擴展系統(tǒng),其特征在于,系統(tǒng)包括: 資源包生成與編譯模塊,用于將編寫自定義控件的源代碼生成自定義控件源碼包,將加入的相關(guān)資源生成自定義系統(tǒng)控件資源包,并分別進行編譯; 加載模塊,用于系統(tǒng)分別加載自定義系統(tǒng)控件源碼包及自定義系統(tǒng)控件資源包。7.根據(jù)權(quán)利要求6所述的自定義系統(tǒng)控件的擴展系統(tǒng),其特征在于,所述資源包生成與編譯模塊具體包括: 自定義控件源碼生成單元,用于編寫自定義系統(tǒng)控件源代碼設(shè)置在自定義系統(tǒng)控件目錄下,編寫對應(yīng)的Android編譯配置文件; 視圖資源包生成單元,用于編寫自定義控件相關(guān)的資源文件,放置在自定義系統(tǒng)控件目錄下,將自定義系統(tǒng)控件使用的相關(guān)圖片資源放置在自定義系統(tǒng)控件目錄,編寫對應(yīng)的Android編譯配置文件,并為自定義控件系統(tǒng)包定義唯一控件包名稱,將編寫好的編譯配置文件放置在自定義系統(tǒng)控件目錄下; 引用方式修改單元,用于修改自定義系統(tǒng)控件源代碼中對于自定義系統(tǒng)控件相關(guān)資源的引用方式,修改為根據(jù)自定義系統(tǒng)控件資源包的包名進行引用; 編譯單元,用于編譯生成的自定義系統(tǒng)控件源碼包及自定義系統(tǒng)控件資源包。8.根據(jù)權(quán)利要求7所述的自定義系統(tǒng)控件的擴展系統(tǒng),其特征在于,所述加載模塊具體包括: 加載單元,用于自定義系統(tǒng)控件源碼包在開機初始化時進行加載; 初始化單元,用于啟動Android平臺的Java虛擬機,初始化預(yù)加載自定義系統(tǒng)控件資源包。9.根據(jù)權(quán)利要求8所述的自定義系統(tǒng)控件的擴展系統(tǒng),其特征在于,所述資源包生成與編譯模塊還包括: 編譯配置文件修改單元,用于修改系統(tǒng)環(huán)境中的Android編譯配置文件; 資源包id分配單元,用于修改編譯工具,當編譯自定義系統(tǒng)控件資源時,為自定義系統(tǒng)控件資源包反向分配資源包id。10.根據(jù)權(quán)利要求9所述的自定義系統(tǒng)控件的擴展系統(tǒng),其特征在于,所述加載單元具體包括: 路徑設(shè)置模塊,用于重新指定自定義系統(tǒng)控件的資源包的加載路徑,設(shè)置默認路徑為系統(tǒng)路徑、可選路徑為其它路徑; 路徑選擇與加載單元,用于系統(tǒng)初始化時,根據(jù)動態(tài)選擇的路徑進行加載,若動態(tài)選擇路徑下無自定義系統(tǒng)資源包則加載系統(tǒng)路徑下的自定義資源包。
【專利摘要】本發(fā)明公開了一種自定義系統(tǒng)控件的擴展方法及系統(tǒng),所述方法包括:將編寫自定義控件的源代碼生成自定義控件源碼包,將加入的相關(guān)資源生成自定義系統(tǒng)控件資源包,并分別進行編譯;系統(tǒng)分別加載自定義系統(tǒng)控件源碼包及自定義系統(tǒng)控件資源包。本發(fā)明可將自定義系統(tǒng)控件資源獨立打包,減少與系統(tǒng)資源的偶合度,便于動態(tài)實現(xiàn)自定義系統(tǒng)控件資源包的效果替換;降低維護成本,提供開發(fā)效率。
【IPC分類】G06F9/45, G06F9/455
【公開號】CN105335206
【申請?zhí)枴緾N201510667777
【發(fā)明人】李貞貞
【申請人】Tcl集團股份有限公司
【公開日】2016年2月17日
【申請日】2015年10月16日