在博客:https://blog.youkuaiyun.com/Chhjnavy/article/details/96484526 中详细叙述了RK3288 android7.1.2 HAL层添加I2C read/write interface,给java 层调用(可根据slave device 更改时序)。
该案例中,最后app(java 层调用i2c server)是在源码中进行编译的可以找到依赖文件,正常调用。
如果在android studio 中编译会找不到相应的依赖文件,导入以下两个import 会报错。
import android.os.ServiceManager;
import android.os.IIICService;
前言:上述的两个依赖包的使用,我们需要在android studio 中加载库classes.jar ,该库中包含了所有framework 下类接口,在目录:
android7.1.2/out/target/common/obj/JAVA_LIBRARIES/framework_intermediates 下可以找到。
解决方案详细步骤如下:
1)mm 编译模块不会把i2c server 模块添加进classes.jar ,所以要再次对源码进行make ,由于添加安卓系统API或者修改@hide的API后,无法make 编译通过,所以执行make前需要先执行
make update-api
再执行make ,然后找到源码根目录 :out/target/common/obj/JAVA_LIBRARIES/framework_intermediates 下的classes.jar 查看修改时间,是否已修改(如果正常make 编译通过,时间一定会更新)。
2)将classes.jar 文件放入android studio 中的libs 文件中
3)右击classes.jar 文件,选择Add As Library ,弹出对话框,点击OK,加载完成就可以看到
import android.os.ServiceManager;
import android.os.IIICService;
不再是红色,已经处于可以可以调用状态,通过Ctrl+左击 可以查看iic 类接口;
4)android studio 编译app通过,就可以通过adbwireless 将其无线安装到rk3288 的系统中,可以正常对iic 进行操作。app案例请参考:https://download.youkuaiyun.com/download/chhjnavy/11389018 ,此code 是在eclipse 中编写,如果导入到android studio 中,遇到编译错误,请自行修正。