~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
packages/ |– apps (各種應(yīng)用程序,如聯(lián)系人、瀏覽器等)
|– experimental (一些實(shí)驗(yàn)性的項(xiàng)目,如錯(cuò)誤報(bào)告)
|– inputmethods (輸入法相關(guān))
|– providers (各種數(shù)據(jù)源實(shí)現(xiàn),如聯(lián)系人數(shù)據(jù)、媒體庫等信息)
|– wallpapers (各種壁紙程序)
Android Framework功能介紹
android.app :提供**的程序模型和基本的運(yùn)行環(huán)境。
android.content :包含對各種設(shè)備上的數(shù)據(jù)進(jìn)行訪問和發(fā)布。
android.database :通過內(nèi)容提供者瀏覽和操作數(shù)據(jù)庫。
android.graphics :底層圖形庫,包含畫布、點(diǎn)、矩形等,可以將其直接繪制到屏幕上。
android.location :定位和相關(guān)服務(wù)的類。
android.media :提供一些類管理多種音頻、視頻的媒體接口。
android.net :提供幫助網(wǎng)絡(luò)訪問的類,超過通常的 java.net.* 接口。
android.os :提供了系統(tǒng)服務(wù)、消息傳輸和 IPC 機(jī)制。
android.opengl :提供 OpenGL 的工具。
android.provider :提供訪問 Android 內(nèi)容提供者的類。
android.telephony :提供與撥打電話相關(guān)的 API 交互。
android.view :提供基礎(chǔ)的用戶界面接口框架。
android.util :涉及工具性的方法,例如時(shí)間日期的操作。
android.webkit :默認(rèn)瀏覽器操作接口。
android.widget :包含各種 UI 元素(大部分是可見的)在應(yīng)用程序的布局中使用 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
build/ |– buildspec.mk.default |– cleanspec.mk |– core (各種以mk為結(jié)尾的文件,它門是編譯所需要的Makefile)
|– envsetup.sh |– libs |– target (包含board和product兩個(gè)目錄,為目標(biāo)所需要文件)
|– tools (編譯過程中主機(jī)所需要的工具,一些需要經(jīng)過編譯生成) 其中,core中的Makefile是整個(gè)Android編譯所需要的真正的Makefile,它被頂層目錄的Makefile引用
知識點(diǎn)小結(jié),DEX (class.dex) 文件是Android系統(tǒng)中可以在Dalvik虛擬機(jī)上直接運(yùn)行的文件格式。
Java源碼通過ADT編譯成smali語言這是一個(gè)優(yōu)化的過程,
相對 于.class文件它體積小、運(yùn)行效率高、被編譯后可讀性低;smali再到class.dex本身就是一個(gè)加殼保護(hù)的過程。
DEX文件如果未做好保護(hù), 黑客通過反編譯可讓源碼完全暴露,可利用閱讀源碼來找到APP的設(shè)計(jì)流程,
通過對程序流程的了解將很容易對程序進(jìn)行盜版、惡意篡改、惡意代碼注入等危險(xiǎn)行 為。
在此特別感謝愛加密提供的加密服務(wù)給我應(yīng)用加固提供了保護(hù)。