在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就出来了。
微软宣布.NET开源:Visual 微软开源项目
微软宣布.NET开源:Visual Studio支持Android了 北京时间今天凌晨的 Connect(); 大会上,多少程序员的假想成为现实。.NET 开源(0)人阅读时间:2024-03-29Android apk反编译基础(apktoos)图文教程
Android apk反编译基础(apktoos)图文教程 很久有写过一个广工图书馆主页一个类爬虫的demo(因为没接口,只能扒取静态网页),实现一些图书馆系统(0)人阅读时间:2024-03-29Apple Watch与Android Wear的交互设计哪个好?UI设计大比拼
Apple Watch与Android Wear的交互设计哪个好?UI设计大比拼 Apple Watch与Android Wear哪个更优秀?除了硬件上的对比,(0)人阅读时间:2024-03-29手机QQ空间(手机qq空间相册怎么设置私密)
手机QQ空间(Android版)软件具备哪些功能 手机QQ空间(Android)软件版具备以下功能: 1、可以实时好友动态更新; 2、高品质的好友照片查看; 3(0)人阅读时间:2024-03-29使用NDK进行开发android(ndk环境搭建)
使用NDK进行开发android 在eclips中配置NDK路径 在eclipse中点击菜单栏window-Perferences,配置NDK的路径。 在工程中..2024-03-29微软宣布.NET开源:Visual 微软开源项目
微软宣布.NET开源:Visual Studio支持Android了 北京时间今天凌晨的 Connect(); 大会上,多少程序员的假想成为现实。.NET 开源..2024-03-29Android apk反编译基础(apktoos)图文教程
Android apk反编译基础(apktoos)图文教程 很久有写过一个广工图书馆主页一个类爬虫的demo(因为没接口,只能扒取静态网页),实现一些图书馆系统..2024-03-29Apple Watch与Android Wear的交互设计哪个好?UI设计大比拼
Apple Watch与Android Wear的交互设计哪个好?UI设计大比拼 Apple Watch与Android Wear哪个更优秀?除了硬件上的对比,..2024-03-29微软宣布.NET开源:Visual 微软开源项目
如何下载360云盘Android客户端(安卓360云盘下载)
应用助手for(应用助手卸载了有影响吗)
支付宝哈罗出行如何还车(支付宝哈罗出行怎么支付)
拼多多付费通怎么取消(拼多多付费通怎么取消实名)
apache设置域名绑定(apache 域名绑定)
Fedora下配置ipv6的Apache服务器的方法 配置ipv6地址命令
windows手动安装apache服务的方法 windows10安装apache
Apache中配置最大并发用户数(apache中配置最大并发用户数是什么)
nginx与apache限制ip连接数和带宽方法 nginx对ip限流