http://blog.csdn.net/win2k3net/article/details/6106803


这几天正在看HAL,网络上只有这个案例:分析台湾的Jollen的mokoid 工程代码,本文记录编译过程。 预备环境: 1.有Android的项目源代码,已经交叉编译完成。 2.了解Android JNI,自己最好照着NDK r4版本的sample写一个JNI程序; 3.台湾的Jollen的mokoid 工程代码下载 http://code.google.com/p/mokoid/ 参考文档:

Android HAL实例解析 - 刘洪涛的专栏 - CSDN博客

《Android硬件驱动开发关键技术和HAL移植要领.pdf》Jollen的培训文档,这个Blog不好上传pdf,有兴趣的tx到eoe下载。

方法和步骤: 1.编译Android系统源代码。 2.把Jollen的mokoid 工程放到android2.1/vendor的目录下(android2.1 是Android的源代码根目录) 3.遇到的问题在《 Android HAL实例解析 - 刘洪涛的专栏 - CSDN博客》基本都有说明。 下面罗列我遇见的各种遇到的情况说明: 1. make: *** 没有规则可以创建“out/target/product/ut6410/obj/SHARED_LIBRARIES/led.goldfish_intermediates/led.goldfish.o”需要的目标“vendor/mokoid/hardware/mo 看vendor/mokoid/hardware/modules/led/Android.mk 注释掉不要的 -------------------------------------------------------------------------------------------------- LOCAL_PRELINK_MODULE := false
LOCAL_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)/hw
LOCAL_SHARED_LIBRARIES := liblog
LOCAL_SRC_FILES := led.c
LOCAL_MODULE := led.default
include $(BUILD_SHARED_LIBRARY)

# Mokoid LED
#include $(CLEAR_VARS)
#
#LOCAL_C_INCLUDES += /
# vendor/mokoid/hardware/modules/include/
#
#LOCAL_PRELINK_MODULE := false
#LOCAL_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)/hw
#LOCAL_SHARED_LIBRARIES := liblog
#LOCAL_SRC_FILES := led.dma6410xp.c
#LOCAL_MODULE := led.smdk6410
#include $(BUILD_SHARED_LIBRARY) -------------------------------------------------------------------------------------------------- 2.target thumb C++: libmokoid_runtime <= vendor/mokoid/frameworks/base/service/jni/onload.cpp
arm-eabi-g++: vendor/mokoid/frameworks/base/service/jni/onload.cpp: No such file or directory
arm-eabi-g++: no input files 看vendor/mokoid/frameworks/base/service/jni/Android.mk文件。 找不到onload.cpp,从google code下载下来就没有,先注释掉。 3.复制com.mokoid.server.xml 到目标系统的system/etc/permissions/目录下。 4.修改LedClient.apk或LedTest.apk的 Makefile. 5.继续编译,编译成功,打包Image,下载到开发板。 6.运行成程序,界面提示异常,用logcat看日志,提示找不到 JNI_OnLoad,把《 Android HAL实例解析 - 刘洪涛的专栏》文中提到的第三点代码copy到com_mokoid_server_LedService.cpp中,重新编译,在开发板上下载libmokoid_runtime.so到/system/lib下。 运行应用程序OK.大功告成!~ 未完待续.....对HAL的和JNI的理解 允许转载,请注明出处: http://blog.csdn.net/win2k3net/archive/2010/12/30/6106803.aspx

更多相关文章

  1. Android下如何卸载和格式化sdcard
  2. Android开发05—Android常用高级控件(下)
  3. Android(安卓)Http协议访问网络实例(3种)
  4. Android安全机制之反编译
  5. (zz)android HAL实例解析
  6. Android(安卓)Camera Framework Stream
  7. Android(安卓)Intent机制实例详解
  8. Android(安卓)Activity LaunchMode 验证
  9. Activity生命机制与状态保存机制

随机推荐

  1. 【DB笔试面试765】在Oracle中,什么是OGG?它
  2. 【DB笔试面试728】在Oracle中,如何修改RAC
  3. oracle 从执行计划的预估行数看执行计划
  4. Oracle分批提交DML
  5. 在Oracle中,如何定时删除归档日志文件?
  6. Citrix MCS桌面模板更新
  7. Oracle角色权限之Default Role
  8. 【DB笔试面试759】在Oracle中,如果主库丢
  9. Oracle绑定变量分级(Bind Graduation)
  10. 【DB笔试面试719】在Oracle中,什么是OCR、