#059

#060 get_hardware_name();

这段代码是获取当前android系统运行的硬件信息,比如硬件的CPU名称。主要从/proc/cpuinfo里读到相关的信息。

#061 snprintf(tmp, sizeof(tmp), "/init.%s.rc", hardware);

#062 parse_config_file(tmp);

这段代码是从前面获取到的硬件名称,然后以硬件的名称(/init.硬件名称.rc)来获取相应硬件的配置文件,并且把配置文件参数加载到链表里。

#063

#064 action_for_each_trigger("early-init", action_add_queue_tail);

#065 drain_action_queue();

这段代码是先把有early-init标识的命令提前添加到一个命令队列,以便函数drain_action_queue一个一个命令地执行配置文件里的函数,这样可以在不同的配置文件里,只要标明是最先执行的函数,就可以优先地运行。

#066

#067 INFO("device init/n");

#068 device_fd = device_init();

这段代码是遍历为/sys,添加设备事件响应,创建设备节点。

#069

#070 property_init();

这段代码是进行属性初始化。每个属性都有一个名称和值,它们都是字符串格式。属性被大量使用在Android系统中,用来记录系统设置或进程之间的信息交换。属性是在整个系统中全局可见的。每个进程可以get/set属性。在系统初始化时,Android将分配一个共享内存区来存储的属性,这里主要是从/default.prop属性文件读取属性。这个有点像Windows下的注册表的作用。

#071

#072 // only listen for keychords if ro.debuggable is true

#073 debuggable = property_get("ro.debuggable");

#074 if (debuggable && !strcmp(debuggable, "1")) {

#075 keychord_fd = open_keychord();

#076 }

这段代码是从属性里获取调试标志,如果是可以调试,就打开组合按键输入驱动程序。

#077

#078 if (console[0]) {

#079 snprintf(tmp, sizeof(tmp), "/dev/%s", console);

#080 console_name = strdup(tmp);

#081 }

#082

#083 fd = open(console_name, O_RDWR);

#084 if (fd >= 0)

#085 have_console = 1;

#086 close(fd);

这段代码是判断是否有控制台,如果没有,就尝试是否是可以打缺省的控制台。

#087

#088 if( load_565rle_image(INIT_IMAGE_FILE) ) {

#089 fd = open("/dev/tty0", O_WRONLY);

#090 if (fd >= 0) {

#091 const char *msg;

#092 msg = "/n"

#093 "/n"

#094 "/n"

#095 "/n"

#096 "/n"

#097 "/n"

#098 "/n" // console is 40 cols x 30 lines

#099 "/n"

#100 "/n"

#101 "/n"

#102 "/n"

#103 "/n"

#104 "/n"

#105 "/n"

#106 " A N D R O I D ";

#107 write(fd, msg, strlen(msg));

#108 close(fd);

#109 }

#110 }

这段代码是先调用load_565rle_image函数来尝试加载定制的显示的LOGO图片,如果不成功,就直接在屏幕上显示字符串android。通过这里可以定制不同厂家的LOGO图片显示,以便在系统初始化时,进行更人性化的等待,更加漂亮个性。

更多相关文章

  1. 没有一行代码,「2020 新冠肺炎记忆」这个项目却登上了 GitHub 中
  2. android 常用 INTENT
  3. android中DatePicker和TimePicker的使用方法详解
  4. 解决Andriod使用HttpURLConnection 失败问题
  5. android中通过代码启动应用程序
  6. android 如何使用jar替换java代码编译
  7. Android(安卓)Audio代码分析20 - queryEffects函数
  8. Android(安卓)自定义View 标识当前选中的控件
  9. android:nextFocus 属性介绍

随机推荐

  1. android欢迎界面的编程实现[手相评分-软
  2. Android(安卓)蓝牙搜索,配对,连接发送数据
  3. Windows下用Eclipse搭建Android开发环境
  4. android中path的arcTo方法的使用 .
  5. Android打包编译shrinkResources true报
  6. 抓包工具TcpDump for Android(安卓)+ wir
  7. [填坑系列]Android(安卓)Studio 3.0配置
  8. Android(安卓)Studio查看数据库插件
  9. 【Android】利用ArrayAdapter/SimpleAdap
  10. Android(安卓)xmpp开发 asmack获取离线在