如何确定一个应用程序是原生的还是Flutter的

20

我想知道一个移动应用是原生开发还是使用Flutter编写的。有没有办法从构建文件(apk、ipa等)中知道这一点?如何检测一个应用是原生还是Flutter开发的?


1
只需反编译应用程序并查看其结构即可。 - Kaushik Burkule
我看到你的代码有问题。 - user6038900
8个回答

13
您可以使用以下方法查找应用程序是否使用Flutter:
  1. 提取apk文件。您可以将文件扩展名简单地重命名为.zip并提取它。
  2. 导航到lib文件夹。
  3. 您将找到不同架构的子文件夹列表。
  4. 子文件夹中将包含一个libflutter.so文件。所有Flutter应用程序都将存在此libflutter.so文件。

这是来自Flutter Gallery app的文件截图。

enter image description here


6

当然,您可以通过提取APK文件来找出答案。但还有另一种简单的方法:

在设备上安装应用程序,然后打开它并检查UI中的列表或网格。

如果您感觉使用两个手指滚动时速度加倍,而使用一个手指滚动时,则该应用程序是使用Flutter开发的。


太棒了的主意...简直完美。 - undefined
这是一个有趣的方法来判断一个应用是否是用Flutter编写的,对于那些好奇的人,这是链接:https://github.com/flutter/flutter/issues/11884。我认为这不是一个问题,而是一个特性。 - undefined

5
若要在手机上检查应用程序,则可以启用布局边界。如果该应用程序在所有组件周围显示边界,则可能是使用原生Android或React Native开发的。然而,在Flutter的情况下,它直接从本地端访问画布并在其上绘制,因此由于直接使用画布,不会在组件周围显示任何边界。
以下是使用Flutter和使用本地组件的其他框架制作的应用程序的屏幕截图。

4

我将我的Flutter应用程序上传到了提到的网站,但是没有名为flutter的文件夹。 - Yuvaraj V
我没有更多的信息来知道这个应用是Flutter还是本地的。 - lsaudon
@Yuvaraj 所以它是本地的。 - Smart Manoj
每个 APK 都会有一个 p016io 文件夹吗? - Choy

3

简单的解决方案:

  1. 激活瓷砖:
  • 开发者选项 ON
  • 快速设置开发者瓷砖
  • 显示布局边界
  1. 打开应用程序,从屏幕顶部向下滑动并触摸图标布局以启用显示布局边界。

  2. Flutter 应用程序不会显示 UI 的小块布局,但原生应用程序会。


不错的解决方案。而且这个方案可以通过你的手机实现。 - Renso Lohuis

1
  1. 使用APKTOOL下载并解码APK文件
java -jar apktool.*.jar d file.apk -o output
  1. 在文本编辑器中打开AndroidManifest.xml文件

  2. 在文件中搜索flutter的出现情况

如果使用vim,在终端提示符下:

vim +/flutter +"set hlsearch" AndroidManifest.xml

这样的情况可能是Flutter插件和“flutterEmbedding”,它负责将Flutter集成到Android应用程序中。

1
我们可以进行“手指滚动”测试。
首先用一根手指滑动应用程序,然后使用两个手指。确保你以相同的速度滑动。如果随着添加每个手指,滑动速度增加,则说明它是使用Flutter构建的。

1

FlutterShark应用程序(由我开发)可以帮助您确定应用程序是否使用Flutter构建。 以Google Ads应用程序为例。

  1. 首先在您的设备上安装Google Ads应用程序。
  2. 在您的设备上安装FlutterShark应用程序。 https://play.google.com/store/apps/details?id=com.fluttershark.fluttersharkapp
  3. 打开FlutterShark应用程序。FlutterShark应用程序将能够列出您设备上使用Flutter构建的所有应用程序。 此外,FlutterShark应用程序还将帮助您识别Flutter版本和应用程序内使用的所有Flutter包。这对于Flutter开发人员获取市场上Flutter应用程序的技术洞察力非常有帮助。

享受Flutter的乐趣吧!


2
欢迎来到 Stack Overflow!请记住,为了遵守 SO 的自我推广规则,您需要明确声明该应用程序是由您开发的。您可以在此处了解更多信息:https://stackoverflow.com/help/promotion - Sergei Kozelko

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接