本文微信公众号「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 还不行。
閱讀更多 安卓小煜 的文章