中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Android中怎么調用C的函數

發布時間:2021-06-24 15:56:26 來源:億速云 閱讀:413 作者:Leah 欄目:大數據

Android中怎么調用C的函數,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

activity_main.xml

<?xml version="1.0" encoding="utf-8"?><android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:app="http://schemas.android.com/apk/res-auto"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    tools:context=".MainActivity">
   <TextView        android:id="@+id/sample_text"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="Hello World!"        app:layout_constraintBottom_toBottomOf="parent"        app:layout_constraintLeft_toLeftOf="parent"        app:layout_constraintRight_toRightOf="parent"        app:layout_constraintTop_toTopOf="parent" />
   <Button        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="測試按鈕"        android:id="@+id/btncs"        android:onClick="btnclick"/></android.support.constraint.ConstraintLayout>

按鈕里面加上了onCLick的事件名稱為btnclick,我們通過Alt+Enter選擇在對應的Activity中創建這個按鈕事件。

Android中怎么調用C的函數

MainActivity.java

我們回到MainActivity中,其中原來默認的stringFromJni方法就是直接返回了一個字符串,到時候我們看一下源碼即可。

接下來我們來試一下帶參數的方法怎么實現。

我們新建了一個settextgood的方法,里面有一個輸入參數,和一個返回參數。

Android中怎么調用C的函數

可以看到,剛定義完的方法顯示為紅色字體,接下來我們鼠標放到方法名上,然后按ALT+ENTER,選擇下方紅框中的第一項

Android中怎么調用C的函數

程序會自動跳轉到native-lib.cpp的文件夾中創建了對應的調用方法

Android中怎么調用C的函數

接下來我們編寫這個settextgood的方法


extern "C"JNIEXPORT jstring JNICALLJava_dem_vac_vaccaendk_MainActivity_settextgood(JNIEnv *env, jobject instance, jstring str_) {    const char *str = env->GetStringUTFChars(str_, 0);
   //定義追加的字符    char * addstr=",我是追加的字符";    //定義要輸出的字符并設置長度    char * outputstr = new char[strlen(str)+strlen(addstr)];    //開始組裝輸出的字符    //1.傳入的字符拷貝進來    strcpy(outputstr,str);    //2.連接剛剛定義的追加字符    strcat(outputstr,addstr);
   //釋放資源    env->ReleaseStringUTFChars(str_, str);
   return env->NewStringUTF(outputstr);}

最后我們再重新寫了一按鈕事件,點擊進傳入一個“Hello”進去。

Android中怎么調用C的函數

我們運行一下程序看看

Android中怎么調用C的函數

剛進來時顯示Hello from C++,我們現在再點擊一下測試按鈕后看看結果

Android中怎么調用C的函數

看完上述內容,你們掌握 Android中怎么調用C的函數的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

河北区| 麻阳| 大渡口区| 吉林省| 米易县| 铜川市| 南开区| 和静县| 邢台县| 康定县| 广宁县| 绥芬河市| 湟源县| 内乡县| 洛浦县| 子洲县| 盘山县| 肇庆市| 红桥区| 兰考县| 方山县| 如东县| 宜宾市| 永康市| 万源市| 建昌县| 洪泽县| 忻城县| 博罗县| 榆林市| 荔波县| 白水县| 永昌县| 桦川县| 新邵县| 濮阳市| 乡宁县| 垫江县| 辽源市| 汕头市| 达尔|