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 还不行。


分享到:


相關文章: