先说一下,我的开发环境为Eclipse 3.7.1 + Android SDK + Android 1.5(API level3)

Android最大的一个特点,就是用xml文件来配置,这个演习了Java的特点。所以,理解Android程序,同时需要理解xml文件。

我们写程序,需要关注AndroidManifest.xml,和res/layout下的xml文件以及res/value下的xml文件。

首先看AndroidManifest.xml,我的程序的AndroidManifest.xml如下:

 <?xml version="1.0" encoding="utf-8"?>   说明了版本号,字符集,世界上都有哪些字符集,可以网上去查。
<manifest package="Workshop.english.englishwords"
android:versionCode="1" 2-4 说明了package,C++中习惯叫命名空间,其实差不多一个意思。
android:versionName="1.0" xmlns:android="http://schemas.android.com/apk/res/android"> <uses-sdk android:minSdkVersion="3" /> 说明了SDK的版本是3,因为我选择是Android 1.5,所以这里就是3。比较新的是Android 4.0.3,对应的level是15.这个是在创建应用的时候选择的。 <application
android:icon="@drawable/ic_launcher" 说明了应用在Android桌面中显示的图标,显示的图标在res/drawable目录下的ic_lancher.png,这个可以自己改,但是名字必须是drawable目录下的。
android:label="@string/app_name" > 说明了应用程序显示的名字,lable标签,对应的app_name在res/values目录下的strings.xml中可以找到。

11-28, 列举了三个Activity, 三个Activity对应了三个类名,这里必须是这样的格式,我曾经试图将前缀“.”去掉,结果报错。感觉这个“.”有点像目录中当前目录的标识,这里标识的是当前命名空间。第一个Activity和另两个不同,最显著的是intent-filter段,line15和17表明这是应用启动的第一个Activity,是不是有点C语言中Main函数的味道?你也可以理解为应用程序的入口。每一个应用至少有一个Activity被定义为MAIN. 注意到另外两个Activity没有intent-filter,其实是可以有的,只是这里我的程序中用不着。关于intent-filter,网上也有比较详细的描述,暂时这里也不详细介绍了。我也会在后面总结一下,因为这可以专门的当作一个topic,包含了很丰富的内容

         <activity
android:name=".EnglishWordsActivity"
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
android:name=".UnitListAdapter"> </activity> <activity
android:name=".WordActivity">
</activity> </application> </manifest>

首先来说说这个文件有啥用。Manifest, 我不知道翻译成中文咋说,只能意会。写Java程序的,对这个词语并不陌生。可以看作一个类似于清单说明一样的东西。大家都有过网购的经验,对于产品的包装,会有一个清单,说明了这个包裹里头有些啥。这里Manifest其实大致也是这个意思。

这个xml文件,其实就是描述了我们的应用程序有些啥,当然还有其他的比如运行环境的说明。

需要指出的是,AndroidManifest.xml基本上是自动生成的,当然了,我们也可以去编辑它。但是编辑的时候必须小心,编辑每一个元素都需要弄清楚他的意义,否则,很容易导致出错。这个我觉得是Android的一个对于新手不太好的地方。真是因为这个原因,我这个文件详细的说明了一下。偷偷说一下,我吃过亏。

最新文章

  1. 希尔伯特矩阵(Hilbert matrix)
  2. 第2月第25天 BlocksKit
  3. JS: How to detect my browser version and operating system using JavaScript?
  4. 修复VS,恢复初始状态
  5. [C++] Running time and Integer to String
  6. Java学习第一天
  7. linux下使用ffmpeg将amr转成mp3
  8. 解答WPF中ComboBox SelectedItem Binding不上的Bug
  9. 给sqlserver配置内存参数
  10. 你绝不能错过的效率神器 —— Alfred
  11. JAVA中的集合与排序
  12. 简易 (I/O)版本通讯录
  13. 三十天学不会TCP,UDP/IP网络编程 - RST的用法
  14. Django 使用mysql 创建项目
  15. nginx安装以及调优
  16. 【洛谷P1052【NOIP2005提高T2】】过河
  17. BZOJ2330或洛谷3275 [SCOI2011]糖果
  18. BUG(1):一个关于指针的bug
  19. linux服务器账号密码正确无法登录
  20. Python+Django(Python Web项目初体验)

热门文章

  1. zoj 2562 反素数
  2. solr学习0
  3. Scrapy学习-7-数据存储至数据库
  4. Day 6 Linux基础之正文处理、vi编辑和系统初始化和服务
  5. Oracle的memory_max_target和memory_target修改和ORA-00845: MEMORY_TARGET not supported on this system错误解决
  6. 快速掌握RabbitMQ(三)——消息确认、持久化、优先级的C#实现
  7. 马蜂窝ABTest多层分流系统的设计与实现
  8. Java并发编程,Condition的await和signal等待通知机制
  9. Liunx 下Redis 的安装
  10. Nginx常用命令(启动/重启/停止/测试配置文件/重新加载配置文件)