用兩個例子來說明資源索引的過程和原理,下面 resources.arsc 統稱 arsc 文件,classes.dex 統稱 dex 文件。
應用名稱APK介紹中提到應用名稱定義在 AndroidManifest.xml 文件中,其具體是在 application 标簽的 label 屬性中,但一般它的值隻是一個資源 ID,而具體的值在 arsc 文件中。為什麼這樣設計呢?主要是為了多國語言支持。然後我們可以根據這個 ID 去 arsc 文件中查找它的具體值。
例如下圖所示
在上圖中,應用名稱指定為 @7f0e0032,若在中文簡體的系統,應用名稱是 MT管理器,若在其它語言系統,應用名稱是 MT Manager。
布局文件在 dex 文件中,我們查看某個 Activity 的代碼,一般它是通過 setContentView(ID) 來加載布局文件,我們同樣可以用上面的辦法通過這個 ID 拿到具體的值,不過我們通過這個 ID 在 arsc 文件中找到的值應該是像 res/layout/activity_main.xml 這樣的路徑,可以看出布局資源在 arsc 存儲的隻是文件路徑,具體的内容我們還需要去 APK 中找到這個文件并打開。
除了布局文件,圖片文件、菜單文件等也是同樣的情況,均在 arsc 文件中存儲資源文件路徑。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!