模块VS包Android Studio

技术标签: 安卓  Android-Studio

我是Android Studio和Java的新手。

我正在开发一个应用程序。此应用程序基本上遵循分层体系结构,例如使用不同的图层,例如UI,数据访问层,服务层等。

我不清楚包和模块之间的差异。

我的问题是,在哪里将所有这些不同的图层放在模块或包裹中?

指向@angel回应 问题,两者之间的唯一区别是\,模块通过必须访问它们的谁可以访问更严格的规则,必须导入模块的命名空间。

看答案

一种 模块 是项目中源代码的容器。单个项目可以具有多个模块,但每个模块都是单独的代码和资源集。

例如,当您使用默认设置创建新项目时,Android Studio会生成一个调用的模块 app。该模块包含应用程序的所有源代码,资源文件和应用程序级别设置。

但是,如果您使用手机/平板电脑应用程序和Android佩戴应用程序创建新项目,则会看到两个模块; mobilewear。这些模块中的每一个都包含各自应用程序的源代码,资源文件和应用程序级别设置。

您还可以创建一个要在多个模块之间共享的另一个模块;该模块将被认为是一个 图书馆模块.

一种 包裹 基本上是源代码所属的目录(文件夹)。通常,这是一个唯一标识您的应用程序的目录结构;如 com.example.app。然后,您可以在应用程序包中创建软件包,该软件包将代码分隔;如 com.example.app.ui 或者 com.example.app.data.


因此,要回答您的问题,每个应用程序的包都在于 src/main/java 应用程序模块的目录。您可以在应用程序Pacakge内放置一个单独的包,以将应用程序architechture的每个“图层”分开。

只是为了一个可视示例,这是我一个项目的基本结构:

project
|-- build.gradle
|-- settings.gradle
~
|-- common // a common library module for both mobile and wear
|   |-- build.gradle
|   |-- proguard-rules.pro
|   +-- src
|       +-- main
|           |-- AndroidManifest.xml
|           |-- assets
|           |-- java
|           |   +-- com
|           |       +-- example
|           |           +-- library // common module library package
|           |               |-- data
|           |               +-- util
|           +-- res
|
|-- mobile // mobile application module
|   |-- build.gradle
|   |-- proguard-rules.pro
|   +-- src
|       +-- main
|           |-- AndroidManifest.xml
|           |-- assets
|           |-- java
|           |   +-- com
|           |       +-- example
|           |           +-- app // mobile module application package
|           |               |-- data
|           |               |-- ui
|           |               +-- util
|           +-- res
|
+-- wear // wear application module
    |-- build.gradle
    |-- proguard-rules.pro
    +-- src
        +-- main
            |-- AndroidManifest.xml
            |-- assets
            |-- java
            |   +-- com
            |       +-- example
            |           +-- app // wear module application package
            |               |-- data
            |               |-- ui
            |               +-- util
            +-- res

智能推荐

Android Studio导出Jar包

本文转载自:https://www.cnblogs.com/yxx123/p/5280347.html 作者:yxx123 转载请注明该声明。 这篇博客将介绍一下如何用Android Studio导出jar包,希望能给大家带来帮助。     首先需要修改build.gradle文件,在Android Studio中会显示多个build.gradle文件,如果你想要将整个项目导出...

Android Studio 导入jar包

开始做Android了,很久不接触,很多东西都忘了 基本的导入jar包, 按道理copy jar包到libs后,在jar包处右键会有Add As Library,第一次成功了,但之后没有这个选项了。 ok,第二种方法: 在project目录类型下,右键app,选择Open Moudle Setting...

Android Studio 修改包名

    在Android Studio中修改包名,只需要修改两个地方:AndroidManifest.xml 及build.gradle(app下)。     一、在AndroidManifest.xml中,选中需要修改的包名(需要修改包名的哪个字段就选中哪个字段),按Shift+F6选中rename package,然后修改即可。 二、在build.gra...

Android Studio 生成jar包

简介 环境 AndroidStudio 3.1 今天在写测试ClassLoader的时候,需要生成jar包。但是AS 会自动为library生成aar。 下面记录生成jar包流程,以备后用 步骤 生成jar包流程: File -> New -> New Module 创建类库 Gradle中找到”transformClassesAndResourcesWithSyncLib...

Android studio 自动导包

一、Android studio 的导单个包的快捷键是Alt+Enter; 二、Android studio 可以设置自动导包: File -->Setting-->Editor-->General-->Auto Import ,勾选以下两项...

猜你喜欢

Android Studio修改包名

记录一个简单的修改包名的方法 这是第一步,改变包名的菜单的布局 点击 “1” 展开菜单栏,看到“2”所在的位置,默认是选中的,这个时候我们将”2”取消选中; 这时,菜单栏就会改变,如下图所示: 第二步 这个时候,我们就可以随意的修改包名了,选中想要修改的包名部分目录,Shift + F6 ,在弹出框选择Rename Packa...

android studio修改包名

修改包名需要三步: 第一步   manifests修改包名: 在package里面更改你想要的包名。 第二步   在Android工作区间下 把包名分层然后修改: 点击Compact Empty Middle Packages  把左边的包名分级变成图片的格式, 然后把报名调成和第一步中的一样就行了   修改包名shift + F6   ...

Android Studio 导入jar包

1.在Project目录中新建一个libs目录,也可以用以后的一个目录。为了方便,可以新建在app-src-main目录下 2.将要导入的jar包复制到新建的libs硬盘目录下。然后在Android studio中会出现该jar包名。但是此时这个jar是不能展开的 3.在Android studio中右击jar包名, 选择Add As Library,add ...

计算机系统常用编码介绍

常用编码 二进制编码 自然二进制码 有权码 循环二进制码 无权码,卡诺图化简可以用到循环二进制码 BCD码 介绍 把十进制数的各个数码用二进制码的形式表现出来,这便是用二进制代码对十进制数进行编码,简称BCD码。BCD码具有二进制码的形式(4位二进制码),又有十进制数的特点(每四位二进制码是1位十进制码) 常用BCD码 8421码 有权码,8421码也就是自然二进制码 余3码 在8421码的基础上...

好记性不如烂笔头,记我在用友ERP重装IIS服务碰到的一些问题和心得。

先记录文字版的,有时间再上图。 过程是这样的。今天服务器突然断电,导致不能进系统。然后启动时按F8。选择 “进入最后一次正常启动加载项。。。” 可以顺利进系统。 然后点U8登入的时候提示:用友U8   选择数据源提示:读取数据源出现未知错误:〖System.Runtime.Serialization.SerializationException〗 最后查了多方资料...

问答精选

PHP OOP UNSET object from class in __construct

I have some classes from which I create objects. In the __construct function I check the properties. If they do not match I would like to delete the created object. Thanks! You need to unset the creat...

Reading NSUserDefault bool

I have a problem where I'm trying to register a bool as an NSUserDefault. I then want to be able to read this bool value later on. The issue is that when I read the value its not picking it up as a YE...

deleting values with overlapping dates

I have table in an MS Access database that looks like this: I am trying to delete duplicate symbols and directions that have overlapping start_val and end_val and the highest AW. For example in the ta...

Advice on PHP OOP code

In a PHP project I have three layers (Logical) UI : Place to store UI php pages. ex: ManageUsers.php Code : All Entity Classes Related to system. ex: User.php DataAccess : Data Access Classes for Enti...

Alternate class in a for loop?

I'm cycling through a list using {% for item in list %} and I want to output something like this: with the intention of styling the alternate lines a different colour. Django (1.3) has no mod or div t...

相关问题

相关文章

热门文章

推荐文章

相关标签

推荐问答