android - 如何组织 Android 应用程序以及单独的库
问题描述
我正在尝试编写一个 Android 库,以及一系列使用该库的示例应用程序。我想要的理想结构是:
projectname/
|-- examples/
| |-- exampleapp1/
| |-- exampleapp2/
|-- librarycode/
到目前为止,我只能弄清楚如何添加应用程序本身内的库(即 exampleapp1/librarycode),但我认为必须有一种方法来设置它。有人可以指出我正确的方向吗?谢谢。
解决方案
我想说这个项目结构不是一个理想的方式。原因如下:
Android Studio 不推荐超过 2 级的项目结构,因为这不容易管理和维护。如果你有很多库而不是只有一个怎么办?在回答您的问题时, Android Studio 仅适用于两级项目结构。
如果您的产品是一个 Android 库模块,那么从工程的角度来看,将其与使用该库的示例项目混合,使其成为一个独立项目实际上是正确的。
您的示例项目应该从客户的角度构建以使用您的库模块。客户使用您的库的方式应该对您的库项目结构完全透明。并且您的客户应该只看到您最终的库可交付成果,即
.aar
文件.jar
。
因此,对于您的情况,最好的选择可能是创建两个项目,一个是您的库项目,另一个是使用您的库的示例项目,我的意思是,以.aar
or的形式.jar
。优点如下:
您的库项目可以在您的示例项目上独立开发、编译和构建。
您始终可以从用户的角度使用您的示例项目,而无需担心库的任何内部细节,例如项目结构、依赖关系管理。
将您的库产品与用户开发环境分离将为您提供更好的软件配置管理体验。关键是不要完全混合它们!!!
具体来说,您的项目结构应如下所示:
示例项目结构应为:
examples/
|-- exampleapp1/
|-- exampleapp2/
|-- exampleapp3/
库项目结构应为:
projectname/
|-- library1/
|-- library2/
|-- library3/
推荐阅读
- c - 当我做 malloc(1) 时,它在一个 char* 中分配了 8 个空格,我不知道为什么
- javascript - 如何映射数组并保留对象的某些属性?
- vue.js - 根据数据是否不包含“n/a”呈现 v-show | 不适用| 无法使用
- sql - 如何在 SQL Server 中将多行 SUM 为 1 行?
- php - 将基于相同键的数组值相加(PHP)
- php - 将数组值显示到txt文件
- javascript - 无法从 Array 获取信息
- spring - HttpServletResponse 设置字符集在 Quarkus/undertow 中不起作用
- java - Java - 用于查找接口实现类的实用程序
- azure - Azure VM 中的数据安全性如何