2011年2月12日星期六
利用春节难得的假期,学习了《Android开发入门指南》这本书,初步了解一下Android的开发模式与开发语言。做一些笔记,拾遗补漏。
1、首先是Android SDK的问题,不能再从http://developer.android.com/sdk/index.html上下载了,除非FQ,是从其他的网站上下载的。下载后有个SDK Manager.exe的文件,打开后是更新程序(或者叫做安装程序),更新一下SDK才可以使用。其他的好像和书上说的一样。
2、在创建Android程序之前,需要创建一个Android模拟器(AVD),用来调试运行程序(Android应用程序的扩展名是.apk)。
3、在Android SDK中提供了一个adb(Android Debug Bridge)命令行工具(在android-sdk/tools中),可以使用"adb shell"命令来连接上模拟器操作应用程序。
4、程序的基本架构是
- src/
- gen/
- res/
- AndroidManifest.xml
所有的资源都要放到对应的目录中,否则程序不会识别你的程序。Android程序在编译程序时会自动找到对应目录,编译资源。在开发Android应用程序多数时间是在和src目录下程序源文件与res目录下的XML描述文档打交道。
1)gen自动生成目录中存放着所有自动生成的文件,最关键的是R.java。所有Android程序中,都会有以R.java为名的这个文件。这个文件时自动生成的,在Eclipse环境中,会由ADT扩展包自动根据放入res目录的XML描述文件、图像、文件等资源,同步更新修改到R.java这个中介文件中。R.java中自动生成的R类,就像是个资源字典大全,包含了用户界面、图像、字符串等对应格式资源的标识符id。在开发Android应用程序时,很多时候会需要通过R类来调用资源。在编译应用程序的时候,编译器也会查看这个资源列表,在应用程序中没有使用到的资源就不会编译进去,为手机应用程序节省下不必要占用的空间。
2)res资源目录存放所有程序中用到的资源文件。资源文件指的是资料文件、图片,或编译时会被转换成程序一部分的XML说明文档。Android开发工具针对放在res不同字目录中的资源,采用不同的处理方式,在默认的res目录中有子目录layout和values。
a)layout页面布局目录,包含所有使用XML格式的界面说明文件。描述屏幕上的页面编排与使用的界面组件。XML界面描述文件描述的内容可以是整张屏幕,也可以是描述一部分界面(例如描述用来产生对话框的界面组件)。使用这些界面组件,应通过R.java中自动产生的R类来调用。
b)values参数值目录包含所有使用XML格式的参数值描述文件,可以在此添加一些额外的资源如字符串(很常用)、颜色、风格等,使用时也是通过R类来调用。
3)Android功能列表AndroidManifest.xml是Android程序的功能列表,每个应用程序都在这个文件中列出这个程序所提供的功能。当这个应用程序在系统上启动时,应用程序会提供系统诸如使用到的函数库(users-library)、支持的内容提供程序(ContentProvider)、可醋里的资料类型、实际运行的类、跨应用程序的信息等消息。在此文件中指定应用程序使用到的服务,当添加一个Activity类时,也需要先在此注册这个添加的Activity类。
5、所有Android中的界面组件都是由View类继承而来,Android提供非常丰富的界面组件,可分为3类:
- 显示界面类(例如文字、按钮、输入字段)
- 页面布局类(例如Layout、Tab)有LinearLayout(线性布局)、RelativeLayout(相对页面布局)等
- 状态提示类(例如进度条、等待圈)
6、Android应用程序在layout目录中的标签,大多数的属性前都有一个android:的前缀。Android界面组件的宽度、长度设置属性分别叫做android:layout_width、android:layout_height。两个设置为fill_parent的时候是填满整个上层组件,默认LinearLayout界面组件就会占满整个屏幕空间。LinearLayout具有android:orientation(页面走向)属性。在此填入vertical属性值,表示这个界面的页面布局是从上而下垂直地排列其包含的界面组件。
7、android.view.ViewGroup是各种布局配置和视图组件的基类。常见的实现有:
- LinearLayout(线性页面布局)
- FrameLayout(框架页面布局)
- TableLayout(表格页面布局)
- AbsoluteLayout(绝对位置页面布局)
- RelativeLayout(相对位置页面布局)
8、Android应用程序中的访问标识号很重要,使用界面组件,首先在XML中定义标识号属性,之后在程序中所有与这个界面组件有关的操作,都能根据android:id标识符号调用这个界面组件。android:id属性的内容比较特别:
@+id/height
@是提示XML解析器应该把后面的字符串解析成标识符号。+号代表将添加一个标识符好。"id/"表示这个标识符好会被归类在id下面,"height"是这个界面组件的id。以后的程序中,会使用R.id.height来取得这个界面组件。因此 @+id/height的意思就是创建一个名为height的标识符,可以通过这个标识符来控制所对应的界面组件。R类会自动配置一个地址给这个界面组件。
9、在Android应用程序中,不会直接使用XML文件来存储界面描述,而是通过Android开发工具自动将XML文件转换成资源文件。一旦应用程序要使用某个界面或者任何种类的资源,都是用索引来查询。
10、在R.java文件中,分别有"attr"(属性)、"drawable"(图片、图标)、"id"(标识符号)、"layout"(界面布局)、"string"(字符串)这几种资源类型。系统会生成对应的资源,并自动指定一个地址。