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

java做网站用什么做网站开发详细流程

java做网站用什么做,网站开发详细流程,建什么网站好,网站没完善做cdn的后果文章目录 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://www.shuangfujiaoyu.com/news/22800.html

相关文章:

  • 新房地产网站开发外包网络推广公司怎么选
  • 茂名制作网站软件百度竞价排名机制
  • 如何提高网站收录数百度关键词排名联系方式
  • 公司网站建设请示昆明网站开发推广公司
  • 网页设计入门 电子书下载广东百度seo关键词排名
  • 外国网站做b2b的百度一下百度搜索百度
  • f2fpay wordpressseo服务外包
  • 商务网站开发的流程电商运营主要工作内容
  • wp网站怎么用插件做html网页seo运营是做什么的
  • 什么网站可以直接做word怎么做seo网站关键词优化
  • 网站静态化 好处电商网站建设教程
  • 免费的黄冈网站有哪些平台软件自动点击器app
  • 咖啡店网站建设模版优化网站建设seo
  • 东台网站建设服务商百度推广怎么优化排名
  • 郴州做网站 郴网互联重大军事新闻最新消息
  • 做门窗安装去哪些网站找生意广告大全
  • 上海注册公司费用及流程免费智能seo收录工具
  • qq互联 网站建设不完善网站seo优化建议
  • 汽车网站制作标题优化seo
  • 怎样做网站备案百度 营销推广靠谱吗
  • 自己做ppt网站吗安徽网络建站
  • 羽毛球赛事策划方案十堰seo排名公司
  • 模板建网站价格网站建设情况
  • wordpress网站百度数据搜索引擎优化的主要特征
  • 手机网站开发哪家好邵阳seo排名
  • 郑州墨守网络网站建设金花关键词工具
  • 做销售怎么找优质资源网站手游推广平台
  • 网站开发系统存在的问题及进一步完善百度关键词首页排名怎么上
  • 如何建设论坛网站深圳竞价托管
  • 武汉网络营销十年乐云seo个人网站seo入门