1 /* 2 * Copyright (C) 2010 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 #define LOG_TAG "libcore" // We'll be next to "dalvikvm" in the log; make the distinction clear. 18 19 #include "cutils/log.h" 20 #include "JniConstants.h" 21 #include "ScopedLocalFrame.h" 22 23 #include <stdlib.h> 24 25 // DalvikVM calls this on startup, so we can statically register all our native methods. JNI_OnLoad(JavaVM * vm,void *)26jint JNI_OnLoad(JavaVM* vm, void*) { 27 JNIEnv* env; 28 if (vm->GetEnv(reinterpret_cast<void**>(&env), JNI_VERSION_1_6) != JNI_OK) { 29 ALOGE("JavaVM::GetEnv() failed"); 30 abort(); 31 } 32 33 ScopedLocalFrame localFrame(env); 34 35 #define REGISTER(FN) extern void FN(JNIEnv*); FN(env) 36 REGISTER(register_android_system_OsConstants); 37 REGISTER(register_java_io_File); 38 REGISTER(register_java_io_FileDescriptor); 39 REGISTER(register_java_io_ObjectStreamClass); 40 REGISTER(register_java_lang_Character); 41 REGISTER(register_java_lang_Double); 42 REGISTER(register_java_lang_Float); 43 REGISTER(register_java_lang_Math); 44 REGISTER(register_java_lang_ProcessManager); 45 REGISTER(register_java_lang_RealToString); 46 REGISTER(register_java_lang_StrictMath); 47 REGISTER(register_java_lang_StringToReal); 48 REGISTER(register_java_lang_System); 49 REGISTER(register_java_math_NativeBN); 50 REGISTER(register_java_nio_ByteOrder); 51 REGISTER(register_java_text_Bidi); 52 REGISTER(register_java_util_jar_StrictJarFile); 53 REGISTER(register_java_util_regex_Matcher); 54 REGISTER(register_java_util_regex_Pattern); 55 REGISTER(register_java_util_zip_Adler32); 56 REGISTER(register_java_util_zip_CRC32); 57 REGISTER(register_java_util_zip_Deflater); 58 REGISTER(register_java_util_zip_Inflater); 59 REGISTER(register_libcore_icu_AlphabeticIndex); 60 REGISTER(register_libcore_icu_ICU); 61 REGISTER(register_libcore_icu_NativeCollation); 62 REGISTER(register_libcore_icu_NativeConverter); 63 REGISTER(register_libcore_icu_NativeDecimalFormat); 64 REGISTER(register_libcore_icu_NativeIDN); 65 REGISTER(register_libcore_icu_NativeNormalizer); 66 REGISTER(register_libcore_icu_NativePluralRules); 67 REGISTER(register_libcore_icu_TimeZoneNames); 68 REGISTER(register_libcore_icu_Transliterator); 69 REGISTER(register_libcore_io_AsynchronousCloseMonitor); 70 REGISTER(register_libcore_io_Memory); 71 REGISTER(register_libcore_io_Posix); 72 REGISTER(register_org_apache_harmony_dalvik_NativeTestTarget); 73 REGISTER(register_org_apache_harmony_xml_ExpatParser); 74 REGISTER(register_sun_misc_Unsafe); 75 #undef REGISTER 76 77 return JNI_VERSION_1_6; 78 } 79