国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Android - 安卓應用開發通過java調用c++ jni的圖文使用方法

安卓應用開發通過java調用c++ jni的圖文使用方法

2021-02-18 15:03Android開發網 Android

這篇文章主要介紹了安卓應用開發通過java調用c++ jni的圖文使用方法,需要的朋友可以參考下

首先建議一個工程 hellojni如下圖:

安卓應用開發通過java調用c++ jni的圖文使用方法

按照默認的配置下一步,直到完成 。

 

安卓應用開發通過java調用c++ jni的圖文使用方法

 

如下圖操作,點擊windows菜單-》prefrence菜單:

安卓應用開發通過java調用c++ jni的圖文使用方法

 

彈出如下圖:選擇andriod ->ndk:

安卓應用開發通過java調用c++ jni的圖文使用方法

配置完成以后,點擊工程屬性菜單:

安卓應用開發通過java調用c++ jni的圖文使用方法

做這一步的目的是,增加對c++代碼的支持,他會自動生成一些東西,你會看到多一個jni的文件夾。

安卓應用開發通過java調用c++ jni的圖文使用方法

這個名字可以默認,就用工程的名字,實際上就是產生的c++代碼生成.so文件的名稱(windows上的dll文件).

完成以后。可以看代碼,生成一個hellojni的.cpp文件。

安卓應用開發通過java調用c++ jni的圖文使用方法

 

我們可以在這個cpp中寫c++代碼了,當然你也可以增加其他的cpp,.h文件等。

假設我們要實現一個函數返回一個一個字符串的功能,那么我們首先要在java中定義一個類。點擊紅圈的按鈕會彈出添加類的對話框,

我起的名字叫hellojni.

安卓應用開發通過java調用c++ jni的圖文使用方法

 

package com.example.hellojni;public class hellojni {//!增加一個函數 ,如下,public native string getstring();}

  其實在java中要調用 c++,我們就做一個類,這個類用c++實現。實現代碼不是寫在java中的,而是寫在c++中的。

下面我們需要生成下.\

安卓應用開發通過java調用c++ jni的圖文使用方法

可以不運行,然后到生成類的目錄去:

安卓應用開發通過java調用c++ jni的圖文使用方法

 

我們在進入 就可以看到生成的.class文件了,如下圖:但是我們需要回到classes目錄:

通過cmd命令行打開命令行窗口 :寫如下命令:

安卓應用開發通過java調用c++ jni的圖文使用方法

在這個文件夾下,你可以看到生成一個 .h文件。

安卓應用開發通過java調用c++ jni的圖文使用方法

 

這個就是上面的hellojni 類生成的對應的c++的函數原型,我們接下來要實現這個函數。將這個頭文件copy到jni下:

 

復制代碼 代碼如下:


#include <jni.h>

 

#include "com_example_hellojni_hellojni.h"
 

#ifdef __cplusplus
extern "c" {
#endif
/*
 * class:     com_example_hellojni_hellojni
 * method:    getstring
 * signature: ()ljava/lang/string;
 */
jniexport jstring jnicall java_com_example_hellojni_hellojni_getstring
  (jnienv *env, jobject)
{
  return env->newstringutf("hello from jni !");
}
#ifdef __cplusplus
}
#endif

 

在mainactivity.java中調用hellojni類的方法:

代碼如下:

 

復制代碼 代碼如下:


package com.example.hellojni;

 

import android.os.bundle;
import android.app.activity;
import android.view.menu;

public class mainactivity extends activity {

    @override
    protected void oncreate(bundle savedinstancestate) {
        super.oncreate(savedinstancestate);

      
hellojni jni = new hellojni();
        string sss = jni.getstring();
        sss = "aaa";

       
        setcontentview(r.layout.activity_main);
    }

    @override
    public boolean oncreateoptionsmenu(menu menu) {
        // inflate the menu; this adds items to the action bar if it is present.
        getmenuinflater().inflate(r.menu.main, menu);
        return true;
    }

}

 

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: ...99久久国产成人免费精品 | 欧美自拍偷拍 | 久久精品1区 | 国产精品视频一区二区三区不卡 | 91国内免费视频 | 国产精品美乳在线观看 | 亚洲国产精品自拍 | 一级免费视频 | 性色av一二三杏吧传媒 | 成人a视频在线观看 | a在线看| 精品视频一区在线观看 | 91在线日韩 | 好吊色欧美一区二区三区四区 | 精品国产一二三区 | 免费观看一级毛片 | 国产精品网站在线观看 | 中文字幕成人影院 | 亚洲电影在线观看 | 91精品国产综合久久久久久漫画 | 久久av一区二区三区 | 日日操av| 亚洲处破女 | 欧美日韩一区在线观看 | 日本激情视频 | 日韩精品久久久久久 | 欧美日韩视频在线观看免费 | 欧美专区在线 | 国产精品久久久久久久久久久久 | 亚洲精品乱码久久久久久花季 | 日韩欧美三区 | 一区中文字幕 | 美女视频一区二区三区 | 99视频在线播放 | 羞羞小视频 | 日韩视频精品在线 | av色综合 | 久久久精品| 亚洲精品影院 | 欧美久久精品 | 久久毛片|