从eclipse到android studio

Posted Android开发中文站

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从eclipse到android studio相关的知识,希望对你有一定的参考价值。

本文主要讲解安卓工程从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到android studio


从eclipse导出到studio有两种方式:


  • 使用eclipse导出gradle文件,再从studio导入

  • 直接从studio导入


先说第一种,先从eclipse导出gradle文件,再导入到studio,目录如下:


从eclipse到android studio


多了studio相关的文件。在导入过程中,会提示如此导入会导致工程结构不是studio风格的,studio会建议以studio风格的方式导入,不推荐,后续可能遇到一些问题。


现在,两种IDE都可以打开此工程了。


下面是第二种,直接把eclipse工程导入到studio后的结果:


从eclipse到android studio


在外层有一套project对应的配置文件,而eclipse的唯一的module,名称变为了app,module内按照studio的风格排布,也有自己的gradle文件了。


现在兼容eclipse,需要做一下工作:


  • 把lib拷贝到src/main目录下,来和eclipse保持一致

  • 拷贝原eclipse中的工程配置文件到src/main目录下,来和eclipse保持一致

  • 最后修改studio的工程参数,指定lib到新的位置

  • studio的源码为java路径,修改eclipse的源码路径到java


结果如下:



其中sh是原先目录的,和工程无关的一些脚本文件,可以忽略。


.classpath和.project是eclipse的工程文件


.gitignore是原eclipse工程提交到git上的忽略配置文件


.project.properties是eclipse的工程属性文件


.proguard-project.txt是混淆相关的配置


ic_launcher-web.png也拷贝过来了,作用如下:


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到android studio的主要内容,如果未能解决你的问题,请参考以下文章

我们可以将 Android 项目从 Eclipse 导入到 Android Studio,它是不是支持 SVN?

从 Eclipse 到 Android Studio

从Eclipse迁移到Android studio(还有遇到的各种问题)

从Eclipse迁移到Android Studio碰到的问题记录

从 Eclipse 导入到 Android Studio 不起作用

从eclipse导入到android studio遇到的坑