MTK6750,Android6.0平台初始代码上有个 Browser 的坑。
    当存在 GMS 包时,Browser会各种不正常,比如不能查看历史记录,不能查看保存的网页,没有退出选项等等异常……
    但经过对比 6750M 和 6580M 的 vender/…/Browser 代码,发现差异很小,主要表现在 6750M 的代码多加了 null 的判断,按道理是不应该导致功能缺失等异常现象的。

    下面vender/…/Browser 用 MtkBrowser 代替;packages/…/Browser 用 Browser 代替

    最后对比两份 Android.mk 文件发现问题所在,在 6750M 平台 MtkBrowser 的 mk 文件最前面多了如下代码:

    1. BUILD_BROWSER := yes
    2. ### START. 多出来的
    3. ifdef BUILD_GMS
    4. ifeq ($(strip $(BUILD_GMS)), yes)
    5. BUILD_BROWSER := no
    6. endif
    7. endif
    8. ifdef MTK_A1_FEATURE
    9. ifeq ($(strip $(MTK_A1_FEATURE)),yes)
    10. BUILD_BROWSER := no
    11. endif
    12. endif
    13. ### END. 多出来的
    14. 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。