安卓源碼總體結(jié)構(gòu)(2)基礎(chǔ)知識匯總

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

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ù)。

http://www.ijiami.cn/AppProtect?

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容