没有合适的资源?快使用搜索试试~ 我知道了~
首页android笔记全集
android笔记全集
需积分: 27 158 浏览量
更新于2023-05-21
评论
收藏 1.83MB PDF 举报
android笔记全集android笔记全集android笔记全集android笔记全集android笔记全集android笔记全集android笔记全集android笔记全集android笔记全集android笔记全集android笔记全集android笔记全集android笔记全集android笔记全集android笔记全集
资源详情
资源评论
资源推荐

踏莎寻·紫韵 Android
最后修改日期:2012 年 2 月 6 日星期一 16 时 27 分 21 秒
Page1
踏
踏
踏
莎
莎
莎
寻
寻
寻
·
·
·
紫
紫
紫
韵
韵
韵
之 Android
Android 总览:
第一章 基础开发
第二章 多媒体开发
第三章 高级进阶
序:
作品名称:踏莎寻·紫韵 之 Android
开始日期:2011 年 9 月 23 日星期五 13 时 3 分 28 秒
注:
1. 本书一些地方为了讲明白知识,说法可能不严谨,但主旨是,希望帮助您理解问题。
2. 本书并不是一个入门书籍,而只是将作者本人的学习经验写出。本书中一些知识点参考
自其他书籍、博客,版权归原作者所有。
3. 作者本人是一个程序员,所以本套书籍所有的知识都是围绕编程展开的。所以对于计算
机网络、多媒体等部分的内容不会过于深入讲解。
4. 本人水品有限,如果有错误之处,请您联系给予批评。
5. 本套书籍会不定时的更新、修改书中的错误,所以,您手中的可能不是最新版的,因此,
不要对我们踏莎寻失望,请:“相信品牌的力量”。
6. 您可以留着自己看,但是请不要往“百度文库”等地方上传,然后赚取利益。这是对作
者的不尊重,已经侵犯了作者的作品“发表权”。
联系方式:1021299802@qq.com
第一部分 基础开发
知识结构:
第一章 基础入门
第二章 页面控件
第三章 数据存取
第四章 网络编程
第五章 Android 组件

踏莎寻·紫韵 Android
最后修改日期:2012 年 2 月 6 日星期一 16 时 27 分 21 秒
Page2
第一章 基础入门
概述
Android 英文含义为: 男性机器人,中文名称为安卓。
Android 是 Google 公司的产品。它是一个运行在 Linux 操作系统内核(kernel) 上的开放
手机平台(即开放源代码) 的操作系统。
Android 系统可以运行在手机、平板电脑等设备上。
在手机设备中,Android 操作系统的地位与 WindowsMobile、Symbian 等其它手机操作
系统处在同一级别。 常见的智能手机操作系统有:Symbian, Windows Mobile, RIM
BlackBerry, Android, iPhone, Java/J2ME。
Google 公司在 Android 系统中内置了很多应用软件,如打电话、发短信软件。
目前,Android 系统中运行的应用程序都是使用 Java 程序语言来编写。
提示:
Android 开发属于客户端开发,JavaEE 开发属于服务器端开发。
系统架构
Android 的系统架构和其他操作系统一样,采用了分层的架构。Android 操作系统被分为四
个层次,每一层都是为上层服务,各层次由内向外依次为:
|- Linux Kernel 层
|- Libraries和 Android Runtime 层
|- application framework 层
|- applications 层
提示:此图可放大后观看。

踏莎寻·紫韵 Android
最后修改日期:2012 年 2 月 6 日星期一 16 时 27 分 21 秒
Page3
Linux Kernel 层:
|- 在 linux 内核层中提供的各种驱动和管理程序都是由 C/C++语言编写的,这些程序为
Libraries 和 Android Runtime 层的程序提供服务。
Libraries 和 Android Runtime 层:
|- Libraries(库) :Android 包含一些 C/C++ 库,这些库能被 Android 系统中不同的组件
使用。比如应用程序框架层中的框架会通过 JNI 技术调用 Libraries 提供的函数库:
|- FreeType 用于位图(bitmap)和矢量(vector)字体显示。
|- SQLite 是一个在手机等移动设备中通用的关系型数据库引擎。
|- WebKit/LibWebCore 是 Android 中内置的 Web 浏览器引擎。
|- Android Runtime (Android 运行环境):
|- Android 运行环境又分为两部分:核心库和 Dalvik
虚拟机。
|- 核心库中提供了 JavaSE 核心类库的大多数类(但并不是全部,如 Android 不支持
JavaSE 的 Swing 编程)。
|- Dalvik 是 Google 公司自己设计的用于 Android 平台的 Java 虚拟机。Android 系统
中的应用程序是运行在 Android 自身的 Dalvik 虚拟机上的,而不是运行在 Java VM 之上。
Dalvik 虚拟机:
|- Dalvik 虚拟机中执行的同样是字节码文件。但字节码文件的后缀名为 .dex 。
|- dex 格式是专为 Dalvik 设计的一种压缩格式,其针对小内存使用做了优化,适 合 内存
和处理器速度有限的系统。
|- dex 文件格式可以减少整体文件尺寸,提高 I/O 操作的类查找速度。
|- odex 是为了在运行过程中进一步提高性能,对
dex 文件的进一步优化。
|- Dalvik 虚拟机依赖于 Linux 内核的一些功能,比如线程机制和底层内存管理机制。
|- 在 Android 系统中可以同时运行多个应用程序,每个应用程序都会开启一个独立的进程,
在每个进程中有一个 Dalvik 虚拟机的实例,应用程序只能在它自己的 Dalvik VM 实例中运
行。 应用程序占据独立的进程可以防止在某个虚拟机崩溃的时候导致 Android 系统内的所
有程序都被关闭。
资料:
Dalvik 基于 CPU 中的寄存器,而 Java VM 基于内存中的栈。基于寄存器的虚拟机对于更
大的程序来说,在它们编译的时候,花费的时间更短。
Dex 文件的产生:
|- 首先,使用 Java 语言编写源文件,并将源文件编译生成.class 文件。
|- 然后,使用 Android SDK 中的 dx 工具把编译后得到的多个.class 文件转换为一个 jar 文
件,然后 dx 工具会自动的再将 jar 文件优化压缩为一个.dex 文件。
|- dex 是 Dalvik VM executes 的缩写,即 Android Dalvik 执行程序,它是 Dalvik 的字节
码。
application framework 层:
|- 提供使用 Java 编写的各种框架,以供应用程序员在程序中调用,本层中的代码由 Java 语
言编写。

踏莎寻·紫韵 Android
最后修改日期:2012 年 2 月 6 日星期一 16 时 27 分 21 秒
Page4
applications 层:
|- 此层中的应用程序是由应用程序员编写或系统内置的。
Android 的其他特性:
|- 集成的浏览器 基于开源的 WebKit 引擎。
|- 优化的图形库 基于 OpenGL ES 1.0 定制的 2D/3D 图形库。
|- SQLite 数据库用作结构化的数据存储。
|- 多媒体支持 包括常见的音频、视频和静态图像格式。
四大组件
Android 中提供了四大组件:Activity、BroadcastReceiver、ContentProvider、Service。
活动(Activity):
在 Android 中,一个 Activity 就是一个用户界面。Activity 和 HTML、JSP 文件类似,代表一
个“视图” 视图用于将信息通过“控件”显示给用户看。在 Activity 中可以添加各种各样
的控件(如按钮、文本框等)。
各种语言开发的 GUI 应用程序都是由多个视图组成,程序会在多个视图之间来回的跳转。
视图之间还可以通过传递参数和获取返回值的方式进行数据的交互。在 Android 中也可以实
现多个 Activity 之间的切换、数据传递。
广播接收者(BroadcastReceiver):
在 Android 系统中,当用户手机接到外界的电话、短信的时候,系统内部就会自动产生相应
的广播。然后广播将会被系统发送给需要此广播的应用软件。
广播接收者,是 应用程序中用来接收广播的一个组件。广播既可以使系统发出的,也可以是
当前或者其他应用程序发出的。一个应用程序内部可以定义多个广播接收者。当系统发送广
播时,每个应用程序的广播接收者都会查看该广播是否是其所需要的,若是,则广播接收者
将会接收该广播。
由于在系统内置的电话和短信的软件中,就定义了广播接收者,所以,当用户手机接到外界
的电话、短信时这两个软件会接收到系统广播。软件接到广播后,就可以做出相应的操作。
比如短信软件会提示用户有新短信到来等。
其实,系统发出的广播任何有权限的软件都可以接收到。
只要在用户开发的软件中定义了一个用来“接收短信”的广播接收者后,当手机来短信时,
用户开发的软件和系统内置的短信软件都会接收到系统的广播。
广播接收者接收广播时是有优先级的,优先级高的接收者会先接到广播。
先接到广播的应用程序,可以将广播给拦截下来。 从而使其他程序无法获得系统的广播。
垃圾短信过滤器就是利用了广播接收者的优先级将短息拦截下来,使系统内置的短信软件无
法接到系统广播,以此来达到屏蔽垃圾短信的目的。
内容提供者(ContentProvider):

踏莎寻·紫韵 Android
最后修改日期:2012 年 2 月 6 日星期一 16 时 27 分 21 秒
Page5
在 Android 中应用程序的数据可以保存在文件或 SQLite 数据库中。
数据对于每个应用程序来说都应该是私有的。应用程序 A 若想访问应用程序 B 的数据,则
必须要经过 B 的同意。
退一步说,若是应用 B 允许应用 A 直接通过 IO 等方式操作应用 B 的数据,那么应用 B 的
数据的安全性就大大降低了。若应用 A 是个恶意程序,此时它会利用这个特点胡乱修改应
用 B 的数据,这是绝对不允许的。
因此若需要在程序 A 和 B 之间进行数据的交换,则就需要同时运行 A 和 B,然后再交换数
据。这样一来,A 所进行的操作都会被 B 所“看”到,B 也可以对 A 所进行的操作进行限
制。
然而每个应用程序都是运行在自己的进程中,当应用 A 需要访问应用 B 的数据时,数据就
需要在不同的虚拟机之间传递。这样操作起来可能就很困难。
此时可以使用内容提供者,它能在不同的应用程序之间方便的传递数据。
如:手机中的通讯录也是一个应用程序,有时候需要在
用户程序中获取通讯录的数据,此 时
就可以使用内容提供者。 反过来,当用户程序需要向外界提供数据的时候,也可以通过内
容提供者来完成。
服务(Service):
与 PC 机上的 Window 操作系统一样,在 Android 中也存在服务。Android 中的服务主要用于
保证耗时的操作正常执行完成。服务是没有界面的,它运行在程序的后台。
通常,应用程序中一些耗时的操作会被放置在一个线程中运行。 虽然线程可以在四大组件
中的任何一个组件中启动,但是在一些特殊的应用场景下,线程就必须要在服务中启动。
若线程在 Activity、广播接收者、内容提供者中启动,当 Activity 被关闭、广播接收者处理
完广播或者内容提供者提供完数据后,他们三者就会被销毁。 虽然他们销毁后不会立刻导
致在其内部开启的线程被终止,但是在系统内存不足时,虚拟机就会回收那些没有引用的线
程对象。若那时线程并没有执行完毕,则就会导致无法预计的错误。
比如:音乐播放器通常需要后台播放,若在 Activity 中开启播放音乐的线程,那么当 Activity
被关闭且系统内存不足时,音乐播放可能就会停止了。
服务的开启和关闭可以由程序控制,由 于 服务没有用户界面、生命周期长,因此在其内部开
启的线程不会被回收掉。
扩展类库
android 提供一些扩展的 JAVA 类库,类库分为若干个包,每个包中包含若干个类。
android.app :提供高层的程序模型、提供基本的运行环境。
android.content :包含各种的对设备上的数据进行访问和发布的类。
android.database :通过内容提供者浏览和操作数据库。
android.graphics :底层的图形库,包含画布,颜色过滤,点,矩形,可以将他们直接绘制
到屏幕上。
android.location :定位和相关服务的类。
剩余321页未读,继续阅读












安全验证
文档复制为VIP权益,开通VIP直接复制

评论0