kernel logo到动画间闪黑屏

Android  2018年11月26日 pm7:31发布6年前 (2018)更新 城堡大人
59 0 0

推荐使用 读书导航 极客导航125啦极客导航(http://www.biumall.com/jike.html)

最近在Android 6.0时出现logo过度到Android动画时出现闪一下和黑屏问题。

查询资料后,在《kernel logo到开机动画之间闪现黑屏(android 5.X)》找到了解决方法,因此摘抄于此作为笔记。

/frameworks/base/cmds/bootanimation/BootAnimation.cpp

删除部分我做了记录,如下



//开机动画走Android()的,注释如下
bool BootAnimation::android()
{
    initTexture(&mAndroid[0], mAssets, "images/android-logo-mask.png");
    initTexture(&mAndroid[1], mAssets, "images/android-logo-shine.png");

	//--------------------delete start------------------------
    // clear screen
    //glShadeModel(GL_FLAT);
    //glDisable(GL_DITHER);
    //glDisable(GL_SCISSOR_TEST);
    //glClearColor(0,0,0,1);
    //glClear(GL_COLOR_BUFFER_BIT);
    //eglSwapBuffers(mDisplay, mSurface);
	//--------------------delete end------------------------

    glEnable(GL_TEXTURE_2D);
    glTexEnvx(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);

    .....

    return false;
}



//开机动画走自定义动画Move()

bool BootAnimation::movie()
{
    String8 desString;

	......

    mZip->endIteration(cookie);

	//--------------------delete start------------------------

    // clear screen
    //glShadeModel(GL_FLAT);
    //glDisable(GL_DITHER);
    //glDisable(GL_SCISSOR_TEST);
    //glDisable(GL_BLEND);
    //glClearColor(0,0,0,1);
    //glClear(GL_COLOR_BUFFER_BIT);

    //eglSwapBuffers(mDisplay, mSurface);

	//--------------------delete end ------------------------

    glBindTexture(GL_TEXTURE_2D, 0);
    glEnable(GL_TEXTURE_2D);
    glTexEnvx(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
    glTexParameterx(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
    glTexParameterx(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
    glTexParameterx(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
    glTexParameterx(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);

    const int xc = (mWidth - animation.width) / 2;
    const int yc = ((mHeight - animation.height) / 2);
    nsecs_t frameDuration = s2ns(1) / animation.fps;

    Region clearReg(Rect(mWidth, mHeight));
    clearReg.subtractSelf(Rect(xc, yc, xc+animation.width, yc+animation.height));

    ......

    return false;
}

如果是原生系统的,那就是改上面两个就可以的,但是由于我们使用的是被芯片公司修改过得源码。
比如Rockchip(瑞芯微),autochips(杰发)等,他们会对代码进行优化有修改。
如果你的代码不是Android源码,可以再查找一下是否有ETC1movie(),MTKmovie()等,如果有,请把下面代码也注释掉。
当然,虽有这个代码,但不一定走了,为了确保万一,还是注释掉为好。

//芯片公司自定义一套动画Move()
bool BootAnimation::ETC1movie()
{
    ......

    mZip->endIteration(cookie);

    initShader();

    glViewport((mWidth - animation.width) >> 1, (mHeight - animation.height) >> 1,
            animation.width, animation.height);

	//--------------------delete start------------------------

    // clear screen
    //glDisable(GL_DITHER);
    //glDisable(GL_SCISSOR_TEST);
    //glDisable(GL_BLEND);
    //glClear(GL_COLOR_BUFFER_BIT);

    //eglSwapBuffers(mDisplay, mSurface);

	//--------------------delete end------------------------

    glActiveTexture(GL_TEXTURE0);
    glBindTexture(GL_TEXTURE_2D, 0);
    glUniform1i(mUniformTexture, 0);

	......

    return false;
}

 

版权声明 1、 本站名称: 笔友城堡
2、 本站网址: https://www.biumall.com/
3、 本站部分文章来源于网络,仅供学习与参考,如有侵权,请留言

暂无评论

暂无评论...

随机推荐

Google Nexus 7 adb devices时出现 ???????????? no permissions

我在使用Nexus 7平板时,在使用adb devices后出现如下:List of devices attached???????????? no permissions同时在DDMS中显示设备名也显示????????????,也无法显示进程名,无法查看log。解决方法如下:...

钱钟书:论快乐

在旧书铺里买回来维尼(vigny)的《诗人日记》(journaldunpote),信手翻开,就看见有趣的一条。他说,在法语里,喜乐(bonheur)一个名词是“好”和“钟点”两字拼成,可见好事多磨,只是个把钟头的玩意儿。我们联想到我们本国话的说法,也同样的意味深长,譬如快活或快乐的快字,就把人生一切...

fastboot卡在waiting for device

在刷入系统时,命令参考了《编译Android源码,并刷入Nexus7真机》中的fastboot -w flashall命令,出现如下提示:fastboot -w flashall< waiting for device >#使用fastboot devices后提示...

舒婷:初春

朋友,是春天了驱散忧愁,揩去泪水向着太阳微笑虽然还没有花的洪流冲毁冬的镣铐奔泻着酩酊的芬芳泛滥在平原、山坳虽然还没有鸟的歌瀑飞溅起万千银珠四散在雾蒙蒙的拂晓滚动在黄昏的林荫道但等着吧一旦惊雷起乌云便仓皇而逃那是最美最好的梦呵也许在一夜间辉煌地来到 是还有寒...

Android中走马灯相关问题总结

前言Android开发中,应该都或多或少使用过TextView的走马灯(或跑马灯)。对于走马灯存在的问题,网上很多,我也在这里整(抄)理(袭)一下,方便自己查阅。跑马灯耗CPU可以BiuTextView替换,请访问------>《BiuTextView完美替代TextView进行跑马...

Android6.0Settings分析

源码:Android 6.0应用:Settings目录:android-6.0.0_r1\packages\apps\Settings Android 中Settings的代码很多,我这里只是简单分析一下,仅供参考。如果要深入了解设置,自己要多看看源码。一般分析应用的话...