安卓應用程式安裝包的信息獲取方法和裝置製造方法
2023-08-01 03:46:46 1
安卓應用程式安裝包的信息獲取方法和裝置製造方法
【專利摘要】本發明提供了一種安卓應用程式安裝包的信息獲取方法和裝置。所述方法包括:反編譯安卓應用程式安裝包得到相應的布局文件和字節碼文件;通過設置屏幕控制項從所述字節碼文件得到相應的編碼;根據所述編碼在所述布局文件中查找得到對應的控制項名稱。所述裝置包括:反編譯模塊,用於反編譯安卓應用程式安裝包得到相應的布局文件和字節碼文件;編碼獲取模塊,用於通過設置屏幕控制項從所述字節碼文件得到相應的編碼;查找模塊,用於根據所述編碼在所述布局文件中查找得到對應的控制項名稱。採用本發明能在無原始碼的情況下獲取控制項信息。
【專利說明】安卓應用程式安裝包的信息獲取方法和裝置
【技術領域】
[0001]本發明涉及行動裝置應用技術,特別是涉及一種安卓應用程式安裝包的信息獲取方法和裝置。
【背景技術】
[0002]隨著行動裝置的發展,行動裝置的性能越來越優越,在採用了安卓系統的行動裝置中,各種安卓應用程式安裝包被安裝於其中,以滿足用戶需求。
[0003]在眾多的安卓應用程式安裝包中,對某一安卓應用程式安裝包進行反編譯的可能性是非常高的,通過對安卓應用程式安裝包的反編譯等處理來獲取所需要的信息。然而,僅僅通過反編譯安卓應用程式安裝包所得到的布局文件是無法獲知控制項的信息的,難以實現無原始碼情況下也能獲取安卓應用程式安裝包中控制項的信息。
【發明內容】
[0004]基於此,提供一種能在無原始碼的情況下獲取控制項信息的安卓應用程式安裝包的息獲取方法。
[0005]此外,還有必要提供一種能在無原始碼的情況下獲取控制項信息的安卓應用程式安裝包的信息獲取裝置。
[0006]一種安卓應用程式安裝包的信息獲取方法,包括如下步驟:
[0007]反編譯安卓應用程式安裝包得到相應的布局文件和字節碼文件;
[0008]通過設置屏幕控制項從所述字節碼文件得到相應的編碼;
[0009]根據所述編碼在所述布局文件中查找得到對應的控制項名稱。
[0010]一種安卓應用程式安裝包的信息獲取裝置,包括:
[0011]反編譯模塊,用於反編譯安卓應用程式安裝包得到相應的布局文件和字節碼文件;
[0012]編碼獲取模塊,用於通過設置屏幕控制項從所述字節碼文件得到相應的編碼;
[0013]查找模塊,用於根據所述編碼在所述布局文件中查找得到對應的控制項名稱。
[0014]上述安卓應用程式安裝包的信息獲取方法和裝置,對安卓應用程式安裝包進行反編譯將得到布局文件和字節碼文件,通過設置屏幕控制項從字節碼文件中得到相應的編碼,進而根據該編碼查找得到控制項名稱,實現了在無原始碼的情況下也能夠獲取相應的控制項信息,大大地便得了安卓應用程式安裝包的研發。
【專利附圖】
【附圖說明】
[0015]圖1為一個實施例中安卓應用程式安裝包的信息獲取方法的流程圖;
[0016]圖2為另一個實施例中安卓應用程式安裝包的信息獲取方法的流程圖;
[0017]圖3為一個實施例中安卓應用程式安裝包的信息獲取裝置的結構示意圖;
[0018]圖4為另一個實施例中安卓應用程式安裝包的信息獲取裝置的結構示意圖。【具體實施方式】
[0019]如圖1所示,在一個實施例中,一種安卓應用程式安裝包的信息獲取方法,包括如下步驟:
[0020]步驟S110,反編譯安卓應用程式安裝包得到相應的布局文件和字節碼文件。
[0021]本實施例中,安卓應用程式安裝包用於為行動裝置提供相應的安卓應用程式,以便於為用戶在行動裝置的使用提供各種功能,其中,安卓應用程式安裝包為後綴為apk的文件,簡稱 apk (Android Package, Android 安裝包)。
[0022]對安卓應用程式安裝包進行反編譯,將得到相應的布局文件和若干個字節碼文件,其中,布局文件為XML (extensible Markup Language,可擴展標識語言)文件。
[0023]在一個實施例中,上述步驟SllO的具體過程為:通過命令行運行平臺中運行的命令運行反編譯工具,並通過反編譯工具對安卓應用程式安裝包進行反編譯,得到安卓應用程式安裝包對應的布局文件和字節碼文件。
[0024]本實施例中,命令行運行平臺用於運行命令,以實現相應的功能,其中,命令行運行平臺可以是CMD (co_and)組件,相應的,所運行的命令也將為CMD命令。CMD組件也稱命令提示符窗口,是windows系統所提供的組件,用於實現用戶與windows系統之間的溝通和交流。
[0025]通過在命令行運行平臺中運行相應命令,以定位反編譯工具所在的文件夾,進而利用反編譯命令使得反編譯工具對應安卓應用程式安裝包進行反編譯,其中,反編譯工具可以是ApkTool,對於CMD組件而目,反編譯命令可以是「apktool dl23.apk」,在這一反編譯命令中,apktool為反編譯工具,d為反編譯參數,123.apk為進行反編譯的安卓應用程式安裝包。
[0026]如圖2所示,在一個實施例中,上述步驟SllO之後還包括如下步驟:
[0027]步驟S210,檢查安卓應用程式安裝包是否存放於反編譯工具所在的文件夾,若是,則進入步驟S110,若否,則進入步驟S230。
[0028]本實施例中,反編譯工具所在的文件夾為反編譯工具對安卓應用程式安裝包進行反編譯時的工作文件夾。對反編譯工具所在的文件夾進行檢查,以判斷即將進行反編譯的安卓應用程式安裝包是否存放於反編譯工具所在的文件夾中,若是,則可直接進行反編譯,若即將進行反編譯的安卓應用程式安裝包並未存入於反編譯工具所在的文件夾中,則需要提取安卓應用程式安裝包,並複製到反編譯工具所在的文件夾中。
[0029]步驟S230,提取安卓應用程式安裝包並複製到反編譯工具所在的文件夾中。
[0030]步驟S130,通過設置屏幕控制項從字節碼文件得到相應的編碼。
[0031]本實施例中,設置屏幕控制項,即SetCountView,用於設置圖形界面中布局所使用的資源,字節碼文件中記錄了十六進位編碼所代表的控制項標識,因此,可通過設置屏幕控制項從字節碼文件中提取得到相應的編碼。
[0032]在一個實施例中,上述步驟S130的具體過程為:開啟字節碼文件,通過安卓應用程式安裝包中活動組件的設置屏幕控制項從開啟的字節碼文件中提取十六進位編碼。
[0033]本實施例中,字節碼文件是對安卓應用程式安裝包中的java文件進行反編譯後得到的,通常為smali文件。獲取安卓應用程式安裝包中任一活動組件,並通過該活動組件中的設置屏幕控制項對字節碼文件進行十六進位編碼的提取。
[0034]步驟S150,根據編碼在布局文件中查找得到對應的控制項名稱。
[0035]本實施例中,由於布局文件和字節碼文件中的格式以及編碼方式各不相同,因此,需要經由通過字節碼文件所得到的編碼在布局文件中進行查找,以得到與提取的編碼相同的控制項標識,進而得到控制項標識所對應的控制項名稱。
[0036]在一個實施例中,上述步驟S150的具體過程為:根據十六進位編碼在布局文件中進行查找,以得到布局文件中控制項標識與十六進位編碼相一致的條目,從查找得到的條目中提取出控制項名稱。
[0037]本實施例中,布局文件中包含了若干個條目,其中,每一條目都將記錄了控制項標識以及該控制項標識所對應的控制項名稱,因此,根據十六進位編碼在布局文件中進行查找,可得到包含了十六進位編碼的條目,進而得到這一十六進位編碼所對應的控制項名稱。
[0038]上述安卓應用程式安裝包的信息獲取方法能夠高效地在較為複雜的文件中分析得到字節碼文件所包含的控制項信息,即控制項標識和控制項名稱,大大的方便了安卓應用程式的反編譯過程。
[0039]如圖3所示,在一個實施例中,一種安卓應用程式安裝包的信息獲取裝置,包括反編譯模塊110、編碼獲取模塊130和查找模塊150。
[0040]反編譯模塊110,用於反編譯安卓應用程式安裝包得到相應的布局文件和字節碼文件。
[0041]本實施例中,安卓應用程式安裝包用於為行動裝置提供相應的安卓應用程式,以便於為用戶在行動裝置的使用提供各種功能,其中,安卓應用程式安裝包為後綴為apk的文件,簡稱apk。
[0042]反編譯模塊110對安卓應用程式安裝包進行反編譯,將得到相應的布局文件和若干個字節碼文件,其中,布局文件為XML文件。
[0043]在一個實施例中,上述反編譯模塊110還用於通過命令行運行平臺中運行的命令運行反編譯工具,並通過反編譯工具對安卓應用程式安裝包進行反編譯,得到安卓應用程式安裝包對應的布局文件和字節碼文件。
[0044]本實施例中,命令行運行平臺用於運行命令,以實現相應的功能,其中,命令行運行平臺可以是CMD組件,相應的,所運行的命令也將為CMD命令。CMD組件也稱命令提示符窗口,是windows系統所提供的組件,用於實現用戶與windows系統之間的溝通和交流。
[0045]反編譯模塊110通過在命令行運行平臺中運行相應命令,以定位反編譯工具所在的文件夾,進而利用反編譯命令使得反編譯工具對應安卓應用程式安裝包進行反編譯,其中,反編譯工具可以是ApkTool,對於CMD組件而目,反編譯命令可以是「apktool dl23.apk」,在這一反編譯命令中,apktool為反編譯工具,d為反編譯參數,123.apk為進行反編譯的安卓應用程式安裝包。
[0046]如圖4所示,在一個實施例中,上述安卓應用程式安裝包的信息獲取裝置還包括檢查模塊210和複製模塊230。
[0047]檢查模塊210,用於檢查安卓應用程式安裝包是否存放於反編譯工具所在的文件夾,若是,則通知反編譯模塊110,若否,則通知複製模塊230。
[0048]本實施例中,反編譯工具所在的文件夾為反編譯工具對安卓應用程式安裝包進行反編譯時的工作文件夾。檢查模塊210對反編譯工具所在的文件夾進行檢查,以判斷即將進行反編譯的安卓應用程式安裝包是否存放於反編譯工具所在的文件夾中,若是,則可通知反編譯模塊110直接進行反編譯,若即將進行反編譯的安卓應用程式安裝包並未存入於反編譯工具所在的文件夾中,則需要通知複製模塊230提取安卓應用程式安裝包,並複製到反編譯工具所在的文件夾中。
[0049]複製模塊230,用於提取安卓應用程式安裝包並複製到反編譯工具所在的文件夾中。
[0050]編碼獲取模塊130,用於通過設置屏幕控制項從字節碼文件得到相應的編碼。
[0051]本實施例中,設置屏幕控制項,即SetCountView,用於設置圖形界面中布局所使用的資源,字節碼文件中記錄了十六進位編碼所代表的控制項標識,因此,編碼獲取模塊130可通過設置屏幕控制項從字節碼文件中提取得到相應的編碼。
[0052]在一個實施例中,上述編碼獲取模塊130還用於開啟字節碼文件,通過安卓應用程式安裝包中活動組件的設置屏幕控制項從開啟的字節碼文件中提取十六進位編碼。
[0053]本實施例中,字節碼文件是對安卓應用程式安裝包中的java文件進行反編譯後得到的,通常為smali文件。編碼獲取模塊130獲取安卓應用程式安裝包中任一活動組件,並通過該活動組件中的設置屏幕控制項對字節碼文件進行十六進位編碼的提取。
[0054]查找模塊150,用於根據編碼在布局文件中查找得到對應的控制項名稱。
[0055]本實施例中,由於布局文件和字節碼文件中的格式以及編碼方式各不相同,因此,查找模塊150需要經由通過字節碼文件所得到的編碼在布局文件中進行查找,以得到與提取的編碼相同的控制項標識,進而得到控制項標識所對應的控制項名稱。
[0056]在一個實施例中,上述查找模塊150還用於根據十六進位編碼在布局文件中進行查找,以得到布局文件中控制項標識與十六進位編碼相一致的條目,從查找得到的條目中提取出控制項名稱。
[0057]本實施例中,布局文件中包含了若干個條目,其中,每一條目都將記錄了控制項標識以及該控制項標識所對應的控制項名稱,因此,查找模塊150根據十六進位編碼在布局文件中進行查找,可得到包含了十六進位編碼的條目,進而得到這一十六進位編碼所對應的控制項名稱。
[0058]上述安卓應用程式安裝包的信息獲取裝置能夠高效地在較為複雜的文件中分析得到字節碼文件所包含的控制項信息,即控制項標識和控制項名稱,大大的方便了安卓應用程式的反編譯過程。
[0059]上述安卓應用程式安裝包的信息獲取方法和裝置,對安卓應用程式安裝包進行反編譯將得到布局文件和字節碼文件,通過設置屏幕控制項從字節碼文件中得到相應的編碼,進而根據該編碼查找得到控制項名稱,實現了在無原始碼的情況下也能夠獲取相應的控制項信息,大大地便得了安卓應用程式安裝包的研發。
[0060]本領域普通技術人員可以理解實現上述實施例方法中的全部或部分流程,是可以通過電腦程式來指令相關的硬體來完成,所述的程序可存儲於一計算機可讀取存儲介質中,該程序在執行時,可包括如上述各方法的實施例的流程。其中,所述的存儲介質可為磁碟、光碟、只讀存儲記憶體(Read-Only Memory, ROM)或隨機存儲記憶體(Random AccessMemory, RAM)等。[0061]以上所述實施例僅表達了本發明的幾種實施方式,其描述較為具體和詳細,但並不能因此而理解為對本發明專利範圍的限制。應當指出的是,對於本領域的普通技術人員來說,在不脫離本發明構思的前提下,還可以做出若干變形和改進,這些都屬於本發明的保護範圍。因此,本發明專利的保護範圍應以所附權利要求為準。
【權利要求】
1.一種安卓應用程式安裝包的信息獲取方法,包括如下步驟: 反編譯安卓應用程式安裝包得到相應的布局文件和字節碼文件; 通過設置屏幕控制項從所述字節碼文件得到相應的編碼; 根據所述編碼在所述布局文件中查找得到對應的控制項名稱。
2.根據權利要求1所述的安卓應用程式安裝包的信息獲取方法,其特徵在於,所述反編譯安卓應用程式安裝包得到相應的布局文件和字節碼文件的步驟包括: 通過命令行運行平臺中運行的命令運行反編譯工具,並通過所述反編譯工具對安卓應用程式安裝包進行反編譯,得到所述安卓應用程式安裝包對應的布局文件和字節碼文件。
3.根據權利要求2所述的安卓應用程式安裝包的信息獲取方法,其特徵在於,所述反編譯安卓應用程式安裝包得到相應的布局文件和字節碼文件的步驟之後還包括: 檢查所述安卓應用程式安裝包是否存放於所述反編譯工具所在的文件夾,若是,則進入所述反編譯安卓應用程式安裝包得到相應的布局文件和字節碼文件的步驟,若否,則 提取安卓應用程式安裝包並複製到所述反編譯工具所在的文件夾中。
4.根據權利要求1所述的安卓應用程式安裝包的信息獲取方法,其特徵在於,所述通過所述設置屏幕控制項從所述字節碼文件得到相應的編碼的步驟包括: 開啟所述字節碼文件,通過所述安卓應用程式安裝包中活動組件的設置屏幕控制項從所述開啟的字節碼文件中提取十六進位編碼。
5.根據權利要求4所述的安卓應用程式安裝包的信息獲取方法,其特徵在於,所述根據所述編碼在所述布局文件中查找得到對應的控制項名稱的步驟包括: 根據所述十六進位編碼在所述布局文件中進行查找,以得到布局文件中控制項標識與十六進位編碼相一致的條目,從查找得到的條目中提取出控制項名稱。
6.一種安卓應用程式安裝包的信息獲取裝置,其特徵在於,包括: 反編譯模塊,用於反編譯安卓應用程式安裝包得到相應的布局文件和字節碼文件; 編碼獲取模塊,用於通過設置屏幕控制項從所述字節碼文件得到相應的編碼; 查找模塊,用於根據所述編碼在所述布局文件中查找得到對應的控制項名稱。
7.根據權利要求6所述的安卓應用程式安裝包的信息獲取裝置,其特徵在於,所述反編譯模塊還用於通過命令行運行平臺中運行的命令運行反編譯工具,並通過所述反編譯工具對安卓應用程式安裝包進行反編譯,得到安卓應用程式安裝包對應的布局文件和字節碼文件。
8.根據權利要求7所述的安卓應用程式安裝包的信息獲取裝置,其特徵在於,所述裝置還包括: 檢查模塊,用於檢查所述安卓應用程式安裝包是否存放於所述反編譯工具所在的文件夾,若是,則通知反編譯模塊,若否,則通知複製模塊; 所述複製模塊用於提取安卓應用程式安裝包並複製到所述反編譯工具所在的文件夾中。
9.根據權利要求8所述的安卓應用程式安裝包的信息獲取裝置,其特徵在於,所述編碼獲取模塊還用於開啟所述字節碼文件,通過所述安卓應用程式安裝包中活動組件的設置屏幕控制項從所述開啟的字節碼文件中提取十六進位編碼。
10.根據權利要求9所述的安卓應用程式安裝包的信息獲取裝置,其特徵在於,所述查找模塊還用於根據所述十六進位編碼在所述布局文件中進行查找,以得到布局文件中控制項標識與十六進位編碼相一致的條目, 從查找得到的條目中提取出控制項名稱。
【文檔編號】G06F9/44GK103970514SQ201310032157
【公開日】2014年8月6日 申請日期:2013年1月28日 優先權日:2013年1月28日
【發明者】徐錚 申請人:騰訊科技(深圳)有限公司