專利名稱:一種java虛擬機(jī)圖片資源加載的方法和終端的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種JAVA應(yīng)用領(lǐng)域,特別是涉及一種終端JAVA虛擬機(jī)圖片資源加載 方法和終端。
背景技術(shù):
目前隨著手機(jī)終端國(guó)際化進(jìn)程的推進(jìn),市場(chǎng)規(guī)模的不斷擴(kuò)大,技術(shù)的不斷更新,使 得手機(jī)在種類、外觀、功能等方面有了前所未有的突破,同時(shí)在操作系統(tǒng)、芯片、無線傳輸制 式等方面也有了擴(kuò)展和深入。與此同時(shí),手機(jī)市場(chǎng)對(duì)Java也產(chǎn)生了巨大的需求增長(zhǎng),支持 JAVA虛擬機(jī)的功能顯得尤為重要,基于嵌入式平臺(tái)的JAVA虛擬機(jī)已經(jīng)成為了多數(shù)主流運(yùn) 營(yíng)商對(duì)手機(jī)(特別是定制手機(jī))的強(qiáng)制性要求。廣大的消費(fèi)者,運(yùn)營(yíng)商,服務(wù)/內(nèi)容提供商 以及手機(jī)制造商強(qiáng)烈渴望手機(jī)的Java性能更加強(qiáng)勁,支持更多更復(fù)雜的應(yīng)用,為產(chǎn)業(yè)鏈各 方帶來更多商機(jī)和收入,同時(shí)也為用戶帶來更豐富多彩的增值應(yīng)用。眾所周知,JAVA虛擬機(jī)的跨平臺(tái)性,使得手機(jī)的能力得到了不斷的提升。但JAVA 虛擬機(jī)如何在不斷為運(yùn)營(yíng)商擴(kuò)展新業(yè)務(wù),為用戶帶來更豐富的增值業(yè)務(wù)的同時(shí),提升自身 的性能,也是需要深入考慮的問題。圖片資源的加載是影響JAVA虛擬機(jī)性能的因素之一。 目前,JAVA虛擬機(jī)加載圖片資源的主要方式有兩種第一種圖片資源加載方式首先把JAVA虛擬機(jī)所需圖片資源rom化,即將圖片資 源解碼為原始數(shù)據(jù)(主要是指描述圖片每個(gè)像素顏色值、透明度等信息的點(diǎn)陣數(shù)組),然后 在編譯時(shí)集成到Java組件的可執(zhí)行文件或庫中。當(dāng)JAVA虛擬機(jī)運(yùn)行時(shí),直接從可執(zhí)行文 件或者jvm庫中讀取圖片數(shù)據(jù)進(jìn)行加載。這種方法的優(yōu)點(diǎn)是JAVA虛擬機(jī)加載圖片過程簡(jiǎn) 單,直接從內(nèi)存中讀取原始數(shù)據(jù)進(jìn)行加載。但缺點(diǎn)也較為明顯一方面增加了 Java組件可 執(zhí)行文件或庫的大小,增加了手機(jī)內(nèi)存的開銷;另一方面當(dāng)JAVA虛擬機(jī)的某一圖片資源發(fā) 生變換時(shí),必須重新進(jìn)行JAVA虛擬機(jī)版本的編譯,圖片資源不能得到靈活的配置,且在平 臺(tái)眾多,型號(hào)機(jī)眾多的大規(guī)模項(xiàng)目定制中,增加了版本的管理難度。第二種圖片資源加載方式采用文件系統(tǒng)讀取圖片資源的方式來加載。即在JAVA 虛擬機(jī)啟動(dòng)時(shí),從文件系統(tǒng)讀取圖片資源,對(duì)所需圖片資源進(jìn)行解碼,得到圖片未編碼壓縮 的原始數(shù)據(jù)后,再進(jìn)行加載。這種方法對(duì)于目前圖片資源豐富且數(shù)量多的情況下,增加了圖 片解碼的時(shí)間,將會(huì)嚴(yán)重影響圖片加載速度,從而影響了用戶的體驗(yàn)性。目前現(xiàn)有的JAVA虛擬機(jī)圖片資源加載的方法都存在著各自的不足。特別是在目 前手機(jī)終端能力不斷提升的情況下,現(xiàn)有的JAVA虛擬機(jī)圖片資源加載方法的不足顯得尤 其明顯。例如目前為了滿足用戶圖形界面?zhèn)€性化的需求,手機(jī)終端界面通常允許用戶進(jìn)行 界面風(fēng)格的選擇與切換,作為手機(jī)終端的一個(gè)重要組件,JAVA虛擬機(jī)應(yīng)該能夠根據(jù)平臺(tái)側(cè) 的界面風(fēng)格的改變,來對(duì)自己的界面風(fēng)格進(jìn)行相應(yīng)的改變。而采用目前現(xiàn)有的JAVA虛擬機(jī) 加載圖片資源的方法來實(shí)現(xiàn)這一改變是比較困難的。綜上可知,現(xiàn)有的JAVA虛擬機(jī)圖片資源加載方法,在實(shí)際使用上存在各自的不便 與缺陷,所以有必要加以改進(jìn)。
發(fā)明內(nèi)容
針對(duì)上述的缺陷,本發(fā)明的目的在于提供一種新的JAVA虛擬機(jī)加載圖片資源的 方法及終端,以提高JAVA虛擬機(jī)圖片的加載速度。為了解決上述技術(shù)問題,本發(fā)明提供了一種JAVA虛擬機(jī)圖片資源加載的方法,包 括獲取JAVA虛擬機(jī)所需的圖片資源,將所述圖片資源解碼為原始數(shù)據(jù)后進(jìn)行存儲(chǔ);在JAVA虛擬機(jī)正常運(yùn)行中,接收到加載圖片事件后,讀取相應(yīng)界面圖片的原始數(shù) 據(jù)進(jìn)行圖片加載。進(jìn)一步地,上述方法還具有下面特點(diǎn)所述將所述圖片資源解碼為原始數(shù)據(jù)具體 為將所述圖片資源解碼為raw格式的原始數(shù)據(jù)。進(jìn)一步地,上述方法還具有下面特點(diǎn)所述將所述圖片資源解碼為原始數(shù)據(jù)后進(jìn) 行存儲(chǔ)具體為將所述原始數(shù)據(jù)存儲(chǔ)在文件系統(tǒng)中。進(jìn)一步地,上述方法還具有下面特點(diǎn)所述將所述原始數(shù)據(jù)存儲(chǔ)在文件系統(tǒng)中還 包括根據(jù)圖片代表的風(fēng)格,將相應(yīng)的原始數(shù)據(jù)文件放置在不同的資源路徑下的文件系 統(tǒng)中。進(jìn)一步地,上述方法還具有下面特點(diǎn)所述讀取相應(yīng)界面圖片的原始數(shù)據(jù)進(jìn)行圖 片加載包括變換資源路徑,從所述文件系統(tǒng)中獲取相應(yīng)界面的原始數(shù)據(jù)文件;從所述原始數(shù)據(jù)文件中讀取相應(yīng)的原始數(shù)據(jù)進(jìn)行圖片加裁。為了解決上述問題,本發(fā)明還提供了一種終端,支持JAVA虛擬機(jī)功能,包括預(yù)處理模塊,用于獲取JAVA虛擬機(jī)所需的圖片資源,將所述圖片資源解碼為原始 數(shù)據(jù)后進(jìn)行存儲(chǔ);加載模塊,用于在JAVA虛擬機(jī)正常運(yùn)行中,接收到圖片加裁事件后,讀取相應(yīng)界 面圖片的原始數(shù)據(jù)進(jìn)行圖片加載。進(jìn)一步地,上述終端還具有下面特點(diǎn)所述預(yù)處理模塊,具體用于將所述圖片資源 解碼為raw格式的原始數(shù)據(jù)。進(jìn)一步地,上述終端還具有下面特點(diǎn)所述預(yù)處理模塊,具體用于將所述原始數(shù)據(jù) 存儲(chǔ)在文件系統(tǒng)中。進(jìn)一步地,上述終端還具有下面特點(diǎn)所述預(yù)處理模塊,還用于根據(jù)圖片代表的風(fēng) 格,將相應(yīng)的原始數(shù)據(jù)文件放置在不同的資源路徑下的文件系統(tǒng)中。進(jìn)一步地,上述終端還具有下面特點(diǎn)所述加載模塊,具體用于變換資源路徑,從所述文件系統(tǒng)中獲取相應(yīng)界面的原始 數(shù)據(jù)文件;從所述原始數(shù)據(jù)文件中讀取相應(yīng)的原始數(shù)據(jù)進(jìn)行圖片加裁。綜上,本發(fā)明提供的一種JAVA虛擬機(jī)加載圖片資源的方法及終端,一方面可以控 制JAVA虛擬機(jī)圖片的加載速度,從而確保了 JAVA虛擬機(jī)的啟動(dòng)速度;另一方面可以靈活配 置使用圖片資源,增強(qiáng)了 JAVA虛擬機(jī)對(duì)于所加載圖片資源的選擇性,從而方便地解決了大規(guī)模定制中多版本管理,界面風(fēng)格切換等問題。
圖1為本發(fā)明實(shí)施例的終端的示意圖;圖2為本發(fā)明的JAVA虛擬機(jī)圖片資源加載的方法的流程圖;圖3為本發(fā)明實(shí)施例的對(duì)圖片資源進(jìn)行預(yù)處理的流程圖;圖4為本發(fā)明實(shí)施例的JAVA虛擬機(jī)加載圖片資源的流程圖。
具體實(shí)施例方式為了達(dá)成上述目的,本發(fā)明主要是將JAVA虛擬機(jī)所需圖片資源分離出來,對(duì)其進(jìn) 行預(yù)處理,解碼為圖片的原始數(shù)據(jù)。當(dāng)JAVA虛擬機(jī)需要圖片加載時(shí),靈活選擇所需圖片資 源數(shù)據(jù)進(jìn)行動(dòng)態(tài)的加載。為了更好地理解本發(fā)明,下面結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明作進(jìn)一步地描述。圖1為本發(fā)明實(shí)施例的終端的示意圖,本實(shí)施例的終端支持JAVA虛擬機(jī)功能,如 圖1所示,本實(shí)施例的終端包括預(yù)處理模塊和加載模塊,其中,預(yù)處理模塊,用于獲取JAVA虛擬機(jī)所需的圖片資源,將所述圖片資源解碼為原始 數(shù)據(jù)后進(jìn)行存儲(chǔ);加載模塊,用于在JAVA虛擬機(jī)正常運(yùn)行中,接收到圖片加裁事件后,讀取相應(yīng)界 面圖片的原始數(shù)據(jù)進(jìn)行圖片加載。這樣,本實(shí)施例的終端將JAVA虛擬機(jī)所需的圖片資源分離出來,對(duì)圖片資源進(jìn)行 了預(yù)處理,所以在加載相應(yīng)圖片時(shí)減少了對(duì)圖片資源進(jìn)行解碼的環(huán)節(jié),從而提高了圖片加 載速度。進(jìn)一步地,所述預(yù)處理模塊具體用于將所述圖片資源解碼為raw格式的原始數(shù) 據(jù)。優(yōu)選地,所述預(yù)處理模塊,還用于根據(jù)圖片代表的風(fēng)格,將相應(yīng)的原始數(shù)據(jù)文件放 置在不同的資源路徑下的文件系統(tǒng)中。所述加載模塊加載圖片時(shí)具體用于,變換資源路徑,從所述文件系統(tǒng)中獲取相應(yīng) 界面的原始數(shù)據(jù)文件;從所述原始數(shù)據(jù)文件中讀取相應(yīng)的原始數(shù)據(jù)進(jìn)行圖片加裁。這樣,本實(shí)施例的終端可以靈活配置使用圖片資源,增強(qiáng)了 JAVA虛擬機(jī)對(duì)于所加 載圖片資源的選擇性,從而方便地解決了大規(guī)模定制中多版本管理,界面風(fēng)格切換等問題。圖2為本發(fā)明的JAVA虛擬機(jī)圖片資源加載的方法的流程圖,如圖2所示,本發(fā)明 的方法可以包括下面步驟S10、獲取JAVA虛擬機(jī)所需的圖片資源,將所述圖片資源解碼為原始數(shù)據(jù)后進(jìn)行 存儲(chǔ);S20、在JAVA虛擬機(jī)正常運(yùn)行中,接收到圖片加載事件(例如,改變界面風(fēng)格的事 件或改變屏幕尺寸大小的事件)后,讀取相應(yīng)界面圖片的原始數(shù)據(jù)進(jìn)行圖片加載。這樣,本發(fā)明的方法將JAVA虛擬機(jī)所需的圖片資源分離出來,對(duì)圖片資源進(jìn)行了 預(yù)處理,所以在加載相應(yīng)圖片時(shí)減少了對(duì)圖片資源進(jìn)行解碼的環(huán)節(jié),從而提高了圖片加載 速度。
進(jìn)一步地,在步驟SlO中,對(duì)原始數(shù)據(jù)進(jìn)行存儲(chǔ)具體為,根據(jù)圖片代表的風(fēng)格,將 相應(yīng)的原始數(shù)據(jù)文件放置在不同的資源路徑下的文件系統(tǒng)中。在步驟S20中,所述讀取相應(yīng)界面圖片的原始數(shù)據(jù)進(jìn)行圖片加載的步驟包括變換資源路徑,從所述文件系統(tǒng)中獲取相應(yīng)界面的原始數(shù)據(jù)文件;從所述原始數(shù)據(jù)文件中讀取相應(yīng)的原始數(shù)據(jù)進(jìn)行圖片加裁。這樣,根據(jù)本實(shí)施例的方法可以靈活配置使用圖片資源,增強(qiáng)了 JAVA虛擬機(jī)對(duì)于 所加載圖片資源的選擇性,從而方便地解決了大規(guī)模定制中多版本管理,界面風(fēng)格切換等 問題。圖3為本發(fā)明實(shí)施例的對(duì)圖片資源進(jìn)行預(yù)處理的流程圖,如圖3所示,可以包括下 面步驟S101、獲取JAVA虛擬機(jī)所需的各套界面風(fēng)格的圖片資源;S102、將圖片資源解碼為原始數(shù)據(jù);具體地,使用圖片格式轉(zhuǎn)換工具,將JAVA虛擬機(jī)使用的圖片解碼為raw格式的原 始數(shù)據(jù)。S103、將原始數(shù)據(jù)保存在文件系統(tǒng)中。將生成的raw格式的原始數(shù)據(jù)存儲(chǔ)于文件系統(tǒng)中,以備后續(xù)加載使用。具體地,根據(jù)圖片代表風(fēng)格的不同,將相應(yīng)的原始數(shù)據(jù)文件放置不同的資源路徑 下的文件系統(tǒng)中,例如,將風(fēng)格1的圖片資源放置在路徑1下,將風(fēng)格η的圖片資源放置在 路徑η下。圖4為本發(fā)明實(shí)施例的JAVA虛擬機(jī)加載圖片資源的流程圖,如圖4所示,可以包 括下面步驟S201、JAVA虛擬機(jī)正常運(yùn)行,接收到需要改變界面風(fēng)格的事件;S202、變換資源路徑,指定新風(fēng)格界面的圖片資源路徑;S203、根據(jù)指定的圖片資源路徑讀取新界面的圖片原始數(shù)據(jù)進(jìn)行圖片加載。具體地,根據(jù)指定的圖片資源路徑從文件系統(tǒng)中獲取新界面的圖片原始數(shù)據(jù)文 件,讀取新界面的圖片原始數(shù)據(jù)進(jìn)行圖片加載,實(shí)現(xiàn)JAVA虛擬機(jī)界面風(fēng)格切換。本實(shí)施例的JAVA虛擬機(jī)加載圖片資源的方法,與rom化加載圖片的方法相比,將 圖片資源分離出來,保持JAVA虛擬機(jī)核心版本的獨(dú)立性,這樣可以靈活地配置使用圖片資 源,并且控制了 JAVA虛擬機(jī)可執(zhí)行文件或者庫的大??;與現(xiàn)有的文件讀取圖片資源的方法 相比,因?yàn)樵谇捌谝呀?jīng)將圖片資源進(jìn)行了預(yù)處理,所以在加載時(shí)減少了對(duì)圖片資源進(jìn)行解 碼的環(huán)節(jié),從而提高加載速度。上述實(shí)施例僅是使用本發(fā)明中JAVA虛擬機(jī)加載圖片的一個(gè)場(chǎng)景,當(dāng)然本發(fā)明還 有很多應(yīng)用場(chǎng)景,例如目前很多手機(jī)支持橫豎屏切換功能,當(dāng)JavaJAVA虛擬機(jī)判斷到當(dāng)前 的界面屏幕設(shè)置發(fā)生變換后,需要根據(jù)屏幕大小來加載合適尺寸的圖片資源數(shù)據(jù)。根據(jù)本 發(fā)明中的圖片資源加載的方法,可以正確、方便地加載不同尺寸下的圖片資源,同時(shí)還可以 保證JAVA虛擬機(jī)加載圖片的速度。本發(fā)明中提出的圖片資源加載的方法,將JAVA虛擬機(jī)版本中可變的圖片資源獨(dú) 立出來,保持其核心內(nèi)容的獨(dú)立性。因此將圖片資源解碼的過程獨(dú)立出來,而不再是集成到 JAVA虛擬機(jī)的可執(zhí)行文件或庫中,所以可以做到圖片資源的靈活配置,同時(shí)正是由于圖片資源解碼過程的獨(dú)立,使得不需要在JAVA虛擬機(jī)需要加載圖片時(shí)才進(jìn)行圖片的解碼,因此 降低了 JAVA虛擬機(jī)加載圖片的時(shí)間。本領(lǐng)域普通技術(shù)人員可以理解上述方法中的全部或部分步驟可通過程序來指令 相關(guān)硬件完成,所述程序可以存儲(chǔ)于計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,如只讀存儲(chǔ)器、磁盤或光盤 等??蛇x地,上述實(shí)施例的全部或部分步驟也可以使用一個(gè)或多個(gè)集成電路來實(shí)現(xiàn)。相應(yīng) 地,上述實(shí)施例中的各模塊/單元可以采用硬件的形式實(shí)現(xiàn),也可以采用軟件功能模塊的 形式實(shí)現(xiàn)。本發(fā)明不限制于任何特定形式的硬件和軟件的結(jié)合。以上僅為本發(fā)明的優(yōu)選實(shí)施例,當(dāng)然,本發(fā)明還可有其他多種實(shí)施例,在不背離本 發(fā)明精神及其實(shí)質(zhì)的情況下,熟悉本領(lǐng)域的技術(shù)人員當(dāng)可根據(jù)本發(fā)明作出各種相應(yīng)的改變 和變形,但這些相應(yīng)的改變和變形都應(yīng)屬于本發(fā)明所附的權(quán)利要求的保護(hù)范圍。
權(quán)利要求
一種JAVA虛擬機(jī)圖片資源加載的方法,包括獲取JAVA虛擬機(jī)所需的圖片資源,將所述圖片資源解碼為原始數(shù)據(jù)后進(jìn)行存儲(chǔ);在JAVA虛擬機(jī)正常運(yùn)行中,接收到加載圖片事件后,讀取相應(yīng)界面圖片的原始數(shù)據(jù)進(jìn)行圖片加載。
2.如權(quán)利要求1所述的方法,其特征在于所述將所述圖片資源解碼為原始數(shù)據(jù)具體為將所述圖片資源解碼為raw格式的原始數(shù)據(jù)。
3.如權(quán)利要求1或2所述的方法,其特征在于所述將所述圖片資源解碼為原始數(shù)據(jù) 后進(jìn)行存儲(chǔ)具體為將所述原始數(shù)據(jù)存儲(chǔ)在文件系統(tǒng)中。
4.如權(quán)利要求3所述的方法,其特征在于所述將所述原始數(shù)據(jù)存儲(chǔ)在文件系統(tǒng)中還 包括根據(jù)圖片代表的風(fēng)格,將相應(yīng)的原始數(shù)據(jù)文件放置在不同的資源路徑下的文件系統(tǒng)中。
5.如權(quán)利要求4所述的方法,其特征在于所述讀取相應(yīng)界面圖片的原始數(shù)據(jù)進(jìn)行圖 片加載包括變換資源路徑,從所述文件系統(tǒng)中獲取相應(yīng)界面的原始數(shù)據(jù)文件; 從所述原始數(shù)據(jù)文件中讀取相應(yīng)的原始數(shù)據(jù)進(jìn)行圖片加裁。
6.一種終端,支持JAVA虛擬機(jī)功能,包括預(yù)處理模塊,用于獲取JAVA虛擬機(jī)所需的圖片資源,將所述圖片資源解碼為原始數(shù)據(jù) 后進(jìn)行存儲(chǔ);加載模塊,用于在JAVA虛擬機(jī)正常運(yùn)行中,接收到圖片加裁事件后,讀取相應(yīng)界面圖 片的原始數(shù)據(jù)進(jìn)行圖片加載。
7.如權(quán)利要求6所述的終端,其特征在于所述預(yù)處理模塊,具體用于將所述圖片資源解碼為raw格式的原始數(shù)據(jù)。
8.如權(quán)利要求6或7所述的終端,其特征在于所述預(yù)處理模塊,具體用于將所述原始數(shù)據(jù)存儲(chǔ)在文件系統(tǒng)中。
9.如權(quán)利要求8所述的終端,其特征在于所述預(yù)處理模塊,還用于根據(jù)圖片代表的風(fēng)格,將相應(yīng)的原始數(shù)據(jù)文件放置在不同的 資源路徑下的文件系統(tǒng)中。
10.如權(quán)利要求9所述的終端,其特征在于所述加載模塊,具體用于變換資源路徑,從所述文件系統(tǒng)中獲取相應(yīng)界面的原始數(shù)據(jù) 文件;從所述原始數(shù)據(jù)文件中讀取相應(yīng)的原始數(shù)據(jù)進(jìn)行圖片加裁。
全文摘要
本發(fā)明提供一種JAVA虛擬機(jī)加載圖片資源的方法及終端,該方法包括獲取JAVA虛擬機(jī)所需的圖片資源,將所述圖片資源解碼為原始數(shù)據(jù)后進(jìn)行存儲(chǔ);在JAVA虛擬機(jī)正常運(yùn)行中,接收到加載圖片事件后,讀取相應(yīng)界面圖片的原始數(shù)據(jù)進(jìn)行圖片加載。根據(jù)本發(fā)明可以控制JAVA虛擬機(jī)圖片的加載速度,從而確保了JAVA虛擬機(jī)的啟動(dòng)速度。
文檔編號(hào)G06F9/445GK101930376SQ20101026524
公開日2010年12月29日 申請(qǐng)日期2010年8月25日 優(yōu)先權(quán)日2010年8月25日
發(fā)明者劉剛, 茍定勇, 趙曉娜 申請(qǐng)人:中興通訊股份有限公司