MTK Genio500 移植GMS及youtube问题处理的解决办法
在MTK Android平台上集成GMS 包比较简单,但是会遇到一些小小的问题。
下面是基于MTK Android13进行的GMS包的移植:
1.准备GMS:
GMS包在Android的基线是不带的,需要我们去Google的网站注册下载相应的全家桶或者如果贵司有MADA资质 可以从MTK下载移植好的GMS和mainline包 解压就行。
2.编译GMS:
如果是从Google下载的全家桶,/vendor/partner_gms/products/gms.mk 里面已经能将所需要安装包都已经放好了,只需要把gms.mk 加入系统编译即可。而从MTK获取到的gms和mainline包,MTK已经把gms脚本写好了,只需要在如下文件下把
device/mediateksample/PROJECT_NAME/ProjectConfig.mk
device/mediatek/system/mssi_t_64_cn/SystemConfig.mk
这两个里面BUILD_GMS这个宏设置为yes,编译刷机,桌面有youtube,chrome 等,说明集成成功。
客户在移植完后,我们需要注册google的账号,并且登录Google play会提示Google Play 设备未获得Play保护机制认证的问题,我们只需要获取到设备的DeviceID,然后在Google注册就OK了。
测试youtube的时候,可能会遇到以下问题:
1.遇到刷机后,直接进入youtube后会出现youtube闪退的问题,这个是因为后台会对youtube进行升级而出现闪退,这个是正常的现象,一般我们都可以在升级平台固件后,直接去Google play store里去把youtube升级成最新的版本来规避闪退的问题。
2.从MTK或者Google获取到的GMS包里的APK都是比较老的版本,可能会出现播放youtube里的视频出现卡住无法再次播放的问题,或者退出youtube后,无法再次进入的问题,如果出现无法再次进入的问题,我们需要在setting里把找到youtube的app,然后清除其存储空间和缓存就可以再次打开youtube了。
3.Youtube ANR,userload不复现,请在userload中复测,具体原因是由于在userdebug load下 app会去打印东西做字符串拼接的时候进入递归导致ANR. log如下:
at arvv.c(PG:3)at arvr.g(PG:7)at arvr.toString(PG:10)at java.lang.String.valueOf(String.java:2924)at java.lang.StringBuilder.append(StringBuilder.java:132)at arvr.q(PG:2)at arvr.g(PG:5)at arvr.toString(PG:10)at java.lang.String.valueOf(String.java:2924)at arvv.c(PG:3)at arvr.g(PG:7)at arvr.toString(PG:10)at java.lang.String.valueOf(String.java:2924)at java.lang.StringBuilder.append(StringBuilder.java:132)at android.os.Looper.loop(Looper.java:192)at android.app.ActivityThread.main(ActivityThread.java:7700)at java.lang.reflect.Method.invoke(Native method)at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:612)at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:997)
如果在log里有如上,可以直接联系Google处理或者使用user版本。
4.播放Youtube卡顿并有马赛克,可以在media_codec_c2.xml里c2.mtk.vp9.decoder的软解关闭,直接使用Google的软件。
以上是基于mtk gms移植及遇到的问题的解决办法。