标签:
本文主要讲解安卓工程从eclipse导出到android studio,下面简称studio,并且兼容两种环境。
android studio是谷歌官方推的安卓开发IDE,和eclipse相比,有很多优点,比如:
- 日志更人性,有各种标记,URL可以直接点击,可以直接选中复制。eclipse的复制则比较麻烦,偶尔会乱滚动,bug较多
- studio可以使用网络路径依赖支持的JAR,结构更清晰。eclipse会遇到这样的问题:“引用的两个库都有自己的support-v4.jar,需要统一版本去重”
- 很多的开源工程都使用studio
- studio打多渠道包要更加方便
- studio的联想功能更强大,如“ic_loading_selector.xml”,输load就可以联想,码代码丝般顺滑
- studio即时同步文件的变化,省去eclipse刷新再clean的步骤
- studio的工具更多,调试更方便
- studio集成了版本控制工具,提交更方便
- stdudio通过project管理多个module,使项目更加模块化
当然studio也有缺点:
- 前期编辑native C代码没有eclipse方便
- 相对eclipse工程稍重
- 老项目比较成熟,移动到gradle为项目增加风险。增加学习成本
- 一些依赖文件需要翻墙。
- 不同程序员写的工程gradle版本不一样,在导入他人工程时可能要加载gradle支持文件,而这个支持文件较大,时间慢,UI只有一个loading状态,下载需要翻墙,导致失败。(这个文件可以直接用迅雷下载然后放入指定目录。在windows下,目录位置为“C:\Users\Administrator\.gradle\wrapper\dists”,在linux下对应“/home/用户名”)如下图:
个人感觉,切换到studio还是好处更多,也是大势所趋。
首先是单module的eclipse工程导出到studio。eclipse工程目录结构如下:
从eclipse导出到studio有两种方式:
- 使用eclipse导出gradle文件,再从studio导入
- 直接从studio导入
先说第一种,先从eclipse导出gradle文件,再导入到studio,目录如下:
多了studio相关的文件。在导入过程中,会提示如此导入会导致工程结构不是studio风格的,studio会建议以studio风格的方式导入,不推荐,后续可能遇到一些问题。
现在,两种IDE都可以打开此工程了。
下面是第二种,直接把eclipse工程导入到studio后的结果:
在外层有一套project对应的配置文件,而eclipse的唯一的module,名称变为了app,module内按照studio的风格排布,也有自己的gradle文件了。
现在兼容eclipse,需要做一下工作:
- 把lib拷贝到src/main目录下,来和eclipse保持一致
- 拷贝原eclipse中的工程配置文件到src/main目录下,来和eclipse保持一致
- studio的源码为java路径,修改eclipse的源码路径到java
- 指定lib到新的位置、添加JAR依赖、NDK配置,主要是修改app的module的build.gradle文件。可以参考:android studio之build.gradle写法简介
结果如下:
其中sh是原先目录的,和工程无关的一些脚本文件,可以忽略。
.classpath和.project是eclipse的工程文件
.gitignore是原eclipse工程提交到git上的忽略配置文件
.project.properties是eclipse的工程属性文件
.proguard-project.txt是混淆相关的配置
github上很多工程都是使用类似的配置方式。
关于多module的eclipse工程导入到studio,本人只研究了谷歌推荐的直接导入法,即不在eclipse生成gradle的方法。
举例:
图中的工程为eclipse的project,包含一个主module,一个lib module。
在studio选择import文件夹的时候,切勿选择sample-master这个目录,本人尝试过一次,结果新工程比较混乱,且无法添加网络依赖的support jar。
正确方法应该选择sample文件夹。
如果eclipse依赖正常,studio在导入时检测到两个module的关系,会自动在新的project中创建sample以及sample-lib的module文件夹。
当然后续如果要支持eclipse,还需要前面写到的操作。
最后,在已经配置OK的多module的studio工程中追加eclipse的module,直接导入即可,然后还是执行前面说的操作,把eclipse文件拷贝到src/main下面。
而之前写的一篇文章,使用的先从eclipse导出gradle再导入到studio的方法,感觉不好,可以淘汰了:
从eclipse到android studio
标签:
原文地址:http://blog.csdn.net/starry_eve/article/details/51225907