android分层学习笔记(四)

写好底层的库,接下来就是写应用程序使用或验证了。
前面也介绍了,应用程序访问jni库,有多种方法,最简单的就是直接调用,其次是用service,再次为service manager
1 直接加载。
    这有点儿像从三楼直接跳下来。其实java本来就有调用原生代码的接口。android开发还包含有ndk开发,这个就是直接用c来做应用程序。

1.1 testjni1.java
在与framwork同层目录下,创建app目录,mkdir app
再在app目录下,创建dirload/src/com/ask/目录,生成testjni1.java,内容如下:

package com.ask.testjni;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
public class testjni1 extends Activity
{

    static
    {
        //System.load("/system/lib/libaskgpio.so");
        System.load("/system/lib/libaskgpio");
    }
   
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        // Call an API on the library.
        _gpio_init();
        _gpio_set(1);
        _gpio_clr(2);
            
        TextView tv = new TextView(this);
        tv.setText("gpio 1 is set to 1. gpio 2 is set to 0.");
        setContentView(tv);
   }
    private static native boolean _gpio_init();
    private static native boolean _gpio_set(int gpio);
    private static native boolean _gpio_clr(int gpio);
}
说明:System.load("/system/lib/libaskgpio");有实际测试中这样加载可能不成功,要定居这样System.load("/system/lib/libaskgpio.so");

1.2 Android.mk编写,保存在dirload目录下

LOCAL_PATH:= $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE_TAGS := user

# This is the target being built.
LOCAL_PACKAGE_NAME := testjni1

# Only compile source java files in this apk.
LOCAL_SRC_FILES := $(call all-java-files-under, src)

# Link against the current An

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值