Android是什么
Android是一个针对移动设备的开源软件平台,该平台包括操作系统、中间件、用户界面和应用软件。
Android历史
Android一词的本义指“机器人”,同时也是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称。
Google还联合手机制造商、手机芯片厂商、移动运营商,共同于2007年11月组建一个全球性的联盟组织,称作开放手机联盟(Open Handset Alliance),共同来开发Android。
Android SDK(Software Development Kit, 即软件开发工具包)
Android SDK提供了在Android平台上使用Java语言进行Android应用开发必须的工具和API接口。
Android能干什么
下面罗列了一些Android的特性,包含但不限于:
1:应用程序框架,支持组件的重用与替换
2:Dalvik虚拟机 专门为移动设备做了优化
3:内部集成浏览器,该浏览器基于开源的WebKit引擎
4:优化的图形库:包括2D和3D图形库,3D图形库基于OpenGL ES(硬件加速可选)
5:SQLite用作结构化的数据存储
6:多媒体支持 包括常见的音频、视频和图片文件格式 (如 MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF)
7:GSM电话 (依赖于硬件)
8:蓝牙Bluetooth, EDGE, 3G, and WiFi (依赖于硬件)
9:照相机,GPS,指南针,和加速度计 (依赖于硬件)
10:丰富的开发环境 包括设备模拟器,调试工具,内存及性能分析图表,和Eclipse集成开发环境插件
Android有什么
Linux内核
Android 的核心系统服务依赖于Linux的内核,如安全性,内存管理,进程管理,网络协议栈和驱动模型。Linux 内核也同时作为硬件和软件栈之间的抽象层。
本机库
在linux内核上面是Android本机库,就是libraries,这些本机共享库都是由c/c++编写的,针对硬件进行了编译,并由手机制造商预先安装到手机上。
这些库能被Android系统中不同的组件使用,它们通过 Android 应用程序框架为开发者提供服务。
以下是一些核心库:
1:界面管理器(surface manager):它并不是将显示内容直接绘制到屏幕缓冲区,而是将绘制命令传递给屏幕外的位图,然后将该位图和其他位图组合起来,形成用户看到的内容,这种方法允许系统实现所有有趣的功能,如透明窗口和奇特的过渡效果。
2:2D和3D图形:使用Android的时候,二维和三维图象可以结合到一个用户界面上,库将使用3D硬件(如果有的话)或者快速软件渲染器。
3:多媒体编解码器:Android可以播放视频内容,并可以使用各种格式录制和播放音频:如AAC、AVC(H.264)、H.263、MP3、MPEG-4
4:sql数据库:SqlLite,一个轻量级的关系数据库引擎,firefox和iphone中也是使用的它。
5:浏览器引擎:webkit , Google的chrome,苹果的Safari浏览器,iphone,诺基亚的s60平台都是用的它
6:系统 C 库:一个从 BSD 继承来的标准 C 系统函数库( libc ), 它是专门为基于 embedded linux 的设备定制的。
7:SGL:底层的2D图形引擎
8:3D libraries:基于OpenGL ES;该库可以使用硬件 3D加速(如果可用)或者使用高度优化的3D软加速。
9:FreeType:位图(bitmap)和矢量(vector)字体显示。
运行时环境
运行时环境包括:java的核心类库,虚拟机Dalvik,Dalvik与传统的Java虚拟机不同在于:
1:Dalvik 基于寄存器,而JVM 基于栈。,基于寄存器的虚拟机对于更大的程序来说,在它们编译的时候,花费的时间更短。
2:Dalvik运行.dex文件,编译时会将class和jar文件转换成为.dex,.dex文件比class文件更紧凑更高效,这是针对Android设备内存有限且通过电池供电,能耗要低的特点作出的重大改进。
3:Dalvik 经过优化,允许在有限的内存中同时运行多个虚拟机的实例,并且每一个Dalvik 应用作为一个独立的Linux 进程执行。独立的进程可以防止在虚拟机崩溃的时候所有程序都被关闭.
4:Android附带的Java库与传统的java库也有很多的不同,当然也有很大一部分相同,做了很多改进。
应用程序框架
应用程序框架提供了应用程序开发所需要的大部分基础功能,包括:
1:活动管理器(Activity Manager):用来控制应用程序生命周期,同时维护一个公共的后退栈(back stack)供用户使用
2:内容提供者(Content Providers):用来封装需要在应用程序之间共享的数据,如联系人信息等
3:资源管理器(Resource Manager):资源是指的程序中涉及的任何非代码的内容
4:位置管理器(Location Manager):用来处理关于位置的功能,比如GPS
5:通知管理器(notification Manager):像收到短信、邻近预约时间、临界状态报警、异常入侵等事件都可以以友好的方式通知用户
6:视图系统(View System),丰富而又可扩展的视图组件,可以用来构建应用程序, 它包括列表(lists),网格(grids),文本框(text boxes),按钮(buttons),甚至可嵌入的web浏览器等。
7:窗口管理器(Window Manager):用来管理窗口的一些状态、属性、view增加、删除、更新、窗口顺序、消息收集和处理等。
8:包管理器(Package Manager):用来封装所有基于加载信息的数据结构,安装卸载应用查询permission相关信息;查询Application相关信息(application,activity,receiver,service,provider及相应属性等)
9:电话管理器(Telephony Manager):用来管理所有与电话相关的操作以及相应事件的管理
Android的HelloWorld
构建环境
1:安装JDK6以上
2:到http://developer.android.com,下载Android的SDK Manager,通过这个软件来进行初次的Android的SDK下载和管理。
安装完SDK后,要把sdk\tools设置到path里面去。
3:安装Eclipse,最好安装最新版
4:安装ADT插件,在插件安装后,要设置SDK的位置,在window—〉preference—〉android选项里面,右边有一个SDK Location的配置。
5:创建Android虚拟设备,也就是AVD,在window—〉Android SDK and AVD Manager里面创建一个新的AVD。
SDK下包的说明
1:add-ons:Android开发需要的第三方文件和软件库
2:docs:Android的文档。包括开发指南、API参考、资源等
3:extras:扩展的附加包
4:platforms:你安装下载的所有Android平台,分版本存放
5:platform-tools:平台相关的工具
6:samples:所有的样例程序
7:system-images:系统使用的图片
8:temp:临时操作或缓存的目录
9:tools:应用Android平台进行开发所需要的一些开发工具
常见的api包说明
1:android.app :提供高层的程序模型、提供基本的运行环境
2:android.content :包含各种的对设备上的数据进行访问和发布的类
3:android.database :通过内容提供者浏览和操作数据库
4:android.graphics :底层的图形库,包含画布,颜色过滤,点,矩形,可以将他们直接绘制到屏幕上.
5:android.location :定位和相关服务的类
6:android.media :提供一些类管理多种音频、视频的媒体接口
7:android.net :提供帮助网络访问的类,超过通常的java.net.* 接口
8:android.os :提供了系统服务、消息传输、IPC 机制
9:android.opengl :提供OpenGL 的工具
10:android.provider :提供类访问Android 的内容提供者
11:android.telephony :提供与拨打电话相关的API 交互
12:android.view :提供基础的用户界面接口框架
13:android.util :涉及工具性的方法,例如时间日期的操作
14:android.webkit :默认浏览器操作接口
15:android.widget :包含各种UI 元素(大部分是可见的)在应用程序的屏幕中使用
创建一个Android工程
项目的目录结构说明如下:
1:assets :存放原生文件,这个目录保存的文件可以打包在程序里。和res的不同点是,android不为assets下的文件生成ID,如果使用assets下的文件,需要指定文件的路径和文件名。
2:bin : Java编译输出的路径
3:gen :存放android编译资源文件自动生成的R文件。
4:res :存放程序所需要的资源文件,也就是非Java的文件。常见的目录有:
(1)res/animator/ :XML文件,定义动画属性
(2)res/anim/ :XML文件,它们被编译进逐帧动画(frame by frame animation)或补间动画(tweened animation)对象
(3)res/color/:XML文件,定义颜色状态的列表
(4)res/layout/:存放被编译为屏幕布局(或屏幕的一部分)的XML文件
(5)res/menu/:XML文件,用来定义应用的菜单
(6)res/drawable/:存放图片文件,如.png, .9.png, .jpg, .gif等。放在这里的图像资源可能会被aapt(android assert packaging tool,android资源打包工具)自动地进行无损压缩优化。如果你不想图片被压缩改变,请把图像文件放在 res/raw/目录下,这样可以避免被自动优化。
(7)res/raw/:直接复制到设备中的任意文件,它们无需编译
(8)res/values/:存放可以被编译成很多种类型的资源文件, XML 格式的。常见的文件有:
array.xml :定义数组
colors.xml :定义color drawable和颜色的字符串值。
dimens.xml 定义尺寸值(dimension value)。
strings.xml 定义字符串(string)值。
styles.xml定义样式(style)对象。
(9)res/xml/:任意的XML文件,在运行时可通过调用Resources.getXML()读取。
5:src : 存放Java源代码
项目的清单文件AndroidManifest.xml :这个清单给Android系统提供了关于这个应用程序的基本信息,系统在能运行任何程序代码之前必须知些信息。AndroidManifest.xml主要包含以下功能:
(1)命名应用程序的 Java 包,这个包名用来唯一标识应用程序
(2)描述应用程序的组件:活动,服务,广播接收者,以及组成应用程序的内容提供器;对实现每个组件和公布其能力(比如,能处理哪些意图消息)的类进行命名。这些声明使得 Android系统了解这些组件以及在什么条件下可以被启动;
(3)决定应用程序组件运行在哪个进程里面
(4)声明应用程序所必须具备的权限,用以访问受保护的部分 API,以及和其它应用程序交互;
(5)声明应用程序其他的必备权限,用以组件之间的交互;
(6)列举测试设备Instrumentation类,用来提供应用程序运行时所需的环境配置和其他信息,这些声明只是在开发和测试阶段存在,发布前将被删除
(7) 声明应用程序所要求的Android API的最低版本级别;
(8)列举application所需要链接的库
在strings.xml修改hello对应的字符串
启动模拟器开始测试运行
认识模拟器和DDMS
DDMS:Dalvik Debug Monitor Server ,Dalvik调试监视器服务,它支持端口转换(因此你可以在IDE中给你的代码下端点),支持抓取模拟器屏幕,线程和堆栈信息,以及许多其他功能。
logcat:转储系统信息,这些信息包括,模拟器抛出错误时堆栈的运行过程以及日志信息。
原创内容 转自请注明【
http://sishuok.com/forum/blogPost/list/0/2619.html#7468】
分享到:
相关推荐
教程名称:Android 4.0开发入门经典学习文档合集课程目录:【】Android4开发入门经典 ? 第七部分(1):数据存储【】Android4开发入门经典 ? 第七部分(2):数据存储【】Android4开发入门经典 ? 第三部分【】...
##### 第1章:Android——游戏开发领域的新秀 - **Android的历史与发展**:介绍Android操作系统的发展历程以及它如何成为游戏开发的重要平台。 - **Android游戏市场分析**:分析当前Android游戏市场的趋势和机会。 ...
《2015最新Android基础入门教程PDF版打包合集》是针对初学者精心准备的一套教育资源,旨在帮助新接触Android开发的朋友们快速掌握基础知识,为日后的深入学习和实践打下坚实的基础。本教程结合了Eclipse和Android ...
Android基础入门教程,网上教程,打包成chm,看得时候方便一些 教程于2015年7月开始撰写,耗时半年,总共148节,涵盖了Android基础入门的大部分知识。
android基础教程,里边包括新版Android开发教程&笔记1--基础入门,Android开发教程&笔记2--基础入门二,Android开发教程&笔记3--环境搭建与解析,Android开发教程&笔记4--Dalvik ADB Android开发教程+笔记5--模拟器...
4. **Java或Kotlin编程基础**:Android主要使用Java或Kotlin语言进行开发。了解这两种语言的基本语法、数据类型、控制流和异常处理是必不可少的。Kotlin作为现代、简洁的语言,目前已被广泛采用,学习Kotlin可以让你...
《Android高薪之路:Android程序员面试宝典》目录: 第1章 Android入门 1 1 关于Android的非技术问题 1 1 1 为什么看好 Android 1 1 2 以前是否从事过Android的工作 做过哪些工作 1 1 3 你做的最复杂的界面是什么 1 ...
2015年发布的这份Android基础入门教程详细介绍了Android系统架构、开发环境的搭建、用户界面设计以及各种基础知识点,为初学者提供了系统的学习路径。 首先,教程介绍了Android系统的基本概念,包括系统架构和应用...
总的来说,"零基础学Android"是一条系统且全面的学习路径,从Java入门到Android高级应用,再到软件工程实践,旨在培养出能够独立完成高质量Android应用开发的专业人才。通过深入学习和实践,可以不断提升自己的技术...
#### 第一篇:Android系统结构和SDK使用 ##### 第1章:Android的系统介绍 - **系统介绍**:Android是Google开发的一款基于Linux平台的开源操作系统,专为移动设备设计。它包含了操作系统、中间件以及一系列标准...
在Android开发领域,掌握基础是至关重要的。...通过实际操作和理解这些概念,开发者将能够构建自己的第一个Android应用。在后续章节中,你将更深入地学习如何编写代码、调试应用以及发布到Google Play等。
系统的、循序渐进的学习Android开发所需的知识 n 第一部分:Android的入门基础 包括:Android是什么、有什么、能干什么,Android开发的环境构建、 HelloWorld开发,HelloWorld基本分析等 n 第二部分:Android应用核心...
教程名称: Android开发入门资料之基础宝典【】Android中文帮助文档【】Android新手入门 FAQ【】Android系统原理与开发要点详解【技术文档】【】android系统简介【】Linux开发Android系统基础知识大汇总【】...
"零基础学Android,第二季源代码"提供了一个很好的起点,它包含了第二季教程的前四章源代码,帮助初学者深入理解Android应用的构建过程。下面将详细阐述这个资源中涉及的一些关键知识点。 1. **Android Studio入门*...
《Android从入门到精通》是一本专为初学者设计的Android开发指南,旨在帮助读者全面了解并掌握Android应用开发的基本技能。这本书详细介绍了Android开发环境的搭建、Android应用程序的基础架构、UI设计、数据存储、...
《Android 4 游戏编程入门经典》是Robert Green与Mario Zechner合著的一本专为初学者设计的Android游戏开发指南。这本书通过一系列实际的案例,帮助读者掌握在Android平台上开发游戏的基础知识和技能。书中源代码的...
《Android Studio开发实战:从零基础到App上线》是一本旨在帮助初学者全面掌握Android应用开发的实战指南。书中的内容涵盖了从环境搭建、基本概念理解到实际项目开发的全过程,旨在让读者能够从无到有,独立完成一个...
开发者会学习如何创建第一个Android项目,理解和使用AndroidManifest.xml文件,以及如何进行布局设计。 4. **Android最基本组成介绍**: 在这个主题下,开发者会接触到Android系统架构,包括Linux内核、HAL层、...
Android APP 开发入门教程 Android APP 开发入门教程主要介绍了 Android APP 的开发流程,从 SDK 下载、开发环境搭建、代码编写、APP 打包等步骤一一讲解。本教程通过实践操作,带领读者一步步完成 Android APP 的...