Android入门学习笔记(三):第一个Android应用程序
来源:互联网 发布:ubuntu如何复制文件夹 编辑:程序博客网 时间:2024/05/16 08:13
Android学习笔记(三):第一个Android应用程序
. 创建一个Android应用程序的步骤
1. 创建project :在Package Explorer 右键 >New>Android Project
2. 填写项目信息 如图
Project Name:Project的名字,同时根据这个名字在workspace中自动生成相关目录
Application Name:应用程序的名字
package Name:包名,有过java编程经验的都知道,一般用com.android.zhang这种格式
Create Activity:勾选这个并填上Activity的名字,eclipse会自动生成一个继承于Activity的类
Min SDK Version,程序所能兼容的最小版本的API,如这里选择了4,也就是可支持Andriod 1.6以上的版本。通常选择Build Target的编译版本一致。
. eclipse自动生存工程
如图:
在工程上右键 > Run As > Android Application
就会自动启动Android模拟器出现下图
这就代表这个程序成功运行。 但是为什么我们什么代码都没编写,连hello world都没写,程序就可以运行了呢?
这就是eclipse自动为我们生成了相应文件,可以说是个模板。
. eclipse生成目录详解
如上面的图片,eclipse自动生成了src、gen、Android 1.6和res四个文件夹
src文件夹详解:
src文件夹里存放的是我们的代码源文件,里面的HelloWorld.java就是新建工程时自动生成的一个Activity。点击HelloWorld.java, 看到如下代码
package com.android.zhang;import android.app.Activity;import android.os.Bundle;public class HelloWorld extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); }}
代码很简单,一个继承于Activity的HelloWorld类,然后复写了onCreate方法
Android 1.6 文件夹详解
这个文件夹下放置了
android.jar的jar文件包 包括了我们所需要的所以android提供的类
assets文件夹 用于存放一些文件(暂时还不懂)
res 文件夹详解
该文件夹下也是放置一些程序所需要用到的资源
res 下的drawable-hdpi、drawable-ldpi、drawable-mdpi 三个文件夹里面分别放置高、低、中 三种分辨率大小的图片,如这是因为现在的Android设备硬件参差不齐,分辨率大小不一,如果程序里的图片都有三种不同大小分辨率将更好的适用于不同的手机。
layout 下的main.xml 是布局文件,用于管理我们的UI,我们这个例子的main.xml就是HelloWorld这个Activity的布局文件,如下
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" ><TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" /></LinearLayout>
这个xml文件的根元素 LinearLayout 表明HelloWorld这个Activity是按线性布局排列的,类似的还有 TableLayout(表格布局)、RelativeLayout(关系布局)等
下面那行:
xmlns:android="http://schemas.android.com/apk/res/android"
是他的命名空间
三个属性:
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
属性 android:orientation 是排列方向,值"vertical"指明这个Activity是按垂直方向的线性排列的,如果值为"horizontal",则是水平方向线性排列。
属性 android:layout_width和android:layout_height分别是组件的宽度和高度,值"fill_parent"指填充整个父控件,值"wrap_content"指
LinearLayout的子元素TextView是个文本框,也就是我们运行这个程序时看到的Hello World,HelloWorld!
android:text="@string/hello"
指明这个文本框的文字是"@string/hello"来决定的
Values文件夹中的strings.xml中存放的是一些字符串常量
<?xml version="1.0" encoding="utf-8"?><resources> <string name="hello">Hello World, HelloWorld!</string> <string name="app_name">HelloWolrd</string></resources>
hello的值是"Hello World, HelloWorld!"
app_name 的值是 "HelloWorld"
gen 文件夹详解
gen 文件夹下的R.java是eclipse自动生成的,不要去修改
在res文件夹里放置的任何资源文件都会在R,javar中自动生成相应ID
如我们在res/中加入某些资源,例如一个图标,会在gen/下的R.java中生成一个ID,而assets下的资源将不会
/* AUTO-GENERATED FILE. DO NOT MODIFY. * * This class was automatically generated by the * aapt tool from the resource data it found. It * should not be modified by hand. */package com.android.zhang;public final class R { public static final class attr { } public static final class drawable { public static final int icon=0x7f020000; } 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; }}
如 public static final int icon=0x7f020000;
是res中 drawable-hdpi 中的icon.png生成ID 0x7f020000
这样做的好处是非常明显的,在我们编写代码时,可以直接通过这个类中对应的ID来引用相应的资源。 如在布局文件 main.xml中有行
android:text="@string/hello"
所以我们看到的程序的文本框中显示的就是strings.xml中hello的值
在strings.xml中
<string name="hello">Hello World, HelloWorld!</string>
hello的值是Hello World, HelloWorld!,所以我们看到的就是
的界面
AndroidManifest.xml 文件
AndroidManifest.xml是对整个应用程序进行相关的配置的
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.android.zhang" android:versionCode="1" android:versionName="1.0"> <uses-sdk android:minSdkVersion="4" /><application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".HelloWorld" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application></manifest>
根元素 manifest 有几个属性,分别是命名空间、程序的包名和版本号
<uses-sdk android:minSdkVersion="4" />
我们配置的时指定兼容的最低版本的SDK是4即Android 1.6
<application android:icon="@drawable/icon"
android:label="@string/app_name">
应用程序图标是drawable里面的icon.png
程序的Label是strings.xml里面的app_name,即HelloWorld
程序有几个Activity就要在这里配置几个activity元素
<activity android:name=".HelloWorld" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity>
这个Activity是包名com.android.zhang 下的 HelloWorld
这个Activity的Label是strings.xml里面的app_name,即HelloWorld
如果哪个Activity配置了<intent_filter>元素,则程序运行是会首先运行该Activity,就像java中的main函数一样
回过头来看整个程序
在HelloWorld.java中复写的onCreate函数里有句
setContentView(R.layout.main);
即设置这个Activity布局文件为layout里的main.xml
而在AndroidManifest.xml中为HelloWorld这个Activity配置为了<intent_filter>元素,并配置了程序的图标、程序的Label即这个程序的名字和HelloWorld这个Activity的Label。所以打开程序就会显示HelloWorld这个Activity和它的Label
而Activity--HelloWorld 的布局文件main.xml中配置了这个Activity的布局是垂直方向的线性布局,并有一个TextView,其值为strings.xml中的hello 即 "Hello World, HelloWorld!"
所以我们看到程序运行的情况会是
. 心得
之所以新建立的Android工程就可以运行并显示Hello World,是因为eclipse为我们自动生成了一个Android工程模板,包括一个Activity --- HelloWorld.java,布局文件----main.xml
还有strings.xml中有app_name 和hello,并在AndroidManifest.xml中都配置好了。虽然一句代码都没有编写,但我认识了一个Android工程中各个文件的作用,真正开始接触程序的编程了,笔记也写得开始混乱了,检查下去,还有太多要学习的
- Android入门学习笔记(三):第一个Android应用程序
- Android学习笔记(三):第一个应用程序
- Android学习笔记三:第一个应用程序的扩充
- Android学习笔记三:第一个应用程序的扩充
- Android学习笔记三:第一个应用程序的扩充
- Android学习笔记 开发入门(一)——建立第一个应用程序(上)
- Android学习笔记 开发入门(一)——建立第一个应用程序(下)
- Android学习笔记(三)-第一个Android应用HelloWorld
- android 学习笔记(三) 第一个Android应用HelloWorld
- 个人安卓学习笔记---第一个Android应用程序
- Android学习笔记二:第一个应用程序的深入说明
- Android学习笔记二:第一个应用程序的深入说明
- Android学习笔记二:第一个应用程序的深入说明
- Android学习笔记二:第一个应用程序的深入说明
- Android学习笔记二:第一个应用程序的深入说明
- android开发学习笔记(1)我的第一个android应用程序
- android第一个应用程序
- 第一个Android应用程序
- Python数据处理方式
- 如何制作成chm
- Opencv—CvvImage的使用(OpenCV2.2)
- ERP系统2011年8月7日更新内容
- 笑话
- Android入门学习笔记(三):第一个Android应用程序
- CSDN是个好地方
- 2-SAT——2.0(hdu3715 Go Deeper,The 2010 ACM-ICPC Asia Chengdu Regional Contest)
- 动态规划入门(二)DP 基本思想 具体实现 经典题目 POJ1088 POJ1163 POJ1050
- js在IE下面弹出打开和保存文件的对话框
- Windows编程(3)|SDK自定义图标
- MFC .。。CReBar 上添加工具栏背景
- 使用Mac OS X系统必须了解的10条命令
- <<高效程序员的45个习惯>>