android分层学习笔记(三)

对于应用程序访问jni库,是可以直接访问,即写个active,然后调用System.load函数,jni库加载进来,然后直接调用其中的api函数,从而实现操作硬件功能。但这不是android所规范的作法。
一般来说在framework写一些中间东西,我们称之为服务service。
关于android中的服务概念在android应用程序编写教程中,都会提及到,其中都提到服务的生命周期,此处不详细展开。

接下就着重点放在这个服务的实现上。

1 gpio serviced
  在service目录下创建framework/service/java/com/ask/serviced/目录,即
  cd framework
  mkdir -p service/java/com/ask/serviced
 
  再创建serviced.java文件,文件名应该就是类名。
 内容如下:
package com.ask.server;          //生成的包名为com.ask.server
import android.util.Config;
import android.util.Log;
import android.content.Context;
import android.os.Binder;
import android.os.Bundle;
import android.os.RemoteException;
public final class serviced
{
    static
    {
        System.load("/system/lib/libaskgpio.so");  //加载jni库文件
    }

    public serviced()
    {
        Log.i("GpioService", "Go to get Gpio Stub...");
        _gpio_init();
    }

    /*
     * Ctop Gpio native methods.
     */
    public boolean GpioSet(int gpio)
    {
        Log.i("AskPlatform", "Gpio set");
        return _gpio_set(gpio);
    }

    public boolean GpioClr(int gpio)
    {
        Log.i("AskPlatform", "Gpio clr");
        return _gpio_clr(gpio);
    }

    private static native boolean _gpio_init();
    private static native boolean _gpio_set(int gpio);
    private static native boolean _gpio_clr(int gpio);
}
其中:
     private static native boolean _gpio_init();
    private static native boolean _g

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值