亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種識別文件的方法及移動終端的制作方法

文檔序號:10686869閱讀:250來源:國知局
一種識別文件的方法及移動終端的制作方法
【專利摘要】本發(fā)明提供了一種識別文件的方法,包括:獲取安裝文件,獲取所述安裝文件的文件目錄的結(jié)束標記位置;根據(jù)所述文件目錄的結(jié)束標記位置確定所述文件目錄的起始標記位置;根據(jù)所述文件目錄的起始標記位置查找所述文件目錄中的文件頭標識,通過分析所述文件頭標識識別所述文件頭標識指示的文件。本發(fā)明實施例還公開了一種移動終端。采用本發(fā)明,可通過掃描安裝文件中文件頭標識識別所述文件頭標識指示的文件,減少開機或安裝應(yīng)用程序前對安裝文件的掃描時間。
【專利說明】
一種識別文件的方法及移動終端
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及智能終端技術(shù)領(lǐng)域,尤其涉及一種識別文件的方法及移動終端。
【背景技術(shù)】
[0002]當前智能終端支持的應(yīng)用越來越多,但也伴隨著開機速度的降低,導(dǎo)致開機時間以及應(yīng)用程序安裝的時間越來越長。在智能終端開機或者安裝應(yīng)用程序時,需要掃描應(yīng)用程序的安卓安裝包(Android Package),即APK文件。Apk文件本身是一個zip包,在掃描Apk文件時,需要解壓Apk文件中的所有文件,才能識別出Apk文件中保存的native(原生)庫文件和RenderScript (清染腳本)文件,通過遍歷native庫文件和RenderScript文件實現(xiàn)掃描的過程,在遍歷native庫文件和RenderScript文件的過程中就會耗費大量的掃描時間,導(dǎo)致開機或者安裝應(yīng)用程序的時間增加。

【發(fā)明內(nèi)容】

[0003]本發(fā)明提供一種識別文件的方法及移動終端,可通過掃描安裝文件中文件頭標識識別所述文件頭標識指示的文件,減少開機或安裝應(yīng)用程序前對安裝文件的掃描時間。
[0004]本發(fā)明第一方面提供一種識別文件的方法,包括:
[0005]獲取安裝文件,獲取所述安裝文件的文件目錄的結(jié)束標記位置;
[0006]根據(jù)所述文件目錄的結(jié)束標記位置確定所述文件目錄的起始標記位置;
[0007]根據(jù)所述文件目錄的起始標記位置查找所述文件目錄中的文件頭標識,通過分析所述文件頭標識識別所述文件頭標識指示的文件。
[0008]可選的,所述根據(jù)所述文件目錄的結(jié)束標記位置確定所述文件目錄的起始標記位置,包括:
[0009]獲取所述文件目錄占用所述安裝文件的容量,根據(jù)所述文件目錄的結(jié)束標記位置以及所述文件目錄占用所述安裝文件的容量確定所述文件目錄相對所述安裝文件的起始位置的距離;
[0010]根據(jù)所述文件目錄相對所述安裝文件的起始位置的距離確定所述文件目錄的起始標記位置。
[0011 ]可選的,所述通過分析所述文件頭標識識別所述文件頭標識指示的文件,包括:
[0012]判斷所述文件頭標識是否包含用于指示渲染腳本文件的第一標識;
[0013]若判斷為是,則識別出所述文件頭標識指示的文件為渲染腳本文件。
[0014]可選的,所述通過分析所述文件頭標識識別所述文件頭標識指示的文件之前,所述方法還包括:
[0015]從所述文件目錄中獲取Lib庫目錄;
[0016]則所述通過分析所述文件頭標識識別所述文件頭標識指示的文件,包括:
[0017]從所述Lib目錄中獲取包含第二標識的文件頭標識,所述第二標識用于指示動態(tài)鏈接庫文件;
[0018]識別出所述包含第二標識的文件頭標識指示的文件為動態(tài)鏈接庫文件;
[0019]所述通過分析所述文件頭標識識別所述文件頭標識指示的文件之后,所述方法還包括:
[0020]確定所述包含第二標識的文件頭標識指示的文件所屬的Lib目錄的子目錄支持應(yīng)用程序接口。
[0021]可選的,所述方法還包括:
[0022]獲取所述文件頭標識指示的文件的容量、所述文件頭標識指示的文件的距離當前時間最近的修改時間以及所述文件頭標識指示的文件的校驗值;
[0023]根據(jù)所述文件頭標識指示的文件的容量、所述文件頭標識指示的文件的距離當前時間最近的修改時間以及所述文件頭標識指示的文件的校驗值,判斷所述文件頭標識指示的文件是否與Lib庫目錄包括的動態(tài)鏈接庫文件相同;
[0024]若判斷為否,則解壓所述文件頭標識指示的文件到所述Lib目錄中。
[0025]本發(fā)明第二方面提供一種移動終端,包括:
[0026]獲取模塊,用于獲取安裝文件,獲取所述安裝文件的文件目錄的結(jié)束標記位置;
[0027]確定模塊,用于根據(jù)所述獲取模塊獲取的文件目錄的結(jié)束標記位置確定所述文件目錄的起始標記位置;
[0028]識別模塊,用于根據(jù)所述確定模塊確定的文件目錄的起始標記位置查找所述文件目錄中的文件頭標識,通過分析所述文件頭標識識別所述文件頭標識指示的文件。
[0029]可選的,所述確定模塊,包括:
[0030]獲取單元,用于獲取所述文件目錄占用所述安裝文件的容量,根據(jù)所述文件目錄的結(jié)束標記位置以及所述文件目錄占用所述安裝文件的容量確定所述文件目錄相對所述安裝文件的起始位置的距離;
[0031 ]確定單元,根據(jù)所述文件目錄相對所述安裝文件的起始位置的距離確定所述文件目錄的起始標記位置。
[0032]可選的,所述識別模塊包括:
[0033]判斷單元,用于判斷所述文件頭標識是否包含用于指示渲染腳本文件的第一標識;
[0034]第一識別單元,用于當所述第一判斷單元的判斷結(jié)果為是時,則識別出所述文件頭標識指示的文件為渲染腳本文件。
[0035]可選的,所述獲取模塊還用于:
[0036]從所述文件目錄中獲取Lib庫目錄;
[0037]所述識別模塊包括:
[0038]獲取單元,用于從所述Lib目錄中獲取包含第二標識的文件頭標識,所述第二標識用于指示動態(tài)鏈接庫文件;
[0039]第二識別單元,用于識別出所述包含第二標識的文件頭標識指示的文件為動態(tài)鏈接庫文件;
[0040]所述確定模塊還用于:
[0041 ]確定所述包含第二標識的文件頭標識指示的文件所屬的Lib目錄的子目錄支持應(yīng)用程序接口。
[0042]可選的,所述獲取模塊還用于:
[0043]獲取所述文件頭標識指示的文件的容量、所述文件頭標識指示的文件的距離當前時間最近的修改時間以及所述文件頭標識指示的文件的校驗值;
[0044]所述移動終端還包括:
[0045]判斷模塊,用于根據(jù)所述文件頭標識指示的文件的容量、所述文件頭標識指示的文件的距離當前時間最近的修改時間以及所述文件頭標識指示的文件的校驗值,判斷所述文件頭標識指示的文件是否與Lib庫目錄包括的動態(tài)鏈接庫文件相同;
[0046]解壓模塊,用于當所述判斷模塊的判斷結(jié)果為否時,則解壓所述文件頭標識指示的文件到所述Lib目錄中。
[0047]采用本發(fā)明,在開機或安裝應(yīng)用程序時,先獲取安裝文件,獲取所述安裝文件的文件目錄的結(jié)束標記位置,根據(jù)所述文件目錄的結(jié)束標記位置確定所述文件目錄的起始標記位置,最后根據(jù)所述文件目錄的起始標記位置查找所述文件目錄中的文件頭標識,通過分析所述文件頭標識識別所述文件頭標識指示的文件,可減少解壓安裝文件中所有文件的過程,減少開機或安裝應(yīng)用程序前對安裝文件中所有文件的掃描時間,提高開機或安裝應(yīng)用程序的效率。
【附圖說明】
[0048]為了更清楚地說明本發(fā)明實施例的技術(shù)方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0049]圖1是本發(fā)明實施例的一種識別文件的方法的一實施例的流程示意圖;
[0050]圖2是本發(fā)明實施例的一種識別文件的方法的另一實施例的流程示意圖;
[0051]圖3是本發(fā)明實施例的一種識別文件的方法的另一實施例的流程示意圖;
[0052]圖4是本發(fā)明實施例的一種移動終端的結(jié)構(gòu)示意圖;
[0053]圖5是本發(fā)明實施例的另一種移動終端的結(jié)構(gòu)示意圖。
【具體實施方式】
[0054]下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
[0055]采用本發(fā)明實施例,可通過掃描安裝文件中文件頭標識識別所述文件頭標識指示的文件,減少開機或安裝應(yīng)用程序前對安裝文件的掃描時間。
[0056]本發(fā)明的說明書和權(quán)利要求書及上述附圖中的術(shù)語“第一”、“第二”、“第三”和“第四”等是用于區(qū)別不同對象,而不是用于描述特定順序。此外,術(shù)語“包括”和“具有”以及它們?nèi)魏巫冃?,意圖在于覆蓋不排他的包含。例如包含了一系列步驟或單元的過程、方法、系統(tǒng)、產(chǎn)品或設(shè)備沒有限定于已列出的步驟或單元,而是可選地還包括沒有列出的步驟或單元,或可選地還包括對于這些過程、方法、產(chǎn)品或設(shè)備固有的其它步驟或單元。
[0057]請參閱圖1,圖1是本發(fā)明實施例的一種識別文件的方法的一實施例的流程示意圖。其中,移動終端例如可以是手機、平板電腦、筆記本電腦、掌上電腦、移動互聯(lián)網(wǎng)設(shè)備(MID,mobile internet device)、可穿戴設(shè)備(例如智能手表(如iwatch等)、智能手環(huán)、計步器等)或其他終端設(shè)備。
[0058]如圖1所示,本發(fā)明實施例的一種識別文件的方法的一實施例可以包括以下步驟。
[0059]S100,獲取安裝文件,獲取所述安裝文件的文件目錄的結(jié)束標記位置。
[0060]具體實現(xiàn)中,在開機或安裝應(yīng)用程序時,需要獲取應(yīng)用程序的安裝文件,并通過提取安裝文件的格式中文件目錄的結(jié)構(gòu)實現(xiàn)部分掃描。文件目錄中指示應(yīng)用程序的各個文件,通過對文件目錄中用于指示各個文件的文件頭標識進行掃描識別各個文件,能夠減少解壓安裝文件中所有文件并識別出native (原生)庫文件和RenderScript (清染腳本)文件的步驟。安裝文件本身是一個zip包,因此可獲取zip包的文件目錄的結(jié)束標記位置。
[0061]作為一種可實施的方式,zip包的文件目錄的結(jié)束標記位置可位于安裝文件的二進制格式中0x06054b50處的位置。
[0062]SlOl,根據(jù)所述文件目錄的結(jié)束標記位置確定所述文件目錄的起始標記位置。
[0063]具體實現(xiàn)中,移動終端可根據(jù)文件目錄的結(jié)束標記位置,確定文件目錄的起始標記位置,以確定文件目錄在安裝文件的二進制格式中的位置范圍以及文件目錄的二進制的起始標記位置。
[0064]S102,根據(jù)所述文件目錄的起始標記位置查找所述文件目錄中的文件頭標識,通過分析所述文件頭標識識別所述文件頭標識指示的文件。
[0065]具體實現(xiàn)中,在確定文件目錄在安裝文件的二進制格式中的位置范圍以及文件目錄的二進制格式中的起始標記位置之后,根據(jù)文件目錄的起始標記位置遍歷查找所有用于指示文件的文件頭標識,根據(jù)所有查找到的文件頭標識生成文件列表,通過分析文件列表中的每個文件頭標識來識別文件頭標識指示的文件。完成分析文件頭標識的過程后,在開機或安裝應(yīng)用程序時,即可初始化應(yīng)用程序。
[0066]作為一種可實施的方式,文件頭標識的位置可位于安裝文件的二進制格式中0x04034b50處的位置。
[0067]采用本發(fā)明實施例,在開機或安裝應(yīng)用程序時,先獲取安裝文件,獲取所述安裝文件的文件目錄的結(jié)束標記位置,根據(jù)所述文件目錄的結(jié)束標記位置確定所述文件目錄的起始標記位置,最后根據(jù)所述文件目錄的起始標記位置查找所述文件目錄中的文件頭標識,通過分析所述文件頭標識識別所述文件頭標識指示的文件,可減少解壓安裝文件中所有文件的過程,減少開機或安裝應(yīng)用程序前對安裝文件中所有文件的掃描時間,提高開機或安裝應(yīng)用程序的效率。
[0068]請參閱圖2,圖2是本發(fā)明實施例的一種識別文件的方法的另一實施例的流程示意圖。其中,移動終端例如可以是手機、平板電腦、筆記本電腦、掌上電腦、移動互聯(lián)網(wǎng)設(shè)備(MID,mobile internet device)、可穿戴設(shè)備(例如智能手表(如iwatch等)、智能手環(huán)、計步器等)或其他終端設(shè)備。
[0069]如圖2所示,本發(fā)明實施例的一種識別文件的方法的另一實施例可以包括以下步驟。
[0070]S200,獲取安裝文件,獲取所述安裝文件的文件目錄的結(jié)束標記位置。
[0071]具體實現(xiàn)中,在開機或安裝應(yīng)用程序時,需要獲取應(yīng)用程序的安裝文件,并通過提取安裝文件的格式中文件目錄的結(jié)構(gòu)實現(xiàn)部分掃描。文件目錄中指示應(yīng)用程序的各個文件,通過對文件目錄中用于指示各個文件的文件頭標識進行掃描識別各個文件,能夠減少解壓安裝文件中所有文件并識別出native (原生)庫文件和RenderScript (清染腳本)文件的步驟。安裝文件本身是一個zip包,因此可獲取zip包的文件目錄的結(jié)束標記位置。
[0072]作為一種可實施的方式,zip包的文件目錄的結(jié)束標記位置可位于安裝文件的二進制格式中0x06054b50處的位置。
[0073]S201,獲取所述文件目錄占用所述安裝文件的容量,根據(jù)所述文件目錄的結(jié)束標記位置以及所述文件目錄占用所述安裝文件的容量確定所述文件目錄相對所述安裝文件的起始位置的距離。
[0074]具體實現(xiàn)中,移動終端在確定文件目錄的結(jié)束標記位置后,可獲取該文件目錄占用安裝文件的容量(例如字節(jié)數(shù)),再根據(jù)文件目錄的結(jié)束標記位置以及該文件目錄占用安裝文件的字節(jié)數(shù)確定文件目錄相對安裝文件的起始位置的距離。
[0075]S202,根據(jù)所述文件目錄相對所述安裝文件的起始位置的距離確定所述文件目錄的起始標記位置。
[0076]具體實現(xiàn)中,移動終端確定出文件目錄相對安裝文件的起始位置的距離之后,SP可確定文件目錄的起始標記位置。例如,文件目錄占用安裝文件的字節(jié)數(shù)為12個字節(jié),通過確定文件目錄的結(jié)束標記位置與文件目錄占用安裝文件的字節(jié)數(shù)為12個字節(jié)確定文件目錄相對安裝文件的起始位置的偏移為16個字節(jié)。由此可確定,文件目錄的起始標記位置在安裝文件的起始位置的偏移16個字節(jié)開始,其容量為12個字節(jié)。
[0077]S203,根據(jù)所述文件目錄的起始標記位置查找所述文件目錄中的文件頭標識,通過分析所述文件頭標識識別所述文件頭標識指示的文件。
[0078]具體實現(xiàn)中,在確定文件目錄的二進制格式中的起始標記位置之后,根據(jù)文件目錄的起始標記位置遍歷查找所有用于指示文件的文件頭標識,根據(jù)所有查找到的文件頭標識生成文件列表,通過分析文件列表中的每個文件頭標識來識別文件頭標識指示的文件。完成分析文件頭標識的過程后,在開機或安裝應(yīng)用程序時,即可初始化應(yīng)用程序。
[0079]作為一種可實施的方式,文件頭標識的位置可位于安裝文件的二進制格式中0x04034b50處的位置。
[0080]采用本發(fā)明實施例,在開機或安裝應(yīng)用程序時,先獲取安裝文件,獲取所述安裝文件的文件目錄的結(jié)束標記位置,根據(jù)所述文件目錄的結(jié)束標記位置確定所述文件目錄的起始標記位置,最后根據(jù)所述文件目錄的起始標記位置查找所述文件目錄中的文件頭標識,通過分析所述文件頭標識識別所述文件頭標識指示的文件,可減少解壓安裝文件中所有文件的過程,減少開機或安裝應(yīng)用程序前對安裝文件中所有文件的掃描時間,提高開機或安裝應(yīng)用程序的效率。
[0081]請參閱圖3,圖3是本發(fā)明實施例的一種識別文件的方法的另一實施例的流程示意圖。其中,移動終端例如可以是手機、平板電腦、筆記本電腦、掌上電腦、移動互聯(lián)網(wǎng)設(shè)備(MID,mobile internet device)、可穿戴設(shè)備(例如智能手表(如iwatch等)、智能手環(huán)、計步器等)或其他終端設(shè)備。
[0082]如圖3所示,本發(fā)明實施例的一種識別文件的方法的另一實施例可以包括以下步驟。
[0083]S300,獲取安裝文件,獲取所述安裝文件的文件目錄的結(jié)束標記位置。
[0084]具體實現(xiàn)中,在開機或安裝應(yīng)用程序時,需要獲取應(yīng)用程序的安裝文件,并通過提取安裝文件的格式中文件目錄的結(jié)構(gòu)實現(xiàn)部分掃描。文件目錄中指示應(yīng)用程序的各個文件,通過對文件目錄中用于指示各個文件的文件頭標識進行掃描識別各個文件,能夠減少解壓安裝文件中所有文件并識別出native (原生)庫文件和RenderScript (清染腳本)文件的步驟。安裝文件本身是一個zip包,因此可獲取zip包的文件目錄的結(jié)束標記位置。
[0085]作為一種可實施的方式,zip包的文件目錄的結(jié)束標記位置可位于安裝文件的二進制格式中0x06054b50處的位置。
[0086]S301,獲取所述文件目錄占用所述安裝文件的容量,根據(jù)所述文件目錄的結(jié)束標記位置以及所述文件目錄占用所述安裝文件的容量確定所述文件目錄相對所述安裝文件的起始位置的距離。
[0087]具體實現(xiàn)中,移動終端在確定文件目錄的結(jié)束標記位置后,可獲取該文件目錄占用安裝文件的容量(例如字節(jié)數(shù)),再根據(jù)文件目錄的結(jié)束標記位置以及該文件目錄占用安裝文件的字節(jié)數(shù)確定文件目錄相對安裝文件的起始位置的距離。
[0088]S302,根據(jù)所述文件目錄相對所述安裝文件的起始位置的距離確定所述文件目錄的起始標記位置。
[0089]具體實現(xiàn)中,移動終端確定出文件目錄相對安裝文件的起始位置的距離之后,SP可確定文件目錄的起始標記位置。例如,文件目錄占用安裝文件的字節(jié)數(shù)為12個字節(jié),通過確定文件目錄的結(jié)束標記位置與文件目錄占用安裝文件的字節(jié)數(shù)為12個字節(jié)確定文件目錄相對安裝文件的起始位置的偏移為16個字節(jié)。由此可確定,文件目錄的起始標記位置在安裝文件的起始位置的偏移16個字節(jié)開始,其容量為12個字節(jié)。
[0090]S303,根據(jù)所述文件目錄的起始標記位置查找所述文件目錄中的文件頭標識,判斷所述文件頭標識是否包含用于指示渲染腳本文件的第一標識。
[0091 ]具體實現(xiàn)中,在確定文件目錄的二進制格式中的起始標記位置之后,根據(jù)文件目錄的起始標記位置遍歷查找所有用于指示文件的文件頭標識,根據(jù)所有查找到的文件頭標識生成文件列表,通過分析文件列表中的每個文件頭標識來識別文件頭標識指示的文件。其中,可判斷文件頭標識是否包含第一標識,第一標識可為.bc,用于指示RenderScript(渲染腳本)文件。移動終端通過判斷文件頭標識是否包含第一標識確定是否存在RenderScript文件。若判斷為是則執(zhí)行步驟S304,若判斷為否則執(zhí)行S313,掃描流程結(jié)束。
[0092]S304,若判斷為是,則識別出所述文件頭標識指示的文件為渲染腳本文件。
[0093]具體實現(xiàn)中,當步驟S303的判斷結(jié)果為是時,則識別出該文件頭標識指示的文件為RenderScript文件,則通知系統(tǒng)存在RenderScript文件,完成對該文件的識別。
[0094]S305,根據(jù)所述文件目錄的起始標記位置查找所述文件目錄中的文件頭標識,從所述文件目錄中獲取Lib庫目錄。
[0095]具體實現(xiàn)中,移動終端通過確定文件目錄中的文件頭標識,生成文件列表,并判斷文件目錄中是否存在Lib庫目錄,若判斷為是,則獲取Lib目錄。
[0096]S306,從所述Lib目錄中獲取包含第二標識的文件頭標識,所述第二標識用于指示動態(tài)鏈接庫文件。
[0097]具體實現(xiàn)中,Lib目錄包含文件頭標識,移動終端可從Lib目錄中獲取包含第二標識的文件頭標識,第二標識可為.s0(Shared Object),用于指示動態(tài)鏈接庫文件。
[0098]S307,識別出所述包含第二標識的文件頭標識指示的文件為動態(tài)鏈接庫文件。
[0099]具體實現(xiàn)中,當移動終端確定文件頭標識包含第二標識時,則識別出該文件頭標識指示的文件為.so文件。
[0100]S308,確定所述包含第二標識的文件頭標識指示的文件所屬的Lib目錄的子目錄支持應(yīng)用程序接口。
[0101 ]具體實現(xiàn)中,當移動終端識別出.SO文件時,獲取該.SO文件所屬的Lib目錄的子目錄,并確定該子目錄能夠匹配到abi(Applicat1n Binary Interface,應(yīng)用程序接口 ),其中子目錄可匹配到abi下的arm64-v8a、armeab1-v7a、armeabi的任意一種。如果.so文件所屬的Lib目錄的子目錄支持arm64-v8a、armeab1-v7a、armeabi的任意一種,貝Ij確定.so文件所屬的Lib目錄的子目錄支持abi。
[0102]S309,根據(jù)所述文件目錄的起始標記位置查找所述文件目錄中的文件頭標識,通過分析所述文件頭標識識別所述文件頭標識指示的文件。
[0103]具體實現(xiàn)中,步驟S309-S312是對native庫文件的識別、查找以及拷貝的流程。移動終端通過確定文件目錄中的文件頭標識,生成文件列表,并通過分析文件頭標識識別文件頭標識指示的文件。
[0104]S310,獲取所述文件頭標識指示的文件的容量、所述文件頭標識指示的文件的距離當前時間最近的修改時間以及所述文件頭標識指示的文件的校驗值。
[0105]具體實現(xiàn)中,可獲取文件頭標識指示的文件的容量,文件頭標識指示的文件的距離當前時間最近的修改時間以及所述文件頭標識指示的文件的校驗值??蛇x的,文件頭標識指示的文件的容量可為解壓后的大小。具體地,可從文件頭標識的起始位置開始,在偏移文件頭標識的起始位置的第22個字節(jié)的位置獲取文件頭標識指示的文件解壓后的大小,在偏移文件頭標識的起始位置的第10個字節(jié)的位置獲取文件頭標識指示的文件的距離當前時間最近的修改時間,在偏移文件頭標識的起始位置的第14個字節(jié)的位置獲取文件頭標識指示的文件的校驗值。
[Ο?Ο?] 可選的,文件頭標識指示的文件的校驗值可為CRC(Cyclic Redundancy Check,循環(huán)冗余校驗碼)的校驗值。
[0107]S311,根據(jù)所述文件頭標識指示的文件的容量、所述文件頭標識指示的文件的距離當前時間最近的修改時間以及所述文件頭標識指示的文件的校驗值,判斷所述文件頭標識指示的文件是否與Lib庫目錄包括的動態(tài)鏈接庫文件相同。
[0108]具體實現(xiàn)中,可通過文件頭標識指示的文件的容量、所述文件頭標識指示的文件的距離當前時間最近的修改時間以及所述文件頭標識指示的文件的校驗值,與Lib庫目錄包括的動態(tài)鏈接庫文件(.so文件)的容量、.so文件的距離當前時間最近的修改時間以及.so文件的校驗值進行比較,判斷文件頭標識指示的文件是否與Lib庫目錄包括的.so文件相同。也可由此判斷Lib目錄中對應(yīng)的.so文件是否被修改或者不存在,如果確定文件頭標識指示的文件與Lib目錄包括的.so文件不相同,則確定Lib目錄中對應(yīng)的.so文件被修改或者不存在,則執(zhí)行步驟S312;如果確定文件頭標識指示的文件與Lib庫目錄包括的.so文件相同,則執(zhí)行步驟S313,掃描過程結(jié)束。
[0109]可選的,.so文件不僅可包括在Lib目錄中,也可包括在data(數(shù)據(jù))的目錄、app(應(yīng)用程序)的目錄和/或應(yīng)用包名的目錄中。
[0110]S312,若判斷為否,則解壓所述文件頭標識指示的文件到所述Lib目錄中。
[0111]具體實現(xiàn)中,當移動終端確定文件頭標識指示的文件與Lib庫目錄包括的.so文件不相同時,則確定Lib庫目錄中對應(yīng)的.so文件被修改或者不存在,因此可將該文件頭標識指示的文件進行解壓,并保存在Lib目錄中。
[0112]可選的,該文件頭標識指示的文件也可解壓到data(數(shù)據(jù))的目錄、app(應(yīng)用程序)的目錄和/或應(yīng)用包名的目錄中。
[0113]S313,結(jié)束。
[0114]值得注意的是,步驟S303-S304和S313、步驟S305-S308、步驟S309-S313可并行執(zhí)行,本實施例不作限定。
[0115]采用本發(fā)明實施例,在開機或安裝應(yīng)用程序時,先獲取安裝文件,獲取所述安裝文件的文件目錄的結(jié)束標記位置,根據(jù)所述文件目錄的結(jié)束標記位置確定所述文件目錄的起始標記位置,最后根據(jù)所述文件目錄的起始標記位置查找所述文件目錄中的文件頭標識,通過分析所述文件頭標識識別所述文件頭標識指示的文件,可減少解壓安裝文件中所有文件的過程,減少開機或安裝應(yīng)用程序前對安裝文件中所有文件的掃描時間,提高開機或安裝應(yīng)用程序的效率。
[0116]請參閱圖4,圖4是本發(fā)明實施例的一種移動終端的結(jié)構(gòu)示意圖。實施例圖4所示的移動終端執(zhí)行實施例圖1至圖3所示的一種識別文件的方法,本實施例則不再贅述。如圖4所示的移動終端包括獲取模塊400、確定模塊401以及識別模塊402。
[0117]獲取模塊400,用于獲取安裝文件,獲取所述安裝文件的文件目錄的結(jié)束標記位置;
[0118]確定模塊401,用于根據(jù)所述獲取模塊400獲取的文件目錄的結(jié)束標記位置確定所述文件目錄的起始標記位置;
[0119]識別模塊402,用于根據(jù)所述確定模塊401確定的文件目錄的起始標記位置查找所述文件目錄中的文件頭標識,通過分析所述文件頭標識識別所述文件頭標識指示的文件。
[0120]具體實現(xiàn)中,在開機或安裝應(yīng)用程序時,需要獲取應(yīng)用程序的安裝文件,并通過提取安裝文件的格式中文件目錄的結(jié)構(gòu)實現(xiàn)部分掃描。文件目錄中指示應(yīng)用程序的各個文件,通過對文件目錄中用于指示各個文件的文件頭標識進行掃描識別各個文件,能夠減少解壓安裝文件中所有文件并識別出native (原生)庫文件和RenderScript (清染腳本)文件的步驟。安裝文件本身是一個zip包,因此可獲取zip包的文件目錄的結(jié)束標記位置。
[0121 ]具體實現(xiàn)中,移動終端可根據(jù)文件目錄的結(jié)束標記位置,確定文件目錄的起始標記位置,以確定文件目錄在安裝文件的二進制格式中的位置范圍以及文件目錄的二進制的起始標記位置。
[0122]具體實現(xiàn)中,在確定文件目錄在安裝文件的二進制格式中的位置范圍以及文件目錄的二進制格式中的起始標記位置之后,根據(jù)文件目錄的起始標記位置遍歷查找所有用于指示文件的文件頭標識,根據(jù)所有查找到的文件頭標識生成文件列表,通過分析文件列表中的每個文件頭標識來識別文件頭標識指示的文件。完成分析文件頭標識的過程后,在開機或安裝應(yīng)用程序時,即可初始化應(yīng)用程序。
[0123]可選的,如圖5所示,所述確定模塊401,包括獲取單元4011、確定單元4012。
[0124]獲取單元4011,用于獲取所述文件目錄占用所述安裝文件的容量,根據(jù)所述文件目錄的結(jié)束標記位置以及所述文件目錄占用所述安裝文件的容量確定所述文件目錄相對所述安裝文件的起始位置的距離;
[0125]確定單元4012,根據(jù)所述文件目錄相對所述安裝文件的起始位置的距離確定所述文件目錄的起始標記位置。
[0126]可選的,如圖5所示,所述識別模塊402包括判斷單元4021、第一識別單元4022。
[0127]判斷單元4021,用于判斷所述文件頭標識是否包含用于指示渲染腳本文件的第一標識;
[0128]第一識別單元4022,用于當所述第一判斷單元的判斷結(jié)果為是時,則識別出所述文件頭標識指示的文件為渲染腳本文件。
[0129]可選的,所述獲取模塊400還用于:
[0130]從所述文件目錄中獲取Lib庫目錄;
[0131]如圖5所示,所述識別模塊402包括獲取單元4023、第二識別單元4024。
[0132]獲取單元4023,用于從所述Lib目錄中獲取包含第二標識的文件頭標識,所述第二標識用于指示動態(tài)鏈接庫文件;
[0133]第二識別單元4024,用于識別出所述包含第二標識的文件頭標識指示的文件為動態(tài)鏈接庫文件;
[0134]所述確定模塊401還用于:
[0135]確定所述包含第二標識的文件頭標識指示的文件所屬的Lib目錄的子目錄支持應(yīng)用程序接口。
[0136]可選的,所述獲取模塊400還用于:
[0137]獲取所述文件頭標識指示的文件的容量、所述文件頭標識指示的文件的距離當前時間最近的修改時間以及所述文件頭標識指示的文件的校驗值;
[0138]如圖5所示,所述移動終端還包括判斷模塊403、解壓模塊404。
[0139]判斷模塊403,用于根據(jù)所述文件頭標識指示的文件的容量、所述文件頭標識指示的文件的距離當前時間最近的修改時間以及所述文件頭標識指示的文件的校驗值,判斷所述文件頭標識指示的文件是否與Lib庫目錄包括的動態(tài)鏈接庫文件相同;
[0140]解壓模塊404,用于當所述判斷模塊的判斷結(jié)果為否時,則解壓所述文件頭標識指示的文件到所述Lib目錄中。
[0141 ]采用本發(fā)明實施例,在開機或安裝應(yīng)用程序時,先獲取安裝文件,獲取所述安裝文件的文件目錄的結(jié)束標記位置,根據(jù)所述文件目錄的結(jié)束標記位置確定所述文件目錄的起始標記位置,最后根據(jù)所述文件目錄的起始標記位置查找所述文件目錄中的文件頭標識,通過分析所述文件頭標識識別所述文件頭標識指示的文件,可減少解壓安裝文件中所有文件的過程,減少開機或安裝應(yīng)用程序前對安裝文件中所有文件的掃描時間,提高開機或安裝應(yīng)用程序的效率。
[0142]以上所描述的裝置實施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡(luò)單元上??梢愿鶕?jù)實際的需要選擇其中的部分或者全部模塊來實現(xiàn)本實施例方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性的勞動的情況下,即可以理解并實施。
[0143]本發(fā)明實施例方法中的步驟可以根據(jù)實際需要進行順序調(diào)整、合并和刪減。
[0144]本發(fā)明實施例裝置中的模塊或單元可以根據(jù)實際需要進行合并、劃分和刪減。
[0145]本發(fā)明實施例的模塊或模塊,可以以通用集成電路(如中央處理器CPU),或以專用集成電路(ASIC)來實現(xiàn)。
[0146]通過以上的實施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到各實施方式可借助軟件加必需的通用硬件平臺的方式來實現(xiàn),當然也可以通過硬件?;谶@樣的理解,上述技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品可以存儲在計算機可讀存儲介質(zhì)中,如R0M/RAM、磁碟、光盤等,包括若干指令用以使得一臺計算機設(shè)備(可以是個人計算機,服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行各個實施例或者實施例的某些部分所述的方法。
[0147]以上所述的實施方式,并不構(gòu)成對該技術(shù)方案保護范圍的限定。任何在上述實施方式的精神和原則之內(nèi)所作的修改、等同替換和改進等,均應(yīng)包含在該技術(shù)方案的保護范圍之內(nèi)。
【主權(quán)項】
1.一種識別文件的方法,其特征在于,包括: 獲取安裝文件,獲取所述安裝文件的文件目錄的結(jié)束標記位置; 根據(jù)所述文件目錄的結(jié)束標記位置確定所述文件目錄的起始標記位置; 根據(jù)所述文件目錄的起始標記位置查找所述文件目錄中的文件頭標識,通過分析所述文件頭標識識別所述文件頭標識指示的文件。2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)所述文件目錄的結(jié)束標記位置確定所述文件目錄的起始標記位置,包括: 獲取所述文件目錄占用所述安裝文件的容量,根據(jù)所述文件目錄的結(jié)束標記位置以及所述文件目錄占用所述安裝文件的容量確定所述文件目錄相對所述安裝文件的起始位置的距離; 根據(jù)所述文件目錄相對所述安裝文件的起始位置的距離確定所述文件目錄的起始標記位置。3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述通過分析所述文件頭標識識別所述文件頭標識指示的文件,包括: 判斷所述文件頭標識是否包含用于指示渲染腳本文件的第一標識; 若判斷為是,則識別出所述文件頭標識指示的文件為渲染腳本文件。4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述通過分析所述文件頭標識識別所述文件頭標識指示的文件之前,所述方法還包括: 從所述文件目錄中獲取Lib庫目錄; 則所述通過分析所述文件頭標識識別所述文件頭標識指示的文件,包括: 從所述Lib目錄中獲取包含第二標識的文件頭標識,所述第二標識用于指示動態(tài)鏈接庫文件; 識別出所述包含第二標識的文件頭標識指示的文件為動態(tài)鏈接庫文件; 所述通過分析所述文件頭標識識別所述文件頭標識指示的文件之后,所述方法還包括: 確定所述包含第二標識的文件頭標識指示的文件所屬的Lib目錄的子目錄支持應(yīng)用程序接口。5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括: 獲取所述文件頭標識指示的文件的容量、所述文件頭標識指示的文件的距離當前時間最近的修改時間以及所述文件頭標識指示的文件的校驗值; 根據(jù)所述文件頭標識指示的文件的容量、所述文件頭標識指示的文件的距離當前時間最近的修改時間以及所述文件頭標識指示的文件的校驗值,判斷所述文件頭標識指示的文件是否與Lib庫目錄包括的動態(tài)鏈接庫文件相同; 若判斷為否,則解壓所述文件頭標識指示的文件到所述Lib目錄中。6.一種移動終端,其特征在于,包括: 獲取模塊,用于獲取安裝文件,獲取所述安裝文件的文件目錄的結(jié)束標記位置; 確定模塊,用于根據(jù)所述獲取模塊獲取的文件目錄的結(jié)束標記位置確定所述文件目錄的起始標記位置; 識別模塊,用于根據(jù)所述確定模塊確定的文件目錄的起始標記位置查找所述文件目錄中的文件頭標識,通過分析所述文件頭標識識別所述文件頭標識指示的文件。7.根據(jù)權(quán)利要求6所述的移動終端,其特征在于,所述確定模塊,包括: 獲取單元,用于獲取所述文件目錄占用所述安裝文件的容量,根據(jù)所述文件目錄的結(jié)束標記位置以及所述文件目錄占用所述安裝文件的容量確定所述文件目錄相對所述安裝文件的起始位置的距離; 確定單元,根據(jù)所述文件目錄相對所述安裝文件的起始位置的距離確定所述文件目錄的起始標記位置。8.根據(jù)權(quán)利要求6所述的移動終端,其特征在于,所述識別模塊包括: 判斷單元,用于判斷所述文件頭標識是否包含用于指示渲染腳本文件的第一標識;第一識別單元,用于當所述第一判斷單元的判斷結(jié)果為是時,則識別出所述文件頭標識指示的文件為渲染腳本文件。9.根據(jù)權(quán)利要求6所述的移動終端,其特征在于,所述獲取模塊還用于: 從所述文件目錄中獲取Lib庫目錄; 所述識別模塊包括: 獲取單元,用于從所述Lib目錄中獲取包含第二標識的文件頭標識,所述第二標識用于指示動態(tài)鏈接庫文件; 第二識別單元,用于識別出所述包含第二標識的文件頭標識指示的文件為動態(tài)鏈接庫文件; 所述確定模塊還用于: 確定所述包含第二標識的文件頭標識指示的文件所屬的Lib目錄的子目錄支持應(yīng)用程序接口。10.根據(jù)權(quán)利要求6所述的移動終端,其特征在于,所述獲取模塊還用于: 獲取所述文件頭標識指示的文件的容量、所述文件頭標識指示的文件的距離當前時間最近的修改時間以及所述文件頭標識指示的文件的校驗值; 所述移動終端還包括: 判斷模塊,用于根據(jù)所述文件頭標識指示的文件的容量、所述文件頭標識指示的文件的距離當前時間最近的修改時間以及所述文件頭標識指示的文件的校驗值,判斷所述文件頭標識指示的文件是否與Lib庫目錄包括的動態(tài)鏈接庫文件相同; 解壓模塊,用于當所述判斷模塊的判斷結(jié)果為否時,則解壓所述文件頭標識指示的文件到所述Lib目錄中。
【文檔編號】G06F9/445GK106055363SQ201610380642
【公開日】2016年10月26日
【申請日】2016年5月31日
【發(fā)明人】李輝
【申請人】廣東歐珀移動通信有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1