Android NDK、cygwin安装及通过示例导出so库

安装NDK:

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

  1. 首先下载android-ndk-r10d-windows-x86_64.exe或其他版本,双击解压缩得到android-ndk-r10d目录;
  2. 将android-ndk-r10d目录复制到指定路径下,如C:\applications\android-ndk-r10d;
  3. 配置系统环境变量,新建变量名NDK_HOME,值为C:\applications\android-ndk-r10d,确定即可;
    (此如果配合cygwin工具来编译的话,到这里就可以了;但如果用eclipse编译的话需要继续如下配置;)
  4. 选中需要编译的工程->右击选择Properties->选择Builders,在Builders中选择New创建一个Program

  5. 参数配置

  6. 编译器配置



    (通过以上配置即可完成ndk在eclipse中的配置,接下来进行cygwin配置)

安装cygwin:

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

  1. 下载cygwin.exe;
  2. 运行第1步应用,选择安装目录直接下一步;
  3. 选择连接方式

  4. 下一步之后选择需要安装的组件,为了使我们安装的Cygwin能够编译程序,我们需要安装gcc编译器,默认情况下,gcc并不会被安装,我们需要选中它来安装。为了安装gcc,我们用鼠标点开组件列表中的“Devel”分支,在该分支下,有很多组件,如下图:

    我们必须的是:
           binutils
           gcc
           gcc-mingw
           make
           gdb
           鼠标点击组件前面的循环按钮,会出现组建的版本日期,我们选择最新的版本安装,下图是选中后的5类组件的截图:
           binutils组件:

    gcc组件:

    gcc-mingw组件:

    gdb组件:

    Make组件:

    组件选择好以后,继续点击“下一步”。
  5. 进入安装过程,安装的时间依据你选择的组件以及网络情况而定。安装完成后,安装程序会提示是否在桌面上创建Cygwin图标等,点击完成退出安装程序。
    安装完成后,点击桌面上的图标即可启动Cygwin。
           在Shell窗口上输入make –v以及gcc –v试试,如果安装成功,应该能顺利显示make和gcc的版本信息。

  6. 配置Cygwin
    为了方便使用Cygwin下的命令,可装Cygwin下的bin目录添加到系统的PATH路径,用以下方法进行设置:
           1)右击“我的电脑”->属性 ,再选择左边导航的“高级系统设置”选项。
           2)点击右下角的“环境变量”选项。
           3)在"系统变量"中,找到Path环境变量,双击它,在变量值前面追加以下内容:“C:cygwinbin;”,注意后面有一个分号。
           4)点击“确定”完成环境变量设置。
           接着,我们将NDK的环境变量添加到Cygwin.bat中,方法是右击桌面上的Cywin图标,选择编辑即可:
           在bash –login –i之前增加如下内容:
           set NDK=/cygdrive/c/android-ndk-r5b
  7. 编译NDK示例程序(测试NDK开发环境)
    启动Cygwin,在命令行中输入以下命令编译hello-jni示例:
           # cd /cygdrive/c/android-ndk-r5b/samples/hello-jni
           # $NDK/ndk-build clean
           # $NDK/ndk-build
           上面的命令将清除hello-jni示例项目,并重新编译,编译后将产出 libhello-jni.so 表示编译成功。
           至此,Windows系统下的NDK开发环境成功完成安装。
  8. 配置环境变量,在C:\cygwin64\home\linyehui.bash_profile最后添加两行export ANDROID_NDK_HOME=/cygdrive/c/android-ndk-r9c
    export PATH=$ANDROID_NDK_HOME:$PATH
Android 项目so库导出和调用
-------------------------------------------------------------------------------------------------------------------------------------------------------------

  1. 先看一下目录结构

  2. 首先在com.tnt.hdso包下新建相应的类并创建native方法;
    示例:public native String 方法名();
  3. 在jni/hdecoration.c文件中实现上一步创建的方法;
    示例:
    #include 
    #include

    jstring Java_包名(中间用"_"分隔)_类名_方法名(JNIEnv* env) {
        return (*env)->NewStringUTF(env, "要返回的字符串 ");
    }
  4. jni中Android.mk和Application.mk代码分别如下;
    Android.mk:

    LOCAL_PATH := $(call my-dir)
    include $(CLEAR_VARS)
    LOCAL_MODULE    := hdecoration
    LOCAL_SRC_FILES := hdecoration.c
    include $(BUILD_SHARED_LIBRARY)

    Application.mk

    APP_ABI := all
    APP_STL := gnustl_static
    APP_PLATFORM := android-8

  5. 到此代码已完成,下面开始导出;打开cygwin工具,输入
    $ cd /cygdrive/e/tnt_project/tnt_HDSO
    定位到指定目录下;
  6. 输入 $ ndk-build clean 清空项目下历史so文件;
  7. 输入 $ ndk-build 生成so文件,完成后将libs下so文件考到项目下libs即可;
  8. 接着导出so对应native类的jar包
    项目右击——》属性——》导出——》选择"jar文件"——》下一步【此步除勾选src下对应包外其余勾全去掉】——》一直“下一步”最后完成即可;
  9. 将导出的jar包考到项目下libs目录即可
  10. 具体调用如下:
    static {
            System.loadLibrary("hdecoration[即上面指定的LOCAL_MODULE]");
        }
    DataKeys mdk = new DataKeys();
    Object obj = mdk.getAESKey();

猜你喜欢

转载自blog.csdn.net/smart_ljh/article/details/51487219
今日推荐