转载:http://www.apkbus.com/forum.php?mod=viewthread&tid=255061&extra=page%3D2%26filter%3Dauthor%26orderby%3Ddateline&_dsign=e9bcad31

 
Android 开发因为涉及到代码编辑、UI 布局、打包等工序,最好使用一款 IDE。Google 最早提供了基于 Eclipse 的 ADT 作为开发工具,后于2013年 Google I/O 大会发布基于 IntelliJ IDEA 开发AS。后者正式版发布之后,Google 宣布不再持续支持 ADT。Android Studio 有更快的速度,更好的代码完成等特性。
 
很多遗留项目依旧没有从 ADT 迁移过来,依然有很多用户对 Android Studio 怀着恐惧与不信任。我想我们有义务去做一个系列介绍,让更多的人拥抱变化,拥抱新鲜事物。
 
本文系列一,主要介绍两个工具的比较及其迁移。

Android Studio(IntelliJ IDEA)vs. ADT(Eclipse)

本文并不打算涉及 IDE 的圣战,理论上只要配上插件,用得趁手,都差不多。然而本文也是带有倾向性的,因为工作原因,笔者使用过 Eclipse 多年,也使用过多款 JetBrains 的 IDE,均不辱 XXX 语言开发第一 IDE 之名。下面介绍一些 Android Studio 的优胜的地方。
  • 更快的运行速度;
  • 更智能的自动补全;
    你不用自动补全?那其实你 ADT 也不需要的, vi 或者一个记事本就足够了;
  • 更好的重构,IDEA 会帮你找到每一个需要重构的地方;
  • 更好的索引与搜索,双击 shift 键搜索,文件搜索,代码搜索,都很方便;
  • 更好的版本管理功能(git/SVN);
  • 更灵活强大集成脚本 gradle;
  • 原生支持的从项目文件到操作系统的文件浏览器功能;
    ADT 可以通过插件支持?问题来了,我为啥要去花宝贵的时间折腾这个插件呢;
  • ……
以上省略一万字。
相信我,对于 Android 开发者,切换到 Android Studio,经过短短学习曲线之后,你会爱上这个 IDE,并且即将由奢入俭难,再也回不去了。
 

从 ADT 迁移到 Android Studio

如果你看到上面的优点,已经克服了心中的怀疑和恐惧,准备动手迁移,下面提供一些迁移提示。
 

常用网站

部分需要科学上网
你无法科学上网?赶紧搜一下,自己搭或者买一个吧。世界如此多娇,人生苦短。将你遇到过问题的出错信息用 Google 搜索,第一条来自 stackoverflow 的答案就是你想要的。
 
我已经准备好了:链接

当然你可以去官方下载!

ADT 与 Android Studio 目录结构对比ADT 项目结构

 
  • ADT 项目结构
  • project/src/:放置代码文件
  • project/libs:放置 .jar 库或者 .so 库
  • project/res:项目资源文件
  • project/AndroidManifest.xml:工程 manifest 文件
 

Android Studio 项目结构

 
Android Studio 项目结构
 
Android Studio 的一个 project (项目)下可以包含多个独立的 module(模块),图中 Bugtags-Android-Demo 便是一个项目,app 便是一个 module。结构如下。
 
  • project/build.gradle:项目的 build.gradle 文件,主要是全局的远程库配置、gradle 插件版本等信息
  • project/app:名字为 app 的模块
  • project/app/build.gradle:模块的 build.gradle 文件,是最关键的配置文件,后续会有文章继续专门介绍
  • project/app/src:源码文件夹
  • project/app/src/java:放置代码文件
  • project/app/src/jniLibs:默认的.so 库放置的位置,可以在模块的 build.gradle 中通过jniLibs.srcDirs 值来修改所在位置
  • project/app/libs:放置 .jar 库
 

从 ADT 迁移

Android Studio 提供了非常友好的导入向导。
 

在 Android Studio 导入

File->New->Import Project,找到你的 ADT 的 workspace 下的项目,一路点击 YES,会生成一个全新的项目。
 
导入成功
 
 

问题

  • 项目之间有依赖
直接导入使用依赖的项目,被依赖的项目就会自动被导入到同一个项目中,作为一个模块。
下文中的左侧是 ADT 项目,右侧是 Android Studio 项目。
其中 Bugtags-Android-Eclipse-Demo 使用 Bugtags-Android-Eclipse-Lib 作为依赖。
 
依赖
 
  • 停留在界面上不动
错误
 
这个状态是 gradle 构建脚本尝试去下载 gradle 的 wrapper,这个 wrapper 大概 3M,需要科学上网,早期很多人就是在这个页面卡住,放弃了 Android Studio。确保你已经科学上网,并且耐心等待,又或者点击取消,先进项目看看。
 

Android Studio 的几个关键概念

如果上面没有问题,你已经能够正常的看到 Android Studio 的项目工程了。
IDE 使用、快捷键什么的,笔者认为没什么可写的。自己熟悉吧。下面介绍一个对于 ADT 而言全新的概念。
 

build.gradle

在项目的 build.gradle 文件中,有如下内容:
[XML] 查看源文件 复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
    repositories {
        jcenter()//这是构建插件所使用的远程库,后续会有一篇介绍库的含义
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.0.0-alpha1'//这是项目所使用的 Android gradle 版本
    }
}
 
allprojects {
    repositories {
        jcenter()//这是使用远程库依赖的时候,的远程库
    }
}
 
在每个模块的 build.gradle 文件中,初始会有如下内容:
 
[XML] 查看源文件 复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
apply plugin: 'com.android.library'
//com.android.library标示是一个库模块;
//com.android.application标示这是一个应用模块
 
android {
    compileSdkVersion 19//编译 sdk 版本
    buildToolsVersion "23.0.2"//构建工具版本
 
    defaultConfig {
        minSdkVersion 9
        targetSdkVersion 19
    }
 
    buildTypes {//打包类型
        release {
            minifyEnabled false//是否混淆
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
    }
}
 
dependencies {//依赖管理
    compile 'com.bugtags.library:bugtags-lib:1.0.8'//远程
    compile fileTree(dir: 'libs', include: ['*.jar'])//本地 jar 依赖
}
 

依赖管理远程依赖:

[XML] 查看源文件 复制代码
1
2
3
dependencies {
         compile 'com.bugtags.library:bugtags-lib:1.0.8'
}
Android Studio 使用 gradle 进行依赖管理,兼容了 maven 的库,一个经典的 maven 库的配置如下:
[XML] 查看源文件 复制代码
1
2
3
4
5
<dependency>
    <groupId>com.bugtags.library</groupId>
    <artifactId>bugtags-lib</artifactId>
    <version>1.0.8</version>
</dependency>
对比之后,你会发现 compile 的内容中,分为三部分 groupdId:artifactId:version
com.bugtags.library对应groupId
bugtags-lib对应 artifactId
1.0.8对应 version
 

本地依赖

[XML] 查看源文件 复制代码
1
2
3
dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])//本地 jar 依赖
}
Android Studio 工程创建的时候,默认会有如上依赖,意义是把放在与该 build.gradle 文件同一层的 libs 文件夹中所有的 jar 文件都作为库依赖。

同步依赖

一般情况下,你配置完了build.gradle之后,该编辑框的上方会出现正在 sync 的标记。耐心等待完成即可。如果发现没有同步成功,可以使用下面这个按钮:
 
sync如果长时间未成功,则可以在控制台使用:
 
1 ./gradlew build --info
以上命令来看控制台输出。
 

build variant

Android Studio 内置了多渠打包功能,就是所谓的 build variant,可以新建若干个 productflavor 来达到目的。
大致可以这样:
 
flavors
 
这个功能十分的灵活和强大,举个例子,你想要有两个版本,一个收费版,一个免费版,在若干代码文件和资源文件上,都不大一样。
以前你可能选择在代码中判断当前版本,加载不同的代码和资源。或者使用 git 的 branch。
现在你可以使用 Android Studio 直接使用多个 productflavor, 在对应的 flavor 放置那些有区别的代码和文件。一次打包,即可完成。
在下一篇系列文章中,笔者将会详细介绍这个功能。
 

总结

新版本的 Android Studio 还有更多强大的功能,包括最新 preview 的 instant build,将会极大提升构建速度。后文将会详细介绍。
一个工程从 ADT 迁移到 Android Studio 只需要很短的时间,连带熟悉基本概念,半天基本可以完成。如果还没有进行迁移的同学,要抓紧了,不要被世界抛弃了。

Android studio:从Eclipse迁移到Android Studio【一】的更多相关文章

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

    背景: 1. 一直在做.NET的开发,工作之余,学习了一下Android开发,写了一些Demo,当时用的Eclipse开发工具:这两天,刚好项目不是很忙,就打算把之前写的Demo,迁移到Android ...

  2. 从 Eclipse 迁移至 Android Studio

    从 Eclipse 迁移至 Android Studio 本文内容 Android Studio 基础知识 迁移先决条件 将项目导入 Android Studio 后续步骤 将项目迁移至 Androi ...

  3. 将公司的主要项目从eclipse迁移到android studio for mac环境(2)

    1.将eclipse 的 代码迁移到android studio的过程中,现在已经有了一个未优化版本能够在android studio使用,这时候,只需要将已优化版本的代码中的libs  res  s ...

  4. 如何从Eclipse 迁移到Android Studio 且保持Eclipse项目结构

    本文demo下载:http://www.wisdomdd.cn/Wisdom/resource/articleDetail.htm?resourceId=531 Android项目 Eclipse与A ...

  5. Android studio 使用心得(三)—从Eclipse迁移到Android studio

    断断续续的也算是把eclipse上的代码成功迁移到android studio上来了,现在,我同事继续用eclipse,我用android studio,svn上还是之前eclipse的项目,迁移成功 ...

  6. Eclipse迁移到Android studio步骤如下:

    一.从Eclipse中导出:1.将你的ADT插件版本升级到22.0以上.2.在Eclipse中,选择File-->Export.3.在弹出的导出窗口中,打开Android的文件夹,选择“Gene ...

  7. 将公司的主要项目从eclipse迁移到android studio for mac环境(1)

    上星期,我决定要解决这个问题.理由如下: 3个月之前,我已经投入一段时间要做好这个迁移工作,直到最后,我发现能够安装了,但是运行不了,这个过程也看不到bugly上传,在找不到原因的情况下,我放弃了. ...

  8. 从Eclipse迁移到Android Studio

    Google正式推出了Android Studio 1.0,Android默认的开发工具也由Eclipse变成了intellij,对Eclipse的支持肯定会越来越少了,对于Android开发者来说, ...

  9. Eclipse 迁移到Android studio

    步骤: 1.安装 android-studio-bundle-143.2915827-windows https://developer.android.com/studio/install.html ...

随机推荐

  1. web框架学习列表

    转载自鲁塔弗的博客,原文网址:http://lutaf.com/148.htm web framework层出不穷,特别是ruby/python,各有10+个,php/java也是一大堆 根据我自己的 ...

  2. win7的优化-1:隐藏我的电脑导航栏里的收藏等项目

    1. Type regedit in RUN or Start Menu search box and press Enter. It'll open Registry Editor. 2. Now ...

  3. P3384 【模板】树链剖分

    P3384 [模板]树链剖分 题目描述 如题,已知一棵包含N个结点的树(连通且无环),每个节点上包含一个数值,需要支持以下操作: 操作1: 格式: 1 x y z 表示将树从x到y结点最短路径上所有节 ...

  4. (原创)解决远程桌面连接远程应用时,出现 '应用程序错误: '0x7c931780'指令引用的 '0x89abcdef' 内存。该内存不能为 'read'"

    公司的部分应用为cs结构,没有web版的,这些应用的外部访问基本都是通过使用windows server 2008 r2的远程桌面服务来实现的. 个人感觉微软远程桌面服务问题很多,今天有同事使用Rem ...

  5. Jenkins持续集成

    Jenkins持续集成 & .NET   最近受累于测试环境每次发布都很麻烦,而且我们有多个测试环境,因此专门抽时间做了Jenkins的配置和研究. 折腾了两天终于绿灯以后,先来个截图,Blu ...

  6. 【转】加快网站访问速度——Yslow极限优化

    Yslow是一套雅虎的网页评分系统,详细的列出了各项影响网页载入速度的参数,这里不做多说. 我之前就一直参考Yslow做博客优化,经过长时间的学习也算是有所收获,小博的YslowV2分数达到了94分( ...

  7. Data URI 应用场景小结

    Data URI scheme 在前端开发中是个常用的技术,通常会在 CSS 设置背景图中用到.比如在 Google 的首页就有用到: Data URI scheme 简称 Data URI,经常会被 ...

  8. (十七)迭代器模式详解(foreach的精髓)

    作者:zuoxiaolong8810(左潇龙),转载请注明出处,特别说明:本博文来自博主原博客,为保证新博客中博文的完整性,特复制到此留存,如需转载请注明新博客地址即可. 各位好,很久没以LZ的身份和 ...

  9. 20160220 - JavaScript for OS X Automation 调试技巧

    在JXA代码中加入如下代码后,可使用 Safari Web Inspector 调试: //debugger; 使用 Safari Web Inspector 查看 Array 或 Object 并不 ...

  10. 面向OPENCL的ALTERA SDK

    面向OPENCL的ALTERA SDK 使用面向开放计算语言 (OpenCL™) 的 Altera® SDK,用户可以抽象出传统的硬件 FPGA 开发流程,采用更快.更高层面的软件开发流程.在基于 x ...