zoukankan      html  css  js  c++  java
  • Android调用jni全过程,方便以后操作。

    原文:Android调用jni全过程,方便以后操作。

    个人记录下调用jni全过程,省的自己忘记了。哎。
    有些需要准备的地方,ndk环境,ndk源码一份,cygwin要装好,配好profile。java要配好环境变量。

    1.首先新建一个工程,建个类对调用native的方法进行声明。
    复制代码
    package com.stay.jni;

    public class CallNative {
        public CallNative() {
        }

        static {//导入的lib名去掉前面的lib
            System.loadLibrary("skytech");
        }

        public native byte[] readCmd(String path);

        public native int writeCmd(byte[] cmd, String path);
    }
    复制代码

    2.build下项目,打开cmd,cd到该工程bin目录下,
    D:\>cd D:\android\rayn\TestJni\bin

    D:\android\rayn\TestJni\bin>javah -jni com.stay.jni.CallNative

    然后在bin目录下会出现一个.h文件这是声明的头文件

    3.我们要的是里面声明的方法,把我们要写的c文件改成相同的方法名就可以了。(我做了一件非常挫的事,把实现写到.h文件里了,一直拿.h文件去编译。。= =)

    4.在工程里建个jni目录,将改好的c文件和mk文件(随便copy一个,改下路径和lib名就好啦)copy进去

    5.然后按照NDK说的方法来编译:

    1. Place your native sources under <project>/jni/...
    2. Create <project>/jni/Android.mk to describe your native sources to the NDK build system
    3. Optional: Create <project>/jni/Application.mk.
    4. Build your native code by running the 'ndk-build' script from your project's directory. It is located in the top-level NDK directory:
      cd <project>
      <ndk>/ndk-build
      

      The build tools copy the stripped, shared libraries needed by your application to the proper location in the application's

  • 相关阅读:
    time 模块学习
    day 14 自定义模块,常用模块 time .datetime ,time 模块
    day 13 课后作业
    day 12 课后作业
    day 11课后作业
    树状数组最值
    hdu 1059 Dividing bitset 多重背包
    XVII Open Cup named after E.V. Pankratiev. XXI Ural Championship
    最长公共子序列板/滚动 N^2
    Uva 10635
  • 原文地址:https://www.cnblogs.com/moodlxs/p/2827983.html
Copyright © 2011-2022 走看看