天天看點

Fresco源碼解析 - 本地編譯

Fresco源碼解析 - 本地編譯
第一次寫專欄,如有表述不好或者了解錯誤的地方,請各位讀者不吝賜教,本人一定虛心接受并第一時間改正。

作為專題第一篇,先從最簡單的開始,順便找找感覺。

Fresco 是 facebook 在今年的 F8 大會上宣布開源的一個用于加載圖檔的庫,它不僅支援多種圖檔檔案格式,而且由于使用了pinned purgeables 技術,使得大圖加載過程中産生OOM的機率大大降低,對開發者來說絕對是一件喜大普奔的事情,對于像天貓HD這樣需要加載大量圖檔的APP來說也絕對是個福音。

下載下傳代碼

首先把源碼從 Github 克隆到本地。

$git clone https://github.com/facebook/fresco.git
           

clone完畢後的檔案結構目錄如下:

Fresco源碼解析 - 本地編譯

配置NDK開發環境

由于 Fresco 用到了C寫的圖檔解碼庫(下圖所示),是以還需要配置NDK的開發環境。

Fresco源碼解析 - 本地編譯

到 Android 官網下載下傳 Android NDK,并配好環境變量。

編譯代碼

進入 Fresco 源碼所在的目錄,開始編譯。

fresco$./gradlew build
           

下載下傳 gradle 的 wrapper 可能需要較長的時間,耐心等待一下。

※ 注意報錯

編譯過程中 Gradle 可能會報錯,

unable to expand TAR 'imagepipeline\build\downloads\libjpeg-turbo-1.3.1.tar.gz'
      

不必驚慌、不必擔心,已經有人踩過此坑,隻需要把

imagepipeline/build

目錄删掉,重新 build 一下就可以了。

生成aar

編譯結束後,每個工程會生成對應的

aar

包。

Fresco源碼解析 - 本地編譯

繼續閱讀