gpt4 book ai didi

android - 为 Android 编译时,iOS 的 dart 代码会被删除吗?

转载 作者:IT老高 更新时间:2023-10-28 12:46:33 24 4
gpt4 key购买 nike

我正在使用 Flutter 为 iOS 和 Android 平台编写应用程序。有些功能不一样。

例如:

if (Platform.isIOS) {
int onlyForiOS = 10;
onlyForiOS++;
print("$onlyForiOS");
}
else if (Platform.isAndroid){
int onlyForAndroid = 20;
onlyForAndroid++;
print("$onlyForAndroid");
}

当我为Android平台构建时,iOS的代码会被编译成二进制文件吗?或者它们只是为了优化而被删除?出于安全原因,我不希望任何适用于 iOS 的代码出现在 Android 二进制文件中。

最佳答案

这取决于您正在评估的表达式。

Dart tree-shaking 基于常量变量。因此,以下内容将被摇树:

const foo = false;
if (foo) {
// will be removed on release builds
}

但这个例子不会:

final foo = false;
if (foo) {
// foo is not a const, therefore this if is not tree-shaked
}

现在,如果我们查看 Platform.isAndroid 的实现,我们可以看到它不是一个常量,而是一个 getter。

因此我们可以推断出 if (Platform.isAndroid) 不会被 tree-shaked。

关于android - 为 Android 编译时,iOS 的 dart 代码会被删除吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56306140/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com