• 第7章 Android HAL实例解析


    第7章 Android HAL实例解析

       通过本章介绍AndroidHAL知道HAL是为了一些硬件提供商提出的保护专利的驱动程序而产生的,是为了避开LinuxGPL束缚。HAL主要的存储目录有:1libhardware_legany  2libhardware3ril   4msm7k。主要包含以下一些模块:GpsVibratorWifiCopybitAudioCameraLightsRilOverlay等。大概了解了Android  HAL

       第1中方法 直接调用service方法的实现过程

       一般来说,HAL moudle需要涉及的是如下3个关键结构体:

         struct hw_module_t;

         struct hw_module_methods_t;

         struct hw_device_t;

    JNI层文件:mokoid-read-only/frameworks/base/service/jni/com_mokoid_server_LedServer.cpp

    service(属于Framework层) 文件:frameworks/base/service/java/com/mokoid/server/LedService.javaAPP测试程序(属于APP层)文件:apps/LedClient/src/com/mokoid/LedClient/LedClient.java

    2中方法-------经过Manger调用service

       Manger (属于Framework层)

       APP通过这个Mangerservice通信。

       文件:mokoid-read-only /framework/base/core/java/mokoid/hardware/LedManager.java

    SystemServer(属于APP层)

    文件:mokoid-read-only/apps/LedTest/src/com/mokoid/LedTest/src/com/mokoid/LedTest/LedSystemServer.java.

    APP测试程序(属于APP层)

    文件:mokoid-read-only/apps/LedTest/src/com/mokoid/LedtTest/LedTest.java.

    最后FS-S5PC实验平台LED灯实验,(1)复制实验代码mokoid-read-onlyAndroid源码根路径下:

    ~/eclair_2.1_farsight /$  cd mokoid-read-only

    ~/eclair_2.1_farsight /mokoid-read-only$ mm

    (2)更新根文件系统:

          ~/eclair_2.1_farsight /$   ./make_fs100_yaffs2_image.sh

    (3)编译驱动模块

    4)给开发板上电,启动Android系统,加载驱动模块,创建设备节点。

    5)进入主程序菜单,但是看不到我们添加的两个应用程序,通过执行如下命令:

       Logcat  -s  PackageManager &

    (6)进入主程序菜单,可以看到有两个新添加的应用程序(com.mokoid.LedClientLedClienthecom.mokoid.LedTest.LedTest),执行这两个程序就可以看到控制开发板上LED灯的亮灭。

         通过本章有效掌握了Android HAL,对本章有了更深入的理解。

  • 相关阅读:
    java在线预览txt、word、ppt、execel,pdf代码
    java读写文本文件大全
    经典SQL语句大全
    javascript和jQuery知识点总结
    30条经典的SQL语句
    js 树菜单
    一天一记
    笔记本驱动的安装事项[acer]
    拒绝买房的八大理由
    javascript 常用类
  • 原文地址:https://www.cnblogs.com/fei127/p/5561815.html
Copyright © 2020-2023  润新知