【问题标题】:How to determine if an app is native or flutter如何确定一个应用是原生的还是颤振的
【发布时间】:2019-10-01 08:49:33
【问题描述】:

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

【问题讨论】:

  • 只需反编译应用程序并查看结构。
  • 我发现你的代码有问题

标签: android flutter cross-platform


【解决方案1】:

您可以通过以下方法查看应用是否使用flutter,

  1. 解压apk文件。您只需将文件扩展名重命名为 .zip 并解压即可。
  2. 导航到 lib 文件夹。
  3. 您会找到不同架构的子文件夹列表。
  4. 子文件夹将包含一个 libflutter.so 文件。这个 libflutter.so 将出现在所有 Flutter 应用中。

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

【讨论】:

    【解决方案2】:

    http://www.javadecompilers.com/apk上传apk文件

    如果你在sources中发现文件夹flutter那么这个app就是flutter app

    【讨论】:

    • 我将我的 Flutter 应用上传到上述网站,但没有名为 flutter 的文件夹
    • 我没有更多信息知道应用程序是颤振还是原生。
    • @Yuvaraj 所以它是本地人
    • 每个apk都会有一个p016io文件夹?
    【解决方案3】:

    简单的解决方案:

    1. 磁贴的激活:
    • 开发者选项开启
    • 快速设置开发者磁贴
    • 显示布局边界​
    1. 打开应用,从屏幕顶部向下滑动并触摸图标布局以启用显示布局绑定。

    2. Flutter 应用不会显示 UI 的小块布局,但 Native 应用会显示。

    【讨论】:

    • 不错的解决方案。使用您的手机即可实现此解决方案。
    【解决方案4】:
    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 插件和负责将 Flutter 集成到 Android 应用中的“flutterEmbedding”。

    【讨论】:

      【解决方案5】:

      可以通过启用布局边界从手机检查,如果应用程序显示所有组件的边界,那么它可能是使用原生 android 开发或反应原生的,但在颤动的情况下,它直接从原生端访问画布并在其上绘画,所以由于直接使用画布,它不会显示组件周围的任何边界。

      这是使用 react-native/android 开发的应用程序的演示。 Snap of application build with android/react-native

      这个是用颤振开发的。 Snap of application build with flutter

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-10-25
        • 1970-01-01
        • 2021-07-11
        • 1970-01-01
        • 2021-06-07
        • 2019-11-02
        相关资源
        最近更新 更多