Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2170243
  • 博文数量: 436
  • 博客积分: 9833
  • 博客等级: 中将
  • 技术积分: 5558
  • 用 户 组: 普通用户
  • 注册时间: 2010-09-29 10:27
文章存档

2013年(47)

2012年(79)

2011年(192)

2010年(118)

分类:

2011-03-31 00:09:53

一、本周计划内容

上周在网上搜索的时候无意中找到一个感觉较好的网站,上面用的android的版本也和我们所用的很相似,由于内容都是英文的,因此这周,我给我们小组每个人分配的任务是,每人将里面的一些段落进行翻译,也对android在最基础层面上有了一个更加深刻的认识。

这个网址除了对android进行一些系统的介绍之外,也介绍了android的开发,因此除了翻译文字的工作外,我们计划按照上面的步骤在自己的电脑上进行实验。

二、翻译内容

1.1  Andorid操作系统

Android是基于Linux的操作系统,它以Java为编程接口。它提一些供工具,例如:编辑器,调试器,装置模拟器还有它自己的Java虚拟机((Dalvik Virtual Machine – DVM)Androidgoole领导的开放手持设备联盟(Open Handset Alliance)开发

Android使用特殊的虚拟机,例如Dalvik Virtual MachineDalvik使用特殊的字节码。因此你不在Android上运行标准的Java字节码。Android 提供dx 工具,dx可以将 Java .class文件转换成 .dex 格式。Android应用软件通过“aapt”程序被打包进 .apk文件用来简化GoogleEclipse提供的Android Development Tools (ADT)Eclipse 是一个开放源代码的、基于 Java 的可扩展开发平台)。ADT自动执行从class文件到dex文件的转换并且在调度的时候创建apk

Android运用OpenGL函数库支持2-D3-D图形,也支持在SQLite数据库里进行数据存储。

每一个Android应用软件在它自己的进程中运行并且在调度时Android系统自动生成它自己的用户名/密码。因此这个应用与其他正在运行的应用隔离,并且使恶意的应用不能轻易的伤害到其他Android应用。

1.2  Android的重要组成部分

一个Android应用程序包含了以下部分:

Ø 活动 代表着一个Android应用程序的表示层,如用户看到的屏幕,。 一个Android应用程序可以有多个活动,并在应用程序运行时可以相互切换。

Ø 界面 - 一个活动的用户界面“android.view.View”自包含的代码包所建立的。界面的设计是由“android.view.ViewGroups”来控制的

Ø  - 执行后台任务不提供用户界面。 他们可以通过Android的通知框架通知用户。

Ø 内容供应商 -内容提供商通过提供的数据应用程序,一个应用程序可以与其他应用程序共享数据。 Android包含一个可提供的数据SQLite数据库, 

Ø  是异步消息,这些消息允许应用程序对其他服务或活动进行功能上的要求。一个应用程序可以直接调用一个服务或活动(明确意图),还可以为一个意图(隐含意图)申请在Android系统注册服务和应用程序。 例如,应用程序可以通过一个意图要求为联系人。 应用程序通过“IntentFilter”把自己注册到一个意图 意图是一个强的概念,因为它们允许创建松散耦合的应用程序。

Ø 广播接收器 接收系统消息和隐含意图,可用于反应系统中新变化的情况 一个应用程序可以注册为特定事件的广播接收器,当这个事件发生时,它便开始工作。

Android的其他部分 android代码包 Live Folders  Live Wallpapers   Live Folders可在主屏幕上显示任何数据资源,而无需启动任何相应的应用程序

1.3安全和许可

Android为某些工作定义某些许可。例如如果应用想要访问因特网,它必须在配置文件里定义它可能会用到的有关的许可。在安装一个Android应用时,使用者会得到一个屏幕来确认应用所必须的许可。

1.4. AndroidManifest.xml

一个Android的软件应用程序被描述为“AndroidManifest.xml”文件。这个文件必须声明所有活动、服务、广播接收器和应用软件提供商的目录。它也必须包含应用软件程序的要求权限。例如,如果应用程序需要网络访问,它必须要在这里被指定。“AndroidManifest.xml”可以被认为为一个Android应用程序作为部署描述。

“包”属性定义为下面Java原理的基础包。它作为Android市场必须是唯一的,只允许为一个specfic包应用一次。因此,好习惯是使用你的反向域名作为包的名字来避免与其他开发者碰撞。

android:版本名称”和“android:版本的代码”指定了你应用软件的版本。“版本名字”是使用者看见的,可以是任意字符串。“版本代码”必须是一个整数,Android市场使用这个代码判断你是否提供了一个更新的版本,触发已经安装了你的应用程序的驱动去更新。你通常以“1”开始,通过你是否roll-out一个你的应用程序新版本来增加这个值。

activity”定义为一个指定类型为"de.vogella.android.temperature.Convert"例子中的一个活动。For this class an intent filter is registered which defines that this activity is started ion the application starts (行动机器人:名字="android.intent.action.MAIN").这种定义(一类机器人:名字= " android.intent.category.LAUNCHER)defimes,这个应用程序添加到机器人装置的应用程序目录上。“@”价值涉及包含实际数值的资源文件。这样就可以很容易地提供不同的资源,例如字符串,颜色,图标,不同的装置,并使它容易翻译的应用。

AndroidManifest.xml”的“uses-sdk”部分定义了你的应用程序有效期内的最小SDK版本。这将阻止你的应用程序被安装在老SDK版本的装置上。

1.5  R.java,资源和资产

在目录文件“gen”下包括Android的项目产生价值。"R.java"是一个包含文件夹"res"参考文献的项目。这些资源在“res”目录下是有价值的,比如菜单、布局、图标、图片还有动画等。比如一个资源可以成为一张图片或者是一个可扩展文件都可以定义字符串。

如果你建立一个新的资源,相应的参考目录会自动建立在“R.java”。参考文献是静态的整型数据,Android系统提供方法连接相应的资源。比如使用文献id"R.string.yourString",方法就可以连接到一个字符串,使用getString方法也同样适用。请不要试着手动修改"R.java"

目录“res”里面包含被人所熟知的可以用作保存各种类型的数据的有结构的资源的Android平台目录"assets" 

JAVA里你可以通过AssetsManager (资产管理)和getAssets()的方法连接这些数据。

1.6 活动和布局

用户界面的活动是通过布局定义的。运行的布局实例是“android.view.View”。布局定义了用户界面元素、性质和排列方式。用户界面元素是基于"android.view.View"的。界面组是一个View A的子集,而且布局能够包括用户界面成分(Views)或者其他的布局(ViewGroups)。你不能深入地安置ViewGroups因为这会影响它的性能。

可以通过Java代码或XML定义一个布局。如果你不知道的内容之前,通常使用Java代码来生成的布局。例如,如果你的布局依赖于你从互联网上读到的内容。

基于XML的布局是通过定义在文件夹“//布局“的资源文件。该文件指定了视图组,视图,以及他们的关系和特定的布局及其属性。如果一个UI元素需要通过Java代码访问,你必须通过"android:id"属性给这个UI元素一个唯一的ID。要指定一个新的IDUI元素使用“@ +id/ yourvalue“。通过改变这个将创建和分配一个新的IDyourvalue“到相应的用户界面元素。在你的Java代码中,你以后就可以通过findViewByIdR.id.yourvalue)访问这些UI元素了。

通过XML定义布局通常是首选方法,因为这样分隔开来布局定义编程逻辑,并允许轻松定义从不同的设备不同的布局资源。您还可以混合这两种方法。

1.7. 活动和生命周期

操作系统控制应用的生命周期。任何时间Android系统都可能制止或者破坏你的应用。举个例子来说,可能因为一个来电Android系统就会制止或者破坏你的应用。Android系统规定一个活动的生命周期来连接先前定义的方法 。最重要的方法有:

onSaveInstanceState():如果一个活动被制止则访问。用来保存数据,如果活动重启可以再次保存它的声明。

onPause():如果一个活动结束总是被访问。可以用作释放资源或者保存数据。

onResume():如果一个活动重启则被访问。可以用作开始领域。

1.8环境 

这类android的目录提供连接Android系统的环境。它是应用环境的总体信息的界面。环境还提供getSystemService(允许接收不同的硬件部分的管理员项目)的方法.当活动和服务扩大这类"Context" 的时候你可以直接通过语境“this”进行连接。

三、实验练习

    1. 按照网上的步骤,我们建立了一个名为de.vogella.android.temperature的工程,在本次实验中,我们对之前练习中遇到的各种文件了一定的认识。本次实验我们要进行编辑的文本有Convert.javamain.xmlstrings.xml三个文件,如图1所示。

包结构及三个重点使用的文件

2. 编辑strings.xml文件

进入srings.xml编辑界面,首先在Resources上添加一些新的元素,为我们后面编辑另两个文件做铺垫。如图2为添加新元素的界面,在里面选择那类元素。图3是添加完毕后的元素列表。添加好后,点击下面的string.xml,我们会看到我们刚刚添加的元素的代码表示形式。

添加元素

元素列表

4 string.xml文件代码

3. 编辑main.xml文件

main.xml中我们可以编辑应用程序的布局,将里面的各个工具拖拽到Graphic Layout中的屏中;安置好所需工具后,接下来通过修改各个工具的属性来实现界面的设计,既可以通过分别右键单击工具,在属性上进行相应的操作,也可以通过编辑代码,来实现工具功能的设计。当然,通过鼠标进行工具属性的修改不仅在图形界面上有所显示,在代码中也有所显示,通过代码进行属性的编辑则更加直接一点。如图5,为完成好的图形界面;图6为相应的代码。

图形界面

6 main.xml代码

4. Convert.java代码

这个代码通过调用main.xml文件,并进行相应的交互设计,使整个应用可以得到良好的交互效果。由于对java编程不了解,因此将网上的代码拷贝了进来。如图7所示。

7 convert.xml文件

5. 运行

三个文件编辑修改好后,运行该工程。Android虚拟机打开后,会看到主页上新增一项temperature的工具,如图8,点击进入后,会出现如图9的界面,这就是我们在main中编辑的界面。接下来在文本框中输入一个数字,如图10所示,选择要进行那种转换,点击calculate按钮后,就会出现相应的转换结果了。

虚拟机主页工具

8 tempera应用界面

输入一个数字并选择转换方式

10 转换结果

阅读(878) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~