您好,登錄后才能下訂單哦!
這篇“Android體系結構是怎樣的”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“Android體系結構是怎樣的”文章吧。
編譯器將您的源代碼轉換成 DEX(Dalvik Executable) 文件(其中包括運行在 Android 設備上的字節碼),將所有其他內容轉換成已編譯資源。
APK 打包器將 DEX 文件和已編譯資源合并成單個 APK。不過,必須先簽署 APK,才能將應用安裝并部署到 Android 設備上。
APK 打包器使用調試或發布密鑰庫簽署您的 APK:
如果您構建的是調試版本的應用(即專用于測試和分析的應用),打包器會使用調試密鑰庫簽署您的應用。Android Studio 自動使用調試密鑰庫配置新項目。
如果您構建的是打算向外發布的發布版本應用,打包器會使用發布密鑰庫簽署您的應用。要創建發布密鑰庫,請閱讀在 Android Studio 中簽署您的應用
在生成最終 APK 之前,打包器會使用 zipalign 工具對應用進行優化,減少其在設備上運行時的內存占用。
通過aapt打包res資源文件,生成R.java、resources.arsc和res文件(二進制 & 非二進制如res/raw和pic保持原樣)
處理.aidl文件,生成對應的Java接口文件
通過Java Compiler編譯R.java、Java接口文件、Java源文件,生成.class文件
通過dex命令,將.class文件和第三方庫中的.class文件處理生成classes.dex
通過apkbuilder工具,將aapt生成的resources.arsc和res文件、assets文件和classes.dex一起打包生成apk
通過Jarsigner工具,對上面的apk進行debug或release簽名
通過zipalign工具,將簽名后的apk進行對齊處理。
安卓項目的文件結構與安卓apk的文件結構存在著一一對應的關系。
安卓應用開發的本質是:將源代碼和各種資源文件編譯整合成一個apk。
安卓逆向的本質是:想辦法將apk轉化為源代碼和資源文件。
簡單來說,apk就是一個帶有簽名的zip格式的壓縮包,簽名為了保護開發者的權益和標識apk。做為android逆向學習的第一步,了解apk的文件結構和生成過程是很有必要的。為了提升apk的安全性能,現在很多安卓應用程序的核心代碼都采用NDK開發,所以生成的apk中會多出一個lib文件夾用于存放so文件。
以上就是關于“Android體系結構是怎樣的”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。