让你的安卓开发更容易(一)——Intellij IDEA

工欲善其事,必先利其器

孔子 ——《春秋》

介绍一下安卓开发的一些好用工具,可以让你的开发事半功倍。如果你是一个安卓新手,那么准备一套高效率的开发工具,会让你从一开始就养成使用好工具的习惯,从开始就比别人更快;如果你是一名安卓开发高手,也可以看看这些工具,说不定你已经在使用其中的一些工具了。

Intellij IDEA

虽然IntelliJ IDEA是一款收费的软件,但收费有它收费的道理,跟eclipse相比,它多了更多重构,代码错误提示,与更多工具集成的功能。IntelliJ IDEA被认为是当前Java开发效率最快的IDE工具,它集成了开发过程中实用的众多功能,几乎可以不用鼠标可以方便的完成你要做的任何事情,最大程度的加快开发的速度。简单而又功能强大。

从版本10开始,IntelliJ IDEA就集成了Android的开发功能,发展到现在版本13,不仅具备了流畅开发Android项目的能力,而且还集成了最新的构建工具Gradle,Android lint等工具。

Android Hello World

现在我们使用IntelliJ IDEA来创建一个使用Gradle构建的Android项目。

  • 首先点击创建新工程,在左边的项目类型栏中选择Android,可以看到右边有4个选项可以选,我们选择Gradle: Android Mondule,然后点击下面的Next;

  • 进入项目信息配置页面,可以看到有如下的选项,填写后点击Next;
    • Application name: 应用名
    • Module name: 模块名
    • Package name: 包名
    • Minimum required SDK: 可支持的最小Android SDK版本
    • Target SDK: 可支持的最大Android SDK版本
    • Compile with: 用哪个Android SDK版本编译
    • Theme: app主题,全黑,全白,半黑半百,是否要GridLayou,是否要action bar等

  • 选择main_activity的样式,有9种可以选择,样式的效果在右边可以预览,我们可以选择最简单的Blank Activity,选择好了Next;

  • 填写Activity名字和对应的展示层layout名字,填完Next;

  • 填写工程名和选择工程文件路径,注意最下面的Project format,有2种格式,一种是.idea文件夹,一个是ipr文件,选择ipr文件的方式可以减少很多文件的生成,最后Finish;

生成的代码如下:

MainActivity.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
public class MainActivity extends ActionBarActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();
        if (id == R.id.action_settings) {
            return true;
        }
        return super.onOptionsItemSelected(item);
    }
}
activity_main.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin"
    tools:context="com.github.zzm.myapplication1.app.MainActivity">

    <TextView
        android:text="@string/hello_world"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

</RelativeLayout>

运行的效果如下:

Gradle脚本

可以看到工程目录下有2个build.gradle脚本,一个是根目录的构建文件(如下),如果想提高构建速度,可以将脚本中的mavenCentral()改为maven {url "http://maven.oschina.net/content/groups/public/"},就是将maven的国外镜像库改成国内的库。

root/build.gradle
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.9.+'
    }
}

allprojects {
    repositories {
        mavenCentral()
    }
}

另外一个是app目录下的构建文件,可以看到指定了sdk的最小最大版本,需要的依赖包等。

app/build.gradle
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.9.+'
    }
}
apply plugin: 'android'

repositories {
    mavenCentral()
}

android {
    compileSdkVersion 20
    buildToolsVersion "20.0.0"

    defaultConfig {
        minSdkVersion 8
        targetSdkVersion 20
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            runProguard false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:20.0.0'
}

相关链接

Comments