JNI

2017-04-08  本文已影响0人  桑享

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) {
        }
    }
上一篇下一篇

猜你喜欢

热点阅读