转载请把头部出处链接和尾部二维码一起转载,本文出自逆流的鱼yuiop:http://blog.csdn.net/hejjunlin/article/details/52937391

从Android的诞生,大家所熟知的开发工具就是IDE就是Eclipse,随着Google大力推荐Android Studio,Eclipse将慢慢推出历史舞台,但是从前很多老项目都是由Eclipse开发,我很信还有绝大部分人在用Eclipse开发,为了适应新形势,迁移已成必不可少的环节。今天以我的开源代码红包精灵(之前用Eclipse开发)为例,github:https://github.com/hejunlin2013/RedPackage,实现在Studio也能开发。

首先搞清楚从哪入手,studio引入了module(模块化)概念,一个工程下面,可以有不同的moudle,这样解耦代码,提供了非常便利的思路。google就是告诉大家,要朝着这个方向走。提高开发效率,用任正非一句话说:中国13亿人民,我们这几个把豆腐磨好,磨成好豆腐,你们好好去发豆芽,把豆芽做好,我们13亿人每个人做好一件事,拼起来就是伟大祖国。对于模块化,这个道理也是相通的。

Androd Studio的默认工程结构和Eclipse工程本质区别在哪?

对于Studio来说,app module下包含一个src,src下就有java,res,AndroidManifest.xml,

对于Eclipse来说,一个工程下,包含src,res,AndroidManifest.xml文件。

能不能通过一些脚本把这些位置移动下,就能把Eclipse工程构建成一个Studio工程了呢?

Gradle提供了自定义目录的功能,因为它是基于Groovy脚本的,脚本总是能帮我们省下许多繁琐的事,像python,lua

话不多说直接上代码:

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

这里解释下上面的意思, manifest.srcFile ‘AndroidManifest.xml’表示把AndroidManifest.xml这个文件放到manifest目录下作为源文件,java.srcDirs = [‘src’],这个表示把src目录放到java目录下的src目录,后面也是依此类推

完整build.gradle脚本如下:

apply plugin: 'com.android.application'

buildscript {
    repositories {
        jcenter()
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.1.0'
    }
}

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.3"

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

     defaultConfig {
        applicationId "com.hejunlin.camerasample2"
        minSdkVersion 17
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.4.0'
    compile "com.android.support:support-v4:23.4.0"
}

allprojects {
    repositories {
        jcenter()
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

这里要主意一个问题,当把Eclipse这个项目向Studio中构建时,会有一个settting.gradle,如图:

用于配置module的,内容如下:include ‘:app’,由于是从eclipse迁移过来的,没有module这一说,需要把这个文件删除掉。不然就会出现如下所示:

删除之后,就一切正常 ,看下迁移后Eclipse和Studio代码的结构(对用Eclipse开发人员一点也不影响):

Eclipse:

Studio:

整个过程就是这样,如果还在用Eclipse开发的,赶紧迁移到Studio上吧,如果实在有人想用,原来工程一点也不影响,这样双向开发虽然怪,但是用惯了studio的人来说,小小的脚本改变是开发效率。

第一时间获得博客更新提醒,以及更多android干货,源码分析,欢迎关注我的微信公众号,扫一扫下方二维码或者长按识别二维码,即可关注。





如果你觉得好,随手点赞,也是对笔者的肯定,也可以分享此公众号给你更多的人,原创不易

手把手图文教你从Eclipse项目迁移Android Studio的更多相关文章

  1. Eclipse 项目导入 Android Studio 导致的乱码问题

    最近有一个 Eclipse 项目导入 Android Studio 1.4 时出现乱码,Build 提示 Error:(38, 5) 閿欒: 缂栫爜UTF-8鐨勪笉鍙槧灏勫瓧绗?. 源代码是 GB ...

  2. 将Eclipse项目导入Android Studio出现中文乱码的问题

    以前一直以Eclipse开发项目,最近正在研究Android Studio的使用,首先想到到的是将Eclispe项目导入AS. 可以方便查看以前写过的代码,然后出现了中文乱码的问题,通过搜索了一些资料 ...

  3. Eclipse项目转Android Studio

    刚来某公司的时候,发现Android开发仍然还在使用Eclipse,编码无规范,渠道打包竟然手动,svn版本主干分支管理混乱,总之各种low... 对于有强迫症的我来说,属实不可忍.但无奈,新人一个, ...

  4. android开发里遇到的坑——eclipse项目导入android studio以后Run按钮灰色

    android studio编译有错误但是没有提示给用户,关闭android studio重新启动项目后,会显示错误,修复以后即可!

  5. eclipse项目转android studio详解

    第一步:项目导入 向AS中导入项目的方法有两种(其实是一种). 方法一:是在eclipse中先导出为gradle(如图1),然后打开AS,找到项目中的gradle文件,直接导入. 方法二:直接在AS中 ...

  6. eclipse项目迁移到android studio(图文最新版)

    前言 最近Android studio(下文简称AS)官方发布了正式版,目前火得不行.个人认为主要是因为android是google自家的产品,AS也是他自己搞的IDE,以后的趋势android开发肯 ...

  7. 从eclipse到Android studio/迁移eclipse的Android项目到Android studio平台的注意事项

    整体要注意的地方 先说明一下整体需要注意的地方 1在Android studio建立项目的时候,要注意包名和原来的完全一致,不然会有很多需要改动. 2依赖的jar一定一定要找齐,不然新建项目引用不到, ...

  8. 如何把Eclipse项目迁移到AndroidStudio(如何把项目导入安卓)--这我很困惑

    学习android对我来说,就是兴趣,所以我以自己的兴趣写出的文章,希望各位多多支持!多多点赞,评论讨论加关注. 大佬必备功能. 把Eclipse项目迁移到AndroidStudio 现在就叫你如何把 ...

  9. 从 Eclipse 导入项目到 Android Studio

    ADT已经有些过时了,现在比较流行的安卓开发工具是Android Studio,毕竟是谷歌一直在推广的. 最近装了as,从之前的adt迁移项目到as上,遇到了不少坎. 主要注意以下两点: (1)文件路 ...

随机推荐

  1. java中String类学习笔记

    1.String的两种实例化方式 String str="hello";//直接赋值的方式: String str=new String("hello");// ...

  2. 机器学习基石:08 Noise and Error

    噪声:误标.对同一数据点的标注不一致.数据点信息不准确...... 噪声是针对整个输入空间的. 存在噪声的情况下,VC bound依旧有用: 存在噪声,就是f------>p(y|x),f是p的 ...

  3. 【JDK1.8】JUC——LockSupport

    一.前言 Basic thread blocking primitives for creating locks and other synchronization classes. 用于创建锁定和其 ...

  4. [HEOI 2014]大工程

    Description 题库链接 给你一个 \(n\) 个节点的树, \(q\) 组询问,每次给出 \(k\) 个关键点,询问这 \(k\) 个关键点两两间路径长度和,长度最值. \(1\leq n\ ...

  5. codeforces 888G Xor-MST

    You are given a complete undirected graph with n vertices. A number ai is assigned to each vertex, a ...

  6. [USACO12FEB]牛的IDCow IDs

    题目描述 Being a secret computer geek, Farmer John labels all of his cows with binary numbers. However, ...

  7. poj 1741 树的点分治(入门)

    Tree Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 18205   Accepted: 5951 Description ...

  8. SpringCloud学习之SpringCloudStream&集成kafka

    一.关于Spring-Cloud-Stream Spring Cloud Stream本质上就是整合了Spring Boot和Spring Integration,实现了一套轻量级的消息驱动的微服务框 ...

  9. 春招实习面经分享(已拿到腾讯春招Offer)

    十分幸运地收到了腾讯的Offer..回来报答一下各位牛客网的战友们,说起来也是有点运气成分,最后通过腾讯的内推收到了offer!之前也屡遭重创,阿里的内推一面挂了(寒假过早地投简历,电话面试应对地不太 ...

  10. linux下磁盘分区详解 图文(fdisk;mkfs)

    linux分区不同于windows,linux下硬盘设备名为(IDE硬盘为hdx(x为从a-d)因为IDE硬盘最多四个,SCSI,SATA,USB硬盘为sdx(x为a-z)),硬盘主分区最多为4个,不 ...