android sensor怎样创建设备节点

android sensor怎样创建设备节点,第1张

在Android中,由于没有mdev和udev,所以它没有办法动态的生成设备节点,那么它是如何做的呢?

我们可以在system/core/init/下的init.c和devices.c中找到答案:

init.c中

我们看看get_device_perm如下实现:

在Android中,没有独立的类似于udev或者mdev的用户程序,这个功能集成到了init中做了。代码见:system/core/init/init.c文件,如下:

if (ufds[0].revents == POLLIN)

handle_device_fd(device_fd)

其中handle_device_fd(device_fd)函数在system/core/init/devices.c中实现,参数device_fd 由函数device_init()->open_uevent_socket()->socket(PF_NETLINK, SOCK_DGRAM, NETLINK_KOBJECT_UEVENT)函数调用返回。

函数handle_device_fd(device_fd)中,根据传进来的device_fd参数,调用recv(fd, msg, UEVENT_MSG_LEN, 0)函数,将内核探测到的设备并通过NETLINK机制传过来的socket描述符转化成消息。接着调用parse_event(msg, &uevent)函数将消息翻译成uevent事件,并将改事件传递给handle_device_event(&uevent)函数。

handle_device_event(&uevent)函数中,依据参数uevent->subsystem类型创建dev下的相应目录,如:/dev/graphics。紧接着根据uevent->action是"add"还是"remove"来实现设备节点的创建与删除。如果uevent->action是"add",则调用make_device(devpath, block, uevent->major, uevent->minor)函数生成设备节点。如果uevent->action是"remove",则调用unlink(devpath)对设备节点进行删除。

android的xml处理通过

javax.xml

javax.xml.parser来处理

在国内可以通过这个网站去抓android的源代码。具体下载方法上面也有介绍。

android.git.kernel.org

写xml的方法,目前看见的是通过SharedPreferences.Editor来实现。

看了jni 和 java的代码,没有发现sdk中会提供给写xml的接口。

继续找。。。

是的,不管是eclipse还是studio,都是在AndroidManifest.xml中增加权限。Android Studio 是一个Android开发环境,基于IntelliJ IDEA. 类似 Eclipse ADT,Android Studio 提供了集成的 Android 开发工具用于开发和调试。在IDEA的基础上,Android Studio 提供 :1. 基于Gradle的构建支持。2. Android 专属的重构和快速修复。3. 提示工具以捕获性能、可用性、版本兼容性等问题。4. 支持ProGuard 和应用签名。5. 基于模板的向导来生成常用的 Android 应用设计和组件。6. 功能强大的布局编辑器,可以拖拉 UI 控件并进行效果预览。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11642270.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存