Android 运行 和 BUILD 之间的 Studio NDK 应用程序性能差异
Android Studio NDK app performance difference between RUN and BUILD
我正在尝试使用 C++、SDL2 和 Android Studio NDK 创建一个数独应用程序。
理论上它已经运行良好,除非我手动构建和安装应用程序。
当我在 运行 使用 运行-Button 在 Android Studio 中使用 运行 应用程序时,我得到大约 50-60 FPS,当我通过 BUILD -> GENERATE 安装应用程序时,性能大幅下降SIGNED BUNDLE / APK... -> APK 并将其放在实际 android 设备上的 SD 卡上(我已经在小米 Mi A1、三星 Tab S3 和一些旧设备上对此进行了测试)。手动安装应用程序时,我得到大约 9-11 FPS。
为了创建项目,我使用了 SDL2 包(版本 2.0.18)中的模板项目。
对于这两种情况,我都使用相同的 (release-)Build Variant。
该应用程序是通过 NDK-Build 构建的。
我的结论是,虽然我的渲染代码可能不是最高效的,但这并不是导致这里出现大规模性能问题的问题。
Screenshot: build with RUN
Screenshot: build with BUILD -> GENERATE SIGNED BUNDLE / APK... -> APK
我已经尝试更改几个构建设置,包括在调试和发布模式之间切换,在 Application.mk 文件中添加优化(C 和 C++ -)标志,使用未压缩的资产构建。两种情况下的性能保持不变。
我的问题是:构建 APK 和单击 运行 之间可能有什么区别,这会导致此性能问题?
我希望有人能在这里帮助我,因为我现在很无能。提前谢谢你。
运行 和 BUILD 的区别在我的 运行-configuration.
在 安装选项 -> 部署 下,我选择了“APK from app bundle”。经过数小时的研究和尝试,我将其更改为“默认 APK”,这导致了与我在上面的问题中描述的构建和手动安装相同的性能问题。
虽然我仍然不太清楚为什么会这样,但我找到了一种获取 APK 文件的方法,该文件至少目前对我有用:
而不是使用 BUILD -> GENERATE SIGNED BUNDLE / APK... -> APK 我现在选择 BUILD -> GENERATE SIGNED BUNDLE / APK... -> ANDROID APP BUNDLE 并通过 bundletool (https://developer.android.com/studio/command-line/bundletool) 将应用程序包转换为 APK。转换后的 APK 在我的 android 设备上运行良好。
我正在尝试使用 C++、SDL2 和 Android Studio NDK 创建一个数独应用程序。
理论上它已经运行良好,除非我手动构建和安装应用程序。
当我在 运行 使用 运行-Button 在 Android Studio 中使用 运行 应用程序时,我得到大约 50-60 FPS,当我通过 BUILD -> GENERATE 安装应用程序时,性能大幅下降SIGNED BUNDLE / APK... -> APK 并将其放在实际 android 设备上的 SD 卡上(我已经在小米 Mi A1、三星 Tab S3 和一些旧设备上对此进行了测试)。手动安装应用程序时,我得到大约 9-11 FPS。
为了创建项目,我使用了 SDL2 包(版本 2.0.18)中的模板项目。
对于这两种情况,我都使用相同的 (release-)Build Variant。
该应用程序是通过 NDK-Build 构建的。
我的结论是,虽然我的渲染代码可能不是最高效的,但这并不是导致这里出现大规模性能问题的问题。
Screenshot: build with RUN
Screenshot: build with BUILD -> GENERATE SIGNED BUNDLE / APK... -> APK
我已经尝试更改几个构建设置,包括在调试和发布模式之间切换,在 Application.mk 文件中添加优化(C 和 C++ -)标志,使用未压缩的资产构建。两种情况下的性能保持不变。
我的问题是:构建 APK 和单击 运行 之间可能有什么区别,这会导致此性能问题?
我希望有人能在这里帮助我,因为我现在很无能。提前谢谢你。
运行 和 BUILD 的区别在我的 运行-configuration.
在 安装选项 -> 部署 下,我选择了“APK from app bundle”。经过数小时的研究和尝试,我将其更改为“默认 APK”,这导致了与我在上面的问题中描述的构建和手动安装相同的性能问题。
虽然我仍然不太清楚为什么会这样,但我找到了一种获取 APK 文件的方法,该文件至少目前对我有用:
而不是使用 BUILD -> GENERATE SIGNED BUNDLE / APK... -> APK 我现在选择 BUILD -> GENERATE SIGNED BUNDLE / APK... -> ANDROID APP BUNDLE 并通过 bundletool (https://developer.android.com/studio/command-line/bundletool) 将应用程序包转换为 APK。转换后的 APK 在我的 android 设备上运行良好。