什么是app.iml和proguard-rules.pro在我的Android应用程序目录中执行的操作?

时间:2015-09-05 16:34:28

标签: android android-studio

我正在研究Android Studio项目的文件/目录结构。

我不明白/ app目录中两个文件的用途:

  1. app.iml
  2. proguard-rules.pro
  3. 我可以对这些文件做一些解释吗?如果我想与其他程序员共享我的项目,那么我是否必须包含这些文件,或者只是包含在/ src和build.gradle下的任何文件就足够了?

3 个答案:

答案 0 :(得分:2)

  

我可以对这些文件做一些解释吗?

app.iml是Android Studio生成的文件,基于build.gradle文件的内容,由IDE内部使用。 Android Studio基于IntelliJ IDEA; .iml个文件是IDEA的项目元数据文件。 Android Studio不认为它们是记录系统 - build.gradle文件 - 但可能生成.iml文件更简单,而不是重写IDEA而不需要它们。

proguard-rules.pro包含用于配置代码混淆和收缩的特定于模块的规则。目前,这是通过名为ProGuard的工具处理的,这就是文件按原样命名的原因。

  

如果我想与其他程序员共享我的项目,那么我是否必须包含这些文件,或者只是包含在/ src和build.gradle之外的任何内容?

输出

app.iml;我认为,由于技术原因它不在build/。你不应该分发这个。

输入

proguard-rules.pro。你应该分发这个,即使它现在基本上是空的。

答案 1 :(得分:1)

app.iml是由Android Studio生成的文件,其中包含有关项目的信息 它是IntelliJ的常用文件格式。

如果在build.gradle文件中启用proguard(minifyEnabled true),则使用

proguard-rules.pro。它有助于提高性能并保持应用程序的小巧。

要了解有关proguard的更多信息,请阅读: http://developer.android.com/tools/help/proguard.html

答案 2 :(得分:1)

从intelliJ文档中我理解的是你应该分享iml文件,以便与使用android studio的其他开发人员顺利合作,我从他们的文档中粘贴以下文本,链接到这里https://intellij-support.jetbrains.com/hc/en-us/articles/206827587-How-to-manage-projects-under-Version-Control-Systems

如果您决定与其他开发人员共享IDE项目文件,请遵循以下准则:

基于目录的项目格式(.idea目录)

默认情况下,所有最新的IDE版本都使用此格式。以下是您需要分享的内容:

项目根目录下.idea目录下的所有文件,除了存储用户特定设置的workspace.xml和tasks.xml文件。

所有可以位于不同模块目录中的.iml模块文件(适用于IntelliJ IDEA)

小心分享以下内容:

生成签名版本的Android工件(将包含密钥库密码)

在IDEA 13及更早版本的dataSources.ids中,datasources.xml可以包含数据库密码。 IDEA 14解决了这个问题。

您可以考虑不要分享以下内容:

gradle.xml文件

用户词典文件夹(以避免在其他开发人员具有相同名称时发生冲突)

.idea / libraries下的XML文件,以防它们是从Gradle项目生成的 旧项目格式(.ipr / .iml / .iws文件)

共享项目.ipr文件和所有.iml模块文件,不要共享.iws文件,因为它存储用户特定的设置

如果您将git版本控制集成与IDE集成,Android Studio将生成具有以下值的.gitignore

.gradle
/local.properties
/.idea/workspace.xml
/.idea/libraries
.DS_Store
/build