Android NDK环境搭建
? ? ?在Android上要想開發(fā)出高效率的軟件,還是須要用到C/C++語言,要想在Java上開發(fā)C/C++語言就須要在IDE上安裝NDK;在Android的官網(wǎng)上SDK開發(fā)環(huán)境已經(jīng)包括了ADT插件。最新的Android開發(fā)IDE能夠到官網(wǎng)下載:http://developer.android.com/sdk/index.html
因?yàn)榻贏ndroid官網(wǎng)和google在國內(nèi)常常進(jìn)不去,我就把下載的放到網(wǎng)盤,有須要的能夠去下載:http://pan.baidu.com/s/1hq3iBGw
準(zhǔn)備的文件
? ? 在新版本號(hào)的ADT上安裝NDK環(huán)境非常方便。我的ADT版本號(hào)是V22.0.5,版本號(hào)號(hào)在打開ADT載入時(shí)會(huì)顯示出來
在官網(wǎng)上:http://developer.android.com/tools/sdk/ndk/index.html下載最新的NDK。NDK版本號(hào)在r7以上之后就集成了Cygwin。不須要單獨(dú)去安裝Cygwin
1、Eclipse配置
SDK配置
NDK配置,路徑就是解壓出來的NDK根文件夾
下面就來測(cè)試下NDK是否已經(jīng)成功安裝
隨便新建一個(gè)Androidproject,加入Add Native Support
此時(shí)新建的project就多了一個(gè)jni文件夾
IDE有可能會(huì)報(bào)一個(gè)錯(cuò)誤:
[2014-06-23 17:08:36 - Unable to launch cygpath. Is Cygwin on the path?] java.io.IOException: Cannot run program "cygpath": CreateProcess error=2, ?????μ???project右鍵。選擇下面選項(xiàng)
環(huán)境變量設(shè)置NDKROOT,Value就是你解壓出來的NDK文件夾
在這里配置的:${NDKROOT}/ndk-build.com就是下面腳本文件
這時(shí)再去Cleanproject就不會(huì)報(bào)錯(cuò)了
下面就來編寫JNI的C++文件。可是沒有代碼提示,是因?yàn)闆]有導(dǎo)入頭文件的原因
導(dǎo)入頭文件方法,選擇“Project Properties”
點(diǎn)擊“Add"
此時(shí)再按"alt + /"就有代碼提示
接下來就是編寫代碼
在NDKTest.cpp文件
#include <string.h> #include <jni.h>jstring Java_com_dzt_ndktest_MainActivity_stringJNI(JNIEnv* env,jobject thiz){return env->NewStringUTF("Hello JNI 我的第一個(gè)JNI"); } Android.mk文件是自己主動(dòng)生成的,能夠不用改動(dòng) LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE := NDKTest LOCAL_SRC_FILES := NDKTest.cppinclude $(BUILD_SHARED_LIBRARY) Activity類調(diào)用代碼 package com.dzt.ndktest;import android.app.Activity; import android.os.Bundle; import android.widget.TextView;public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);TextView tv = (TextView) findViewById(R.id.tv);tv.setText(stringJNI());}public native String stringJNI();static {System.loadLibrary("NDKTest");} } build project
成功通過
再執(zhí)行程序,非常不幸。報(bào)錯(cuò)了
假設(shè)是c++文件須要加上extern "C",從C語言導(dǎo)出
改動(dòng)代碼例如以下
#include <string.h> #include <jni.h>extern "C" { jstring Java_com_dzt_ndktest_MainActivity_stringFromJNI(JNIEnv* env,jobject thiz) {return env->NewStringUTF("Hello JNI"); } }成功通過
源碼下載:http://download.csdn.net/detail/deng0zhaotai/7540771
很多其它的樣例能夠到下面文件夾獲取,這是NDK自帶的樣例。
轉(zhuǎn)載于:https://www.cnblogs.com/mqxnongmin/p/10894763.html
總結(jié)
以上是生活随笔為你收集整理的Android NDK环境搭建的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 51nod 2497 数三角形
- 下一篇: Android开发自定义View