Android原始碼解析-Android的構建過程(一)
1、aapt(Android Asset Packaging Tool)工具會將資原始檔進行轉化,生成對應資源ID的R檔案和資原始檔,比如Androidmanifest.xml,Layout中xml檔案等編譯為二進位制形式,assets資料夾中、raw資料夾中以及圖片等會以原始檔儲存,但注意的的是raw資料夾中的資源也會生成資源Id。
2、AIDL工具會將所有的AIDl介面轉換成Java介面
3、Java Compiler將所有java檔案編譯成Class檔案;比如R檔案,Java原始碼,由aidl轉化來的Java介面等。
4、Dx工具將.class生成.dex檔案(dex檔案是Dalvik虛擬機器可以執行的格式),dex檔案最終會被打包進APK檔案
5、ApkBuilder工具會將編譯過的資源及未編譯過的資源(如圖片等)以及.dex檔案打包成APK檔案,但這個檔案不能直接安裝在android系統上
6、通過簽名工具對其進行簽名
7、zipalign工具對APK進行對齊操作,這樣做的好處是當應用執行時會提高速度,但是相應的會增加記憶體的開銷。簽名完成之後就是一個可以在手機安裝的apk檔案了
相關推薦
Android原始碼解析-Android的構建過程(一)
1、aapt(Android Asset Packaging Tool)工具會將資原始檔進行轉化,生成對應資源ID的R檔案和資原始檔,比如Androidmanifest.xml,Layout中xml檔案等編譯為二進位制形式,assets資料夾中、raw資料夾
Android原始碼解析之(十一)-->應用程序啟動流程
本節主要是通過分析Activity的啟動過程介紹應用程式程序的啟動流程。關於Android的應用程序在android guide中有這樣的一段描述: By default, every application runs in its own Linu
Android原始碼解析(二十一)-->PopupWindow載入繪製流程
在前面的幾篇文章中我們分析了Activity與Dialog的載入繪製流程,取消繪製流程,相信大家對Android系統的視窗繪製機制有了一個感性的認識了,這篇文章我們將繼續分析一下PopupWindow載入繪製流程。 在分析PopupWindow之前,我們將
Kylin原始碼解析——Cube構建過程中如何實現降維
-維度簡述 Kylin中Cube的描述類CubeDesc有兩個欄位,rowkey和aggregationGroups。 @JsonProperty("rowkey") private RowKeyDesc rowkey; @JsonProperty("ag
Android原始碼解析之Android專案構建過程
平時開發過程中我們通過android studio編寫完成android專案之後直接點選 Run ‘app’就可以在build/outputs/apk生成可以在android裝置中安裝的apk檔案了,那麼整個android原始碼的構建過程是怎麼樣的呢? 我們可以根據Goog
Android原始碼解析Window系列第(一)篇---Window的基本認識和Activity的Window建立過程
您可能聽說過View ,ViewManager,Window,PhoneWindow,WindowManager,WindowManagerService,可是你知道這幾個類是什麼關係,幹嘛用的。概括的來說,View是放在Window中的,Window是一個抽象
Android原始碼解析之應用程式資源管理器(Asset Manager)的建立過程分析
轉載自:https://blog.csdn.net/luoshengyang/article/details/8791064 我們分析了Android應用程式資源的編譯和打包過程,最終得到的應用程式資源就與應用程式程式碼一起打包在一個APK檔案中。Android應用程式在執行的過程中,是通過一個
原始碼解析Android中View的measure量算過程
本文比較長,希望大家耐心讀完。 Android中的Veiw從記憶體中到呈現在UI介面上需要依次經歷三個階段:量算 -> 佈局 -> 繪圖,關於View的量算、佈局、繪圖的總體機制可參見博文《 Android中View的佈局及繪圖機制》。如果想了解l
Android原始碼解析之loadLibrary() 的執行過程
轉載自:http://gityuan.com/2017/03/26/load_library/ 重要參照(可惜格式原因,不然我想轉這篇,該篇4.2.2):https://my.oschina.net/wolfcs/blog/129696 我想抱怨一句,為啥都快底層的東西了,
Android原始碼解析之應用程式在新的程序中啟動新的Activity的方法和過程分析
轉載自:http://blog.csdn.net/luoshengyang/article/details/6720261 前面我們在分析Activity啟動過程的時候,看到同一個應用程式的Activity一般都是在同一個程序中啟動,事實上,A
原始碼解析Android中View的layout佈局過程
Android中的Veiw從記憶體中到呈現在UI介面上需要依次經歷三個階段:量算 -> 佈局 -> 繪圖,關於View的量算、佈局、繪圖的總體機制可參見博文 《 Android中View的佈局及繪圖機制》。量算是佈局的基礎,如果想了解量算的細節,可參
【Android原始碼解析】View.post()到底幹了啥
本篇文章已授權微信公眾號 guolin_blog (郭霖)獨家釋出 emmm,大夥都知道,子執行緒是不能進行 UI 操作的,或者很多場景下,一些操作需要延遲執行,這些都可以通過 Handler 來解決。但說實話,實在是太懶了,總感覺寫 Handler 太麻煩了,一不小心又很容
Android 原始碼解析 之 setContentView
大家在平時的開發中,對於setContentView肯定不陌生,那麼對其內部的實現會不會比較好奇呢~~~有幸終於能看到一些PhoneWindow神馬的原始碼,今天就帶大家來跑一回原始碼~~1、Activity setContentView首先不用說,進入Activity的se
原始碼解析Android中AsyncTask的工作原理
在之前的部落格《Android中AsyncTask使用詳解》中我們提到AsyncTask是對Thread和Handler的組合包裝,本文將通過解析的方式讓大家瞭解AsyncTask的工作原理。 AsyncTask一開始定義了一些欄位,如下所示: pr
Android原始碼解析之(十)-->Launcher啟動流程
上一篇文章中我們講解了關於SystemServer程序相關的知識,我們知道SystemServer程序主要用於啟動系統的各種服務,二者其中就包含了負責啟動Launcher的服務,LauncherAppService。具體更多關於SystenServer的啟動
Android原始碼解析之(十三)-->apk安裝流程
上一篇文章中給大家分析了一下android系統啟動之後呼叫PackageManagerService服務並解析系統特定目錄,解析apk檔案並安裝的過程,這個安裝過程實際上是沒有圖形介面的,底層呼叫的是我們平時比較熟悉的adb命令,那麼我們平時安裝apk檔案的
Android原始碼解析(二十九)-->應用程式返回按鍵執行流程
從這篇文章中我們開始分析android系統的事件分發流程,其實網上已經有了很多關於android系統的事件分發流程的文章,奈何看了很多但是印象還不是很深,所以這裡總結一番。 android系統的事件分發流程分為很多部分: Native層 –> V
Android原始碼解析之(五)-->IntentService
上一篇文章中我們講解了HandlerThread,其本質上是一個Thread,只不過內部定義了其自身的Looper和MessageQueue。為了讓多個執行緒之間能夠方便的通訊,我們會使用Handler實現執行緒間的通訊。這個時候我們手動實現的多執行緒+Ha
Android原始碼解析(十九)-->Dialog載入繪製流程
前面兩篇文章,我們分析了Activity的佈局檔案載入、繪製流程,算是對整個Android系統中介面的顯示流程有了一個大概的瞭解,其實Android系統中所有的顯示控制元件(注意這裡是控制元件,而不是元件)的載入繪製流程都是類似的,包括:Dialog的載入繪
藍芽檔案傳輸之obex層之上的分析【Android原始碼解析】
在上節中我們仔細分析了藍芽檔案傳輸過程中涉及到的UI介面,最終定格在藍芽裝置掃描的介面,我們只要選擇自己想要傳輸的藍芽裝置就可以進行藍芽檔案的傳輸了。那就是這樣一個簡單的裝置選擇的點選會引發哪些