Android JNI, как загрузить библиотеку с soname libxx.so.1.2.3

Необходимо использовать общую библиотеку для Android от стороннего производителя, имя библиотеки и имя файла совпадают, в формате libxx.so.1.2.3, который распространен в Linux. Я переименовываю файл lib в libxx.so и связываю libxx.so с libmyjni.so, используя сборку ndk -. В моем java-коде перед вызовом функций в libmyjni.so я загружаю их вот так:

    System.load("/data/local/tmp/libxx.so.1.2.3");
    System.loadLibrary("myjni");

Мне нужно вручную скопировать libxx.so.1.2.3 в /data/local/tmp/. Таким образом, это работает хорошо, после загрузки выше я могу вызывать функции в libmyjni.so.

В коде «System.loadLibrary («myjni» );» система всегда пытается откуда-то получить libxx.so.1.2.3. Я хочу знать, как в реальном мире я могу скопировать libxx.so.1.2.3 в определенное место на устройстве Android во время установки? так что я могу System.load ()его.

Или у Android есть официальный способ установить самодельную библиотеку в /system/lib/?

Если libxx.so.1.2.3 имеет формат libxx.so, я могу использовать System.loadLibrary ("xx" )для его загрузки.

6
задан brewphone 9 July 2012 в 04:13
поделиться