无需cygwin,使用NDK进行开发
来源:互联网 发布:康纳vs迪亚兹数据 编辑:程序博客网 时间:2024/05/17 22:36
NDK从7开始自带编译器,在windows上无需配置cygwin的环境。
在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 <jni.h>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就出来了。
- 无需cygwin,使用NDK进行开发
- 无需cygwin,使用NDK进行开发
- Windows无需CygWin 使用NDK开发
- Windows无需CygWin 使用NDK开发
- Android NDK开发 无需cygwin
- Android NDK开发环境的搭建,无需Cygwin
- NDK开发实践(无需单独安装Cygwin环境)
- Eclipse NDK 配置 -无需cygwin
- NDK ECLIPSE下配置(无需cygwin)
- Android安装NDK运行环境无需cygwin
- Android NDK环境搭建,无需Cygwin
- Android安装NDK运行环境无需cygwin
- Android安装NDK运行环境无需cygwin
- cocos2dx之使用Eclipse和NDK直接移植win32项目,无需cygwin
- 使用AndroidStudio进行NDK开发
- 无需Cygwin的新版r8e-NDK+Eclipse+OPENCV使用方法
- cygwin + slickedit 进行开发
- 使用系统libsqlite.so 进行ndk 开发
- 0802leetcode刷题总结
- CSS从大图片上截取小图标的操作
- hadoop fs -getmerge命令的使用
- SQLiteOpenHelper
- 未能够识别出目标 ***;票根
- 无需cygwin,使用NDK进行开发
- Jquery中的ajax
- XPI 文件安装方法
- 在fortran中如何来测试代码运行时间
- Ajax中Get请求与Post请求的区别
- 修改文件图标
- Telerik Reporting 在ASP.NET中的应用
- 套接字IO模型Select模型
- 拓扑排序