編輯:關於Android編程
APK文件結構
APK文件實際是一個zip壓縮包,可以通過解壓縮工具解開。
下面是用解壓縮工具解開的APK包的結構:
|-- AndroidManifest.xml
|-- META-INF
| |-- CERT.RSA
| |-- CERT.SF
| `-- MANIFEST.MF
|-- classes.dex
|-- res
| |-- drawable
| | `-- icon.png
| `-- layout
| `-- main.xml
`-- resources.arsc
Manifest文件
AndroidManifest.xml是每個應用都必須定義和包含的,它描述了應用的名字、版本、權限、引用的庫文件等信息,如要把apk上傳到Google Market上,也要對這個xml做一些配置。網上已有很多資料,在此就不多做介紹了。
java -jar AXMLPrinter2.jar AndroidManifest.xml
META-INF目錄
META-INF目錄下存放的是簽名信息,用來保證apk包的完整性和系統的安全。
在eclipse編譯生成一個apk包時,會對所有要打包的文件做一個校驗計算,並把計算結果放在META-INF目錄下。而在Android手機上安裝apk包時,應用管理器會按照同樣的算法對包裡的文件做校驗,如果校驗結果與META-INF下的內容不一致,系統就不會安裝這個apk。這就保證了apk包裡的文件不能被隨意替換。比如拿到一個apk包後,如果想要替換裡面的一幅圖片,一段代碼, 或一段版權信息,想直接解壓縮、替換再重新打包,基本是不可能的。如此一來就給病毒感染和惡意修改增加了難度,有助於保護系 統的安全。
classes.dex文件
classes.dex是java源碼編譯後生成的java字節碼文件。但由於Android使用的dalvik虛擬機與標准的java虛擬機是不兼容的,dex文件與class文件相比,不論是文件結構還是opcode都不一樣。
res目錄
res目錄存放資源文件。
resources.arsc
編譯後的二進制資源文件。通常本地化、漢化資源存儲在該文件文件中。
自定義開關控件 Android自定義控件一般有三種方式 1、繼承Android固有的控件,在Android原生控件的基礎上,進行添加功能和邏輯。 2、繼承Vie
最近在機頂盒上做一個gridview,其焦點需要在item的子控件上,但gridview的焦點默認在item上,通過android:descendantFocusabil
之前備份短信的時候生成xml都是手動拼寫的,有一個問題:當短信裡面存在這樣的標簽的時候,最後結果就不是完整的xml文件,顯然出錯。但是,今天使用序列化器的方式,就能有效的
•android-support-v4.jar,這是谷歌官方給我們提供的一個兼容低版本Android設備的軟件包,裡面包囊了只有在Android3.0以上可以