Andriod:由HelloWorld展开的基础概念
1.环境搭建
网上关于环境搭建已经有不少文章,这里可以参考一下这个网址。http://www.cnblogs.com/huaping-audio/archive/2009/05/26/1490455.html
另外买Andriod手机的时候官方也会有相应的SDK和相关文档和模拟器可以下载,我用的是国产魅族M9,按照官方给出的文档进行了配置,如果新建项目的时候有问题,在Windows→Android SDK and AVD Manager中 Update All一下就可以了。
2.首先建立一个HelloAndriod项目,对Andriod开发有一个大概的认识
其中有几个必填项:
ProjectName:包含这个项目的资料文件夹名称
ApplicationName:显示在应用程序上的标题
PackageName:这个是命名空间,而且也是套件名下Activity生成的地方。命名有一定规则 com.andriod.[ActivityName]
CreateActivity:项目的主要类别,可以在这里启动程序并控制程序流程,或控制屏幕界面等。
MinSDKVersion:选择程序要运行的最低版本。
好了,这里我们依次命名:
- Project name: HelloAndroid
- Application name: Hello, Android
- Package name: com.example.helloandroid (or your own private namespace)
- Create Activity: HelloAndroid
点Finish后建立相应的项目:
首先展开HelloAndroid > src > com.example.helloandroid,打开HelloAndroid.java ,看到以下代码:
这里看到我们的类继承于Activity,Activity在程序中相当于actions。@Override标示重写这个onCreate方法。Bundle参数保存了应用程序上次关闭时的状态,并且可以通过一个Activity传给下一个Activity。接下来改写一下这个方法:
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
public class HelloAndroid extends Activity
/** Called when the activity is first created. */
大致可以看出,我们新建了一个TextView文本,然后设置它的Text为“Hello,Andriod”,最后让这个文本显示出来。
View就是界面中显示的各种元素,TextView就就继承了它的文本元素。
this代表了我们这个Context引用。
点运行可以看到模拟器上的样子:
但其实上,既然采用MVC的开发模式,肯定会有界面与逻辑的分离,实际上我们开发过程中,各种View是分离出来的,Andriod的界面是用XML方式来表示的,有些类似于HTML。再回过来看一下我们的程序。
打开res/layout/main.xml,将代码替换成下面这样:
xmlns:android |
声明引用了Andriod的命名空间,每个界面都要有这个声明。 |
android:id |
指定这个元素的唯一ID。它的命名有些特别,在代码中我们可以通过类似R.id.height控制这个元素中的属性。 |
android:layout_width |
在这里是充满全屏的宽 |
android:layout_height |
充满全屏的高。 |
android:text |
这里我们指定了文本资源,资源文件在res/values/strings.xml 中。 |
把HelloAndroid 这个class改回原样。点运行。
3.更深层次的东西:
Andriod并不直接使用XML文档,而是XML描述转换成资源,程序要使用某个界面或各种资源的时候,会通过索引来查询。
我们看一下gen里生成的R.java文件:
*
* This class was automatically generated by the
* aapt tool from the resource data it found. It
* should not be modified by hand.
*/
package com.example.helloandroid;
public final class R {
public static final class attr {
}
public static final class drawable {
public static final int icon=0x7f020000;
}
public static final class id {
public static final int textview=0x7f050000;
}
public static final class layout {
public static final int main=0x7f030000;
}
public static final class string {
public static final int app_name=0x7f040001;
public static final int hello=0x7f040000;
}
}
开发工具会根据XML的描述,生成对应的资源,自动指定一个位置。
在XML中我们就可以使用@[类型]/[识别符号] 这样的语法来识别符号。
一些API和元素说明我们可以通过google的离线文档进行查询。