Android Studio对于外部引用的设置

在一般的开发当中,项目的所有内容(包括App、Moudle、库目录等)都是放在同一个项目目录底下的,这样Android Studio才能够正常地识别这些内容。但是对于一些公共模块来说,如果在每个项目下面都拷贝一份,那面公共模块就会变得难以维护。其实Android Studio是允许我们做一些外部引用的,下面就是我对这方面的一些整理。

引用外部的Module

  1. 打开项目的Settings.gradle文件,在这个文件下加入你要引用的Module,新增内容如下:
include 'module'
project(':module').projectDir = new File(settingsDir, '../../Android/Module')

这里需要用到ProjectDescriptor的projectDir来指定项目的一个路径,代码中所指定的路径是settings目录的相对路径,写入该设置后Module就会从外部导入进来。

  1. 打开菜单”File” - “Project Structure…”,在打开的面板左侧的Modules一栏中选择主程序,然后再右边面板中选择Dependenicies页签,然后点击下方的“+”号选择“Module Dependency”,在弹出的界面中选择上面导入的Module添加为依赖库。
    设置依赖库

设置外部的JNI目录

要用到JNI实现往往要么是想提升处理效率要么就是要跨平台实现,那么对于跨平台时需要导入外部的JNI目录的肯定性就很大了,因为不仅仅是Android在用这份代码,其他平台也在用。因此,需要对项目配置进行外部引用,操作步骤如下:

打开build.gradle文件,找到android.sourceSets.main属性,加入下面的代码

jni.srcDirs "src/main/jni", "../../otherJNIPath"

其中jni.srcDirs就是用于指定多个JNI目录,在这里可以指定相对于项目的目录路径。这样就可以指定一个外部的JNI目录进来了。

设置外部的libs目录

打开build.gradle文件,找到android.sourceSets.main属性,加入下面的代码

jniLibs.srcDirs "src/main/jni/jinLibs", "../../otherLibsPath"

其中jniLibs.srcDirs就是用于指定多个libs目录,在这里可以指定相对于项目的目录路径。这样就可以指定一个外部的libs目录进来了。

如果JNI编译中需要引用本地so,在 ndk.ldLibs 属性中加入要引入的so的绝对路径,定位到android.defaultConfig.ndk属性,加入下面的代码

String libPath = "\\usr\\prjs\\otherLibsPath\\armeabi\\libzip.so"
ldLibs "log", "android", "z", libPath
### 如何在 Android Studio 中引入并配置第三方绘图 要在 Android Studio 中成功引入并配置第三方绘图,可以按照以下方法操作: #### 1. 添加依赖项至 `build.gradle` 文件 在项目的模块级 `build.gradle` 文件中找到 `dependencies` 节点,并添加所需的绘图依赖。例如,如果要使用 Glide 图片加载,则可以在 `dependencies` 部分加入以下代码[^1]: ```gradle implementation 'com.github.bumptech.glide:glide:4.12.0' annotationProcessor 'com.github.bumptech.glide:compiler:4.12.0' ``` 对于其他绘图,比如 PhotoView ,也可以通过类似的 Gradle 方式引入: ```gradle implementation 'com.github.chrisbanes:PhotoView:2.3.0' ``` 完成上述修改后,点击 **Sync Now** 按钮同步项目。 --- #### 2. 处理 `.so` 动态链接的情况 某些情况下,可能需要手动导入 `.so` 文件来支持特定功能(如 GIF 解码)。以下是具体步骤[^2]: - 将目标 `.so` 文件放入 `src/main/jniLibs/armeabi-v7a` 或对应架构目录下。 - 如果遇到插件错误(如 `Plugin with id 'com.github.dcendents.android-maven' not found.`),则需确认使用的 Gradle 版本是否兼容该插件[^3]。可以通过升级 Gradle 插件版本解决此问题。 --- #### 3. 使用 Maven 或 JitPack 进行远程仓管理 部分第三方托管于 JitPack 上,因此需要先声明其作为额外的存储来源。编辑根目录下的 `build.gradle` 文件,在 `repositories` 块中增加如下内容: ```gradle allprojects { repositories { google() mavenCentral() maven { url 'https://jitpack.io' } } } ``` 随后即可按常规方式添加所需依赖。 --- #### 示例代码展示 假设我们希望利用 PhotoView 实现缩放图片的功能,可参考下面的例子: ```java import com.github.chrisbanes.photoview.PhotoView; public class ImageViewActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_image_view); String imageUrl = "http://example.com/image.jpg"; PhotoView photoView = findViewById(R.id.photo_view); Glide.with(this).load(imageUrl).into(photoView); // 结合Glide加载网络图片 } } ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值