Flutter 即學即用系列博客——10 混淆

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

Flutter 即學即用系列博客——10 混淆

前言

之前的博客我們都是在 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。

這個時候有兩種方案:

  1. 判斷當前手機架構,如果是 x86,對應 Flutter 功能不顯示。
  2. APP 設置不支持 x86 架構。這樣 x86 手機就沒法安裝了。

推薦第二種,因為第一種會導致不同架構手機表現不一致,而且需要自己代碼手動做控制。容易漏掉。

當然你單獨編譯一個支持 x86 的 Flutter 包是可以的,但是要同時支持 x86 和 arm 還不行。


分享到:


相關文章: