| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include <iostream> | 5 #include <iostream> |
| 6 | 6 |
| 7 #include "base/android/jni_generator/sample_for_tests.h" | 7 #include "base/android/jni_generator/sample_for_tests.h" |
| 8 | 8 |
| 9 #include "base/android/jni_android.h" | 9 #include "base/android/jni_android.h" |
| 10 #include "base/android/jni_string.h" | 10 #include "base/android/jni_string.h" |
| (...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 110 int main() { | 110 int main() { |
| 111 // On a regular application, you'd call AttachCurrentThread(). This sample is | 111 // On a regular application, you'd call AttachCurrentThread(). This sample is |
| 112 // not yet linking with all the libraries. | 112 // not yet linking with all the libraries. |
| 113 JNIEnv* env = /* AttachCurrentThread() */ NULL; | 113 JNIEnv* env = /* AttachCurrentThread() */ NULL; |
| 114 | 114 |
| 115 // This is how you call a java static method from C++. | 115 // This is how you call a java static method from C++. |
| 116 bool foo = base::android::Java_SampleForTests_staticJavaMethod(env); | 116 bool foo = base::android::Java_SampleForTests_staticJavaMethod(env); |
| 117 | 117 |
| 118 // This is how you call a java method from C++. Note that you must have | 118 // This is how you call a java method from C++. Note that you must have |
| 119 // obtained the jobject somehow. | 119 // obtained the jobject somehow. |
| 120 jobject my_java_object = NULL; | 120 ScopedJavaLocalRef<jobject> my_java_object; |
| 121 int bar = base::android::Java_SampleForTests_javaMethod( | 121 int bar = base::android::Java_SampleForTests_javaMethod( |
| 122 env, my_java_object, 1, 2); | 122 env, my_java_object, 1, 2); |
| 123 | 123 |
| 124 std::cout << foo << bar; | 124 std::cout << foo << bar; |
| 125 | 125 |
| 126 for (int i = 0; i < 10; ++i) { | 126 for (int i = 0; i < 10; ++i) { |
| 127 // Creates a "struct" that will then be used by the java side. | 127 // Creates a "struct" that will then be used by the java side. |
| 128 ScopedJavaLocalRef<jobject> struct_a = | 128 ScopedJavaLocalRef<jobject> struct_a = |
| 129 base::android::Java_InnerStructA_create( | 129 base::android::Java_InnerStructA_create( |
| 130 env, 0, 1, ConvertUTF8ToJavaString(env, "test")); | 130 env, 0, 1, ConvertUTF8ToJavaString(env, "test")); |
| 131 base::android::Java_SampleForTests_addStructA(env, my_java_object, | 131 base::android::Java_SampleForTests_addStructA(env, my_java_object, |
| 132 struct_a); | 132 struct_a); |
| 133 } | 133 } |
| 134 base::android::Java_SampleForTests_iterateAndDoSomething(env, my_java_object); | 134 base::android::Java_SampleForTests_iterateAndDoSomething(env, my_java_object); |
| 135 base::android::Java_SampleForTests_packagePrivateJavaMethod(env, | 135 base::android::Java_SampleForTests_packagePrivateJavaMethod(env, |
| 136 my_java_object); | 136 my_java_object); |
| 137 base::android::Java_SampleForTests_methodThatThrowsException(env, | 137 base::android::Java_SampleForTests_methodThatThrowsException(env, |
| 138 my_java_object); | 138 my_java_object); |
| 139 base::android::Java_SampleForTests_javaMethodWithAnnotatedParam( | 139 base::android::Java_SampleForTests_javaMethodWithAnnotatedParam( |
| 140 env, my_java_object, 42); | 140 env, my_java_object, 42); |
| 141 return 0; | 141 return 0; |
| 142 } | 142 } |
| OLD | NEW |