在eclips中配置NDK路径

在eclipse中点击菜单栏window-Perferences,配置NDK的路径。

在工程中添加native lib新建一个空白的Android工程,在根目录上点击右键Adnroid Tools - Add Native Support...

在弹出的对话框中输入要新建的lib的名称,点击Finish,在工程目录下会多出一个jni文件夹,里面有一个空白的cpp文件和一个Android.mk文件

Android.mk文件的内容是

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE := TestJni

LOCAL_SRC_FILES := TestJni.cpp

include $(BUILD_SHARED_LIBRARY)

TestJni就是要加载的lib的名称,LOCAL_SRC_FILES 是资源文件的路径。

hello jni

MainActivity.java代码如下:

复制代码

代码如下:

package com.example.testjni;

import android.os.Bundle;

import android.app.Activity;

import android.widget.TextView;

public class MainActivity extends Activity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

TextView textView = new TextView(this);

textView.setText(helloFromJni());

setContentView(textView);

}

public native String helloFromJni();

static {

System.loadLibrary("TestJni");

}

}

TestJni.cpp代码如下:

复制代码

代码如下:

#include

extern "C" jstring Java_com_example_testjni_MainActivity_helloFromJni(JNIEnv *env, jobject thiz) {

return env->NewStringUTF("Hello From Jni");

}

直接运行程序,可以在Console窗口中看到NDK build的输出

有一点要注意:由于我使用的是x86的Android虚拟机来运行,所有使用的是x86的编译器。制定编译器的方法是在jni目录新建一个Application.mk的文件,输入以下内容

#APP_ABI := armeabi

APP_ABI := x86

#APP_ABI := armeabi armeabi-v7a x86 mips mips-r2 mips-r2-sf

#APP_ABI := all

APP_STL := stlport_static

如果是普通arm处理器的Android手机,使用APP_ABI := armeabi,如果是x86处理器的,使用APP_ABI := x86,等等。

如果APP_ABI := all,会编译所有指令的so。

运行结果如下:

至于C/C++的编译是怎么实现的,我们可以查看一下工程的Properties

在Builders里面有多了两项,一个是CDT Builder,一个是Scanner Configuration Builder。

现有的工程添加Builder

如果工程里面已经有jni目录了,但是没有配置C/C++的编译器,高手们可以自己添加Builder,对于我这种爱投机取巧的小菜鸟,工程右键菜单,新添加一个空白的so,然后再删除,CDT Builder和Scanner Configuration Builder就出来了。

android tools add native support,使用NDK进行开发android相关推荐

  1. Android NDK开发之旅(2):一篇文章搞定Android Studio中使用CMake进行NDK/JNI开发

    Android NDK开发之旅(2):一篇文章搞定android Studio中使用CMake进行NDK/JNI开发 (码字不易,转载请声明出处:http://blog.csdn.NET/andrex ...

  2. com.android.tools.build:gradle:2.3.3,关于com.android.tools.build:gradle:3.4.2的构建问题

    Android Studio Version:3.4.2 Android Gradle Plugin Version:3.4.2 Gradle Version:5.1.1 根据以上IDE工具以及对应的 ...

  3. Android流媒体开发之路二:NDK C++开发Android端RTMP直播推流程序

    经过一番折腾,成功把RTMP直播推流代码,通过NDK交叉编译的方式,移植到了Android下,从而实现了Android端采集摄像头和麦克缝数据,然后进行h264视频编码和aac音频编码,并发送到RTM ...

  4. android游戏1024代码,castlegame 可简单快速开发android游戏。我总结的教程

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 安装 fpcupdeluxe-i386-win32.exe 先安装这个. fpc 选择 304版本 即stable 版本 lazarus 选择184版本 ...

  5. s6 edge编译android,三星在为S6和S6 edge开发Android 5.1升级包

    (文心)与许多竞争对手一样,最近数周和数月以来,三星一直在逐步为旗下高端Android设备发布Lollipop升级包.但与竞争对手一样,三星的Lollipop升级包一直以Android 5.0.x为主 ...

  6. android eclipse不能创建activity,在eclipse里面开发android应用,不能新建Activity

    新建Activity时,点击完成后,系统没有反应,停留在当前窗口. 查看日志有如下提示 org.eclipse.core.runtime.CoreException: End position lie ...

  7. 如何编写 android go 程序,轻松搭建基于go1.5开发Android应用的环境 | Go语言中文网 | Golang中文社区 | Golang中国...

    go1.5beta2已经发布,正式版将在8月份发布.而早在go1.4就已发布了golang/mobile项目用以实现Android应用的开发.当前gomobile的环境部署已经相对成熟了.但项目声明必 ...

  8. Android直播系统的实现,直播APP开发Android端推流及播放

    想实现一个Android的直播系统,但是对于这方面的资料都比较零碎,一开始是打算用ffmpeg来实现编码推流,在搜集资料期间,找到了几个强大的开源库,直接避免了jni的代码,集成后只用少量的java代 ...

  9. android ndk 界面开发教程,Android NDK开发之入门教程

    JNI(Java Native Interface, Java本地化方法)使得Java能与其它语言(如C.C++)的动态库进行交互. 在Android 项目中,经常看到地图,统计,推送之类的第三方平台 ...

最新文章

  1. 快速通过nginx配置域名访问
  2. 网络yum网址:http://mirrors.163.com/.help/
  3. 建议转变编程时的思维习惯改为:忽略细节关扰,直指问题核心,追寻问题关键。...
  4. adb logcat介绍
  5. java get和post区别_HTTP请求方式GET和POST区别
  6. sklearn svm如何选择核函数_机器学习之支持向量机多种核模型对比
  7. 2万字!66道并发面试题及答案
  8. 深入浅出 SpringMVC - 1
  9. 基于Cocos2d-x开发guardCarrot--4 《保卫萝卜2》主页面动画
  10. 1030: [JSOI2007]文本生成器
  11. 前端开发笔记:记一次网站创建的过程
  12. NVI(Non-Virtual Interface )
  13. python中用函数编写程序_python编写程序,在程序中定义一个函数,计算1+1/2+1/3+1/4+……+1/n...
  14. mysql权限层级体系_数据库mysql有哪些权限?层级有哪些?
  15. css_min-height、max-height、height详细讲解
  16. Java--JSP四大作用域、九大内置对象
  17. 数智学习|湖仓一体实践与探索
  18. 提高班兄弟姐妹一家人
  19. 少壮不努力,老大徒伤悲
  20. 联通linux用户名是什么意思,揭秘 linux 通过新联通宽带拨号上网不成功原因及解决办法!...

热门文章

  1. Java基础学习总结(36)——Java注释模板
  2. win 二进制门安装mysql_PG二进制包编译Windows下mysql_fdw
  3. 最大化窗口快捷键_计算机快捷键大全(最全篇)
  4. php面向对象之策略模式,php策略模式的学习--引自《深入php面向对象模式与实践》...
  5. 从零手动实现简易Tomcat
  6. 传感器是新兴的机器人技术革命的关键要素
  7. HDU 3081Marriage Match II(二分法+并检查集合+网络流量的最大流量)
  8. 使用Eclipse调试Android Native Application---cocos2d-x + Eclipse + Android + ndk
  9. 打开office 文档慢的小技巧1 更改默认打印机
  10. 如何迅速定位***路由器故障