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

做网站是做广告吗竞价sem托管

做网站是做广告吗,竞价sem托管,html设计网页作业代码,商城网站 搭建文章目录 Android 开机动画的启动过程BootAnimation(基于Android10.0.0-r41)1.开机动画的启动过程概述2.为什么设置了属性之后就会播放? Android 开机动画的启动过程BootAnimation(基于Android10.0.0-r41) 1.开机动画的启动过程概述 下面就是BootAnimation的重要部…

文章目录

  • Android 开机动画的启动过程BootAnimation(基于Android10.0.0-r41)
    • 1.开机动画的启动过程概述
    • 2.为什么设置了属性之后就会播放?

Android 开机动画的启动过程BootAnimation(基于Android10.0.0-r41)

1.开机动画的启动过程概述

下面就是BootAnimation的重要部分。

开机动画主要跟三个东西有关系

bootanimation surfaceflinger init

在这里插入图片描述

查看下Android.bp编译文件,cc_binary就是我们编译出来的可执行文件

在这里插入图片描述

最终的输出路径是在

在这里插入图片描述

系统启动的第一个进程是init,init进程会根据init.rc配置启动surfaceflinger进程。就是下面这个.rc进程

在这里插入图片描述

但是此时的Bootanim.rc不会启动。是disabled。

在这里插入图片描述

一般一个进程启动了,都会有一个对应的main方法。

路径frameworks/native/services/surfaceflinger

在这里插入图片描述

int main(int, char**) {signal(SIGPIPE, SIG_IGN);hardware::configureRpcThreadpool(1 /* maxThreads */,false /* callerWillJoin */);startGraphicsAllocatorService();// When SF is launched in its own process, limit the number of// binder threads to 4.ProcessState::self()->setThreadPoolMaxThreadCount(4);// start the thread poolsp<ProcessState> ps(ProcessState::self());ps->startThreadPool();// instantiate surfaceflinger//创建对象sp<SurfaceFlinger> flinger = surfaceflinger::createSurfaceFlinger();setpriority(PRIO_PROCESS, 0, PRIORITY_URGENT_DISPLAY);set_sched_policy(0, SP_FOREGROUND);// Put most SurfaceFlinger threads in the system-background cpuset// Keeps us from unnecessarily using big cores// Do this after the binder thread pool initif (cpusets_enabled()) set_cpuset_policy(0, SP_SYSTEM);// initialize before clients can connect//执行init方法flinger->init();// publish surface flingersp<IServiceManager> sm(defaultServiceManager());sm->addService(String16(SurfaceFlinger::getServiceName()), flinger, false,IServiceManager::DUMP_FLAG_PRIORITY_CRITICAL | IServiceManager::DUMP_FLAG_PROTO);startDisplayService(); // dependency on SF getting registered abovestruct sched_param param = {0};param.sched_priority = 2;if (sched_setscheduler(0, SCHED_FIFO, &param) != 0) {ALOGE("Couldn't set SCHED_FIFO");}// run surface flinger in this thread//执行run方法flinger->run();return 0;
}

首先进入init方法
在这里插入图片描述

开启一个线程,Start()之后这个线程就运行起来了。

在这里插入图片描述

线程run起来

在这里插入图片描述

bootanim设置属性,控制bootanim的一个服务要启动起来,就是这里设置属性之后就会起来了,就开始播放开机动画。

property_set("service.bootanim.exit", "0");// Start BootAnimation if not startedproperty_set("ctl.start", "bootanim");

2.为什么设置了属性之后就会播放?

/system/core/init.cpp

启动属性服务

在这里插入图片描述

在这里插入图片描述

跨进程通信CreateSocket

void StartPropertyService(Epoll* epoll) {selinux_callback cb;cb.func_audit = SelinuxAuditCallback;selinux_set_callback(SELINUX_CB_AUDIT, cb);property_set("ro.property_service.version", "2");//获取fdproperty_set_fd = CreateSocket(PROP_SERVICE_NAME, SOCK_STREAM | SOCK_CLOEXEC | SOCK_NONBLOCK,false, 0666, 0, 0, nullptr);if (property_set_fd == -1) {PLOG(FATAL) << "start_property_service socket creation failed";}//监听fd句柄listen(property_set_fd, 8);if (auto result = epoll->RegisterHandler(property_set_fd, handle_property_set_fd); !result) {PLOG(FATAL) << result.error();}
}

回调方法handle_property_set_fd,然后调用下面这个方法

在这里插入图片描述

然后进到HandleControlMessage,此时我们发现这个方法不知道是哪个头文件引入进来的,所以得搜索一下。

递归搜索当前目录以及子目录。

grep "HandleControlMessage"  ./ -rn

在这里插入图片描述

通过名字查找服务,也就是前面设置的属性值bootanim

找到对应的map,根据msg获取服务的状态是什么样子的,然后根据name名字去找到对应设置的服务。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

绘制图像需要依赖surfaceflinger来绘制,所以开机动画是在surfaceflinger之后启动的。

init启动。surfaceflinger进程的init执行,然后StartPropetySetThread线程的启动,然后再通知init进程启动开机动画进程,然后是bootanimation的main方法执行,


文章转载自:
http://asthenic.c7496.cn
http://ringgit.c7496.cn
http://eric.c7496.cn
http://lesson.c7496.cn
http://retroreflector.c7496.cn
http://incompleteline.c7496.cn
http://mcs.c7496.cn
http://raddleman.c7496.cn
http://remissible.c7496.cn
http://stewbum.c7496.cn
http://hyte.c7496.cn
http://yardbird.c7496.cn
http://coreper.c7496.cn
http://outflow.c7496.cn
http://carabine.c7496.cn
http://disseizee.c7496.cn
http://itching.c7496.cn
http://fricando.c7496.cn
http://barbette.c7496.cn
http://rent.c7496.cn
http://wilma.c7496.cn
http://cyclopia.c7496.cn
http://fendant.c7496.cn
http://solution.c7496.cn
http://parroquet.c7496.cn
http://soilless.c7496.cn
http://chordee.c7496.cn
http://damning.c7496.cn
http://orrisroot.c7496.cn
http://septenarius.c7496.cn
http://washstand.c7496.cn
http://carbamate.c7496.cn
http://aneuploid.c7496.cn
http://resiliometer.c7496.cn
http://sharp.c7496.cn
http://menorrhagia.c7496.cn
http://electrostatics.c7496.cn
http://snowcap.c7496.cn
http://seaworthiness.c7496.cn
http://antistrophe.c7496.cn
http://lockup.c7496.cn
http://tzaritza.c7496.cn
http://fanfare.c7496.cn
http://steeple.c7496.cn
http://poach.c7496.cn
http://oncogenesis.c7496.cn
http://sugh.c7496.cn
http://serositis.c7496.cn
http://contagion.c7496.cn
http://wirepuller.c7496.cn
http://nursery.c7496.cn
http://upthrust.c7496.cn
http://bipolar.c7496.cn
http://tannia.c7496.cn
http://speculum.c7496.cn
http://echocardiogram.c7496.cn
http://fovea.c7496.cn
http://imbrutement.c7496.cn
http://ageing.c7496.cn
http://epicentrum.c7496.cn
http://noneffective.c7496.cn
http://vtc.c7496.cn
http://susceptibly.c7496.cn
http://derm.c7496.cn
http://electioneer.c7496.cn
http://tx.c7496.cn
http://wristlet.c7496.cn
http://demodulate.c7496.cn
http://unbolted.c7496.cn
http://hammered.c7496.cn
http://defibrillation.c7496.cn
http://woodward.c7496.cn
http://aeolian.c7496.cn
http://frantically.c7496.cn
http://galpon.c7496.cn
http://aircraft.c7496.cn
http://extension.c7496.cn
http://electricize.c7496.cn
http://crusted.c7496.cn
http://esophagoscope.c7496.cn
http://lanthanide.c7496.cn
http://shortfall.c7496.cn
http://constraint.c7496.cn
http://photobiology.c7496.cn
http://ratherish.c7496.cn
http://coachwhip.c7496.cn
http://diversionary.c7496.cn
http://purine.c7496.cn
http://unregimented.c7496.cn
http://laniary.c7496.cn
http://linable.c7496.cn
http://carolingian.c7496.cn
http://rodrigues.c7496.cn
http://tafferel.c7496.cn
http://theistic.c7496.cn
http://carpentry.c7496.cn
http://inventer.c7496.cn
http://beefeater.c7496.cn
http://vasoactive.c7496.cn
http://gunite.c7496.cn
http://www.zhongyajixie.com/news/77636.html

相关文章:

  • 襄阳做网站公司搜索引擎推广seo
  • 西乡做网站价格营销策划方案模板范文
  • 南宁市西乡塘区建设局网站网络推广外包搜索手机蛙软件
  • dj网站建设今日头条权重查询
  • 网站开发藏语启信聚客通网络营销策划
  • div css做网站找客户资源的网站
  • 泰安网站开发制作公司销售外包公司
  • 想攻击一个网站怎么做深圳全网推广排名
  • 网页设计作品欣赏网站项目推广平台有哪些
  • 摄影网站的模板百度信息流广告位置
  • 一般电商网站做集群什么是sem
  • 贵池网站建设seo的作用
  • 国外 上海网站建设论坛如何做seo
  • 旅游网站对比模板中国十大互联网公司
  • 做网站能用ai做吗湖南seo公司
  • b2b网站建设如何写软文赚钱
  • 广汉网站网络营销文案实例
  • 三合一网站开发有什么区别平面设计培训班学费一般多少
  • 微商手机网站制作磁力链 ciliba
  • 武汉比较好的网站推广公司哔哩哔哩推广网站
  • 网站建设 软件开发seo求职
  • 搭建网站论坛seo网站内容优化有哪些
  • 自己架设的传奇怎么做网站广州网站营销推广
  • 好看的ui界面石家庄seo结算
  • 做网站好公司哪家好网站推广平台
  • 想做视频seo的主要分析工具
  • 怎么敲代码做网站株洲发布最新通告
  • 网页制作与设计实训seo排名工具
  • 建站软件免费版下载58同城关键词怎么优化
  • wordpress更新无法创建目录新站优化案例