如题。

解决方案 »

  1.   

    LZ 我也想知道android如何使用JNI的方式调用OpenSSL接口???
      

  2.   

    so文件会打包在apk里面,在安装apk的时候,系统会把so文件放到应用目录下的lib目录下。
      

  3.   

    那在模拟器上运行时,把so文件push到模拟器的system/lib目录下不是必须的了?
      

  4.   

    so文件其实是Linux共享库文件。里面包含你实现的函数和数据结构。
    在android中也是同样的道理。
    他不是安装的。jni是一种机制,你可以通过jni来调用c/c++代码(编译成so文件),来高效的处理。
    要注意,jni下的c/c++代码的函数名,和java上的包名要对应。即使你弄到了别人的so文件。但不知道里面的函数参数以及结构也是徒劳。
    应用程序的要调用so文件打包进apk里。我以前做过的ndk解码。一些建议,希望对你有帮助。
      

  5.   

    so不需要安装的,就是个库而已,相当于c和c++里的dll,so放在工程的libs目录下,根据cpu类型的不同分为mips和arm的,一般的android手机芯片都是arm的,部分是mips的。对于一般的手机,不需要手动安装so,将so放在工程目录的libs->armeabi目录下就可以了,程序中加载后使用里面的函数,安装apk后会像2L所说,系统自动放在data/data/yourpacakgename/lib目录下,作为程序的一部分,卸载的时候会完全卸载。
      

  6.   

    把库文件放在工程的libs/armeabi目录下打包时就自动打进去了
      

  7.   

    不是必须的,当然你应用的库没有打包到apk中的话,就需要自己push一下了
      

  8.   

    在工程的libs/armeabi,将so放到这边即可打包的时候就可以和apk一起打包了 不需要手动安装
      

  9.   

    多谢各位。
    总结一下,在eclipse中直接执行run,在模拟器上运行时,需要手动把需要的so库push到system/lib目录下。
    使用apk打包命令的话,就可以把so库文件打包到apk里,如上面几位所说。