Android培训班(13)
#111
#112 if (qemu[0])
#113 import_kernel_cmdline(1);
这段代码是用来判断是否使用模拟器运行,如果时,就加载内核命令行参数。
#114
#115 if (!strcmp(bootmode,"factory"))
#116 property_set("ro.factorytest", "1");
#117 else if (!strcmp(bootmode,"factory2"))
#118 property_set("ro.factorytest", "2");
#119 else
#120 property_set("ro.factorytest", "0");
这段代码是根据内核命令行参数来设置工厂模式测试,比如在工厂生产手机过程里需要自动化演示功能,就可以根据这个标志来进行特别处理。
#121
#122 property_set("ro.serialno", serialno[0] ? serialno : "");
这段代码是设置手机序列号到属性里保存,以便上层应用程序可以识别这台手机。
#123 property_set("ro.bootmode", bootmode[0] ? bootmode : "unknown");
这段代码是保存启动模式到属性里。
#124 property_set("ro.baseband", baseband[0] ? baseband : "unknown");
这段代码是保存手机基带频率到属性里。
#125 property_set("ro.carrier", carrier[0] ? carrier : "unknown");
这段代码是保存手机硬件载波的方式到属性里。
#126 property_set("ro.bootloader", bootloader[0] ? bootloader : "unknown");
这里是保存引导程序的版本号到属性里,以便系统知道引导程序有什么特性。
#127
#128 property_set("ro.hardware", hardware);
这里是保存硬件信息到属性里,其实就是获取CPU的信息。
#129 snprintf(tmp, PROP_VALUE_MAX, "%d", revision);
#130 property_set("ro.revision", tmp);
这里是保存硬件修订的版本号到属性里,这样可以方便应用程序区分不同的硬件版本。
#131
#132 /* execute all the boot actions to get us started */
#133 action_for_each_trigger("init", action_add_queue_tail);
#134 drain_action_queue();
这段代码是先把所有init命令添加队列,然后再执行。
#135
#136 /* read any property files on system or data and
#137 * fire up the property service. This must happen
#138 * after the ro.foo properties are set above so
#139 * that /data/local.prop cannot interfere with them.
#140 */
#141 property_set_fd = start_property_service();
这段代码是加载system和data目录下的属性,并启动属性监听服务。
#142
#143 /* create a signalling mechanism for the sigchld handler */
#144 if (socketpair(AF_UNIX, SOCK_STREAM, 0, s) == 0) {
#145 signal_fd = s[0];
#146 signal_recv_fd = s[1];
#147 fcntl(s[0], F_SETFD, FD_CLOEXEC);
#148 fcntl(s[0], F_SETFL, O_NONBLOCK);
#149 fcntl(s
相关新闻>>
- 发表评论
-
- 最新评论 更多>>