您的位置:首页 > 移动开发 > Android开发

Android学习笔记(一)——Android平台简介

2014-04-04 00:46 344 查看
Android是一个开放的手机操作系统平台,为移动设备提供了一个包含操作系统、中间件及应用程序的软件叠层架构。
1 Android的特性
Android基于Java,它的流行一方面是Google的大力支持,另一方面是由于它自身的特性:
1)应用程序框架:方便重用和替换手机组件
2)Dalvik虚拟机:专为移动设备优化
3)内部集成浏览器:基于开源的WebKit引擎
4)优化的图形系统:自定义了2D图形库,3D图形库基于OpenGL ES 1.0,可选硬件加速
5)SQLite:集成了轻量级数据管理系统
6)多媒体支持:MPEG4,H.264,MP3,AAC,AMR,JPG,PNG,GIF等
7)GSM技术、蓝牙、EDGE、3G和WiFi:需要硬件支持
8)摄像头、GPS、罗盘、加速度计:需要硬件支持
9)完备的开发环境:包括设备模拟器、调试工具、内存和性能分析工具及用于Eclipse开发环境的插件
10)Android的优点:真正开放、应用程序相互平等、应用程序之间沟通无界限
2 Android平台架构
Android平台架构整体可分为5大模块:
(1)应用程序:如Home、Contacts、Phone、Browser等
(2)应用程序框架:如Activity Manager、WindowManager、ContentProviders、ViewProviders、PackageManager、TelephonyManager、ResourceManager、LocaionManager、Notification等
(3)库:Android包含一些核心库如
1)libc:系统C库,标准C系统库的一个BSD系统的衍生实现,为基于Linux的嵌入设备做了优化
2)SurfaceManager:主要负责管理针对显示系统的访问及无缝地混合来自不同应用程序的2D和3D图层
3)MediaLibraries:基于PacketVideo的OpenCORE,支持多种音频和视频格式及静态图片文件
4)SQLite:一个面向所有应用程序的轻量级关系数据库引擎
5)OpenGL ES:一个基于OpenGL ES1.0 API的实现,该库或者使用3D硬件加速,或者使用内置的,经过高度优化过的3D软件光栅处理
6)FreeType:提供对点阵字和向量字的绘制支持
7)WebKit::包含WebCore排版引擎和JScore引擎,是浏览器的核心,苹果的Safari和谷歌的Chrome都是WebKit内核,地位如同微软的IE内核
8)SGL:2D图像引擎
(4)Android运行时:包括Core Library和Dalvik虚拟机,每个应用程序都有专有的Dalvik虚拟机,其执行的.dex格式文件占用内存非常小。与Java虚拟机基于栈不同,Dalvik虚拟机基于寄存器,并不直接执行.class文件,而是通过dx工具转换为.dex文件执行。Dalvik虚拟机依赖于Linux核心部件实现线程管理功能。
(5)Linux Kernel:包括显示驱动、相机驱动、Flash内存驱动、Binder驱动、键盘驱动、WiFi驱动、音频驱动、电源管理等
3 Android应用程序目录结构
(1)src目录:项目源代码
(2)gen目录:ADT自动生成,只定义一个R.java文件,相当于项目的字典,项目中用户界面、字符串、图片、声音等资源都会在该类中创建唯一的ID
(3)Android4.2:存放项目支持的JAR包,同时还包含项目打包时需要的META-INF目录
(4)assets目录:存放项目相关的资源文件,如文本文件
(5)res目录:存放应用程序中经常使用的资源文件,包括图片、声音、布局文件及参数描述文件等,包括多个目录,其中以drawable开头的三个文件夹存储.png、.9.png、.jpg等图片资源。layout文件夹存放布局文件,raw存放声音等资源。values存放XML格式的资源描述文件,如字符串资源描述文件strings.xml、样式描述文件styles.xml、颜色描述文件colors.xml、尺寸描述文件dimens.xml以及数组描述文件arrays.xml等
(6)AndroidManifest.xml文件:应用程序的系统控制文件

(7)default.properties文件:项目的配置文件,不需要人为改动,系统自动对其进行管理,主要描述了项目的版本信息。

4 AndroidManifest.xml简介

每一个应用程序必须包含此文件,是应用程序的全局描述文件,包含如下信息:1)应用程序的包名,作为应用程序的唯一标识符;2)所包含的组件;3)应用程序兼容的最低版本;4)声明应用程序需要额链接库;5)应用程序自身具有的权限声明;6)其他应用程序访问该应用程序时应该具有的权限。如:

5 应用程序权限

在AndroidManifest.xml中可以为应用程序指定权限,如网络权限、发送短信权限、打电话权限等,所有权限封装到Manifest.permission中。

声明自身具有的权限方法:将声明添加到</manifest>之前,如<uses-permission android:name="android.permission.SEND_SMS"/>。

声明访问本程序的其他程序所需的权限方法:将声明添加到<activity></activity>之间。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: