这是一个系列文章:

  1. Android 内核添加驱动
  2. 测试freg驱动的功能内置C程程序
  3. 添加HAL层代码
  4. 添加JNI层
  5. 框架层添加硬件访问服务

该系列能对android的从下到上的各层有一个简单的设计,麻雀虽小,五脏俱全。enjoy now!

在上一节驱动程序已经添加,可是还不知道该驱动程序是否可以正常工作,用该节的代码来验证一下.

android/external    ----freg        ----freg.c        ----Android.mk

在'android/external'下

mkdir freg

freg.c

#include #include #include #define FREG_DEVICE_NAME "/dev/freg"int main(int argc, char** argv){    int fd = -1;    int val = 0;    fd = open(FREG_DEVICE_NAME, O_RDWR);    if(fd == -1)    {        printf("Failed to open device %s.\n", FREG_DEVICE_NAME);        return -1;    }    printf("Read original value:\n");    read(fd, &val, sizeof(val));    printf("%d.\n\n", val);    val = 5;    printf("Write value %d to %s.\n\n", val, FREG_DEVICE_NAME);        write(fd, &val, sizeof(val));    printf("Read the value again:\n");        read(fd, &val, sizeof(val));        printf("%d.\n\n", val);    close(fd);    return 0;}

freg.c是代码的逻辑实现,先读取'/dev/freg'里面的值,在将写入新值5,再读取出来
Android.mk

LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE_TAGS := optionalLOCAL_MODULE := fregLOCAL_SRC_FILES := $(call all-subdir-c-files)include $(BUILD_EXECUTABLE)

Android.mk里该bin文件命名为freg

单编:

mmm ./external/freg

打包system image:

make snod

刷入机器,adb shell进入机器,在system/bin/会出现名称叫freg的bin文件.在system/bin/里执行命令:

./freg

执行我们写的freg程序,会输出:

      Read the original value:      0.      Write value 5 to /dev/freg.      Read the value again:      5.

我们进入proc/,cat freg,发现值为5.说明修改成功.到此说明驱动的添加没有问题.

更多相关文章

  1. 绝对精品—史上最全最权威的Android(安卓)Studio插件整理
  2. Android程序开发通过HttpURLConnection上传文件到服务器
  3. 现有的Android(安卓)原生项目里面集成RN 页面的学习和踩坑之路
  4. 非android的平台获取apk信息
  5. EasyPermissions源码浅析
  6. android.util.XML介绍
  7. android手动设置布局
  8. 轻量级依赖注入框架koin简析
  9. 基于 CentOS 使用 Jenkins 实现 Android(安卓)持续集成

随机推荐

  1. “史上最强Android木马”现身?360手机安全
  2. android游戏引擎初探
  3. ios8.0正式版推送 苹果教大家如何从Andro
  4. Android要走路还很长
  5. android eclipse 真机调试
  6. 【摘录】android 屏幕分辨率问题
  7. Android内存管理机制之一:lowmemory kille
  8. 工作日志2015-3-20
  9. Android代码开发性能指引
  10. Android(安卓)activity intent 入门