Android培训班(19)

来源:网络 责任编辑:栏目编辑 发表时间:2013-07-01 06:50 点击:

在init初始化进程里,设备初始化是怎么进行的呢?如果要了解这方面,就需要仔细分析下面的代码,如下:

#001  int device_init(void)

#002  {

#003      suseconds_t t0, t1;

#004      int fd;

#005 

#006      fd = open_uevent_socket();

#007      if(fd < 0)

#008          return -1;

这段代码是调用函数open_uevent_socket来创建一个用户事件空间的socket。

 

#009 

#010      fcntl(fd, F_SETFD, FD_CLOEXEC);

#011      fcntl(fd, F_SETFL, O_NONBLOCK);

这段代码是设置socket的属性,FD_CLOEXEC用来设置文件的close-on-exec状态标准。在exec()调用后,close-on-exec标志为0的情况,此文件不被关闭。非零则在exec()后被关闭。默认close-on-exec状态为0,需要通过FD_CLOEXEC设置。O_NONBLOCK设置这个socket是异步的通讯方式。

 

#012 

#013      t0 = get_usecs();

这行代码是用来获取当前用户的时间。

 

#014      coldboot(fd, "/sys/class");

#015      coldboot(fd, "/sys/block");

#016      coldboot(fd, "/sys/devices");

这段代码是用来遍历所有在init进程前已经创建的设备,并找到设备的事件文件发送事件通知。

 

#017      t1 = get_usecs();

这行代码是用来获取当前用户的时间。

 

#018 

#019      log_event_print("coldboot %ld uS ", ((long) (t1 - t0)));

这行代码是用来打印输出冷启动的时间是多少秒。

 

#020 

#021      return fd;

#022  }

#023 

    发表评论
    请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
    用户名: 验证码:点击我更换图片
    最新评论 更多>>

    推荐热点

    • Android 完全退出程序
    • 原创:Android应用开发-Andorid歌词秀,含源码
    • android 屏幕保护
    • Android手机软件汉化教程---第四课 dex文件汉化
    • 众多Android 开源项目推荐,给力工作给力学习
    • Android Audio代码分析4
    • Android得到已安装的应用程序信息!
    • Android开发者指南(29) —— USB Host and Accessory
    • Android成长的幕后推手:工程师鲁宾
    网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
    Copyright © 2008-2015 计算机技术学习交流网. 版权所有

    豫ICP备11007008号-1