JNI 用法介绍
Android JNI动态库的名称必须以"lib"开头,以及后缀".so"结尾。不使用全文件名是因为java希望代码能跨平台,Linux下是.so,windows下是.dll。
调用loadlibrary()方法不需要指定库文件所在的路径,Android会在几个系统目录下查找动态库。
为了保证调用native方法前所需要的动态库已经加载,loadlibrary()的调用位置一般是放在类的static块中,这样进程初始化的时就能执行装载语句了。
static {
BEFORE_LOGIN_OR_TRANSPARENT_ACTIVITIES.add(SplashActivity.class.getSimpleName());
BEFORE_LOGIN_OR_TRANSPARENT_ACTIVITIES.add(IntroActivity.class.getSimpleName());
BEFORE_LOGIN_OR_TRANSPARENT_ACTIVITIES.add(LoginActivity.class.getSimpleName());
BEFORE_LOGIN_OR_TRANSPARENT_ACTIVITIES.add(AgreementsActivity.class.getSimpleName());
BEFORE_LOGIN_OR_TRANSPARENT_ACTIVITIES.add(ShareActivity.class.getSimpleName());
BEFORE_LOGIN_OR_TRANSPARENT_ACTIVITIES.add(MarketDialog.class.getSimpleName());
BEFORE_LOGIN_OR_TRANSPARENT_ACTIVITIES.add(FullscreenAdActivity.class.getSimpleName());
try {
System.loadLibrary("myLib");
} catch (UnsatisfiedLinkError ignored) {
}
}