
老罗安卓学习笔记
文章平均质量分 89
xiaohuima_dong
这个作者很懒,什么都没留下…
展开
-
linux驱动--ioctl接口
内核中对底层设备操作完全可以通过read、write接口来实现,在linux 2.2之前都是没有ioctl接口的,2.4以后才引入ioctl接口。 典故(据说),以前在操作软盘时,需要弹出光盘时命令为eject,可以通过write写这个字符串来传输这个指令,但是此时,如果要往软盘中写入”eject”字符串时就出现了歧义的问题。虽然可以通过附加一些代码绕过这个问题,但是不是严谨的开发者的习惯。所以原创 2017-10-04 22:54:05 · 1255 阅读 · 0 评论 -
模拟字符设备驱动的实现
目标:通过读写一个整型变量来模拟一个字符设备,实现上层的访问。先回顾一下字符设备的创建方式。 四种注册设备的方式。 a). register_chrdevint register_chrdev(unsigned int major, const char *name, const struct file_operations *fops)一步到位注册设备到内核中。传递主设备号(传0表示动态分原创 2017-10-08 21:35:58 · 558 阅读 · 0 评论 -
linux驱动程序对应的app程序
在编写此app测试程序时,可以通过以前的方式,编写c文件,编写makefile文件,最终编译出可以执行程序。 不过此时可以通过android下的Android.mk来快速编译可执行程序。 例如:LOCAL_PAH :=$(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE_TAGS := optionalLOCAL_MODULE := fregLO原创 2017-10-09 22:57:41 · 342 阅读 · 0 评论 -
JNI学习
转载自唐攀博客:http://blog.youkuaiyun.com/mr_raptor/article/details/8080606JNI是在学习Android HAL时必须要面临一个知识点,如果你不了解它的机制,不了解它的使用方式,你会被本地代码绕的晕头转向,JNI作为一个中间语言的翻译官在运行Java代码的Android中有着重要的意义,这儿的内容比较多,也是最基本的,如果想彻底了解JNI转载 2017-10-15 21:43:25 · 344 阅读 · 0 评论 -
编译framework模块,虚拟机启动异常问题
在写硬件访问服务程序时,修改了framework层相关模块,重新编译make snod,模拟器启动异常,停留在"android“界面。输出消息部分如下:通过打印消息可以看出应该是模块依赖的问题。上网查询,截取部分解决方法。查看build/core/main.mk,发现里面有个droidcore命令,尝试使用make droidcore编译后,模拟器成功运行,并打印出原创 2017-10-16 22:52:56 · 830 阅读 · 0 评论 -
硬件访问服务
前面完成了HAL往下的理解学习,下面就应该是service相关的了。老罗的书上直接就开始带领着写service相关的代码了,但自己还是尚未搞明白。上网了解了一下,没有弄得太明白,(此点暂时留白),暂且先沿着这个路线继续向下吧。service到这里首先是AIDL接口,先对此做一了解。1. 是什么AIDL: Android Interface Definition Language,安卓接口定义语言,是原创 2017-10-15 16:38:17 · 454 阅读 · 1 评论 -
HAL层代码
之前实现好了linux底层的模拟自设备驱动freg和测试程序后,下面开始学习android下的硬件抽象层,hardware层,也叫HAL层。 主要的文件: hardware/libhardware/hardware.c hardware/libhardware/include/hardware/hardware.hAndroid的HAL层是Android系统对底层硬件操作屏蔽的一个中原创 2017-10-10 23:22:05 · 1848 阅读 · 0 评论