日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android构建流程——篇一

發布時間:2024/9/30 Android 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android构建流程——篇一 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Android構建流程

    • 前言
    • APK 構建流程
    • AGP(3.2.0)任務列表總覽圖
    • 參考文獻

前言

大家平時開發Android項目時一般都是點擊AS run按鈕,這樣apk會自動安裝到手機上,這整個過程到底發生來什么呢?

今天就來梳理下整個流程gradle做了什么,講解前先來熟悉下apk整體構建流程

APK 構建流程

官方新圖

如圖 1 所示,典型 Android 應用模塊的構建流程通常按照以下步驟執行:

  • 編譯器將您的源代碼轉換成 DEX 文件(Dalvik 可執行文件,其中包括在 Android 設備上運行的字節碼),并將其他所有內容轉換成編譯后的資源。
  • APK 打包器將 DEX 文件和編譯后的資源合并到一個 APK 中。不過,在將應用安裝并部署到 Android 設備之前,必須先為 APK 簽名。
  • APK 打包器使用調試或發布密鑰庫為 APK 簽名:
    • 如果您構建的是調試版應用(即專用于測試和分析的應用),則打包器會使用調試密鑰庫為應用簽名。Android Studio 會自動使用調試密鑰庫配置新項目。
    • 如果您構建的是打算對外發布的發布版應用,則打包器會使用發布密鑰庫為應用簽名。如需創建發布密鑰庫,請參閱在 Android Studio 中為應用簽名。
  • 在生成最終 APK 之前,打包器會使用 zipalign 工具對應用進行優化,以減少其在設備上運行時所占用的內存。
    構建流程結束時,您將獲得應用的調試版 APK 或發布版 APK,以用于部署、測試或發布給外部用戶。

  • 上面是官方新圖,感覺沒有👇舊圖詳細

    從上圖可以看出APK打包流程主要分以下幾個步驟

  • aapt工具處理app res文件,生成R.java 、resources.arsc(資源映射關系表)、res文件
  • aidl工具處理aidl文件,生成對應的java文件
  • javac 對上述二個步驟中生成的java文件和項目中源代碼文件進行編譯,生成字節碼文件(.class)
  • dex工具接受步驟3中的.class文件、第三方庫的.class文件處理生成dex文件
  • apkbuilder工具將aapt生成的resources.arsc、res文件、dex文件一起打包生成apk
  • 使用Jarsigner工具對apk進行簽名
  • 步驟6的產物進行zipalign操作(減少運行應用時消耗的 RAM 容量)
  • AGP(3.2.0)任務列表總覽圖

    下圖為構建示例工程APK涉及的任務列表,大體有30+個任務;黃色代表較重要任務,每個task都標注了對應的類;后面的構建流程分析篇都是基于該圖進行展開說明的。

    👇
    Android構建流程——下篇

    參考文獻

    • https://developer.android.com/studio/build/index.html?hl=zh-cn#build-config
    • https://developer.android.com/studio/command-line/aapt2
    • https://developer.android.com/studio/command-line/zipalign.html

    總結

    以上是生活随笔為你收集整理的Android构建流程——篇一的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。