Skip to content

Commit 0b91bbe

Browse files
committed
string test
1 parent 4ce8991 commit 0b91bbe

File tree

4 files changed

+66
-11
lines changed

4 files changed

+66
-11
lines changed

jni/jnitest/src/main/AndroidManifest.xml

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -9,20 +9,20 @@
99
android:roundIcon="@mipmap/ic_launcher_round"
1010
android:supportsRtl="true"
1111
android:theme="@style/AppTheme">
12-
<activity android:name=".SplashActivity">
13-
<intent-filter>
14-
<action android:name="android.intent.action.MAIN" />
15-
16-
<category android:name="android.intent.category.LAUNCHER" />
17-
</intent-filter>
18-
</activity>
19-
20-
<activity android:name=".MainActivity">
12+
<!-- <activity android:name=".SplashActivity">-->
2113
<!-- <intent-filter>-->
2214
<!-- <action android:name="android.intent.action.MAIN" />-->
2315

2416
<!-- <category android:name="android.intent.category.LAUNCHER" />-->
2517
<!-- </intent-filter>-->
18+
<!-- </activity>-->
19+
20+
<activity android:name=".MainActivity">
21+
<intent-filter>
22+
<action android:name="android.intent.action.MAIN" />
23+
24+
<category android:name="android.intent.category.LAUNCHER" />
25+
</intent-filter>
2626
</activity>
2727
</application>
2828

jni/jnitest/src/main/cpp/string/StringTest.cpp

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,4 +41,41 @@ Java_com_baiiu_jnitest_string_StringTestFragment_stringMethod(JNIEnv *env, jobje
4141

4242
env->ReleaseStringUTFChars(jStr, str);
4343

44+
}
45+
46+
extern "C"
47+
JNIEXPORT void JNICALL
48+
Java_com_baiiu_jnitest_string_StringTestFragment_callJava(JNIEnv *env, jobject thiz) {
49+
50+
jclass clazz = env->FindClass("com/baiiu/jnitest/string/StringTestFragment");
51+
jmethodID methodId = env->GetStaticMethodID(clazz, "decorateUrl",
52+
"(Ljava/lang/String;)Ljava/lang/String;");
53+
54+
jstring jstr = env->NewStringUTF("test");
55+
jobject decorateObject = env->CallStaticObjectMethod(clazz, methodId, jstr);
56+
57+
const char *afterUrl = env->GetStringUTFChars(static_cast<jstring>(decorateObject), JNI_FALSE);
58+
LOGD("afterUrl %s", afterUrl);
59+
60+
env->ReleaseStringUTFChars(jstr, afterUrl);
61+
}
62+
63+
extern "C"
64+
JNIEXPORT void JNICALL
65+
Java_com_baiiu_jnitest_string_StringTestFragment_callJavaFree(JNIEnv *env, jobject thiz) {
66+
67+
jclass clazz = env->FindClass("com/baiiu/jnitest/string/StringTestFragment");
68+
jmethodID methodId = env->GetMethodID(clazz, "decorateUrlFree",
69+
"(Ljava/lang/String;)Ljava/lang/String;");
70+
71+
jstring jstr = env->NewStringUTF("test");
72+
jobject decorateObject = env->CallObjectMethod(thiz, methodId, jstr);
73+
74+
if (decorateObject) {
75+
const char *afterUrl = env->GetStringUTFChars(static_cast<jstring>(decorateObject),
76+
JNI_FALSE);
77+
LOGD("afterUrl %s", afterUrl);
78+
79+
env->ReleaseStringUTFChars(jstr, afterUrl);
80+
}
4481
}

jni/jnitest/src/main/java/com/baiiu/jnitest/MainActivity.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import com.baiiu.jnitest.exception.ExceptionFragment;
1212
import com.baiiu.jnitest.reference.PassReferenceFragment;
1313
import com.baiiu.jnitest.reference.ReferenceFragment;
14+
import com.baiiu.jnitest.string.StringTestFragment;
1415
import com.baiiu.jnitest.testSocket.TestSocketFragment;
1516
import com.baiiu.jnitest.thread.ThreadCallbackFragment;
1617
import com.baiiu.jnitest.thread.ThreadCreateFragment;
@@ -37,7 +38,7 @@ private Fragment getFragment() {
3738

3839
// return new TypeConvertFragment();
3940

40-
// return new StringTestFragment();
41+
return new StringTestFragment();
4142

4243
// return new PassReferenceFragment();
4344

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

6061
// return new DLOpenFragment();
6162

62-
return new EpollFragment();
63+
// return new EpollFragment();
6364
}
6465

6566

jni/jnitest/src/main/java/com/baiiu/jnitest/string/StringTestFragment.java

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,27 @@ protected void initOnCreateView() {
1313
callNativeString("java Str");
1414

1515
stringMethod("abcdefg");
16+
17+
callJava();
18+
callJavaFree();
1619
}
1720

21+
1822
public native String callNativeString(String str);
1923

2024
public native void stringMethod(String str);
2125

26+
public native void callJava();
27+
28+
public native void callJavaFree();
29+
30+
public static String decorateUrl(String url) {
31+
return "decorate: " + url;
32+
}
33+
34+
public String decorateUrlFree(String url) {
35+
// return "decorate free: " + url;
36+
return null; // GetStringUTFChars参数不能为null
37+
}
38+
2239
}

0 commit comments

Comments
 (0)