-
Notifications
You must be signed in to change notification settings - Fork 205
FAQ
SophiaGuo edited this page Sep 29, 2020
·
10 revisions
-
为方便开发者接入,我们努力与各厂商进行沟通,建立一套尽可能自助申请权限的机制。
厂商 无需注册 自助注册 需要申请 申请方式 OPPO √ OPPO 开放平台官网 https://open.oppomobile.com/wiki/doc#id=10355 注册获取 APP 授权码,通过 checkPermission 接口传入 vivo √ 邮件联系:yindeyi@vivo.com 获取测试权限,并在 APP 接入后根据 APP 测试数据判定是否开放线上权限 小米 √ APP 接入后根据 APP 测试数据判定是否开放权限,邮件联系:mispeed-business@xiaomi.com 华为 √ 三星 √ 魅族 √ 申请邮箱:hc_support@meizu.com 厂商列表会随着业务的发展持续更新。
-
厂商 支持机型 OPPO 开放平台申请后 Reno 以上机型 vivo 旧机型如下列表,新机型包括 2019 年起新出的 X 系列、NEX 系列、IQOO 系列 小米 MIUI 10 部分支持,MIUI 11以上全部支持 华为 系统版本 EMUI 9.0 以上大部分机型 三星 Android Q 及以上所有机型,Android P 部分机型(见下表) 魅族 全量支持 vivo 旧机型支持列表:
机器 版本 PD1836 vivo X27 Pro 1.11.4 PD1805 vivo NEX S 7.8.1 PD1821 vivo NEX 双屏版 5.5.7 PD1911 Z5x/Z5x 1.6.1 PD1838 X27 8G+128G版/X27 8G+128G版 1.10.8 PD1824 vivo IQOO 1.16.33 PD1914 iQOO Neo 1.5.1 PD1829 vivo X27 1.11.1 小米支持版本列表:
开发版支持版本 稳定版支持版本 Redmi K20 19.6.19 以上 V11 以上 Redmi K20 Pro 19.5.28 以上 V11.1 以上 小米9 19.1.24 以上 V10.2.31.0 以上 Redmi Note 8 Pro 19.10.13 以上 V11 以上 小米9 SE 19.3.09 以上 V10.3.6.0 以上 小米MIX2S 19.3.09 以上 V10.3.3.0 以上 小米8透明探索版 19.3.09 以上 V10.3.5.0 以上 小米MIX 3 18.9.29 以上 V10.3.2.0 以上 小米8屏幕指纹版 19.3.09 以上 V10.3.4.0 以上 小米8 18.9.29 以上 V10.3.4.0 以上 小米CC9 美图定制版 19.3.07 以上 V10.3.1.0 以上 小米CC9 19.3.07 以上 V10.3.3.0 以上 小米MAX3 19.3.07 以上 V11.1 以上 小米8青春版 19.3.07 以上 V11.1 以上 小米8SE 19.2.21 以上 V11.1 以上 小米MIX2 19.2.22 以上 V10.3.1.0 以上 小米6 19.2.22 以上 V10.3.1.0 以上 红米Note7Pro 19.3.15 以上 V10.3.9.0 以上 红米Note7 19.2.21 以上 V10.3.3.0 以上 三星 Android P 版本支持机型列表(Android Q 及以上全部支持)
型号 三星 A30 SM-A3050 三星 A50s SM-A5070 三星 A60 SM-A6050 三星 A70 SM-A7050 三星 A80 SM-A8050 三星 A8s SM-G8870 三星 A90s SM-A9080 三星 A9 Star SM-G8850 三星 M30s SM-M3070 三星 Note10+ SM-N9760 三星 W2018 SM-W2018 三星 W2019 SM-W2019 -
Hardcoder 所有调用只是应用发出的请求,代表应用此时需要资源,但是具体响应取决于系统。比如在系统资源紧张时,系统有可能无法分配相应资源。
同时,Hardcoder server 端也会对应用请求资源做一定限制(厂商侧),确保不会造成资源抢占问题,比如只有应用在前台时允许请求资源,在后台时请求会被忽略;限制应用请求资源的最长时间等。
-
目前 OPPO、vivo、华为、小米、三星、魅族等主流手机厂商已支持 Hardcoder,覆盖 4.6 亿+ 设备量。调用 initHardcoder 接口创建 socket 连接时可判断该手机是否支持 Hardcoder,若不支持,会设置标志位,后续所有请求调用会被拦截,确保不影响在不支持 Hardcoder 机型上的性能。开发者无需再做适配。
-
Hardcoder 本质上只是应用提出资源诉求,所有调用为异步调用,不阻塞。一般情况下应用无需关心请求是否被响应,若需要得到请求是否被执行,可通过异步回调获取。
-
场景值由 APP 自行定义,推荐使用 Hardcoder 分类定义,代码在
HardCoderJNI.java
。public final static int APP_SCENE_UNDEFINE = 0; //未定义场景 public final static int APP_SCENE_STARTUP = 1; //进程启动,APP启动 public final static int APP_SCENE_WINDOW_SWITCH = 2; //UI页面切换(同一进程),activity,fragment切换 public final static int APP_SCENE_WINDOW_SCROLL = 3; //UI页面滑动 public final static int APP_SCENE_DATA_LOADING_AND_PROCESS = 4; //数据加载和处理任务,指APP本地前后台任务 public final static int APP_SCENE_MULTI_MEDIA_PROCESS = 5; //多媒体相关业务 public final static int APP_SCENE_COMMUNICATE = 6; //APP/服务端通信 public final static int APP_SCENE_SYSTEM_DEVICE = 7; //调用系统服务
-
- 目前华为手机限制了一个 APP 不能超过三个连接,即不能超过三个进程同时请求 Hardcoder。后续华为侧会修改此限制,但需要更新 ROM。
- 部分厂商会在 APP 启动时使用暴力提频,在 APP 启动时直接把频率提到最高,此时使用 Hardcoder 性能提升空间可能较小。其余场景特别是在系统无法检测到的场景,比如 Fragment 切换等 Hardcoder 性能提升比较明显。