本文微信公眾號「AndroidTraveler」首發。

前言
之前的博客我們都是在 debug 的模式下進行開發的。
實際發佈到市場或者給到用戶的都是 release 包。
而對於 Android 來說,release 包一個重要的步驟就是混淆。
Android 如何混淆
如何你不做任何處理,直接在原有混淆基礎上打出 release 包。
當運行到 Flutter 對應代碼,會 crash。
因此我們需要在 Android 項目的 proguard-rules.pro 文件進行配置。
配置的混淆文本以官網鏈接為主:
https://flutter.dev/docs/deployment/android#enabling-proguard
dart 混淆
官網 Flutter WIKI 裡面說了
Dart 的混淆還沒有完全測試。因此是否添加看你。
就算添加了,也要記得測試是否會影響到你的 Flutter 相關功能使用。
對於 Android 來說是添加下面到 /android/gradle.properties:
具體詳情見 Flutter WIKI:
https://github.com/flutter/flutter/wiki/Obfuscating-Dart-Code
Flutter FAQ
在 Flutter 的 FAQ 鏈接上面,明確說明了 Flutter 暫時不支持 x86 架構的手機。
因此假設你們公司要選型 Flutter,你要確認是否可以割捨掉使用 x86 架構手機的用戶。
當然 x86 的 Android 手機相對比較少,不過還是有的。
當 Flutter 代碼運行到 x86 平臺上面,會 crash。
如果你要驗證,可以在 Android 模擬器上面創建一個 x86 的手機模擬器,比如 nexus 4。
然後安裝嵌入 Flutter 代碼的 Android APK,當運行到對應 Flutter 代碼時,APP 會 crash。
這個時候有兩種方案:
- 判斷當前手機架構,如果是 x86,對應 Flutter 功能不顯示。
- APP 設置不支持 x86 架構。這樣 x86 手機就沒法安裝了。
推薦第二種,因為第一種會導致不同架構手機表現不一致,而且需要自己代碼手動做控制。容易漏掉。
當然你單獨編譯一個支持 x86 的 Flutter 包是可以的,但是要同時支持 x86 和 arm 還不行。
閱讀更多 安卓小煜 的文章