真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Android之eclipse簡單NDK入門

    之前寫了一篇JNI的使用,這里其實也是JNI的使用,只不過現(xiàn)在的使用更加方便,不需要什么cygwin或者gnu去創(chuàng)建那邊麻煩,直接eclipse完成所有操作。

站在用戶的角度思考問題,與客戶深入溝通,找到豐寧網(wǎng)站設計與豐寧網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設計與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:成都網(wǎng)站設計、成都網(wǎng)站建設、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、域名注冊、網(wǎng)絡空間、企業(yè)郵箱。業(yè)務覆蓋豐寧地區(qū)。

先前的一篇:http://xuzhiwei.blog.51cto.com/978424/976839

 1、首先現(xiàn)在Android的SDK和NDK

Android之eclipse簡單NDK入門

2、sdk中以及集成了eclipse,打開eclipse并下載CDT插件支持,一會兒寫c++使用。

    CDT下載地址:http://www.eclipse.org/cdt/

3、配置NDK環(huán)境,windows->preferences->Android->NDK進行配置。

Android之eclipse簡單NDK入門

4、創(chuàng)建項目

Android之eclipse簡單NDK入門

5、創(chuàng)建完成后,右擊項目Android Tools->Add Native Support就可以了。Android之eclipse簡單NDK入門

Android之eclipse簡單NDK入門

自動為我們生成了JNI的目錄,以及編譯的Android.mk等文件。

Android之eclipse簡單NDK入門

6、好了,開始寫代碼。

創(chuàng)建NativeUtils.java

package com.xzw.firstndk;
/**
 * 與c++的接口類,用來生成.h頭文件
 * @author xzw
 *
 */
public class NativeUtils {
    public static native String getWords();
}


現(xiàn)在要生成.h的頭文件,之前是在cmd里面通過javah命令來生成的,這里我們使用ant來自動為我們生成頭文件。

創(chuàng)建build_headers.xml然后以ant editor的方式打開,使用快捷鍵ALT+/生成模板。




    
            description
    

    
    

    
    
        
        
    

右擊運行ant,然后刷新jni目錄就可以看到.h文件了,也把一些依賴庫給我們創(chuàng)建好了,方便很多。

如圖

Android之eclipse簡單NDK入門

打開com_xzw_firstndk_NativeUtils.h可以看到:

/* DO NOT EDIT THIS FILE - it is machine generated */
#include 
/* Header for class com_xzw_firstndk_NativeUtils */

#ifndef _Included_com_xzw_firstndk_NativeUtils
#define _Included_com_xzw_firstndk_NativeUtils
#ifdef __cplusplus
extern "C" {
#endif
/*
 * Class:     com_xzw_firstndk_NativeUtils
 * Method:    getWords
 * Signature: ()Ljava/lang/String;
 */
JNIEXPORT jstring JNICALL Java_com_xzw_firstndk_NativeUtils_getWords
  (JNIEnv *, jclass);

#ifdef __cplusplus
}
#endif
#endif

現(xiàn)在開始實現(xiàn),打開FirstNDK.cpp,引入.h頭文件

Android之eclipse簡單NDK入門

eclipse提示功能也是很不錯的,alt+/快捷快速提示,

#include 
#include "com_xzw_firstndk_NativeUtils.h"

/*
 * Class:     com_xzw_firstndk_NativeUtils
 * Method:    getWords
 * Signature: ()Ljava/lang/String;
 */
JNIEXPORT jstring JNICALL Java_com_xzw_firstndk_NativeUtils_getWords
  (JNIEnv *env, jclass clazz){
    return env->NewStringUTF("hello firt ndk");
}

好了,c++部分ok了,現(xiàn)在來調(diào)用咯。

package com.xzw.firstndk;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

public class MainActivity extends Activity {
    TextView resultText;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main); 
        resultText = (TextView)findViewById(R.id.result);
        //調(diào)用c++的輸出,顯示出來
        resultText.setText(NativeUtils.getWords());
        
    }

 
    static{
        System.loadLibrary("FirstNDK");
    }

}

完成了,默認生成的是armeabi架構(gòu)的so文件,如果需要生成多中架構(gòu)的支持的so,需要在jni目錄下創(chuàng)建Application.mk文件。

APP_ABI :=armeabi armeabi-v7a x86

添加好了,運行起來就可以在libs目錄下看到這幾個架構(gòu)的文件夾了。搞定手工了。


文章標題:Android之eclipse簡單NDK入門
標題鏈接:http://weahome.cn/article/pegsed.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部