Skip to content

Commit

Permalink
string test
Browse files Browse the repository at this point in the history
  • Loading branch information
baiiu committed Jul 6, 2021
1 parent 4ce8991 commit 0b91bbe
Show file tree
Hide file tree
Showing 4 changed files with 66 additions and 11 deletions.
18 changes: 9 additions & 9 deletions jni/jnitest/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -9,20 +9,20 @@
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".SplashActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>

<activity android:name=".MainActivity">
<!-- <activity android:name=".SplashActivity">-->
<!-- <intent-filter>-->
<!-- <action android:name="android.intent.action.MAIN" />-->

<!-- <category android:name="android.intent.category.LAUNCHER" />-->
<!-- </intent-filter>-->
<!-- </activity>-->

<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>

Expand Down
37 changes: 37 additions & 0 deletions jni/jnitest/src/main/cpp/string/StringTest.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -41,4 +41,41 @@ Java_com_baiiu_jnitest_string_StringTestFragment_stringMethod(JNIEnv *env, jobje

env->ReleaseStringUTFChars(jStr, str);

}

extern "C"
JNIEXPORT void JNICALL
Java_com_baiiu_jnitest_string_StringTestFragment_callJava(JNIEnv *env, jobject thiz) {

jclass clazz = env->FindClass("com/baiiu/jnitest/string/StringTestFragment");
jmethodID methodId = env->GetStaticMethodID(clazz, "decorateUrl",
"(Ljava/lang/String;)Ljava/lang/String;");

jstring jstr = env->NewStringUTF("test");
jobject decorateObject = env->CallStaticObjectMethod(clazz, methodId, jstr);

const char *afterUrl = env->GetStringUTFChars(static_cast<jstring>(decorateObject), JNI_FALSE);
LOGD("afterUrl %s", afterUrl);

env->ReleaseStringUTFChars(jstr, afterUrl);
}

extern "C"
JNIEXPORT void JNICALL
Java_com_baiiu_jnitest_string_StringTestFragment_callJavaFree(JNIEnv *env, jobject thiz) {

jclass clazz = env->FindClass("com/baiiu/jnitest/string/StringTestFragment");
jmethodID methodId = env->GetMethodID(clazz, "decorateUrlFree",
"(Ljava/lang/String;)Ljava/lang/String;");

jstring jstr = env->NewStringUTF("test");
jobject decorateObject = env->CallObjectMethod(thiz, methodId, jstr);

if (decorateObject) {
const char *afterUrl = env->GetStringUTFChars(static_cast<jstring>(decorateObject),
JNI_FALSE);
LOGD("afterUrl %s", afterUrl);

env->ReleaseStringUTFChars(jstr, afterUrl);
}
}
5 changes: 3 additions & 2 deletions jni/jnitest/src/main/java/com/baiiu/jnitest/MainActivity.java
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
import com.baiiu.jnitest.exception.ExceptionFragment;
import com.baiiu.jnitest.reference.PassReferenceFragment;
import com.baiiu.jnitest.reference.ReferenceFragment;
import com.baiiu.jnitest.string.StringTestFragment;
import com.baiiu.jnitest.testSocket.TestSocketFragment;
import com.baiiu.jnitest.thread.ThreadCallbackFragment;
import com.baiiu.jnitest.thread.ThreadCreateFragment;
Expand All @@ -37,7 +38,7 @@ private Fragment getFragment() {

// return new TypeConvertFragment();

// return new StringTestFragment();
return new StringTestFragment();

// return new PassReferenceFragment();

Expand All @@ -59,7 +60,7 @@ private Fragment getFragment() {

// return new DLOpenFragment();

return new EpollFragment();
// return new EpollFragment();
}


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,27 @@ protected void initOnCreateView() {
callNativeString("java Str");

stringMethod("abcdefg");

callJava();
callJavaFree();
}


public native String callNativeString(String str);

public native void stringMethod(String str);

public native void callJava();

public native void callJavaFree();

public static String decorateUrl(String url) {
return "decorate: " + url;
}

public String decorateUrlFree(String url) {
// return "decorate free: " + url;
return null; // GetStringUTFChars参数不能为null
}

}

0 comments on commit 0b91bbe

Please sign in to comment.