有一個很神秘的需求,需要對專案內的圖檔進行加密,但又不能影響到專案的開發。於是在 Github 上發現了一個看似可用的解決方案,下面就來說說這是怎麼做到的。 原理在 Android Studio 當中,要透過 gradle 打包 apk 的時候,我們可以透過 addBuildListener 來監聽整個打包的過程。在 addBuildListener 這個 Listener 裡面,有幾個方法: settingsEvaluated()、 projectsLoaded()、projectsEvaluated()、 buildFinished() 。這邊我們專注在projectsEvaluated()、 buildFinished() 這兩個方法,其中projectsEvaluated() 會是在打包 apk 前執行的,而buildFinished() 則是會在打包完成後執行。因此我們可以利用這兩個方法,來對圖檔進行加密,在要打包成 apk 時,我們將圖檔們加密並放入 apk 中,等打包結束後,我們在把原檔還原回來。 至於 apk