Android培训班(37)

<!-- @page { margin: 2cm } P { margin-bottom: 0.21cm } -->

init.rc文件里,可以看到加载下面的服务:

service bootanim /system/bin/bootanimation

user graphics

group graphics

disabled

oneshot

bootanimation 服务的代码在目录:

Android-2.0/frameworks/base/cmds/bootanimation

 

bootanimation 服务是开机动画,主要用来加载动画资源。

它的主要入口函数代码如下:

int main(int argc, char** argv)

{

#if defined(HAVE_PTHREADS)

setpriority(PRIO_PROCESS, 0, ANDROID_PRIORITY_DISPLAY);

#endif

这段代码设置进程的优先级。

 

char value[PROPERTY_VALUE_MAX];

property_get("debug.sf.nobootanimation", value, "0");

这行代码从属性里获取是否显示开机动画,如果为1就不显示。

 

int noBootAnimation = atoi(value);

LOGI_IF(noBootAnimation, "boot animation disabled");

if (!noBootAnimation) {

这段代码判断是否显示开机动画。

 

sp<ProcessState> proc(ProcessState::self());

ProcessState::self()->startThreadPool();

启动开机动画的线程。

 

// create the boot animation object

sp<BootAnimation> boot = new BootAnimation();

创建开机动画对象。

 

 

IPCThreadState::self()->joinThreadPool();

运行开机动画线程。

 

 

}

return 0;

}

你可能感兴趣的:(android,object,animation,pthreads)