时也是手机软硬件的连接层,提供了一个屏蔽层用于屏蔽硬件和上层软件。
(三)Andriod应用的构成和工作机制
对于一个Android应用程序来说,是由Activity、 Intent Receiver 、Service、Content Provider四部分组成,但并不是每一个Android应用程序都必须由这四部分组成。在应用程序中使用时,需要在配置文件AndroidMainfest.xml中进行配置。这个配置文件是每个Android应用程序所必需的,用于定义应用程序的组件、组件的功能以及必要条件等。
1. Activity
Activity是构成应用程序中最重要的构造块, 在Android应用程序中,几乎都是通过Activity来与用户进行交互,所以Activity主要负责的就是创建与用户进行交互的显示窗口,你可以在这些窗口里通过调用setContentView(View)方法来显示你自己的用户界面。
图2 Activity状态变换路径图[1]
(1)活动生命周期
活动(Activity)在系统中以活动栈的形式进行管理。当一个新的活动启动后,被放到了栈项,成为了运行活动,而新活动之前的活动在活动栈里总位于新活动之下,直到新的活动退出才重新回到前台。从图2 Activity状态转换路径图中可以看出,Activity有三个关键的循环:
1)活动的整个生命期:从首次调用onCreate(Bundle)开始,到最终调用onDestroyO结束。在onCreate()中进行所有初始化,在onDestroyO时进行清理工作,释放资源。
2)活动的可见生命期:从调用onStart()开始,到onStop()被调用为止。在这段时间内,即使活动不与用户进行交互,用户也可以在屏幕上看到它。在这两个方法调用之间,可以维护活动显示给用户的资源。onStart()和onStop()方法可以多次调用,因为活动随时可以在可见和隐藏之间进行转换。
3)活动的后台生命期:从调用onResume()开始,到onPause()被调用为止。在这段时间内活动处于其它所有活动之前,并与用户进行交互。一个活动可以不断在resumed状态和paused状态之间变换。
(2)活动之间的切换
Android使用了Intent类来实现活动之间的切换工作。Intent负责对应用中一次操作的动作、动作涉及的数据和附加数据进行描述。根据Intent的描述,负责找到对应的组件,将Intent传递给调用的组件并完成组件的调用。因此,Intent起着一种媒体中介的作用,专门提供组件互相调用的相关信息,实现调用者与被调用者之间的解耦。在应用中,我们可以以两种形式来使用Intent:直接Intent,指定了component属性的Intent,通过指定具体的组件类,通知应用启动对应的组件。间接Intent,没有指定comonent属性的Intent,则需要包含足够的信息,这样系统才能根据这些信息,在所有的可用组件中,确定满足此Intent的组件。
2. Intent Receiver
Intent Receivert是用于对外部事件的响应,当外部事件发生时,会使用NotificationManager通知用户。当一个Intent Receiver被触发时,系统会在需要的时候启动对应的应用程序。如在本系统中,当用户正在其它界面进行操作时,有好友发送消息过来,就会以通知的形式发送到当前界面的正上方来通知用户。各种应用还可以通过使用Context.broadcastIntent()将它们的Intent Receiver广播给其它的应用程序,实现应用之间的通讯。
3. Service
Service是提供连续信息的应用程序。它是运行于应用程序后台的服务,在用户进行其它活动的时候,这个服务将一直运行在基于Android平台的即时通讯系统的研究与实现后台直到用户停止该服务或服务运行结束。本系统客户端扩展功能的阅读器就是采用Service来进行设计和开发的,使用户可以边聊天边看书。
4. Content Provider
Content Provider应用程序能够将它们的数据保存到文件、SQL数据库和其它的存储设备中。当应用程序需要使用存储设备中的数据时,可以使用Content Provider来完成。使用Content Provider能够灵活的替换底层使用的存储设备,使开发者可以专著于应用逻辑的开发,不用考虑底层存储设备的细节,从而使应用系统具有良好的数据。
(四) Andriod手机平台控件研究
1.Android系统控件与自定义控件的比较研究
在Google Android 中给出了非常多的绚丽的控件,但是在某些时候需要的实现某些功能的时候,系统的控件显得有些笨拙和难以控制,如,在本系统中,本打算使用系统自带的控件TabLayout 显示频道,但是现在的过程中,发现,该控件的每一个Tab之间有一定距离的间隔,且每一个Tab上面的图片很难控制其显示的方式和显示的效果,因此该综合美观和操作性的基础上,决定不用该控件来显示频道切换界面。而才用笔者自定义的控件--TabHost ,此控件从需求上必须能弥补系统控件TabLayout 的不足,且能易于用户操作。
2. Android 自定义控件的实现的研究
在Google Android 移动平台中,自定义控件都大致可以分成三部分。第一,界面的实现;第二,功能的实现;第三,控件的调用。
(1)界面的实现。在Google Android 平台中所有的控件都是继承了View这个超类,所以在本软件自定义一个控件的时候也需要继承这个超类,但是有些情况下不需要继承这个超类而是继承它的子类,如基于Google Android 平台的手机电子书阅读器中,就继承了这个超类的子类ViewGroup,即:public class TabController extends ViewGroup{}。基于此我们就得到了本系统要实现的那个控件的最基本的那部分--界面的实现。
(2)功能的实现。要实现一个控件,让其能产生特定的效果,本系统需要自己来重写父类某些甚至是全部的构造函数,如在基于Google Android 平台的电子书阅读器中,笔者就重写了
protected void onLayout(boolean changed, int l, int t, int r, int b) {
.........
}
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
..........
}
protected void onFinishInflate() {
............
}
等方法。在方法中实现所需的功能,这样一个自定义控件就好了。
(3)控件的调用。在Android 系统中,控件的调用非常的方便,如系统控件TextView,其调用方式如下:
TextView>
但是当使用自定义控件的时候,其调用方式就与其有很大的区别。在自定义控件中,其调用的形式是通过命名空间的形式来进行调用的。如,在基于Google Android 移动平台的手机电子书阅读器中,调用自定义控件的方式如下:
.......
>
com.baina.viewtools.TabController>
二、手机电子阅读器需求分析
为了开发出真正满足用户需求的软件产品,需要对开发产品做出需求分析。对软件的需求的合理把握是软件开发周期中非常重要的一个环节,本章将对手机阅读器作较为全面的需求分析。
(一)概述
随着手机功能不断增强,手机阅读器已成为智能手机重要软件之一。开发一款符合广大用户需求的手机阅读器有很好的市场前景和意义。
本软件的目标是开发一款基于Android平台符合用户使用需求的手机电子书阅读器。本电子书阅读器支持txt格式的文件。用户可以通过电子书阅读器从图书库选择自己喜爱的书籍,新建分类列表,阅读书籍,添加书签,字体设置,更换主题等。本软件具有美观简洁便于用户使用的触摸界面,这也是Android操作系统不同于传统Windows Mobile和Symbian系统上应用软件的优势之一。
(二)手机阅读器功能需求
作为Android平台上开发的应用软件,它具有与用户交互的界面,界面简洁美观易于操作。因此,对手机阅读器的功能规定可以从手机阅读器的界面来划分
上一篇:_Android手机防火墙终极版1
下一篇:试论APP广告在手机中的应用