溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Android體系結(jié)構(gòu)是怎樣的

發(fā)布時(shí)間:2022-01-12 14:30:15 來(lái)源:億速云 閱讀:130 作者:iii 欄目:大數(shù)據(jù)

這篇“Android體系結(jié)構(gòu)是怎樣的”文章的知識(shí)點(diǎn)大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細(xì),步驟清晰,具有一定的借鑒價(jià)值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來(lái)看看這篇“Android體系結(jié)構(gòu)是怎樣的”文章吧。

安卓加載流程
新版官網(wǎng)示意圖
Android體系結(jié)構(gòu)是怎樣的  
  1. 編譯器將您的源代碼轉(zhuǎn)換成 DEX(Dalvik Executable) 文件(其中包括運(yùn)行在 Android 設(shè)備上的字節(jié)碼),將所有其他內(nèi)容轉(zhuǎn)換成已編譯資源。

  2. APK 打包器將 DEX 文件和已編譯資源合并成單個(gè) APK。不過(guò),必須先簽署 APK,才能將應(yīng)用安裝并部署到 Android 設(shè)備上。

  3. APK 打包器使用調(diào)試或發(fā)布密鑰庫(kù)簽署您的 APK:

  4. 如果您構(gòu)建的是調(diào)試版本的應(yīng)用(即專用于測(cè)試和分析的應(yīng)用),打包器會(huì)使用調(diào)試密鑰庫(kù)簽署您的應(yīng)用。Android Studio 自動(dòng)使用調(diào)試密鑰庫(kù)配置新項(xiàng)目。

  5. 如果您構(gòu)建的是打算向外發(fā)布的發(fā)布版本應(yīng)用,打包器會(huì)使用發(fā)布密鑰庫(kù)簽署您的應(yīng)用。要?jiǎng)?chuàng)建發(fā)布密鑰庫(kù),請(qǐng)閱讀在 Android Studio 中簽署您的應(yīng)用

  6. 在生成最終 APK 之前,打包器會(huì)使用 zipalign 工具對(duì)應(yīng)用進(jìn)行優(yōu)化,減少其在設(shè)備上運(yùn)行時(shí)的內(nèi)存占用。

 
舊版官網(wǎng)示意圖
Android體系結(jié)構(gòu)是怎樣的  
安卓體系結(jié)構(gòu)
Android體系結(jié)構(gòu)是怎樣的  
  1. 通過(guò)aapt打包res資源文件,生成R.java、resources.arsc和res文件(二進(jìn)制 & 非二進(jìn)制如res/raw和pic保持原樣)

  2. 處理.aidl文件,生成對(duì)應(yīng)的Java接口文件

  3. 通過(guò)Java Compiler編譯R.java、Java接口文件、Java源文件,生成.class文件

  4. 通過(guò)dex命令,將.class文件和第三方庫(kù)中的.class文件處理生成classes.dex

  5. 通過(guò)apkbuilder工具,將aapt生成的resources.arsc和res文件、assets文件和classes.dex一起打包生成apk

  6. 通過(guò)Jarsigner工具,對(duì)上面的apk進(jìn)行debug或release簽名

  7. 通過(guò)zipalign工具,將簽名后的apk進(jìn)行對(duì)齊處理。

安卓項(xiàng)目的文件結(jié)構(gòu)與安卓apk的文件結(jié)構(gòu)存在著一一對(duì)應(yīng)的關(guān)系。

安卓應(yīng)用開(kāi)發(fā)的本質(zhì)是:將源代碼和各種資源文件編譯整合成一個(gè)apk。

安卓逆向的本質(zhì)是:想辦法將apk轉(zhuǎn)化為源代碼和資源文件。

簡(jiǎn)單來(lái)說(shuō),apk就是一個(gè)帶有簽名的zip格式的壓縮包,簽名為了保護(hù)開(kāi)發(fā)者的權(quán)益和標(biāo)識(shí)apk。做為android逆向?qū)W習(xí)的第一步,了解apk的文件結(jié)構(gòu)和生成過(guò)程是很有必要的。為了提升apk的安全性能,現(xiàn)在很多安卓應(yīng)用程序的核心代碼都采用NDK開(kāi)發(fā),所以生成的apk中會(huì)多出一個(gè)lib文件夾用于存放so文件。

以上就是關(guān)于“Android體系結(jié)構(gòu)是怎樣的”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對(duì)大家有幫助,若想了解更多相關(guān)的知識(shí)內(nèi)容,請(qǐng)關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI