当前位置: 首页 > news >正文

百度云网站备案流程网络广告营销的典型案例

百度云网站备案流程,网络广告营销的典型案例,二级域名单独做网站,河北住房和城乡建设委员会网站前 言 Android系统在启动的过程中,最多可以出现三个画面,每一个画面都用来描述一个不同的启动阶段。无论是哪一个画面,它们都是在一个称为帧缓冲区(frame buffer,简称fb)的硬件设备上进行渲染的。 自定义…

前 言

Android系统在启动的过程中,最多可以出现三个画面,每一个画面都用来描述一个不同的启动阶段。无论是哪一个画面,它们都是在一个称为帧缓冲区(frame buffer,简称fb)的硬件设备上进行渲染的。

自定义开关机动画/视频

关于开机动画的流程主要代码在 framebuffer/base/cmds/bootanimation/bootAnimation.cpp
BootAnimation::threadLoop() 中我们可以看到

if(mZip == NULL) {    r = android();} else {r = movie();
}

根据 mZip(这是一个叫做 bootanimation.zip 的文件)是否存在,决定调用 android() 接口还是 movie() 接口。

android() :
如果没有 zip 文件进入的就是这种方式。会加载”images/android-logo-mask.png”和”images/android-logo-shine.png” 这两张图片,前者是镂空的 ANDROID 字样,后者是一副很长的银白黑渐进的背景图,通过固定前者,移动后者,实现 ANDROID 字样的反光效果。
想修改android闪动的那两张图片的话,最简单的方法是直接替换图片(图片在 /frameworks/base/core/res/assets/images),如果懂 openGL 的话也可以自己做酷炫的动画。
movie() :
如果有 bootanimation.zip 文件进入的就是这种方式。会加载 bootanimation.zip 中的内容。zip 文件中实际是很多帧图片的组合,通过多帧图片的逐步播放实现动画的效果。所以把做好的动画拷贝到编译好对应的目录下即可。
#define SYSTEM_BOOTANIMATION_FILE “/system/media/bootanimation.zip”
开机动画的退出
开机动画的退出是靠 property 即 #define EXIT_PROP_NAME “service.bootanim.exit” 来判断的,见函数checkExit() 。

//BootAnimation.cpp
void BootAnimation::checkExit() {if(mShutdown){return ;}// Allow surface flinger to gracefully request shutdownchar value[PROPERTY_VALUE_MAX];property_get(EXIT_PROP_NAME, value, "0");int exitnow = atoi(value);if (exitnow) {requestExit();if (mAudioPlayer != NULL) {mAudioPlayer->requestExit();}}
}

而设置个property的地方是在 SurfaceFlinger.cpp

void SurfaceFlinger::bootFinished()
{const nsecs_t now = systemTime();const nsecs_t duration = now - mBootTime;ALOGI("Boot is finished (%ld ms)", long(ns2ms(duration)) );mBootFinished = true;// wait patiently for the window manager deathconst String16 name("window");sp<IBinder> window(defaultServiceManager()->getService(name));if (window != 0) {window->linkToDeath(static_cast<IBinder::DeathRecipient*>(this));}// stop boot animation// formerly we would just kill the process, but we now ask it to exit so it// can choose where to stop the animation.property_set("service.bootanim.exit", "1");
}

当显示模块boot完成后,会调用 property_set(“service.bootanim.exit”, “1”); 告诉 bootanimation 模块退出动画显示。

添加 mp4格式视频作为开机动画的过程

  1. 修改 ThreadLoop 中的判断(framebuffer/base/cmds/bootanimation/bootAnimation.cpp)
    if (mVideo) {r = video();} else if (mZipFileName.isEmpty()) {r = android();} else {r = movie();}
  1. 我们在 ReadyToRun 中实现 mVideo 的判断
    ... ...mFlingerSurface = s;mTargetInset = -1;/* add start */mVideo = false;mVideoFileName = "";SLOGE("mShuttingDown = %d ", mShuttingDown);if (access(!mShuttingDown ? SYSTEM_BOOTVIDEO_FILE : SYSTEM_SHUTDOWNVIDEO_FILE, R_OK) == 0) {mVideo = true;mVideoFileName = !mShuttingDown ? SYSTEM_BOOTVIDEO_FILE : SYSTEM_SHUTDOWNVIDEO_FILE;SLOGD("mVideoFileName string is %s, length is %zu", mVideoFileName.string(), mVideoFileName.length());}/* add end */SLOGD("Get Surface mWidth is %d,mHeight is %d",mWidth,mHeight);return NO_ERROR;
}
static const char SYSTEM_BOOTVIDEO_FILE[] = "/system/media/bootvideo.mp4";
static const char SYSTEM_SHUTDOWNVIDEO_FILE[] = "/system/media/shutdownvideo.mp4";
  1. 实现 video 接口
bool BootAnimation::video(){eglMakeCurrent(mDisplay, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT);eglDestroySurface(mDisplay, mSurface);const char* boot_videofile = "/system/media/bootvideo.mp4";int fd = open(boot_videofile, O_RDONLY);sp<MediaPlayer> mediaplayer = new MediaPlayer();mediaplayer->reset();mediaplayer->setDataSource(fd, 0, 0x7ffffffffffffffLL);mediaplayer->setLooping(false);mediaplayer->setVideoSurfaceTexture(mFlingerSurface->getIGraphicBufferProducer());mediaplayer->prepare();mediaplayer->start();while(true) {if(exitPending())break;usleep(100);if(!mediaplayer->isPlaying())checkExit();}mediaplayer->stop();mediaplayer->release();return false;
}
  1. BootAnimation.h 中新增变量和函数
class BootAnimation : public Thread, public IBinder::DeathRecipient
{
...
private:
...bool        mVideo;String8     mVideoFileName;int         mVideofd;bool        video();
...
  1. Android.bp 中确保要加入 libmedia
shared_libs: ["libui","libhwui","libEGL","libGLESv1_CM","libgui","libtinyalsa","libmedia",],
  1. 在 /system/media/ 中添加 bootvideo.mp4、shutdownvideo.mp4 后重启就可以看到开关机视频了。
http://www.hkea.cn/news/759311/

相关文章:

  • asp网站开发的实训报告电商营销推广有哪些?
  • 交互设计流程外贸网站优化公司
  • 网络营销网站策划个人网站seo入门
  • 云南省网站备案要求全渠道营销的概念
  • 装修网站合作平台有哪些torrentkitty磁力猫
  • 大理网站开发长春seo结算
  • 西双版纳疫情最新情况seo营销的概念
  • 网站推广seo蜘蛛屯优化排名模板建网站价格
  • 怎样建设公司网站小程序b2b网站大全免费
  • 百度抓取不到网站百度识图搜索图片来源
  • 企业网站栏目规划的重要性网络营销的概述
  • 公司网站建设找谁做免费发布推广信息网站
  • 虚拟币网站开发seo百度关键字优化
  • 网站建设都 包括哪些淄博网站制作
  • 自己做装修网站南宁百度推广seo
  • 品牌建设浅谈seo网络营销外包
  • 昆山网站建设兼职千锋教育的官网
  • cm域名做网站盘古百晋广告营销是干嘛
  • 网站栏目策划企业网络营销方案
  • 网站自动采集指标sem广告投放是做什么的
  • 想做一个个人网站怎么做培训学校
  • 网站开发ipv6升级如何创建自己的小程序
  • 做网站需要备案吗外贸网站推广与优化
  • 独立网站建设流程b站视频推广网站动漫
  • 泰安诚信的网站建设b站推广入口2023年
  • 高校网站建设资料库东莞seo推广公司
  • 电子印章手机在线制作软件四川seo整站优化费用
  • 个人风采网站制作外贸网站平台哪个好
  • 沈阳企业建站谷歌推广和seo
  • .la域名做的网站如何快速推广app