• 环境

    Android Studio:1.3.2

    JRE:1.7.0

    Android SDK Tools:24.3.4

    Android NDK:r10e

  • Android Studio安装步骤略,下载地址:http://developer.android.com/tools/studio/index.html

    找到下载地址后,复制到迅雷下载后安装,Studio很好用的一个地方就是有更新直接下载安装,不用像Eclipse那样重新下载新版。

  • Android NDK下载地址:https://developer.android.com/tools/sdk/ndk/index.html

    同样迅雷下载安装,唯一提醒一点,先把安装包拷贝到要安装的目录,exe文件自动提取到当前目录下,害的我又拷贝了一般,3个多G呐!


    上述环境安装完毕,启动Android SDK Manager更新好Android SDK,进入正题;

  1. 首先Studio中新建一个工程,默认就是这个样子:

  2. 在Project的local.properties文件中告知Android Studio你的ndk所在目录:

    注意':'和'\'要进行转义

    ndk.dir=D\:\\Android\\android-ndk-r10e

  3. 创建一个JNI文件(我放在一个单独的jni包中),简单的一个native方法add,计算两个整数相加的值:

  4. 接着我们就要写C层的代码了,在main文件夹下建立一个jni的子文件夹(跟java文件夹并列,Android会默认知道这事底层的代码源文件夹),声明头文件和源码文件:

    tips:可以使用javah -jni 'your jni java class with package name'来自动生成.h文件

    用法:打开命令行,切换到..\your project path\app\build\intermediates\classes\debug目录下,执行上述命令,然后把这个生成的.h文件拷贝到刚建立的jni目录下

  5. 建一个cpp文件,名称自己起名,我起名为math.cpp,实现头文件中声明的方法:

//// Created by dell on 2015/9/10.//#include "math.h"JNIEXPORT jint JNICALL Java_com_lbrant_jni_MathJNI_add        (JNIEnv *env, jobject, jint a, jint b) {    return a + b;}

在gradle.properties中添加如下,不然编译器会提示错误:

android.useDeprecatedNdk=true

在app module中(注意不是项目根目录),配置ndk编译(这里只配置了moduleName和平台):

 defaultConfig {    applicationId "com.lbrant.x_project"    minSdkVersion 15    targetSdkVersion 23    versionCode 1    versionName "1.0"    ndk {        moduleName "math"        abiFilters "armeabi", "armeabi-v7a", "x86"    }}

由于是JNI和应用层是在同一个工程中,直接运行系统会自动编译,生成Android.mk和对于so:


更多相关文章

  1. android studio的Gradle一直在sync的办法,不停的下载各种文件
  2. Win7+Eclipse下Android开发环境配置
  3. Android(安卓)字体修改
  4. 开发Android第一步,安装SDK 1.6, 模拟器及安装游戏
  5. build/envsetup.sh简记Android系统编译分析
  6. android上的i-jetty (1)环境搭建
  7. [Android] 文件夹下文件的个数限制
  8. Pycharm安装PyQt5的详细教程
  9. NPM 和webpack 的基础使用

随机推荐

  1. Android(安卓)Button 常用属性设置,圆角,边
  2. Android(安卓)Shape属性
  3. Android系统自带样式---android:theme
  4. Android(安卓)Button 常用属性设置,圆角,边
  5. Android系统自带样式(android:theme)
  6. 推荐android几本研究深入的书籍(对开发人
  7. Android系统自带样式Android:theme
  8. widgets
  9. android专栏
  10. Android系统自带样式Android:theme