是Android Package的縮寫,即Android application package文件或Android安裝包。每個要安裝到Android平臺的應用都要被編譯打包為壹個單獨的文件,擴展名為 .apk。
APK
文件是用專業軟件eclipse編譯生成的文件包,其中包含了應用的二進制代碼、資源、配置文件等。通過將APK文件直接傳到Android手機中執行即可安裝。APK文件其實就是zip格式,其擴展名被改為apk,在Windows下用解壓軟件WinRAR/WinZIP/7-Zip可以直接打開。解壓後,妳會看到有幾個文件和文件夾。壹個典型的APK文件通常有下列內容組成:
AndroidManifest.xml 程序全局配置文件
classes.dex Dalvik字節碼
resources.arsc 編譯後的二進制資源文件
META-INF\ 該目錄下存放的是簽名信息
res\ 該目錄存放資源文件
assets\ 該目錄可以存放壹些配置文件
下面對這些文件和目錄做些基本的註釋和介紹:
? AndroidManifest.xml
該文件是每個apk應用程序都必須包含的文件,它描述了應用程序的名字、版本、權限、引用的庫文件等等信息。
classes.dex文件classes.dex是java源碼編譯後生成的java字節碼文件。dex是Dalvik VM executes的全稱即
Android Dalvik執行程序。利用解析工具可以將其轉換成java來加以閱讀和理解。
resources.arsc編譯後的二進制資源文件。在做主題美化時要常與這個文件打交
道。
META-INF目錄META-INF目錄下存放的是簽名信息,有三個簽名文件,用來保證apk包的完整性和系統的全。在eclipse編譯生成壹個apk包時,會對所要打包的文件做壹個校驗計算,並把計算結果放在META-INF目錄下。這就保證了apk包裏的文件不能被隨意替換。比如拿到壹個apk包後,如果想要替換裏面的壹幅圖片,壹段代碼,或壹段版權信息,想直接解壓縮、替換再重新打包,基本是不可能的。如此壹來就給感染和惡意修改增加了難度,有助於保護系統的安全。
res目錄res目錄存放資源文件。包括圖片,字符串等等。
res下有若幹個子目錄,主要為drawable,layout,xml。
assets目錄assets目錄可以存放壹些配置文件,這些文件的內容在程序運行過程中可以通過相關的API獲得。