目前暂不支持开发工具编译C、c++代码生成so文件,应该后续版本会有的。.so 为共享库,是shared object,用于动态连接的,和dll差不多,可以这样调用so文件:调用 System.out.println(System.getProperty("java.library.path"))

;得到/usr/java/jdk1.5.0_13/jre/lib/i386,将SO文件放在该目录下运行java程序,输出了由C语言函数计算出的结果
在cmakelistandroid中,可以使用set命令设置CMAKE_LIBRARY_OUTPUT_DIRECTORY变量来指定编译生成的so文件输出到其他目录。例如,可以通过以下代码将so文件输出到指定的目录:set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/libs/armeabi-v7a)其中,${PROJECT_SOURCE_DIR}是项目的根目录,libs/armeabi-v7a是指定的目录路径。这样编译生成的so文件就会输出到指定的目录中。
libdvm.so是android4.4一下davlik虚拟机的库,libart.so是4.4以上art虚拟机的,从4.4以上开始虚拟机变为art,并没有哪个好,只是一个本地库,如果非要说哪个好,那肯定第二个了