android .so文件引入,以及meta-data

       今天做一个项目,需要用到百度地图的SDK,下载后一步一步操作了,其中有so文件的导入。

       我记得我以前写代码的时候也导入过so文件,但是从未深入思考过,于是今天突然觉得我应该仔细了解下so文件干嘛的啊!

       导入so文件很简单,有一种方法就是和jar文件一样放在android工程libs目录下,然后在build.gradle里面加如下代码:

       android {

sourceSets {
    main {
        jniLibs.srcDirs = ['libs']
    }
}

 }

这样就可以导入so文件啦!还有一种方法是建立jinlib目录,但是我觉得太麻烦了,因为按照第一种方法做了之后就会自动生成那个文件夹的,就是jinLibs。


                            android  .so文件引入,以及meta-data
 

内部就是很多so文件。

      那么so文件是干嘛的呢?和jar有什么不同呢?

     世上有一些大神,把一些难以实现的功能实现了,或者说封装了一些框架,给小白使用,于是将代码打包成一个文件供使用者调用,然后我们只需要根据接口文档查阅即可轻松实现很难的功能。这种打包后的文件,在c++那儿,就叫库,在java那儿就叫jar包。库在linux c++层,又分为静态库和动态库,静态库一般以.a结尾,动态库都以.so结尾,jar包则不分静态包和动态包,二则都一样。静态就是在编译期,就把.a或者jar里的代码,链接到目标文件里了,动态则在运行时动态加载.so或者jar内的代码。

     同时我想解释下manifest文件的meta-data的作用,发现经常在引用一些SDK的时候需要配置它,其实它和键值对差不多,具体请看这里。

 http://www.cnblogs.com/kangyi/p/3958248.html

     完咯!继续写其他代码。切换着来才不会累嘛,一会儿写文档一会儿写代码,哈哈!

相关推荐