Android開發-04-資源的生成

Android平臺主要通過aapt工具來處理資源文件。

詳細使用介紹可以參考:

https://elinux.org/Android_aapt

下面來研究aapt源代碼。

參考:

https://www.cnblogs.com/dyllove98/archive/2013/06/19/3144950.html

目錄結構:(frameworks/base/tools/aapt下輸入tree)

├── AaptAssets.cpp ※ 重要
├── AaptAssets.h
├── Android.mk
├── Bundle.h
├── CacheUpdater.h
├── Command.cpp 實現各種命令。
├── CrunchCache.cpp 實現CrunchCache類
├── CrunchCache.h
├── DirectoryWalker.h
├── FileFinder.cpp 實現SystemFileFinder,沒什麼好說的,對linux文件操作API不熟悉的建議回爐大名鼎鼎的APUE。
├── FileFinder.h
├── Images.cpp 封裝libpng,實現png解碼,也沒啥好說的,不熟悉的話直接看libpng文檔。
├── Images.h
├── Main.cpp 入口,檢查參數,並解析執行相關命令。
├── Main.h
├── NOTICE
├── Package.cpp ※ 重要 實現各種資源打包函數。
├── printapk.cpp 不清楚幹什麼,查看Makefile,好像也沒使用。
├── pseudolocalize.cpp
├── pseudolocalize.h
├── qsort_r_compat.c 封裝qsort
├── qsort_r_compat.h
├── Resource.cpp 對資源進行解析
├── ResourceFilter.cpp
├── ResourceFilter.h
├── ResourceIdCache.cpp ResourceIdCache
├── ResourceIdCache.h
├── ResourceTable.cpp ※ 重要 ResourceTable
├── ResourceTable.h
├── SourcePos.cpp 類SourcePos
├── SourcePos.h
├── StringPool.cpp 類StringPool
├── StringPool.h
├── tests 測試目錄
├── WorkQueue.cpp 封裝線程
├── WorkQueue.h
├── XMLNode.cpp 封裝XML解析
├── XMLNode.h
├── ZipEntry.cpp
├── ZipEntry.h
├── ZipFile.cpp 封裝zlib
└── ZipFile.h

待續…

發佈留言