一个android 的HAL示例中遇到的坑。

想在手机上做一些功能的扩展,本来是想从驱动层入手的,但驱动需要改内核。因为,1,手机自带的内核是没有源码的,没有其中的symbal的支持,自编的内核模块是不能在其下用的。2,自编全部内核因为没有电路的硬件信息,基本上没可能了。所以只能从HAL层去入手了。并且因为MTK的不开源性,从HAL层入手,对MTK手机更适当一些。

这样就要先去了解一下HAL吧。

从示例入手最快。网上找到一个mokoid的示例。这个是个教学示例。https://code.google.com/archive/p/mokoid/ google上的示例下了问题很多,要编译的.mk文件都少。github上找了一个,https://github.com/kangear/mokoid-read-only 这个git clone下来,要编译通的话,要改一些地方。

1,目录结构改一下,{android-source}/mokoid/trunk/{ https://github.com/kangear/mokoid-read-only所见目录}.这是因为其下的文件中对相互引用时。当然改源码也可以。

2,先要android 源码编译过。android源码我下的是4.4.4 r2。因为真机是这个。这个需要oracle jkd.用openjdk通不过。oracle jkd需要的是1.6的版本,ubuntu的apt已不提供下载,自已找个地方下载bin包,解压。在build目录下,生成envjava.sh如下。

#oracle java 
export JAVA_HOME=/media/ququ/android/tools/jdk1.6.0_45 #解压的JDK目录。
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin

进入源码目录要编译前,

source ./build/envjava.sh

source ./build/envsetup.sh

3,进入mokoid/trunk

mmm ./

会有一些报错。依提示不难解决。主要是因不编译环境不同,有些目录找不到,改一源码就可。可以单独进入子目录,用mmm ./去单独编译。

4,如上的都不是坑,很快就能过了。直的坑在下到真机去运行。编译时有提示输出的内容,这些就查要下载到手机中的。输出的内容主要在android-source/out/target/product/generic/system/下的目录去找。

5,android-source/out/target/product/generic/system/app

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值