AndroidStudio导入jar文件, AndroidStudio导入so文件;

对于java来说,jar文件和so文件都可以认为是Library文件(库文件),但是本质上还是有区别的;

jar文件:是有java编写的打包的库文件;

so文件:是由C或者C++文件编写的库文件,然后通过jni(本地方法编译)技术,编译的库文件;

如果是Windows上,就可以通过VS编译dll应用;如果是Android上应用的,用的就是动过NDK编译的;如果是IOS,就需要通过相关平台编译; 



在Android工程中:

jar文件,一般放在libs文件夹中;

so文件,一般放在jniLibs文件夹中;(注意,L大写);


AndroidStudio导入jar文件

一般Androidstudio生成的工程中有libs文件夹,只是在控制界面上没有直接显示;

1:我们可以直接打开工程目录,在 MyApplication\app目录下就有libs文件夹;

2:将jar文件复制到libs文件夹中;

3:右键点击刚才复制的jar文件,选择“Add As Library”, 会自动生成相关的一些文件,然后就可以应用相关jar中的类了;




 AndroidStudio导入so文件

方法一:

默认情况下的工程没有jniLibs文件夹,需要手动建立;

1:建立jniLibs的路径在:src---main--jniLibs;就是在main文件夹下建立jniLibs文件夹;

相关的so文件不是直接copy到jniLibs目录中,而是还有其所在的文件夹;


so文件目录结构:from:http://blog.csdn.net/yy1300326388/article/details/46291417

|---src  

|---main 

|---jniLibs 

|---arm64-v8a  

|---libhello-jni.so  

|---armeabi  

|---libhello-jni.so  

|---armeabi-v7a  

|---libhello-jni.so  

|---x86  

|---libhello-jni.so  

|---x86_64  

|---libhello-jni.so  

|---mips  

|---libhello-jni.so  

|---mips64  

|---libhello-jni.so


方法二:

当然也可以指定任何目录,但是需要修改build.gradle文件;


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

参数libs可以是自己只指定的任意文件夹;









so文件的调用:

加入so文件到内存;

java中可以直接通过绝对路径调用;

Android中给了一个简单的函数实现, 

System.loadLibrary("hello-jni");


方法一:可以通过静态代码块加载;

static
{
    System.loadLibrary("hello-jni");
}

方法二:

在程序初始化的时候加载,或者在你调用so中的代码前加载;



需要注意的是:System.loadLibrary的参数名字是so的名称,但是不要前面的lib和后面的后缀.so;

如:我添加的so文件是: libhello-jni.so

但是我调用的方式是:     System.loadLibrary("hello-jni");

否则程序会提示找不到库文件;

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

chinabinlang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值