91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

新河县| 卢龙县| 南投县| 厦门市| 洛隆县| 永仁县| 岚皋县| 溆浦县| 怀宁县| 玛曲县| 丹棱县| 义乌市| 景谷| 定南县| 磴口县| 甘肃省| 长寿区| 罗源县| 常宁市| 南部县| 临城县| 湖州市| 临高县| 谢通门县| 宁城县| 正蓝旗| 金山区| 洪泽县| 丹东市| 新巴尔虎左旗| 汝州市| 乌兰浩特市| 天长市| 新泰市| 土默特右旗| 门源| 舟曲县| 锦屏县| 瓦房店市| 福泉市| 离岛区|