1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "base/android/jni_android.h"
6 #include "base/android/jni_string.h"
7 #include "base/files/file_path.h"
8 #include "base/logging.h"
9 #include "jni/Bootstrap_jni.h"
10 #include "mojo/runner/android/run_android_application_function.h"
15 void Bootstrap(JNIEnv
* env
,
16 const JavaParamRef
<jobject
>&,
17 const JavaParamRef
<jobject
>& j_context
,
18 const JavaParamRef
<jstring
>& j_native_library_path
,
20 jlong j_run_application_ptr
) {
21 base::FilePath
app_path(
22 base::android::ConvertJavaStringToUTF8(env
, j_native_library_path
));
23 RunAndroidApplicationFn run_android_application_fn
=
24 reinterpret_cast<RunAndroidApplicationFn
>(j_run_application_ptr
);
25 run_android_application_fn(env
, j_context
, app_path
, j_handle
);
28 bool RegisterBootstrapJni(JNIEnv
* env
) {
29 return RegisterNativesImpl(env
);
35 JNI_EXPORT jint
JNI_OnLoad(JavaVM
* vm
, void* reserved
) {
36 base::android::InitVM(vm
);
37 JNIEnv
* env
= base::android::AttachCurrentThread();
39 if (!mojo::runner::RegisterBootstrapJni(env
))
42 return JNI_VERSION_1_4
;