1. 程式人生 > >App打包原理——Android專案構建過程

App打包原理——Android專案構建過程

從開發者直觀感受上來說,專案構建就是從Android Studio 點選'run'到生成apk之間的過程。今天我們講解下這個過程中,用到的構建工具和構建的過程。

一)如下是一個apk解壓後的目錄,我們先有個印象,後面會提到每個目錄在構建過程中是如何生成的。

   AndroidManifest.xml       程式全域性配置檔案

   classes.dex                Dalvik位元組碼

   resources.arsc             資源索引表, 解壓縮resources.ap_就能看到

   res\                      該目錄存放資原始檔(圖片,文字,xml佈局)

   assets\                    該目錄可以存放一些配置檔案

   src\                       java原始碼檔案

   libs\                     存放應用程式所依賴的庫

   gen\                     編譯器根據資原始檔生成的java檔案

   bin\                      由編譯器生成的apk檔案和各種依賴的資源

   META-INF\                該目錄下存放的是簽名信息


二)下面是構建步驟:

2.1)AAPT(Android Asset Packaging Tool)工具,Android資源打包工具。

會打包資原始檔(res資料夾下的檔案),並生成R.java和resources.arsc檔案。

2.2)AIDL工具會將所有的.aidl檔案編譯成.java檔案。

2.3)JAVAC工具將R.java、AIDL介面生成的java檔案、應用程式碼java檔案編譯成.class檔案。

2.4)dx指令碼將很多.class檔案轉換打包成一個.dex檔案。

2.5)apkbuilder指令碼將資原始檔和.dex檔案生成未簽名的.apk檔案。

2.6)jarsigner對apk進行簽名。

這些構建中使用的工具或者指令碼,在SDK的build-tools或者tools下可以找到。

三)下面是一張Google官方提供的構建流程圖。對應著上面的構建步驟和apk解壓目錄看應該很清晰了。

 


相關推薦

App打包原理——Android專案構建過程

從開發者直觀感受上來說,專案構建就是從Android Studio 點選'run'到生成apk之間的過程。今天我們講解下這個過程中,用到的構建工具和構建的過程。一)如下是一個apk解壓後的目錄,我們先有個印象,後面會提到每個目錄在構建過程中是如何生成的。   AndroidM

Android原始碼解析之Android專案構建過程

平時開發過程中我們通過android studio編寫完成android專案之後直接點選 Run ‘app’就可以在build/outputs/apk生成可以在android裝置中安裝的apk檔案了,那麼整個android原始碼的構建過程是怎麼樣的呢? 我們可以根據Goog

Android 專案構建過程

Android專案構建過程:平常開發中使用ide可以很方便構建打包編譯成一個Apk包安裝到手機,那麼整個流程到底是啥樣的呢? 我們可以根據Google官方提供的流程圖來具體瞭解構建的過程, 構建工具放在Android sdk目錄下面的build-tools資料

Android專案構建過程

轉自: http://blog.csdn.net/qq_23547831/article/details/50634435 平時開發過程中我們通過android studio編寫完成android專案之後直接點選 Run ‘app’就可以在build/outputs/

Java架構-(七)整合spring cloud雲服務架構 - common-service 專案構建過程

我們將對common-service整個專案進行剖析,將整個構建的流程給記錄下來,讓更多的關注者來參考學習。 首先在構建spring cloud的common-service之前,我們需要準備的技術: Maven(專案構建)、Spring Boot、Spring Cloud、微服務概念、

Java架構-(八)整合spring cloud雲服務架構 - commonservice-eureka 專案構建過程

我們針對於HongHu cloud的eureka專案做以下構建,整個構建的過程很簡單,我會將每一步都構建過程記錄下來,希望可以幫助到大家: 建立一個名為particle-common-eureka的maven專案,繼承particle-commonservice,具體的pom

Dubbo:專案構建過程與所需元件介紹

一、 什麼是SOA 2 1 SOA : Service-Oriented Architecture 2 2 RPC : Remote Procedure Call Protocol 2 3 OSI網路通訊模型 : 2 二、 Dubbo是什麼 3 三、 Dubbo架構

關於cordova打包android專案,禁止隨手機系統改變字型大小的解決方法

1. 我用的是最新版的cordova,在專案根目錄下找到 node_modules\cordova-android\framework\src\org\apache\cordova\engine\SystemWebViewEngine.java 也可以全域性搜尋(webs

(八)Java B2B2C多使用者商城 springcloud架構- commonservice-eureka 專案構建過程

我們針對於HongHu cloud的eureka專案做以下構建,整個構建的過程很簡單,我會將每一步都構建過程記錄下來,希望可以幫助到大家: 1. 建立一個名為particle-common-eureka的maven專案,繼承particle-commonservice,具體的pom.xml配置檔

vue和webpack專案構建過程常用的npm命令

vue //最新穩定版 cnpm install vue //全域性安裝 vue-cli cnpm install --global vue-cli //建立一個基於 webpack 模板的新專案 vue init webpack my-project //進入專案目錄,執行

08.maven專案構建過程中出現的錯誤

問題一: 解決辦法: 問題二:如何將本地專案上傳到nexus私庫 方法一: 方法二: 問題三:引用父類專案時候出現如下warning(說明和父pom版本一致) GroupId is duplicate o

Android原始碼解析-Android構建過程(一)

1、aapt(Android Asset Packaging Tool)工具會將資原始檔進行轉化,生成對應資源ID的R檔案和資原始檔,比如Androidmanifest.xml,Layout中xml檔案等編譯為二進位制形式,assets資料夾中、raw資料夾

HongHu common-service 專案構建過程

我們將對common-service整個專案進行剖析,將整個構建的流程給記錄下來,讓更多的關注者來參考學習。 首先在構建spring cloud的common-service之前,我們需要準備的技術: Maven(專案構建)、Spring Boot、Spring Cloud

android專案開發過程中的本地快取總結

在現在很多的開發中,開發一個app快取和網路儲存搭配起來使用往往是必須的,自己寫過比較多的專案所有談談感想。 快取作用: 所謂的快取機制就是資料獲取方式的變化,app的快取通常就是把使用者經常需要從網路上載入並且變化不是事實的資料進行本地的儲存,這樣可以減少使用者流量的使用

(七) spring cloud版b2b2c社交電商spring cloud分散式微服務-common-service 專案構建過程

我們將對common-service整個專案進行剖析,將整個構建的流程給記錄下來,讓更多的關注者來參考學習。 首先在構建spri

vue打包app應用,Webstorm+cordova打包vue成Android專案

一. 打包vue vue專案開發完成後, 使用    npm run build 打包成功之後,開啟生成的dist資料夾中的 index.html,看看是不是ok的,沒問題就繼續下一步。 二. 使用cordova打包android專案 1. 新建cordova

Jenkins+Gitlab+蒲公英構建Android專案, 實現自動打包上傳並生產二維碼下載

基本準備 # 關閉selinux setenforce  0 sed   -i     '/=enforcing/s/enforcing/disabled/g'  /etc/sysconfig/selinux # 關閉防火牆 service   iptables 

關於ionic混合開發App打包過程詳解-android

哈嘍,大家好,最近OA上線,需要打包apk,學習了一下ionic打包的過程,在網上看的大多都是ionic build android,我的天啊,給我大安卓就這麼一行命令就搞定了嗎?怎麼可能,我是好奇寶寶,下面我就把我學到的分享給大家,針對於ionic打包apk壓縮和優化、加密的一套命令。寶寶準備好了

Android Studio專案打包AAR,以及專案中嵌入AAR檔案,過程中出現R檔案報錯的坑

這幾天接到新需求,將ec專案嵌入到公司as總專案中,第一次搞,弄了好久,才搞定,入正題. 首先將ec專案匯入as中,解決各種報錯,比如png圖片,.9圖,以及各種不規範的log,吐死之類的,不細說,這個不難. 將專案遷移到AS中,成功執行,OK,開始打包AAR,打包AAR不

Android Studio打包以及Gradle配置構建

otto sign rac color conf wmf git var png 本文轉載 郭霖公眾號 https://mp.weixin.qq.com/s?__biz=MzA5MzI3NjE2MA==&mid=2650241610&idx=1&sn