如何在使用带有API 23的adb的Android设备/模拟器的系统级禁用动画?

Mik*_*ani 11 android adb

基于阅读的价值window_animation_scale,transition_animation_scale并且animator_duration_scale需要被设置为0

以下适用于API 22,但不适用于API 23:

adb shell settings put global window_animation_scale 0.0
Run Code Online (Sandbox Code Playgroud)

即使是下面的命令也不适用于API 23

adb shell content update --uri content://settings/system --bind value:s:0.0 --where 'name="window_animation_scale"'
Run Code Online (Sandbox Code Playgroud)

我们希望禁用动画以防止仅出现片状视觉测试失败.我们不希望在应用程序中引入此逻辑,因此希望在系统级而不是应用程序中应用它.

mar*_* w. 13

您可以执行以下adb命令来禁用动画:

adb shell settings put global window_animation_scale 0
adb shell settings put global transition_animation_scale 0
adb shell settings put global animator_duration_scale 0
Run Code Online (Sandbox Code Playgroud)

此外,你可以看看这个回购

构建项目并下载生成的.apk文件,并按照该项目中提到的说明禁用动画,然后您应该顺利航行.您还可以从许多其他来源下载相同的.apk文件(go google!).

获得.apk文件后,发出以下命令:

 adb install -r android_emulator_hacks.apk
 adb shell pm grant no.finn.android_emulator_hacks android.permission.SET_ANIMATION_SCALE
 adb shell am start -n no.finn.android_emulator_hacks/no.finn.android_emulator_hacks.HackActivity
Run Code Online (Sandbox Code Playgroud)


Emm*_*aaa 7

应该接受 Mark W 的答案您也可以将其保存为 shell 脚本以方便使用,即:

#!/bin/sh
adb shell settings put global window_animation_scale 0.0
adb shell settings put global transition_animation_scale 0.0
adb shell settings put global animator_duration_scale 0.0
Run Code Online (Sandbox Code Playgroud)

然后在终端中调用

sh path/to/file.sh
Run Code Online (Sandbox Code Playgroud)

或者更进一步,在你的 bash 配置文件中保存一个别名快捷方式:)


小智 4

adb shell 设置命令已经足够好了。只是您必须重新启动才能使这些设置生效。

\n\n

解决方案的关键是在更改设置后重新启动。sudo reboot是你必须避免和拥抱的\n$ANDROID_HOME/platform-tools/adb shell \xe2\x80\x9csu 0 am start -a android.intent.action.REBOOT\xe2\x80\x9d

\n\n

我还就同一问题写了一篇博客。

\n