逛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文件向手机注册的Activity。Android的多Activity架构可以说是Android开发同其它平台开发最主要的区别了。单凭这一点,使得它更容易写模块化,条块分割的代码。在BREW和JavaMe中,开发者实现的大部分功能都在Midlet或applet的限定范围内。而在Android中,你也可以写一个Activity,content handler, intent receiver,或者service来处理几乎任何东西。一旦你写了一个Activity来处理文本文件,您可以在今后所有你写的应用程序中,通过发送和接收intent指令来使用这个Activity。这并不是说,这种结构在BREW或Java ME中是不可能的。它只是必须通过Java,C或C++层来实现,或在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>
使用Android的XML布局对象简单而且直接。就像上面提到的,保存在/res路径下的资源可以通过@标记来引用,例如:android:src=”@drawable/menu_background”。另外,layout_width和layout_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
分享到:
相关推荐
作者还建议,在第一次使用TensorFlow时,应该从源代码构建TensorFlow,这样做有助于理解TensorFlow系统的构建方式及其依赖的组件库。此外,亲自实践一些具体应用,不仅可以加深对TensorFlow系统行为的理解,还有助于...
第一次看到“逆向工程”这个词是在2001年的《机械工程学报》上的一篇文章中,主要是讲用三坐标测量仪测量产品中各个部件的三维尺寸并在计算机中快速建模、进而反推其设计思想和基本设计原则。第一次使用逆向工程工具...
记住,"失败是成功之母",每一次出错都是向正确答案靠近的一步。 总之,《笨办法学习Python》第三版是初学者理想的入门教材,它以清晰易懂的方式介绍了Python编程的核心概念,通过实践让学习者真正掌握这门语言。...
CruiseYoung提供的带有详细书签的电子书籍目录 ... 该资料是《Android基础教程》的源代码 对应的书籍资料见: ... 我还记得第一次使用Android时的情景:当时感觉它就像是一座超大型迷宫。有了这本书,入门就不会那么...
三位译者分工合作,不仅完成了翻译任务,还进行了多次校对,以确保翻译的准确性和可读性。 - **技术背景**:三位译者的详细介绍显示他们都是在各自领域内有着丰富经验的专家。周志明曾撰写过《深入理解Java虚拟机:...
4. 不断尝试:在完成第一本书后,作者立即开始了下一本的创作,表明了勇于尝试和持续创作的重要性。 5. 成功与学历无关:作者强调他没有接受过专门的写作教育,也没有任何相关学位,他的成功来自于坚持不懈地写作和...
杨浩,知名译者,大学讲师,从事机械和计算机方面的教学和研究多年,发表论文数篇,参编和翻译的图书多达20余部,还曾多次获得市部级奖项。近几年一直在跟踪.NET技术的发展,积极从事.NET技术文档和图书的翻译工作...
这项考试自1973年引入,历史上的通过率相对较高,且允许多次尝试机会,但大多数学生都希望在学位课程早期就能通过这一考试。考试内容主要涉及分析与代数等领域的知识,反映了数学系学生在大学期间应具备的基础素质。...
翻译方面,本书由众多译者分工合作翻译完成,涉及的章节根据不同的翻译者有所区分,而整个第一卷的校对工作则由郑广垣完成。这些细节说明了编译者们对提高翻译质量的重视,同时也体现了这本书的中文版在当时学术出版...
本书从第一版发布以来,伴随着C语言的发展经历了多次修订和更新。C语言最初是非正式的K&R标准,随后发展为1990 ISO/ANSI标准,再进一步演进到1999 ISO/ANSI标准,而《C Primer Plus》也一直不断地成熟和完善,形成了...
对于作者而言,通过网络公开资料和将书籍电子化是一次大胆的尝试。这种做法虽然起初受到质疑,但最终证明是一个明智的选择。它不仅让作者能够接受来自全球读者的反馈,改正错误,还为出版业带来了一种新的可能性,即...
1. 词法分析(Lexical Analysis):这是编译的第一个阶段,编译器需要识别出源代码中的词法单元(tokens),比如关键字、标识符、常量等。这一阶段通常由词法分析器(lexical analyzer)或扫描器(scanner)来完成。...
#### 第一章 引论 本章节主要介绍了编译原理的基础概念及其核心组成部分,旨在帮助学生理解编译过程的基本框架和技术要点。 ##### 重要术语解释 1. **编译程序**:是一种将源语言(通常是高级语言)编写的程序...
- **跨平台优势**:Java的一个重要特点是“一次编写,到处运行”。深入学习JVM可以帮助开发者更好地利用这一特性,提高程序的可移植性和灵活性。 - **技术发展前沿**:随着Java技术的不断进步,JVM也在不断地演进。...
- **第一部分:基本技术**:这一部分主要介绍了C++的基础知识和技术细节,例如构造函数、析构函数、复制构造函数等。 - **第二部分:面向对象的技术**:这部分内容更侧重于面向对象的设计思想,包括继承、多态性、...