精通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地图所需要的类。
- 精通Android3学习笔记(一)基础知识
- 《精通Android3》学习笔记
- 精通Android3学习笔记(二) 设置开发环境
- 精通Android3学习笔记(三)使用Android资源
- 基础知识学习笔记(一)
- 基础知识学习笔记(一)
- Unity3D笔记(一)基础知识学习笔记
- Pro Android学习笔记(一五十):拖拽(4):Android3.0及后的方式(下)
- Pro Android学习笔记(一五十):拖拽(4):Android3.0及后的方式(下)
- C语言学习入们到精通之学习笔记(一)
- 基础知识--Css学习笔记(一)
- extjs学习笔记(一) 一些基础知识
- 数据结构学习笔记(一)基础知识
- PHP学习笔记(一)基础知识
- C++基础知识学习笔记(一)
- OpenGL学习笔记(一) 纹理基础知识
- flash学习笔记(一)---基础知识入门
- Python学习笔记(一)----Python基础知识
- Consistent Hashing
- web页面登录校验码
- JAVA单例(懒汉模式)线程安全
- Hibernate —— HQL与QBC的区别
- Red hat免费使用CentOS源
- 精通Android3学习笔记(一)基础知识
- 拥有 RDBMS 特性的 NoSQL 数据存储
- UVA 10905 - Children's Game
- oracle 查询语句大全
- 使用MPI编译Linux平台下使用的并行SuperLU静态链接库
- 《Android攻略》客户端和Service交互
- 工作环境迁移:Ubuntu 12.04 使用笔记(一)
- 10359 - Tiling (递推,类斐波那契)
- spoj694之后缀数组