`
yld387xs
  • 浏览: 15029 次
最近访客 更多访客>>
社区版块
存档分类
最新评论

Hello Android 第三版 (二)

阅读更多

Hello Android 第三版 (二)
2010年09月08日
  第二章框架
  2.1 框架图
  
  Linux内核
  Android 的核心系统服务依赖于 Linux 2.6 内核,如安全性,内存管理,进程管理,网络协议栈和驱动模型。 Linux 内核也同时作为硬件和软件栈之间的抽象层。
  原生库(Native Library)
  在Linux内核之上的是Android的原生库,这些库均采用C或者C++编写的,与硬件结合非常紧密。其中重要的原生库主要有:
  Surface Manager:对显示子系统的管理,类似于Vista或Compiz的窗体管理器,但是比这些简单得多。
  2D和3G Graphics:在Android中,单一的用户界面均可由2D或者3D的元素组成。提供2D和3D方面的渲染和处理。比如OpenGL等。
  Media Codecs:Android提供了对大部分主流的音视频的编解码功能。
  SQL数据库:在Android中,提供了一个轻量级的SQLite数据库引擎,这个数据库同样在FireFox和苹果的iPhone中使用。主要完成数据的持久化存储。
  Browser engine:为了更快速的显示HTML内容,Android中使用了WebKit库。
  系统运行库
  系统运行库主要由Dalvik虚拟机和Java核心库组成。
  应用程序框架
  活动管理器(Activity Manager):控制应用程序的生命周期并提供常用的导航回退功能。
  内容提供器(Content providers):使得应用程序可以访问另一个应用程序的数据(如联系人数据库),或者共享它们自己的数据。
  资源管理器(Resource manager):提供非代码资源的访问,如本地字符串,图形,和布局文件。
  位置管理器(Location manager):任何一部Android操作系统的手机均能够识别所处的位置。
  通知管理器(Notification manager):使得应用程序可以在状态栏中显示自定义的提示信息。
  应用程序和widgets
  这是整个系统架构的最高层,主要包括拨打电话、发送邮件、联系人管理、web浏览等等用户经常使用的应用程序和小工具。
  2.2 活动的生命周期及转换
  
  每一个活动(Activity)都处于某一个状态,对于开发者来说,是无法控制其应用程序处于某一个状态的,这些均由系统来完成。但是当一个活动的状态发生改变的时候,开发者可以通过调用onXX()的方法获取到相关的通知信息。
  在实现Activity类的时候,通过覆盖(override)这些方法即可在你需要处理的时候来调用。
  onCreate:当活动第一次启动的时候,触发该方法,可以在此时完成活动的初始化工作。onCreate方法有一个参数,该参数可以为空(null),也可以是之前调用onSaveInstanceState()方法保存的状态信息。
  onStart:该方法的触发表示所属活动将被展现给用户。
  onResume:当一个活动和用户发生交互的时候,触发该方法。
  onPause:当一个正在前台运行的活动因为其他的活动需要前台运行而转入后台运行的时候,触发该方法。这时候需要将活动的状态持久化,比如正在编辑的数据库记录等。
  onStop:当一个活动不再需要展示给用户的时候,触发该方法。如果内存紧张,系统会直接结束这个活动,而不会触发onStop方法。
  onRestart:当处于停止状态的活动需要再次展现给用户的时候,触发该方法。
  onDestroy:当活动销毁的时候,触发该方法。和onStop方法一样,如果内存紧张,系统会直接结束这个活动而不会触发该方法。
  onSaveInstanceState:系统调用该方法,允许活动保存之前的状态,比如说在一串字符串中的光标所处的位置等。通常情况下,开发者不需要重写覆盖该方法,在默认的实现中,已经提供了自动保存活动所涉及到的用户界面组件的所有状态信息。
  活动如果没有在前台运行,都将被停止或者Linux管理进程为了给新的活动预留足够的存储空间而随时结束这些活动。因此对于开发者来说,在设计应用程序的时候,必须时刻牢记这一原则。在一些情况下,onPause方法或许是活动触发的最后的方法,因此开发者需要在这个时候保存需要保存的信息。
  2.3 组件
  在Android系统中,提供了很多重要的组件,其中对于开发人员来说,最重要的主要有活动(activites)、意图(intents)、service(服务)、内容提供器(content providers)。
  活动(activities)
  活动简单的说就是一个用户界面。应用程序可以由多个用户界面组成,分别对应不同的阶段。
  意图(intents)
  Intent是描述某一个操作的机制,比如说获取一张照片。在Android系统中,几乎所有的工作都通过Intent来完成,因此对于开发者来说,需要经常与Intent打交道。
  服务(services)
  服务是运行在后台,不与用户直接交互的程序,比如unix中的守护进程。比如音乐播放器,用户希望通过一个活动(activity)开始播放音乐,然后可以运行其他的软件,而不用关闭正在播放的音乐。
  内容提供器(Content provider)
  内容提供器是一组封装了读写方法的数据集合。采用这种方式能更好的在不同的应用程序之间共享全局数据。
  2.4 资源
  资源是指本地化的字符串、位图、或其他的非程序代码的东西。在编译应用的时候,这些资源将被编译到应用程序中。
  2.5 安全性
  由于Android是基于Linux操作系统的,因此其应用程序的运行管理方式与Linux一样,每一个应用程序均运行在自身所属的Linux进程空间里面。硬件平台禁止进程访问其他进程的内存空间。另外,每一个应用程序都会标注上一个特定的用户编号,它所创建的任何文件都不能被其他的应用程序访问。
  另外,访问临界操作会受到严格的控制,必须在androidmanifest.xml文件中进行申请。安装应用的时候,包管理器(package manager)根据申请进行授权。下面是一些特别重要的权限:
  INTERNET:访问互联网。
  READ_CONTACTS:读取用户联系人数据
  WRITE_CONTACTS:写用户联系人数据 RECEIVE_SMS:监控接收到的文字信息
  ACCESS_COARSE_LOCATION:调用初级定位器,比如wifi
  ACCESS_FINE_LOCATION:调用精确定位器,比如GPS
  例如接收短信的监控,需要做如下的配置:
  
  
  
分享到:
评论

相关推荐

    Hello Android 第三版

    Hello Android第三版,很好的英文原版教程

    Hello Android 第三版 源代码

    Hello Android 第三版 源代码

    Hello Android 第三版(英文)

    Hello Android 第三版(英文),很不错的书籍。

    HelloAndroid第三版(翻译到第七章)

    HelloAndroid第三版(翻译到第七章),收集于网络,整理成一个PDF,感觉不错,供给大家分享

    Hello Android 第三版 附源码

    Android开发入门教材:Hello Android -- Introducing Google's Mobile Development Platform Third Edition 附带源代码

    Hello, Android 3rd第三版

    Hello, Android 3rd Edition, 第三版,覆盖android2.2,入门经典

    android 基础教程(第三版)配套源码

    Pragmatic.Hello.Android.3rd.Edition.Jul.2010 android 基础教程第三版 配套源码

    Hello Android经典游戏开发书籍(包含源代码)

    附件是hello android 第三版,想想一本书出到第三版相当的经典,基于android2.2,完全讲解一个Suduku游戏的开发和每段代码的功能,附送源代码。

    Hello,Android

    Hello,Android 第三版,英文

    hello_android_v3

    hello android v3第三版的pdf和对应的源码

    hello_android_v3_eng

    hello android的英文版第三版,适合初学者入门学习。

    Android实战(第三版)英文电子版

    Android in Action, Third Edition takes you far beyond "Hello Android." You'll master the SDK, build WebKit apps using HTML 5, and even learn to extend or replace Android's built-in features....

    中文版Android程序员向导

    第三章 下载和安装Android SDK 第四章 浏览Android SDK 第五章Android程序:Hello World! 第六章 使用命令行工具和Android模拟器 第七章 使用Intents 和电话拨号盘 第八章 列表,菜单和其它Views 第九章 使用手机的...

    中文版Android程序员向导.pdf

    第三章 下载和安装 Android SDK 第四章 浏览 Android SDK . 第五章 Android 程序: Hello World! 第六章 使用命令行工具和 Android 模拟器 第七章 使用 Intents 和电话拨号盘 第八章 列表,菜单和其它 Views 第九...

    android开发揭秘PDF

    第三部分 实例篇 第10章 Android应用开发 实例 10.1 情境模式 10.2 文件管理器 10.3 通讯录 10.4 音乐播放器 10.5 天气预报 10.6 个人地图 10.7 Widget日历 10.8 小结 第11 章Android游戏开发实例 11.1 手机游戏...

    Google Android SDK开发范例大全(第3版)part2

     2.2 创建第一个Android项目(Hello Android!)  2.3 Android应用程序架构——从此开始  2.4 可视化的界面开发工具  2.5 部署应用程序到Android手机  第3章 用户人机界面  3.1 更改与显示文字标签  3.2 ...

    Android程序员入门(中文版)

    第三章 下载和安装Android SDK 第四章15 Android示例 Android的几个示例 Android工具 Android APIs 第五章Android程序:Hello World! 21 第六章 使用命令行工具和Android模拟器 35 第七章 使用Intents 和...

    中文版Android程序员入门

    第三章 下载和安装Android SDK 10 下载和安装Android SDK - 第三章(1) 10 下载Android SDK - 第三章(2) 10 为Eclipse配置Android Plugin - 第三章(3) 12 第四章 浏览Android SDK 14 浏览Android SDK - 第四章...

    Android开发案例驱动教程 配套代码

    3.1.3 运行HelloAndroid 18 3.1.4 Android工程目录 19 3.1.5 AndroidManifest.xml文件 21 3.2 Android中的组件介绍 22 3.3 使用Android SDK帮助 23 3.3.1 Android SDK API文档 23 3.3.2 Android SDK开发指南 ...

    Android应用开发揭秘pdf高清版

    第三部分 实例篇 第10章 Android应用开发 实例 10.1 情境模式 10.2 文件管理器 10.3 通讯录 10.4 音乐播放器 10.5 天气预报 10.6 个人地图 10.7 Widget日历 10.8 小结 第11 章Android游戏开发实例 11.1 手机游戏...

Global site tag (gtag.js) - Google Analytics