MTK6750,Android6.0平台初始代码上有个 Browser 的坑。
当存在 GMS 包时,Browser会各种不正常,比如不能查看历史记录,不能查看保存的网页,没有退出选项等等异常......
但经过对比 6750M 和 6580M 的 vender/.../Browser 代码,发现差异很小,主要表现在 6750M 的代码多加了 null 的判断,按道理是不应该导致功能缺失等异常现象的。
下面vender/.../Browser 用 MtkBrowser 代替;packages/.../Browser 用 Browser 代替
最后对比两份 Android.mk 文件发现问题所在,在 6750M 平台 MtkBrowser 的 mk 文件最前面多了如下代码:
BUILD_BROWSER := yes
### START. 多出来的
ifdef BUILD_GMS
ifeq ($(strip $(BUILD_GMS)), yes)
BUILD_BROWSER := no
endif
endif
ifdef MTK_A1_FEATURE
ifeq ($(strip $(MTK_A1_FEATURE)),yes)
BUILD_BROWSER := no
endif
endif
### END. 多出来的
ifeq ($(strip $(BUILD_BROWSER)), yes)
上面多出来的代码就已经能说明问题了,GMS 存在的时候 BUILD_GMS=true,MtkBrowser 就不会参与编译了。而我们已知的是 MtkBrowser 会覆盖 Browser,当MtkBrowser 不存在了,Browser 就编译出来了,于是就出现了大把问题。
此外,MTK_A1_FEATURE=yes 时,也会出现同样的问题,MTK_A1_FEATURE代表什么没有详查,猜测可能和运营商定制有关系。
解决方法:
注释掉上面多出来的代码,让 MtkBrowser 的编译不受 BUILD_GMS 和 MTK_A1_FEATURE 的影响。
PS:GMS 中 Chrome 会默认override MtkBrowser。
网友评论