【问题标题】:How to sideload baseline profiles in android?如何在android中侧载基线配置文件?
【发布时间】:2022-11-07 19:35:35
【问题描述】:

我阅读了官方文档,但无法运行。 https://developer.android.com/topic/performance/baselineprofiles#measuring-baseline

我的基线配置文件已设置,并且我在主文件夹中有我的 baseline-prof.txt 文件。

现在不知道如何在我的设备上测试它。

文档说:

Next, let's sideload the Baseline Profile.

Note: This workflow is only supported on version Android 9 (API 28) to Android 11 (API 30).

# Unzip the Release APK first
unzip release.apk
# Create a ZIP archive
# Note: The name should match the name of the APK
# Note: Copy baseline.prof{m} and rename it to primary.prof{m}
cp assets/dexopt/baseline.prof primary.prof
cp assets/dexopt/baseline.profm primary.profm
# Create an archive
zip -r release.dm primary.prof primary.profm
# Confirm that release.dm only contains the two profile files:
unzip -l release.dm
# Archive:  release.dm
#   Length      Date    Time    Name
# ---------  ---------- -----   ----
#      3885  1980-12-31 17:01   primary.prof
#      1024  1980-12-31 17:01   primary.profm
# ---------                     -------
#                               2 files
# Install APK + Profile together
adb install-multiple release.apk release.dm

但是当我开始在终端中输入这些评论时,它会立即告诉我:

unzip:  cannot find or open release.apk, release.apk.zip or release.apk.ZIP.

我不知道该怎么做,也找不到任何其他来源来解释它

编辑文档状态:“注意:此工作流程仅在 Android 9 (API 28) 到 Android 11 (API 30) 版本上受支持。” 所以我不能在我的 Android 12 设备上旁加载基线配置文件?

【问题讨论】:

    标签: android kotlin baseline-profile


    【解决方案1】:

    Android 12+ 安全更新限制侧载这些,所以是的。从文档中可以清楚地看出,您不能。

    这是一个方便的 Kotlin 示例,可帮助您轻松、高效且无缝地确定您的版本是否兼容。

    val android_version = android.os.Build.VERSION.SDK_INT
    
    // Let Kotlin demonstrate 
    if (android_version in 9..11)
       print("Side-loading now")
    else throw Exception("Oops! Wrong Android!")
    

    问题Android 12 -(https://issuetracker.google.com/issues/232104540)

    问题Android 13 -(https://issuetracker.google.com/issues/232104548)

    【讨论】:

      【解决方案2】:

      您目前无法使用 Android 12+。

      如果您想查看用户从 Play 商店下载您的应用程序时您的应用程序性能如何,您可以告诉 Android 运行时完全编译该应用程序,这比 Baseline Profiles 稍微好一点,方法是运行

      adb shell cmd package compile -m speed -f <YOUR_APPS_PACKAGE_NAME>

      【讨论】:

      • 但是使用您发布的命令强制 AOT 编译器可以在 Android 12+ 上运行吗?只是没有基线配置文件侧载?
      • 先生,您的问题已解决。我的解决方案是目前 Compose 的唯一答案。
      猜你喜欢
      • 2018-02-13
      • 2013-04-05
      • 1970-01-01
      • 2019-09-11
      • 2015-06-05
      • 2022-11-05
      • 2021-07-02
      • 2016-10-25
      • 1970-01-01
      相关资源
      最近更新 更多