第一次尝试翻译本书

       逛javaEye论坛时,无意中发现个拉人翻译书的帖子。哈,这注意不错。记得刚进大学的时候,看到有篇写大学期间应该干什么的文章就写了,大学期间最好能翻译上一两本书。虽然这次这个翻译不是我一个人去战斗,但也至少比没这样一个经历好吧。趁着兴致旺,试译了几段:

 

第二章

应用程序

Android中的应用程序是由manifest文件的内容定义的。每一个Android应用程序都会通过AndroidManifest.xml文件来声明它的Activity、切入点、通信层、权限和intent。以下四个基本building block组合构成了一个富Android应用程序: Activity:一个Android应用程序最基本的building block 

    Intent receiver:一个被动的对象加载器用来处理指定的任务

 Service:一个没有用户界面的后台处理程序

 Content Provider:一个基本的超类框架用来处理和存储数据

在本章,针对每一个block,我都会用一个有具体功能的示例来讲解。首先是Activity,它是一个单机Android应用程序的核心building block。获取Active 所有Android移动应用程序,至少在传统意义上讲,都是围绕在Activity周围运作的。如果你有在其它移动平台的开发经验,那么你会发现Android的Activity与BREW的applet和JavaMe的midlet很相似。当然,他们还是存在一些很重要的不同之处。

对比Android,BREW和JavaMe

一个BREW应用程序在绝大多数情况下,由一个单一的applet构成。该applet通过接收和发送事件同手机的其它部分通信。你可以将一个JavaMe应用程序看作是Midlet类的扩展,Midlet类已经实现了启动、停止、暂停、按键处理和其它手机程序互动的功能。一个JavaMe应用程序通常也是由一个单一的Midlet构成的。

一个Android应用程序可以有任意多个,通过AndroidManifest.xml文件向手机注册的ActivityAndroid的多Activity架构可以说是Android开发同其它平台开发最主要的区别了。单凭这一点,使得它更容易写模块化,条块分割的代码。在BREWJavaMe中,开发者实现的大部分功能都在Midletapplet的限定范围内。而在Android中,你也可以写一个Activitycontent handler, intent receiver,或者service来处理几乎任何东西。一旦你写了一个Activity来处理文本文件,您可以在今后所有你写的应用程序中,通过发送和接收intent指令来使用这个Activity。这并不是说,这种结构在BREWJava ME中是不可能的。它只是必须通过JavaCC++层来实现,或在BREW中,通过繁琐的扩展,而不是平稳地建立到应用程序框架中。

函数

就像Midlet那样,Activity通过调用一系列的函数同外部世界互动。基于这一点,你的Activity必须重写onCreate方法。其它你可能需要重写的方法有onStop, onPause, onResume, onKeyDown。这些方法可以让你控制住你那在Android中四处乱跳的Activity

默认情况下,通过Eclipse新建的Android应用程序会实现一个“Hello World”程序。我将向你展示如何从这样的一个基本的程序变到一个拥有完整功能的启动画面。

实现启动画面

如果你想把它当作你自己的Android应用程序的起点,或是你想遵循一种更被动的方式,你可以从www.apress.com的下载节点下载到这个启动画面示例的打包好的版本。正因为这是你的第一个实例,我会将它分解成一系列的小步骤慢慢讲解。但在以后的示例中,我不会再这么详细了。这一章应该是唯一一章读起来像初学者教程的章节了。

添加图片资源

首先你需要一张示例图片。我所用的“socially awkward” 可能无法赢得任何赞赏,但它确实揭示了一个现实:鲁莽的社交网络正不断地出现在移动空间中。为了添加这个新的资源,我把menu_background.jpg放在了res/drawable. 确保有一个新的ID被添加到了R.java.它看起来就像这样:

public static final int menu_background=0x7f020001;

这就是你现在添加图片到代码里的方式。在下一章涉及到用户交互的时候,我们还会回到这个方法上来。

创建一个XML布局文件

现在你已经有了一个图像资源,你可以把它添加到XML布局文件中来。这些文件保存在res/layout/目录中, 你现在应该已经有了一个main.xml文件.添加一个新的XML文件,起名为splash.xml,并且将main.xml中的内容拷贝到这个新建的文件中去。接着,如下面代码所示进行修改:
<ImageView

android:src=”@drawable/menu_background”

android:layout_width="fill_parent"

android:layout_height="fill_parent">

</ImageView>

使用AndroidXML布局对象简单而且直接。就像上面提到的,保存在/res路径下的资源可以通过@标记来引用,例如:android:src=”@drawable/menu_background”。另外,layout_widthlayout_height属性用来指定图像视图的尺寸。请确保你的布局文件已被添加到R.java中,它应该看起来像这样:

public static final int splash=0x7f030001;

展现启动画面

到目前为止,我们的启动画面已经定义好了,是展现它的时候了。你现在的Android程序所展示的还是main.xml布局,所以现在要转换一下,修改onCreate方法中的这句代码:

setContentView(R.layout.main); 变为:setContentView(R.layout.splash);

启动应用程序,观赏一下你的作品吧。如果出现什么错误,请检查一下图片是不是被正确地安放在了res/drawable文件夹中,布局文件是否引用了正确的文件名。

       不管质量怎样,今天收到了wiki账号,我有直接编辑的权限了。大伙如果想了解最新的翻译结果,请直接访问:Android Book

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值