zoukankan      html  css  js  c++  java
  • ubuntu ndk 开发

     

    参考 https://developer.android.com/ndk/index.html

     

    配置

    下载android-ndk-r10d-linux-x86_64.bin  ,运行自解压。

    ~/.bashrc中加入

    export ANDROID_NDK=/home/james/android/android-ndk-r10d
    export PATH=$ANDROID_NDK:$PATH

     

    配置eclipse

    Window > Preferences> android

    选择NDK. 路径

     https://developer.android.com/ndk/guides/setup.html

    测试编译是否成功

    命令行:

    cd android-ndk-r10d/samples/hello-jni  &&  ndk-build

    或是

    ndk-build  -C android/android-ndk-r10d/samples/hello-jni

    eclipse中:

    import_> android –> existing android code into workspace 才可以。

    builder添加 newbuiler,参照下文 《Eclipse自动编译NDK/JNI的三种方法》 中的第二种方法

     

    自己编写:

    参考learning android 第15章 ndk开发

    和书中不同,要cd到 bin/classes目录中,执行

    javah -jni com.marakana.FibLib

    创建相应的JNI头文件

     

    两种注册jni的方法:静态注册(java代码生成class,javah生成头文件)、动态注册(JNINativeMethod, JNI_OnLoad注册)

    深入学习参考: 《深入理解android 卷一》第2章 深入理解jni  

     

    【Android】Eclipse自动编译NDK/JNI的三种方法

    SkySeraph Sep. 18th  2014

    Email:skyseraph00@163.com


    一、Eclipse关联cygwin

    1. 工程->右击选择Properties->选择Builders,在Builders中选择New创建一个Program

    2. 参数配置


    二、Eclipse关联ndk-build(自建Builder方法)

    1. Project->Properties->Builders->New,新建一个Builder

    2. 参数配置

    2.1 Main

    ①Name:NDK_Builder

    ②Location为ndk-build.cmd的路径,可以如图所示绝对路径,也可以以环境变量的形式,即 ${ANDROID_NDK} dk-build.cmd,其中ANDROID_NDK为配置的NDK路径

    ③Working Directory,为当前的工程下。

    这里的${}的表达是使用了EC的环境变量,可以使用Variables...按钮找到一些3 EC的环境变量。

    对于Linux上的配置,和这里的配置一样,只是把Location的地址改为ndk-build即可

    2.2 Refresh

    2.3 Build Options

    注:Linux环境下只需修改ndk-build.cmd为ndk-build即可


    三、Eclipse关联ndk-build(利用CDT的方法)

    1. 前期准备:Eclipse环境+Android环境+Eclipse C/C++环境

    2. 编写Android JAVA/JNI代码,可参考OpenCV实例1

    3. 将Android项目转换为C/C++项目(使其具备C++属性),如下图,New -> Other -> C/C++ -> Convert to a C/C++ Project.

    4. 配置NDK编译路径,Project->Properties,如下图,其中Build-Command中ANDROID_NDK为环境变量中配置的Android-NDK路径;Build-Directory为当前工程目录

    5. 配置工程属性,Project->Properties,如下图,本例以OpenCV为例,其中CNU C和GNU C++中配置的是OpenCV的链接库


    ========

  • 相关阅读:
    Maven入门
    sdk&jdk&jre
    常用git指令
    Spring 3.x 读书笔记
    JAVA多线程---高并发程序设计
    JAVA多线程---ThreadLocal<E>
    JAVA多线程--Thinking in java
    2017年书单
    正则表达式获取多个img src的值
    使用summernote编辑器上传图片,重写onImageUpload
  • 原文地址:https://www.cnblogs.com/cute/p/4864673.html
Copyright © 2011-2022 走看看