Android Studio 添加第三方库的6种方式(Jar,module,so等)

本文详细介绍在Android Studio中添加第三方库的六种方法,包括直接搜索、libs添加、Module添加、Gradle添加、添加.so链接库及简单粗暴法。

前几篇我们讲过了AS3种添加插件的方式,以及最常用的一些快捷键的用法,这篇我们讲讲添加第三方库的方法,我这里讲的是最实用、最简单也是最有效的方法,网上很多方法杂七杂八的而且有的已尽很老了在新的版本中根本不起作用,好了开始教程:


点击项目设置按钮

这里写图片描述

依次选择 App > Dependencies

这里写图片描述

1. 直接搜索法

依次选择 + > Library dependency

这里写图片描述

这里的搜索一定要是全名的,不然搜不到哦

这里写图片描述

下图所表示的库和Gradle文件是对应的,后面我们会将Gradle

这里写图片描述

点击OK后,我们会看到AS下边中心位置出现了刷新,以及重新Build项目

这里写图片描述

测试

这里写图片描述

这里如果你想问我的背景怎么设置的那么请看这里:[Android Studio 权威教程]Android Studio 三种添加插件的方式,注意先顶帖哦,可以自己设置图片哦

2. libs添加法

这里直接复制你的第三方jar包到如下目录,我们这里以UML为例子,首先点击Android ,切换到Project

这里写图片描述

找到app > libs ,如果没有libs就新建一个;如果是eclipse导出过来的项目那么这个libs目录直接在根目录下,这点切记

这里写图片描述

现在我们点击下图的按钮重新Build一下项目

这里写图片描述

测试

这里写图片描述

3. Module添加法

这在这里新建了一个Module名称为 mylibrary,和新建项目差不多,这里先不多讲,然后我新建了一个UserTest.class做测试,我们在App中调用这个类

这里写图片描述

然后我们开始添加Module,点击项目设置小按钮

这里写图片描述

app >Dependencies > + >3.Module dependency

这里写图片描述

选择Module

这里写图片描述

然后就看到我们添加的Module了,然后点击ok

这里写图片描述

Build项目中,等到Build完毕我们测试

这里写图片描述

测试

这里写图片描述

4. Gradle 直接添加法

找到build.gradle(Module:app),然后找到dependencies, 
这里我们可以看到我们刚才添加的库,刚才那个项目设置是和这里是一一对应的。

这里写图片描述

我们这里以github上android 中Star最多的网络请求框架[android-async-http],我们来到它的官网,我们可以看到这样一段描述:

这里写图片描述

再看看上边的那个图,我们是不是可以直接复制下面的内容就可以了

compile 'com.loopj.android:android-async-http:1.4.5'
 
  • 1
  • 1

这里写图片描述

然后我们重新点击Build按钮,然后开始测试 
(注意:这里有时候build一两次是不可以的,需要多build几次,原因你懂得)

这里写图片描述

测试

这里写图片描述

5. 添加.so链接库法

如果你的app需要集成百度地图之类的,一定有这样的so动态库,这里是我自己编译的一个简单的so库,我们做测试:

这里写图片描述

然后复制lib下的所有文件,到AS的app > libs下

这里写图片描述

然后找到build.gradle(Module:app) 文件,在android节点下添加如下内容

sourceSets {
  main {
        jniLibs.srcDirs =['libs']
    }
}
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 1
  • 2
  • 3
  • 4
  • 5

这里写图片描述

然后build一下

这里写图片描述

看到如下说明成功构建了

这里写图片描述

测试,使用jni给TextView赋值

这里写图片描述

这里写图片描述

这里我们就测试成功了,下面我们讲一种更加简单粗暴的方法

6. 添加.so简单粗暴法

直接创建一个jniLibs目录就可以了,然后复制就好了 
路径为:app > src > main >jniLibs

这里写图片描述

到这里我们的添加第三方库的教程就结束了,如果有问题请留言,感谢


有兴趣的童鞋可以关注我的Blog,我的专栏会持续更新Android Studio 教程,以及2015 I/O大会上的NDK的配置和编译,我也全部会分享给大家。 
并且我收到了CSND 的讲师邀请,后期我会把这些Android Studio的使用教程录制成视频发布在优快云学院。


/**
 * --------------
 * 欢迎转载   |  转载请注明
 * --------------
 * 如果对你有帮助,请点击|顶|
 * --------------
 * 请保持谦逊 | 你会走的更远
 * --------------
 * @author zsl
 * @github https://github.com/yy1300326388
 * @blog http://blog.youkuaiyun.com/yy1300326388
 */
<think>好的,用户的问题是关于如何在Android 8.1的框架源码中集成第三方库。首先,我需要回忆一下Android系统构建的基本流程,特别是关于如何添加外部库的部分。记得Android.mk和Android.bp是构建系统的关键文件,不过Android 8.1可能主要还是使用Android.mk,因为后来的版本才逐渐转向Android.bp。 接下来,用户提到的是framework层的集成,所以可能需要将第三方库作为系统模块来编译。这样库会被放在/system分区,可能还需要处理依赖和权限的问题。参考引用中的内容,比如引用[2]提到了编译时禁用DEX优化,这可能和避免odex相关,确保库被正确打包进系统镜像。需要提醒用户注意编译选项,比如WITH_DEXPREOPT=false和DISABLE_DEXPREOPT=true,避免优化导致库不被包含。 然后,用户可能需要将库的源代码或预编译的jar/so文件放入源码树的合适位置。例如,在frameworks/base目录下创建新目录,或者放在vendor目录下。如果是预编译的库,需要在Android.mk中声明为PREBUILT类型,并指定安装路径到system/lib或system/framework。 另外,权限问题也很重要,尤其是如果库需要访问系统API,可能需要签名一致。可能需要将库添加到产品的makefile中,比如device.mk,确保在编译时被包含进去。引用[4]中的路径可能涉及将文件放到特定目录,但需要确认是否适用于系统库的集成。 最后,调试部分可能需要配置Android Studio,如引用[1]和[5]提到的,正确导入源码并配置项目结构,方便后续的开发和调试。可能还需要修改相关Java代码,如引用[3]中的Activity代码,来加载或调用新集成的库。 需要一步步引导用户,从准备库文件、修改构建脚本、处理依赖和权限,到编译和验证,确保每个环节都考虑到可能的问题,比如路径是否正确,编译选项是否恰当,权限是否足够等。同时,提醒用户注意版本兼容性和系统签名的问题,避免运行时错误。</think>### 如何在Android 8.1 Framework源码中集成第三方库? #### 步骤1:准备第三方库文件 - **源码形式**:若第三方库提供源码,需将其放置在源码树的适当目录,例如 `frameworks/base/libs/your_lib`。 - **预编译形式**:若为 `.jar` 或 `.so` 文件,可放置在 `vendor/your_company/your_lib` 或 `system/lib` 等目录[^2][^4]。 #### 步骤2:配置构建脚本 在Android 8.1中,主要通过 `Android.mk` 或 `Android.bp` 定义模块: ```makefile # 示例:添加预编译JAR库 LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := your_lib LOCAL_SRC_FILES := your_lib.jar LOCAL_MODULE_CLASS := JAVA_LIBRARIES LOCAL_MODULE_TAGS := optional include $(BUILD_PREBUILT) ``` 需在 `device.mk` 或 `product.mk` 中添加依赖: ```makefile PRODUCT_PACKAGES += your_lib ``` #### 步骤3:处理依赖与权限 - **系统权限**:若库需要访问系统级API,需在 `AndroidManifest.xml` 中添加 `android:sharedUserId="android.uid.system"`,并使用系统签名。 - **编译选项**:禁用DEX优化以确保库被正确编译: ```bash make WITH_DEXPREOPT=false DISABLE_DEXPREOPT=true -j8 ``` #### 步骤4:集成到Framework层 - **Java代码调用**:在Framework的Java类中加载库: ```java static { System.loadLibrary("your_lib"); } ``` - **修改系统服务**(可选):若需扩展系统服务,需在 `frameworks/base/services` 中添加接口并注册到 `SystemServer`。 #### 步骤5:编译与验证 1. 执行全量编译: ```bash source build/envsetup.sh lunch your_target make -j8 ``` 2. 刷入设备后,通过 `adb shell ls /system/lib` 验证库是否成功集成[^4]。 #### 步骤6:调试与优化 - **Android Studio配置**:导入源码后,通过 `Project Structure` 配置模块依赖,确保能跳转到第三方库代码[^1][^5]。 - **日志分析**:使用 `Logcat` 检查运行时错误,重点关注 `UnsatisfiedLinkError` 或 `ClassNotFoundException`。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值