手把手图文教你从Eclipse项目迁移Android Studio
转载请把头部出处链接和尾部二维码一起转载,本文出自逆流的鱼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的更多相关文章
- Eclipse 项目导入 Android Studio 导致的乱码问题
最近有一个 Eclipse 项目导入 Android Studio 1.4 时出现乱码,Build 提示 Error:(38, 5) 閿欒: 缂栫爜UTF-8鐨勪笉鍙槧灏勫瓧绗?. 源代码是 GB ...
- 将Eclipse项目导入Android Studio出现中文乱码的问题
以前一直以Eclipse开发项目,最近正在研究Android Studio的使用,首先想到到的是将Eclispe项目导入AS. 可以方便查看以前写过的代码,然后出现了中文乱码的问题,通过搜索了一些资料 ...
- Eclipse项目转Android Studio
刚来某公司的时候,发现Android开发仍然还在使用Eclipse,编码无规范,渠道打包竟然手动,svn版本主干分支管理混乱,总之各种low... 对于有强迫症的我来说,属实不可忍.但无奈,新人一个, ...
- android开发里遇到的坑——eclipse项目导入android studio以后Run按钮灰色
android studio编译有错误但是没有提示给用户,关闭android studio重新启动项目后,会显示错误,修复以后即可!
- eclipse项目转android studio详解
第一步:项目导入 向AS中导入项目的方法有两种(其实是一种). 方法一:是在eclipse中先导出为gradle(如图1),然后打开AS,找到项目中的gradle文件,直接导入. 方法二:直接在AS中 ...
- eclipse项目迁移到android studio(图文最新版)
前言 最近Android studio(下文简称AS)官方发布了正式版,目前火得不行.个人认为主要是因为android是google自家的产品,AS也是他自己搞的IDE,以后的趋势android开发肯 ...
- 从eclipse到Android studio/迁移eclipse的Android项目到Android studio平台的注意事项
整体要注意的地方 先说明一下整体需要注意的地方 1在Android studio建立项目的时候,要注意包名和原来的完全一致,不然会有很多需要改动. 2依赖的jar一定一定要找齐,不然新建项目引用不到, ...
- 如何把Eclipse项目迁移到AndroidStudio(如何把项目导入安卓)--这我很困惑
学习android对我来说,就是兴趣,所以我以自己的兴趣写出的文章,希望各位多多支持!多多点赞,评论讨论加关注. 大佬必备功能. 把Eclipse项目迁移到AndroidStudio 现在就叫你如何把 ...
- 从 Eclipse 导入项目到 Android Studio
ADT已经有些过时了,现在比较流行的安卓开发工具是Android Studio,毕竟是谷歌一直在推广的. 最近装了as,从之前的adt迁移项目到as上,遇到了不少坎. 主要注意以下两点: (1)文件路 ...
随机推荐
- java中String类学习笔记
1.String的两种实例化方式 String str="hello";//直接赋值的方式: String str=new String("hello");// ...
- 机器学习基石:08 Noise and Error
噪声:误标.对同一数据点的标注不一致.数据点信息不准确...... 噪声是针对整个输入空间的. 存在噪声的情况下,VC bound依旧有用: 存在噪声,就是f------>p(y|x),f是p的 ...
- 【JDK1.8】JUC——LockSupport
一.前言 Basic thread blocking primitives for creating locks and other synchronization classes. 用于创建锁定和其 ...
- [HEOI 2014]大工程
Description 题库链接 给你一个 \(n\) 个节点的树, \(q\) 组询问,每次给出 \(k\) 个关键点,询问这 \(k\) 个关键点两两间路径长度和,长度最值. \(1\leq n\ ...
- codeforces 888G Xor-MST
You are given a complete undirected graph with n vertices. A number ai is assigned to each vertex, a ...
- [USACO12FEB]牛的IDCow IDs
题目描述 Being a secret computer geek, Farmer John labels all of his cows with binary numbers. However, ...
- poj 1741 树的点分治(入门)
Tree Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 18205 Accepted: 5951 Description ...
- SpringCloud学习之SpringCloudStream&集成kafka
一.关于Spring-Cloud-Stream Spring Cloud Stream本质上就是整合了Spring Boot和Spring Integration,实现了一套轻量级的消息驱动的微服务框 ...
- 春招实习面经分享(已拿到腾讯春招Offer)
十分幸运地收到了腾讯的Offer..回来报答一下各位牛客网的战友们,说起来也是有点运气成分,最后通过腾讯的内推收到了offer!之前也屡遭重创,阿里的内推一面挂了(寒假过早地投简历,电话面试应对地不太 ...
- linux下磁盘分区详解 图文(fdisk;mkfs)
linux分区不同于windows,linux下硬盘设备名为(IDE硬盘为hdx(x为从a-d)因为IDE硬盘最多四个,SCSI,SATA,USB硬盘为sdx(x为a-z)),硬盘主分区最多为4个,不 ...