夜雨聆风学习资料网

ARTICLE · 1116349

解决WiFi状态下APP首启动页面加载缓慢

解决WiFi状态下APP首启动页面加载缓慢
记录一下物业WiFi进入APP时,需加载一分钟左右时间,才能正常使用的解决过程。
有同样使用公司WiFi,因ipv6回退等死加载缓慢困境的朋友,可以尝试粘贴以下代码(代码来自DeepSeek生成,笔者只做少量矫正和优化,请自行检测代码安全或规范问题)

#!/system/bin/sh

# ========== 配置区 ==========

# 目标 WiFi 昵称的关键词,用空格分隔。匹配到就禁用 IPv6

TARGET_KEYWORDS="这里填你自己的WiFi昵称的关键词"

# ============================

# 等待系统启动完成

until [ "$(getprop sys.boot_completed)" = "1" ]; do

  sleep 2

done

sleep 5

# 状态记忆,避免频繁修改

last_state="unknown"

# 后台循环监控,每 10 秒检查一次

(

while true; do

  current_ssid=""

  # 获取当前 WiFi 昵称

  if command -v cmd >/dev/null 2>&1; then

    current_ssid=$(cmd wifi status 2>/dev/null | grep -o 'SSID: "[^"]*"' | head -n 1 | cut -d'"' -f2)

  fi

  # 兼容旧版本 Android

  if [ -z "$current_ssid" ]; then

    current_ssid=$(dumpsys wifi 2>/dev/null | grep -m 1 "SSID:" | awk -F'"' '{print $2}')

  fi

  is_target=false

  if [ -n "$current_ssid" ]; then

    for kw in $TARGET_KEYWORDS; do

      case "$current_ssid" in

        *"$kw"*) is_target=true; break ;;

      esac

    done

  fi

  if [ "$is_target" = true ]; then

    if [ "$last_state" != "disabled" ]; then

      sysctl -w net.ipv6.conf.all.disable_ipv6=1 >/dev/null 2>&1

      for iface in wlan0 wlan1 wlan2; do

        sysctl -w net.ipv6.conf.$iface.disable_ipv6=1 >/dev/null 2>&1

      done

      last_state="disabled"

    fi

  else

    if [ "$last_state" != "enabled" ]; then

      sysctl -w net.ipv6.conf.all.disable_ipv6=0 >/dev/null 2>&1

      for iface in wlan0 wlan1 wlan2; do

        sysctl -w net.ipv6.conf.$iface.disable_ipv6=0 >/dev/null 2>&1

      done

      last_state="enabled"

    fi

  fi

  sleep 10

done

) &

实际测试阶段
sh脚本存放在该路径下权限755
重启手机后连接到WiFi状态下
浏览器打开
test-ipv6.com
可以看到ipv6被成功禁用
说明sh脚本自启成功
打开平常页面加载缓慢的APP直接秒开
接着测试连接其他WiFi或手机热点
等待十秒等待wifi切换缓冲时间
再次打开test-ipv6.com
sh脚本自动释放了ipv6
只针对目标WiFi做了限制

相关学习资料