精通Android3学习笔记(一)基础知识

来源:互联网 发布:什么叫淘宝流量 编辑:程序博客网 时间:2024/05/02 05:05

1、Android软件栈的总体结构


  • 用户应用程序
  • JAVA SDK(活动/服务、UI/图形/视图、资源/ContentProvider、电话/照相机、多媒体、SQLite数据库、HTTP/连接、Java SE/Java Apache)
  • Dalvik VM虚拟机
  • 核心C库(媒体、SQLite、OpenGL、WebKit、FreeType、图形)
  • LINUX内核(设备驱动程序、资源访问、电源管理、操作系统)
2、Dalvik VM
Dalvik VM虚拟机是Google的用于移动设备的Android平台的一个主要部件,Android中最终的可执行代码不是基于Java字节码,而是基于.dex文件。无法直接执行Java字节码,必须首先得到Java类文件,然后将它们转换为可链接的.dex文件。
  • 早期版本中删除了JIT(Just-In-Time)编译器,在2.3版本又添加了JIT,原因为可以提高原始性能;
  • 使用寄存器而不是使用栈作为主要数据存储单元,这样可以将指令减少到30%;
  • 每个应用程序在独立的Dalvik VM虚拟机运行;
  • 是Android平台的入口,应用程序通过Dalvik VM访问核心库;
3、Android SDK
用于在Android上开发最终用户应用程序的高级Android Java API。
  • Android模拟器(ADT):Android Development Tools,模拟器不能模拟USB连接、照相机、视频采集、耳机、电池、蓝牙、WiFi、NFC和OpenGL ES 2.0。Android模拟器使用QEMU的开源“处理器模拟器”技术模拟CPU,支持在一个操作系统上模拟另一个操作系统,而不用考好虑采用何种处理器。
  • Android UI:采用声明性的第四代UI框架,具有独立的主题。在XML中声明界面并加载到UI应用程序中;Android中的屏幕或窗口称为活动(Activity),这些活动中由多个视图(View)块组成;View即画布、绘图和用户交互。
  • Android基本组件:Intent(意图)是一些想法的组合体,比如窗口消息、动作、发布和订阅模型、进程间通信、以及应用程序注册。ContentProvider(内容提供程序)是对数据源的抽象。
  • Android Java包:包含40多个包和700多个类,提供Android应用程序开发所需要的类库。

4、Android SDK中重要的Java包

  • android.app:实现android的应用程序模型。主要的类包括Application(表示开始和结束语义),以及与Activity相关的类、片段(fragment)控件、对话框、提醒和通知。
  • android.bluetooth:提供一些类来处理蓝牙功能。
  • android.content:实现ContentProvidr概念还产现了一些围绕Intent和Android URL的核心概念。
  • android.content.pm:实现与包管理器相关的类。包管理器知道各种权限、安装的民、安装的提供程序、安装的服务、安装的组件和安装的应用程序。
  • android.content.res:实用于访问结构化和非结构化资源文件。主要包括AssetManager(面向结构化资源)和Resources。
  • android.database:实现抽象数据库的理念。主要的接口是Cursor(游标)接口。
  • android.database.sqlite:实现android.database包中的概念,该包将sqlite用作物理数据库。
  • android.gesture:处理用户定义的手势所需要的所有类和接口。
  • android.graphics:包含Bitmap、Canvas、Camera、Color、Matrix、Movie、Paint、Path、Rasterizer、Shader、SweepGradient和TypeFace。
  • android.graphics.drawable:实现绘制协义和背景图像,支持可绘制对象动画。
  • android.graphics.drawable.shapes:实现各种形状的绘制;
  • android.hardware:实现与物理照相机相关的类。而android.graphics.Camera表示的是一种图形概念,与物理相机无关;
  • android.location:包含各种坐标地址方面的类,如Address(XAL可扩展地址语言)、GeoCoder(地址与坐标转换)、Location(纬度/经度)、LocationManager和LocationProvider。
  • android.media:流媒体、视频、音频相关的类。
  • android.net:实现基本的套接字级网络API。
  • android.net.wifi:管理wifi连接。
  • android.opengl:包含围绕OpenGL ES 1.0-2.0操作的实用程序类。
  • android.os:访问操作系统服务的类,如Binder(支持进程音通信)、FileObserver(监视对文件的更改)、Handler(用于运行与消息线程有关的任务)、Looper(运行消息线程)。
  • android.preference:系统应用程序首选择统一管理类;
  • android.provider:一组附加到android.content.ContentProvider接口的预先构建的ContentProvider。
  • android.sax:高效的SAX(Simple API for XML,XML简单API)解析实用程序类。
  • android.speech:语音识别的常量。
  • android.speech.tts:提供从文本到语音转换的支持。
  • android.telephony:包含手机定位、电话号码、网络运营商名称、网络类型、电话类型和SIM序列号的类。
  • android.telephony.gsm:包含基站定位收集位置,SMS短信息处理;
  • android.telephony.cdma:提供对CDMA电话的支持。
  • android.text:文本处理类。
  • android.text.method:各种输入文本控件的类。
  • android.text.style:文本多种样式设置机制。
  • android.utils:包含类Log、DebugUtils、TimeUtils和Xml。
  • android.view:包含Menu、View、ViewGroup以及一系列监听器和回调。
  • android.view.animation:提供对补间动功的支持。
  • android.view.inputmethod:实现输入方法框架架构。
  • android.webkit:Web浏览器相关的类。
  • android.widget:通常派生自View类的所有UI控件。
  • com.google.android.maps:处理Google地图所需要的类。

原创粉丝点击