IntelliJ IDEA —— Android开发的另一个选择

很早就听过Eclipse的大名,但在我初学Java的时候,一位前辈推荐的IDE却是IntelliJ IDEA。因为之前用过JetBrains的另一款产品PyCharm(一个很给力的Python IDE),所以用上去很顺手,很是喜欢。之后在单位的项目中,需要做一个Android的小应用,也用过一段时间的Eclipse。

在咱们eoe社区,坛友们似乎都偏爱使用Eclipse做Android开发,所以今儿就给大家介绍另一种很好的选择,IntelliJ IDEA(以下简称IDEA)。

首先说明一下,我是个JetBrains的粉丝,喜欢IDEA而不习惯Eclipse。下面的介绍只是给朋友们推荐一个新的选择,而不是说要替换掉Eclipse。
当然啦,有说得不对的地方,希望大家多多指出。

关于IDEA

IDEA包含一个免费的Community版本和一个收费的Ultimate版本,都可以在Jetbrains的官网下到。U版对JavaEE开发比C版好得多。但对于咱们做Android开发的朋友们来说,C版足够了。
IDEA使用Java开发而成,和Eclipse一样,支持Windows、Linux和Mac OS X。其中,C版是开源的。
Eclipse需要ADT插件以支持Android开发。而IDEA对Android开发的支持是内置的,不再需要其他插件。当然,Android SDK和JDK还是不可缺少的。

IDEA的各种优势
自动保存

和PyCharm一样,在IDEA中编辑代码,不再需要CtrlS。代码一经修改,自动保存。
当然,不需要担心CtrlZ的问题————只要不关闭IDEA,撤销是没问题的。

内置版本控制

IDEA内置了Git、Svn、CVS和Mercual的支持

强大的智能提示

Eclipse的智能提示只有在完整输入类名或者变量名,再按下点号之后才有。而IDEA的自动提示,则是全程的:

快捷的代码生成器
点击左边的灯泡,或者按Control+Enter可以看到IDEA给出的智能提示

按Option+Enter可以看到IDEA给出的生成代码菜单

完美的Xml资源支持

IDEA能够识别Android资源文件中的符号,并给出智能提示,这在编辑layout和drawable文件时真是太有用了。

Eclipse的ADT在这个功能上的缺失,真能让人抓狂。

与Eclipse的兼容性
也许你被IDEA所吸引,可是团队里其他人都是玩儿Eclipse的,咋办?
这个木有关系,IDEA提供了从Eclipse导入导出项目的完美支持:

从Eclipse导入:
1、New Project,选择Import project from extenal model,一直下一步直到完成

2、在Event Log中能看到"Frameworks detected: Android framework is detected in the project Configure",点Configure配置Android框架即可。
File菜单中还有还有Export to Eclipse这一功能。

劣势
当然,从来没有完美的IDE,IDEA也是。
由于IDEA的开发语言是Java,造成了它的高内存占用(在我的本子上不一会儿200+的内存就吃掉了)和较慢的启动速度。

相关链接

IntelliJ IDEA下载页面

IntelliJ IDEA的一些特性

解读IntelliJ IDEA的优缺点

IntelliJ IDEA中文爱好者博客

 

IntelliJ IDEA —— Android开发的另一个选择的更多相关文章

  1. Android开发技巧——写一个StepView

    在我们的应用开发中,有些业务流程会涉及到多个步骤,或者是多个状态的转化,因此,会需要有相关的设计来展示该业务流程.比如<停车王>应用里的添加车牌的步骤. 通常,我们会把这类控件称为&quo ...

  2. Android开发之模拟器的选择

    在做Android app开发的时候由于机器配置不是特别高,而Android自带的模拟器非常耗资源,性能极其差.所以常常由于模拟器性能差而抓狂,相信不少开发者都会面临和我一样的问题.于是换了一台平常很 ...

  3. 从零开始学android开发-创建第一个android项目

    打开ADT开发工具

  4. Android开发学习笔记--一个有界面A+B的计算器

    做了一个A+B的APP,虽然很简单,但是作为初学者还是弄了几个小时才弄好,什么东西都要看书或者百度,但最后成功了,还是很开心的,收货蛮大的.现在把过程写一下: 首先给出效果图: 一开始布局一直有问题, ...

  5. Android开发必备:颜色选择

      AA 指定透明度. 00 是完全透明. FF 是完全不透明.超出取值范围的值将被恢复为默认值.    ffff00 ffff33 ffff66 ffff99 ffffcc ffffff ffcc0 ...

  6. 【我的Android进阶之旅】快速创建和根据不同的版本类型(Dev、Beta、Release)发布Android 开发库到Maven私服

    前言 由于项目越来越多,有很多公共的代码都可以抽取出一个开发库出来传到公司搭建好的Maven私服,以供大家使用. 之前搭建的Maven仓库只有Release和Snapshot两个仓库,最近由于开发库有 ...

  7. Windows系统下Android开发环境搭建

    “工具善其事,必先利其器”.要想学好Android,搭建好Android开发环境是一个良好的开端. Windows系统下Android开发环境主要有4个大的步骤.分别是: 1.JDK的安装 2.ecl ...

  8. Android开发之广播

    广播是Android开发中的一个重要的功能,在Android里面有各式各样的广播,比如:电池的状态变化.信号的强弱状态.电话的接听和短信的接收等等,现在给大家简单介绍一下系统发送.监听这些广播的机制. ...

  9. 8个常用的Android开发工具

    周末发现一些比较有用的android开发常用的工具,里面大部分是自己经常用的,还有一些暂时很少用,暂且在这里记录下,以后一定同样会经常用到的. 1 The SDK and AVD Manager 这个 ...

随机推荐

  1. 使用AppCompat_v7 21.0.0d的几个兼容问题

    1.实现新的ActionBarDrawerToggle动画 ActionBarDrawerToggle使用最新的AppCompat_v7 21会出现一个非常帅的动画.使用方式在Androidstudi ...

  2. 第十二章——SQLServer统计信息(2)——非索引键上统计信息的影响

    原文:第十二章--SQLServer统计信息(2)--非索引键上统计信息的影响 前言: 索引对性能方面总是扮演着一个重要的角色,实际上,查询优化器首先检查谓词上的统计信息,然后才决定用什么索引.一般情 ...

  3. Cocos2d-x 3.2 大富翁游戏项目开发-第八部分 角色的散步路径

    获得所述路径之后.我们将能够使根据的步行路径的作用,当您点击gobutton什么时候.我们呼吁player的startGo()办法.传入的参数是保存路径2一维数组 void GameBaseScene ...

  4. ORACLE 创建表空间、用户、授权

    1.创建表空间 create tablespace TEST  logging datafile 'e:\app\administrator\oradata\orcl\TEST.dbf' size 1 ...

  5. 【LeetCode从零单排】No189 .Rotate Array

    称号 Rotate an array of n elements to the right by k steps. For example, with n = 7 and k = 3, the arr ...

  6. hdu1023

    import java.math.BigInteger; import java.util.Scanner; public class Main { static BigInteger fac(Big ...

  7. 024找到二维阵列(keep it up)

    剑指offer在标题中:http://ac.jobdu.com/problem.php? pid=1384 题目描写叙述: 在一个二维数组中,每一行都依照从左到右递增的顺序排序.每一列都依照从上到下递 ...

  8. Spring【AOP】

    AOP是OOP的延续,是软件开发中的一个热点. AOP技术,是OOP补充. OOP引入封装.继承和多态建立一种对象层次结构模拟公共行为集合,而对从左到右的关系则显得无能为力.对于AOP则恰恰适应这样的 ...

  9. Android用户界面设计:框架布局(转)

    摘要:框架布局是Android开发者组织视图控件最简单和最有效的布局之一.通过本文,你将学到所有关于框架布局的知识,它们主要用来在屏幕上组织特别的或重叠的视图控件.使用得当的话,很多有趣的Androi ...

  10. Java回合阵列List

    package com.mine.practice.arrtolist; import java.util.ArrayList; import java.util.Arrays; import jav ...