`

Android基础知识大纲

阅读更多

原文链接:http://android.eoe.cn/topic/overview

 

* Android是什么?*
版本:Android 4.0 r1
原始页面:http://developer.android.com/guide/basics/what-is-android.html
Android是一个移动设备的程序集合,包括的操作系统、中间件和关键的应用程序。 Android SDK 提供了必要的工具和API,使用Java编程语言在Android平台开发应用程序。

* 特点*

  • * 应用程序框架* 使组件可以被重用和替换
  • * Dalvik虚拟机* 为移动设备优化
  • * 集成的浏览器* 基于开源的WebKit引擎
  • * 基于优化的图形* 由一个自定义的2D图形库支持;3D图形的OpenGL ES 1.0规范(可选硬件加速)
  • * SQLite* 结构化的数据存储
  • * 媒体支持* 常见的音频、视频和静止图像格式(MPEG4、H.264、MP3、AAC、AMR、JPG、PNG、GIF)
  • * GSM电话* (依赖于硬件)
  • * 蓝牙、EDGE、3G和WiFi* (依赖于硬件)
  • * 摄像头、GPS、指南针、和加速度计* (依赖于硬件)
  • * 丰富的开发环境* 包括设备模拟器、调试器、内存和性能分析工具,以及一个Eclipse IDE的插件 # * Android架构* 下图展示了Android操作系统的主要组成部分,每一部分在下面有更详细地描述。

文件:Android framework.png

* 应用程序*

Android会附带了一套核心应用,包括电子邮件客户端,短信程序,日历,地图,浏览器,联系人等。所有应用程序都使用Java编程语言编写。

* 应用框架*

Android通过一个开放的开发平台,给开发人员在创建极为丰富创新性的应用程序上提供了有力的支持。开发者可以自由设定设备的硬件场景、接入位置信息、运行后台服务、设置闹钟、添加状态栏通知和更多的在其他优势方面上。
开发者拥有使用相同的框架API访问核心应用程序的全部权利。应用程序架构旨在简化组件的重用,任何应用都可以发布它的功能,之后任何其他应用程序都能使用这些功能(受强制执行的安全框架约束)。该机制允许用户更换组件。
在所有应用程序的背后都是使用一套服务和系统,包括:
* 丰富的 视图和扩展,可以用来构建应用程序,包括列表、网格、文本框、按钮、甚至内嵌的网页浏览器
内容提供者(Content Providers),使应用程序能够访问其他应用程序的数据(如通讯录)或共享自己的数据
资源管理器(Resource Manager),提供非代码资源的访问,如本地化的字符串、图形、和布局文件
通知管理器(Notification Manager),使所有的应用程序都能在状态栏显示自定义警报信息
活动管理器(Activity Manager)管理应用程序的生命周期,并提供一个导航使用的共同的返回栈
对于更多的细节和应用程序的演示,请看记事本教程

* 库*

Android包括一组由C / C + Android系统组成的各个部分所用的库。这些功能都通过Android应用程序框架提供给开发者。下面列出了一些核心库:
* * 系统C库* - BSD,一个为基于嵌入式Linux的设备调整的标准C系统库(libc)的派生实现
* * 媒体库* - 基于PacketVideo的OpenCORE库支持许多流行的音频和视频格式的播放和录音,以及静态图像文件,包括MPEG4,H.264标准,支持MP3,AAC,AMR,JPG和PNG格式
* * Surface Manager* - 管理访问显示子系统和从多个应用程序无缝合成2D和3D图形层
* * LibWebCore* - 一个为Android浏览器和可嵌入的网页视图提供支持的现代化的网页浏览器引擎
* * SGL* - 底层的2D图形引擎
* * 3D库* - 基于OpenGL ES 1.0 API的实施库,无论使用或是包含硬件3D加速(如果可用)和高度优化的3D软件光栅化
* * FreeType* - 位图和矢量字体渲染
* * SQLite* - 为所有的应用程序提供一个强大而且轻量级的关系数据库引擎

* Android运行时*

Android包括一套核心库,提供在Java编程语言的核心库中大部分可用的功能。
每一个Android应用程序与自己的Dalvik虚拟机运行在它自己的进程中。Dalvik被设计成设备可以有效地运行多个虚拟机。Dalvik虚拟机执行的Dalvik可执行格式(.dex)是最小的内存占用优化文件。虚拟机是基于寄存器的,运行已所包含的“dx”工具转化成.dex格式的Java语言的编译器编译的类。
Dalvik虚拟机依赖于Linux内核的基本功能,如:线程和低级别的内存管理。

* Linux内核*

Android依赖Linux 2.6版本的系统核心服务,如安全,内存管理,进程管理,网络堆栈,驱动模型。内核也作为硬件和软件堆栈的其余部分之间的抽象层。

 
分享到:
评论

相关推荐

    android面试复习大纲

    Andriod面试复习大纲,包含java、android基础、UI布局+控件、传感器+定位系统、常用数据格式+网络编程、NDK+游戏开发。可以参照上面的内容一一复习,巩固知识点,帮助您找到一份满意的工作。

    AndroidBook::fire: 持续更新中!!!包含计算机基础、数据结构与算法、Java、Android、Kotlin、Flutter等领域知识,搭建知识体系,复习大纲目录,知识点归纳总结,同时日常积累面试题~

    :fire: 持续更新中,涉及Android开发者基础、进阶、高阶、各辐射领域等方向的知识体系与面试题总结归纳,目前项目处于初期阶段,内容较少,但是小编会用心收集并规整,旨在方便自己,同时方便他人,如果你也有兴趣,...

    android数据存储培训资料

    资料大纲 掌握Android在存储方面的系统知识 掌握SharedPreferences存储应用 掌握SQLite方式的存储与应用 掌握ContentProvider方式的存储

    移动开发思维导图

    一个学习Android的思维导图,只要从环境搭建、Android基础知识、用户界面优化、系统功能、数据存储、网络通信、混合编程、主流开源库深度部析、NFC应用开发、Android测试、实战开发

    android-training:【Android 修炼手册】

    如果能帮助到一些同学,那是最好不过了【Android 修炼手册】的内容主要集中在初级到中高级的过渡,更多的会集中于原理的分析,对于一些基础知识可能不会有讲解,所以需要读者有一定的开发基础。如果想从零开始学习 ...

    JAVA的考核知识点.docx

    Java技术点考核大纲,包括基础题和编程题,包括移动端开发、JAVA入门基础、流程控制、面向对象、常用类及异常处理。

    典型相关分析matlab实现代码-AndroidNote:AndroidNote

    本书着重讲解基本概念而不是数学模型和技术细节,通过大量的图表和演示范例讲解计算机科学的基础知识。 本书从程序员的视角详细阐述计算机系统的本质概念,并展示这些概念如何实实在在地影响应用程序的正确性、性能...

    典型相关分析matlab实现代码-AndroidResource:Android资源

    本书着重讲解基本概念而不是数学模型和技术细节,通过大量的图表和演示范例讲解计算机科学的基础知识。 本书从程序员的视角详细阐述计算机系统的本质概念,并展示这些概念如何实实在在地影响应用程序的正确性、性能...

    C语言二级安卓版

    无论您是参加全国计算机考试C语言二级考试,还是参加省级C语言二级考试,本书都严格依照C语言二级考试大纲要求,全面增强您的C语言编程基础知识。提高您的C语言编程思想和开发实力,使您能够写出高质量的C语言代码...

    C语言二级(apk)

    无论您是参加全国计算机考试C语言二级考试,还是参加省级C语言二级考试,本书都严格依照C语言二级考试大纲要求,全面增强您的C语言编程基础知识。提高您的C语言编程思想和开发实力,使您能够写出高质量的C语言代码...

    C语言二级学习 apk

    无论您是参加全国计算机考试C语言二级考试,还是参加省级C语言二级考试,本书都严格依照C语言二级考试大纲要求,全面增强您的C语言编程基础知识。提高您的C语言编程思想和开发实力,使您能够写出高质量的C语言代码,...

    matlab不运行一段代码-FRC-Workshop-1:关于Java和Git基础知识的第一次研讨会!本次研讨会的目的是重新介绍熟悉的编程概念

    在本研讨会中,我们将快速介绍Java基础知识,编写一些代码,然后将其推送到FRC 296存储库。 大纲: Java复习-变量,函数之类的好东西 Java编码挑战 休息10分钟 Git介绍 用git推送 如有需要,请访问代码! 什么是编程...

    java实现学生管理系统源码-blog_backups:Android项目优化、面试题集,包含Android、Java、数据结构、算法、个人b

    这几天一直在准备码农的小世界构成大纲,前天后后大概花了四天时间来完成大纲思维导图。今天我就将它分享出来,欢迎大伙一起学习。 总纲 码农小世界主要由以上几大部分组成,基础部分,语言部分

    GettingStartedWithAndroid

    - - - - - - - 课程详情 - -... 在学习材料设计的基础知识的同时,您还将实现一个导航抽屉和工具栏。源文件说明: 源中的每个文件夹都代表本课程中一节课的最终结果,每节课都建立在上一节课的基础上。 data 文件夹包含

    course-JavaSE-Android:Java与移动智能设备开发方向,《JavaSE》课程仓库

    course-JavaSE-Android 本课程是软件工程专业学生移动智能设备方向的专业基础课,内容涵盖Java面向对象程序设计、文件和流的操作,枚举的使用、集合、日期、文件和流的应用、多线程、Socket网络编程、数据库操作等...

    典型相关分析matlab实现代码-Note:笔记

    本书着重讲解基本概念而不是数学模型和技术细节,通过大量的图表和演示范例讲解计算机科学的基础知识。 本书从程序员的视角详细阐述计算机系统的本质概念,并展示这些概念如何实实在在地影响应用程序的正确性、性能...

    materi-kuliah-java-2015-3

    编程讲义材料3 恩迪·穆哈丁(Endy Muhardin) +6281298000468 目的地 可以制作桌面应用程序 ...Java基础知识 Java桌面 J框架 J按钮 JTextField JComboBox JRadioButton JTable HTTP请求/响应 JDBC Andro

    myPassWordValidator

    乌木子远程工作教学大纲话题工作坊使用Kotlin的Projects Android项目使用Layout Editor的约束布局数据绑定基础知识使用Layout Editor进行线性布局用户活动Androids增量计数器信息页面Angular教程自信的编程kata Boot...

    IOS设计模式之组合设计模式

    通过本文将让你学会软件开发中的”何为树形结构”、”何为组合模式”、”组合模式可以解决的问题”等相关知识。 内容大纲: 1、树形结构 2、组合模式 3、编写文件夹系统 1、树形结构(大神或者计算机基础很好的...

Global site tag (gtag.js) - Google Analytics