首页 > 解决方案 > 如何在 Android 和 AWS Lambda 之间共享请求/响应类

问题描述

对于使用 AWS Lambda 的 Android 应用程序,请求/响应类出现在同一项目的不同模块下的两侧。如果不共享,这两个类将出现在 2 个地方:

.
├── app
│   └── src
│       ├── main
│       │   └── java
│       │       └── com
│       │           └── myapp
│       │              ├── Request.java
│       │              └── Response.java
│       └── test
├── lambda
│   └── src
│       └── main
│           └── java
│               └── com
│                   └── myapp
│                      ├── Request.java
│                      └── Response.java

共享这些类的第一个想法是将模块添加lambda为模块的依赖项app,方法是将以下内容添加到app/build.gradle

dependencies {
    implementation project(":lambda")

但这行不通,因为

并且它们彼此不兼容(两者都在同一个包下提供了一些相同的类)。

第二种方法是使用符号链接,链接请求/响应类,以便它们出现在两个模块中(当然在同一个包下),这是可行的。这是正确的方法吗?

标签: javaandroidaws-lambda

解决方案


我将创建第三个区域,专门用于“通用”代码。就像是:

├── app
│   └── src
│       ├── main
│       │   └── java
│       │       └── com
│       │           └── myapp
│       └── test
│
├── lambda
│   └── src
│       └── main
│           └── java
│               └── com
│                   └── myapp
├── common
│    └── src
│       └── main
│           └── java
│               └── com
│                   └── myapp
│                      ├── Request.java
│                      └── Response.java

然后让公共库成为 Android 和 Lambda 代码的依赖项。


推荐阅读