android代码共享(so和jar)

我们在开发过程中,肯定要碰到复用已有代码的情况,最简单的方法是直接拷贝源代码

但是个人认为这样有如下几个缺点:

1:如果源代码很多,会给代码管理造成很大的不便

2:代码对使用者来说,不是隐藏的

所以最好有方法,将我们的代码打包成一个文件供使用者调用,然后我们只需要提供接口文档供他人查阅即可。


这种打包后的文件,在linux c++层,就叫库,在android java层就叫jar包


库在linux c++层,又分为静态库和动态库,静态库一般以.a结尾,动态库都以.so结尾

jar包则不分静态包和动态包,二则都一样


什么叫静态和动态?

静态就是在编译期,就把.a或者jar里的代码,链接到目标文件里了

动态则在运行时动态加载.so或者jar内的代码,那有个问题,系统如何去找寻我们想要动态加载的so或者jar呢?

对so来说,我们可以在LD_LIBRARY_PATH这个环境变量里设置指定so的路径,对于jar来说,则是CLASSPATH


顺道说下,在eclipse中,静态引用jar包,很简单,只需要在工程根目录下,建一个libs文件夹,将jar文件放入即可。

你可能感兴趣的:(android代码共享(so和jar))