一步一步實現(xiàn)簡單安卓性能監(jiān)控SDK之回顧安卓編譯過程

該篇文章是系列<一步一步實現(xiàn)簡單安卓性能監(jiān)控SDK>第一篇文章,歡迎關(guān)注!

從一幅圖片說起

學過安卓開發(fā)的人,特別是自己曾經(jīng)寫過安卓自定義打包插件的開發(fā)者,對于如下的圖片肯定是不會陌生!

APK編譯過程.png

由于自己編寫app打包插件需要對app編譯過程中的幾乎每一個細節(jié)都要了解。我們開發(fā)性能監(jiān)控sdk也是如此。我們從以下幾個角度來看。每一個階段做了什么? 使用了什么工具? 輸入是什么輸出是什么?

過程分析

我們根據(jù)圖片,從左到右,從上往下的順序。

Android資源打包

工具 : 工具AAPT
描述:編譯資源文件為java索引文件
輸入:android resource。包括res文件夾,assert文件夾中的內(nèi)容以及AndroidMenifest.xml文件中。
輸出:R.java 、以及bin目錄下面的resource_

AIDL文件處理

工具:編譯器
描述:處理AIDL接口定義為Java文件
輸入:源碼文件、aidl文件、framework.aidl文件
輸出 : java文件

編譯java源代碼為class文件

工具:編譯器
描述:編譯java源代碼為class文件,包括源代碼以及過程中生成的java代碼,例如R.java
輸入:java源文件
輸出:class文件

dx處理class文件為davik支持的字節(jié)碼文件

工具:dx命令
描述: dx處理class文件為davik支持的字節(jié)碼文件。這些文件包括自己的源碼生成的class 以及 第三人jar包中的class文件
輸入:class文件
輸出:dex文件

打包所有資源為未簽名的apk

工具: apkbuilder
描述:把apk所需的資源,例如resource、dex文件、AndroidMenifest.xml so文件等等,這些資源打包。
輸入:resource、dex文件、AndroidMenifest.xml so文件等等
輸出:未簽名apk

簽名apk

工具;jarsigner
描述:對apk文件簽名
輸入 :未簽名APK
輸出 :簽名APK

對齊

工具:zipalign
描述:對apk進行優(yōu)化、對齊。不優(yōu)化,有些市場是不讓上傳的!
輸入:未對齊apk
輸出:對齊APK

大概就這樣,性能監(jiān)控apk如果要做到自動埋點。需要對整個過程聊熟于心!!!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容