android tools add native support,使用NDK进行开发android
在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相关推荐
- Android NDK开发之旅(2):一篇文章搞定Android Studio中使用CMake进行NDK/JNI开发
Android NDK开发之旅(2):一篇文章搞定android Studio中使用CMake进行NDK/JNI开发 (码字不易,转载请声明出处:http://blog.csdn.NET/andrex ...
- 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工具以及对应的 ...
- Android流媒体开发之路二:NDK C++开发Android端RTMP直播推流程序
经过一番折腾,成功把RTMP直播推流代码,通过NDK交叉编译的方式,移植到了Android下,从而实现了Android端采集摄像头和麦克缝数据,然后进行h264视频编码和aac音频编码,并发送到RTM ...
- android游戏1024代码,castlegame 可简单快速开发android游戏。我总结的教程
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 安装 fpcupdeluxe-i386-win32.exe 先安装这个. fpc 选择 304版本 即stable 版本 lazarus 选择184版本 ...
- s6 edge编译android,三星在为S6和S6 edge开发Android 5.1升级包
(文心)与许多竞争对手一样,最近数周和数月以来,三星一直在逐步为旗下高端Android设备发布Lollipop升级包.但与竞争对手一样,三星的Lollipop升级包一直以Android 5.0.x为主 ...
- android eclipse不能创建activity,在eclipse里面开发android应用,不能新建Activity
新建Activity时,点击完成后,系统没有反应,停留在当前窗口. 查看日志有如下提示 org.eclipse.core.runtime.CoreException: End position lie ...
- 如何编写 android go 程序,轻松搭建基于go1.5开发Android应用的环境 | Go语言中文网 | Golang中文社区 | Golang中国...
go1.5beta2已经发布,正式版将在8月份发布.而早在go1.4就已发布了golang/mobile项目用以实现Android应用的开发.当前gomobile的环境部署已经相对成熟了.但项目声明必 ...
- Android直播系统的实现,直播APP开发Android端推流及播放
想实现一个Android的直播系统,但是对于这方面的资料都比较零碎,一开始是打算用ffmpeg来实现编码推流,在搜集资料期间,找到了几个强大的开源库,直接避免了jni的代码,集成后只用少量的java代 ...
- android ndk 界面开发教程,Android NDK开发之入门教程
JNI(Java Native Interface, Java本地化方法)使得Java能与其它语言(如C.C++)的动态库进行交互. 在Android 项目中,经常看到地图,统计,推送之类的第三方平台 ...
最新文章
- 快速通过nginx配置域名访问
- 网络yum网址:http://mirrors.163.com/.help/
- 建议转变编程时的思维习惯改为:忽略细节关扰,直指问题核心,追寻问题关键。...
- adb logcat介绍
- java get和post区别_HTTP请求方式GET和POST区别
- sklearn svm如何选择核函数_机器学习之支持向量机多种核模型对比
- 2万字!66道并发面试题及答案
- 深入浅出 SpringMVC - 1
- 基于Cocos2d-x开发guardCarrot--4 《保卫萝卜2》主页面动画
- 1030: [JSOI2007]文本生成器
- 前端开发笔记:记一次网站创建的过程
- NVI(Non-Virtual Interface )
- python中用函数编写程序_python编写程序,在程序中定义一个函数,计算1+1/2+1/3+1/4+……+1/n...
- mysql权限层级体系_数据库mysql有哪些权限?层级有哪些?
- css_min-height、max-height、height详细讲解
- Java--JSP四大作用域、九大内置对象
- 数智学习|湖仓一体实践与探索
- 提高班兄弟姐妹一家人
- 少壮不努力,老大徒伤悲
- 联通linux用户名是什么意思,揭秘 linux 通过新联通宽带拨号上网不成功原因及解决办法!...
热门文章
- Java基础学习总结(36)——Java注释模板
- win 二进制门安装mysql_PG二进制包编译Windows下mysql_fdw
- 最大化窗口快捷键_计算机快捷键大全(最全篇)
- php面向对象之策略模式,php策略模式的学习--引自《深入php面向对象模式与实践》...
- 从零手动实现简易Tomcat
- 传感器是新兴的机器人技术革命的关键要素
- HDU 3081Marriage Match II(二分法+并检查集合+网络流量的最大流量)
- 使用Eclipse调试Android Native Application---cocos2d-x + Eclipse + Android + ndk
- 打开office 文档慢的小技巧1 更改默认打印机
- 如何迅速定位***路由器故障