Clash Meta for Android 是 Clash.Meta 的 Android 图形界面,安装前应先核对系统版本与 CPU 架构,避免把声明范围外的安装包送到设备上。项目 Requirement 写明:最低 Android 5.0,建议 Android 7.0 及以上;架构为 armeabi-v7a、arm64-v8a、x86 或 x86_64。Android 从 4.0(API 14)起向第三方应用开放 VPN 接口,但那只说明平台具备 VpnService 能力,不能用来替代本应用的最低系统。始终开启 VPN 由 Android 7.0(API 24)起由系统维护生命周期,这与“建议 7.0+”一致,却仍不是把建议版本误当成最低安装门槛的理由。
哪些场景必须先核对
新机首次安装、换渠道拿到 APK、准备把旧包拷到另一台设备、设备可能是模拟器或 x86 平板、系统版本靠近 5.0 边界时,都应先核对再安装。若版本已低于 5.0,按仓库最低要求应停止,不必继续试包。若只是计划使用始终开启 VPN,需要额外意识到该能力从 7.0 才由系统提供;Android 8.0(API 26)起后台应用受限,VPN 服务需转入前台服务,这些是平台生命周期规则,与 ABI 是否匹配不是同一类问题。核对阶段只收集版本号和 ABI 列表,不要用“能不能上网”代替兼容性结论。
怎样核对系统版本
在系统设置的设备信息或关于本机中读取 Android 版本。判断依据:大于等于 5.0,满足仓库最低要求;低于 5.0,不满足 Requirement,停止安装。版本落在 5.0 与 7.0 之间,属于“可按最低要求安装、但未达建议版本”:始终开启 VPN、系统启动服务的方式会与 7.0 之后不同,8.0 之后还有后台限制。记录版本时不要把厂商定制界面名称当成依据,只看系统版本号本身。平台文档中的 VPN 设置入口是 Settings > Network & Internet > VPN,用于安装成功后的连接授权与“忘记 VPN”,不能用来判断能否安装。
怎样核对架构
架构指 ABI,必须与设备 CPU 支持的 ABI 有交集。仓库列出的四种为 armeabi-v7a、arm64-v8a、x86、x86_64。常见手机多为 arm64-v8a 或同时兼容 armeabi-v7a;部分模拟器、部分平板才是 x86 或 x86_64。可对照本机处理器信息,或在已开启调试的设备上读取 ro.product.cpu.abi 与 ro.product.cpu.abilist。判断依据:设备 ABI 列表中至少一项与所选 APK 的 ABI 相同,才具备匹配条件;完全没有交集则不要安装该包。x86_64 与 arm64-v8a 不能互换,不能把“64 位”理解成任意 64 位包都可装。
核对失败时下一步
系统低于 5.0:停止安装并更换符合最低版本的设备,而不是寻找所谓降级包。版本达标但 ABI 无交集:改选 Requirement 中对应架构的包,而不是改系统版本。无法确认 ABI:先列出设备全部 ABI,再与上述四种做交集;没有交集即不在项目声明范围内。版本与架构都满足、应用已装上,但仍不能成为当前 VPN,属于 VpnService.prepare() 授权与系统连接请求对话框问题,应在安装成功后再处理,而不是回头否定刚才的核对结果。每用户或工作资料同时只能有一个活动 VPN 服务,这是平台限制,同样不是架构核对失败。
https://github.com/MetaCubeX/ClashMetaForAndroid https://developer.android.com/develop/connectivity/vpn