1/* 2 * Copyright (C) 2006 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 17package android.core; 18 19import android.test.suitebuilder.annotation.Suppress; 20import android.util.Log; 21import junit.framework.TestCase; 22 23 24@Suppress 25public class JniLibTest extends TestCase { 26 27 @Override 28 protected void setUp() throws Exception { 29 super.setUp(); 30 /* 31 * This causes the native shared library to be loaded when the 32 * class is first used. The library is only loaded once, even if 33 * multiple classes include this line. 34 * 35 * The library must be in java.library.path, which is derived from 36 * LD_LIBRARY_PATH. The actual library name searched for will be 37 * "libjni_lib_test.so" under Linux, but may be different on other 38 * platforms. 39 */ 40 try { 41 System.loadLibrary("jni_lib_test"); 42 } catch (UnsatisfiedLinkError ule) { 43 Log.e("JniLibTest", "WARNING: Could not load jni_lib_test natives"); 44 } 45 } 46 47 private static native int nativeStaticThing(float f); 48 private native void nativeThing(int val); 49 50 public void testNativeCall() { 51 Log.i("JniLibTest", "JNI search path is " 52 + System.getProperty("java.library.path")); 53 Log.i("JniLibTest", "'jni_lib_test' becomes '" 54 + System.mapLibraryName("jni_lib_test") + "'"); 55 56 int result = nativeStaticThing(1234.5f); 57 nativeThing(result); 58 } 59} 60