Android学习笔记2:Hello World程序解析

《第一行代码——Android》郭霖著
Android Studio入门到精通

Android Studio与Eclipse的一些不同

Android Studio是基于IDEA的,IDEA 全称IntelliJ IDEA,是java语言开发的集成环境。IDEA与Eclipse有很大的区别,它们主要的不同在这篇文章中有详细的说明,在此就不赘述了。所以AS新建的时候有new application和new module开发。IDEA没有工作空间这样的说法。具体来说有以下三点:

  1. android studio是单工程的开发模式
  2. android studio中的application相当于eclipse里的workspace概念
  3. android studio中的module相当于eclipse里的project概念

Android Studio目录结构

新建工程项目后切换到“project”模式下的目录结构如下图所示:
Android学习笔记2:Hello World程序解析_第1张图片
* .idea:AS生成的工程配置文件,类似Eclipse的project.properties。
* app:AS创建工程中的一个Module。
* gradle:构建工具系统的jar和wrapper等,jar告诉了AS如何与系统安装的gradle构建联系。
* External Libraries:不是一个文件夹,只是依赖lib文件,如SDK等。

打开“app”折叠项的目录结构如下图所示:
Android学习笔记2:Hello World程序解析_第2张图片
* build:构建目录,相当于Eclipse中默认Java工程的bin目录,鼠标放在上面右键Show in Exploer即可打开文件夹,编译生成的apk也在这个目录的outs子目录,不过在AS的工程里是默认不显示out目录的,就算有编译结果也不显示,右键打开通过文件夹直接可以看。
* libs:依赖包,包含jar包和jni等包。
* src:包括java代码和资源文件。在src目录下有一个main的分组,同时划分出java和res两个文件夹,java文件夹则相当于Eclipse下的src文件夹,res目录结构则一样。同时在main中还有一个AndroidManifest.xml文件,它记录着App基本信息(Android管理文件)。在src下的 build.gradle则是Module的Gradle构建脚本。

Hello World程序分析

首先打开AndroidManifest.xml文件,从中可以找到如下代码:

<activity android:name=".MainActivity">
     <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
      </intent-filter>
</activity>

这段代码表示对MainActivity这个活动进行注册,没有在AndroidManifest.xml里注册的活动是不能使用的。其中intent-filter里的两行代码非常重要,<action android:name= "android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" />表示MainActivity是这个项目的主活动,在手机上点击应用图标,首先启动的就是这个活动。你在启动时看到的界面,其实就是MainActivity。

然后,打开MainActivity.java。你可以看到MainActivity是继承自Activity的。。Activity是Android系统提供的一个活动基类,我们项目中所有的活动都必须要继承它才能拥有活动的特性。我们来看一下onCreate方法。

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

onCreate()方法是一个活动被创建时必定要执行的方法。方法中的第一行代码很容易理解,就是执行父类中的onCreate()方法。第二行调用了setContentView()方法,就是这个方法给当前的活动引入了一个activity_main布局。R.layout.activity_main是一种引用资源的格式,此处引用了layout中的activity_main布局。(这是在代码中引用资源的格式,在xml中可以通过@xxx/xxxxx的方式来引用。)让我们打开layout中的activity_main.xml看看究竟写了什么吧。

打开activity_main.xml后在左下角选择Text。(当然,Design视图可以让我们可视化地看到layout界面。)

<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:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.chamlhy.hello.helloworld.MainActivity">

    <TextView  android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello World!" />
</RelativeLayout>

看到代码中有有一个TextView,这是Android系统提供的一个控件,用于在布局中显示文字的。其中text设置为“Hello World!”,这就是我们应用界面上显示的文字了。

你可能感兴趣的:(android,AS,idea)