Android Studio修改项目目录结构

来源:互联网 发布:python怎么取最大 编辑:程序博客网 时间:2024/05/21 19:43

一般比较早期的项目都是eclipse结构的,可是在现如今Android Studio是官方唯一标准的年代不用Android Studio就似乎有点儿掉队。可是有些公司由于种种原因却不能直接改成gradle结构,那么今天这篇文章就是帮助大家在不改变项目结构的情况下依然使用Android Studio来开发这些老旧的Android app。

首先我们来看一下gradle项目的结构是什么样子的:


这里写图片描述

MyApplication:整个项目的根目录

  • settings.gradle:配置哪些文件夹是module,在这个示例项目中app文件夹就是一个module

  • build.grade:项目整体配置,包括maven库以及Android插件版本

  • gradle/:配置gradle版本

  • gradlew&gradlew.bat:unix和windows上的gradle包装命令,可以实现自动下载并使用gradle

  • gradle.properties:gradle配置文件,默认是空的,编译过程中可以从此文件中读取一些额外配置

  • local.properties:同gradle.properties一样也是gradle配置文件,默认只有本地sdk的路径,但不同的是通常会将跟本地有关的配置会放到这个文件中,比如本地一些依赖软件的路径以及敏感信息,因此通常需要将此文件在版本控制中忽略

  • app:app相关代码存放的目录,在settings.gradle文件中已经配置了此目录是一个module

  • app/libs:依赖库

  • app/src:源码,包括java源码清单文件以及各种资源

  • app/build.gradle:gradle编译脚本文件

在gradle中module就相当于eclipse中的project,这样的好处就是gradle可以支持一个项目中有多个module,并可以同时编译多个module,对于比较复杂的项目来说这可是个杀手锏

接下来我们先在gradle项目的基础上将app目录改成eclispe结构

  1. 删除androidTest目录

  2. 将java目录下的所有文件移动到src目录下

  3. 将res目录移到app目录下

  4. 将AndroidManifest.xml移到app目录下

  5. 如果有assets目录,将assets目录移到app目录下

  6. 如果有jni目录将jni目录移到app目录下

  7. 如果有jniLibs目录将jniLibs目录下的内容移到libs目录下

  8. app目录下的build.gradle文件中的android节点中通过sourceSets配置相关目录,如下:


    这里写图片描述

    至此大功告成,同步一下gradle便可直接运行了

sourceSets{    main{        manifest.srcFile 'AndroidManifest.xml'        java.srcDirs = ['src']        res.srcDirs = ['res']        aidl.srcDirs = ['src']        assets.srcDirs = ['assets']        jni.srcDirs = ['jni']        jniLibs.srcDirs = ['libs']        renderscript.srcDirs = ['src']    }

然后当我们已经有了一个eclipse项目的时候该怎么做呢?

  1. 首先通过Android Studio创建一个项目

  2. 将eclipse项目拷贝进来(跟app目录同级)

  3. 在settings.gradle文件中配置一下,让其成为一个module

  4. 拷贝app目录下的build.gradle文件到到eclipse项目目录下

  5. 根据eclipse项目目录下的AndroidManifest.xml文件中的packageName、minSdkVersion修改build.gradle中的applicatoinId和minSdkVersion

  6. 如上图那样在build.gradle中配置sourceSets

  7. 删除app目录并在settings.gradle文件中中删除相应配置

  8. 打开Android Studio的设置页面,在Version Control中点击左下角的加号选择eclipse项目目录激活版本控制

  9. 在版本控制中配置忽略build.gradle文件、build目录、.idea目录以及*.iml文件

  10. 至此大功告成。

0 0