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版本的系统核心服务,如安全,内存管理,进程管理,网络堆栈,驱动模型。内核也作为硬件和软件堆栈的其余部分之间的抽象层。

转载于:https://www.cnblogs.com/vus520/archive/2013/06/13/3134199.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/461011.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux unix shell programming,UnixampLinux Shell Programming I.ppt

《Unix&ampLinux Shell Programming I.ppt》由会员分享,可在线阅读,更多相关《Unix&ampLinux Shell Programming I.ppt(17页珍藏版)》请在人人文库网上搜索。1、Unix/Linux Shell Programming I,Dec 14th 2011 Shen Wei,Agenda,Unix/Linux Intro…

被遮挡的绝对定位 z-index

<div class”A” style”position:relative;”>A (relative) <div class”logo” style”position:absolute;z-index:99999;“></div> </div> <div class”B” style”position:relative;”>B (relative)</div> 最近做minisite项目时&…

嵌入式数据库sqlite在ARM上的的移植和使用

参考SQLite的编译、安装和使用_whz_zb的博客-CSDN博客&#xff0c;如有侵权&#xff0c;请告知删除。 参考&#xff1a;头文件路径问题 Linux下的头文件搜索路径 - 心哲 - 博客园 参考&#xff1a;进一步学习资源 SQlite - 标签 - likebeta - 博客园 一、源码获取 SQLite Do…

贪心法

贪心法的证明 —归纳证明&#xff1a; —贪心法使用的条件是&#xff1a;最优子结构和贪心选择正确性 —贪心算法是一步一步实现的&#xff0c; —在归纳证明的时候&#xff0c;贪心的第一步贪心选择策略的正确性就是归纳基础&#xff0c;因为以后都是一个子问题的选取&#xf…

第一季5:Hi3518EV200的环境搭建

以下内容源于朱有鹏嵌入式课程的学习与整理&#xff0c;如有侵权请告知删除。 一、内容总结 本文讲述如何安装交叉编译工具链&#xff0c;与编译源码得到uboot、kernel、rootfs镜像文件。 &#xff08;1&#xff09;安装交叉编译工具链&#xff0c;主要是通过执行osdrv/opensou…

Linux下WPS自主设置快捷键,电脑wps的word怎么自主设定快捷键

打开Word2003&#xff0c;点击“工具”选项卡&#xff0c;在下拉菜单中选择“自定义”栏。在弹出的“自定义”页面框中选择“键盘”。在弹出的“自定义键盘”页面框中选择你要设置快捷的命令&#xff0c;比如办公族在这里选择了“字体”里的“幼圆体”这个命令当前并没有快捷键…

登录和操作员管理

在MainWindow的Loaded中弹出登录对话框&#xff0c;如果没有登录则Application.Current.Shutdown()退出。 密码的MD5加盐处理&#xff0c;把盐值放在app.config的AppSetting中。 登录正确性判断&#xff0c;错误次数超过三次锁定 登录成功把当前用户Id放到Application.Current.…

Android动画的实现 上

在Android系统中也能经常见到动画&#xff0c;那么如何实现动画效果呢&#xff1f;本文就来为大家介绍动画的实现方式。 Android中动画的实现分两种方式&#xff0c;一种方式是补间动画Tween Animation&#xff0c;就是说你定义一个开始和结束&#xff0c;中间的部分由程序运算…

第一季2:HI3518EV200的初体验(检测板子是否正常工作)

以下内容源于朱有鹏嵌入式课程的学习与整理&#xff0c;如有侵权请告知删除。 一、检测步骤 1、设置PC主机有线网卡的ip地址设为192.168.1.10&#xff0c;关闭防火墙。 2、虚拟机桥接到有线网卡&#xff0c;并设置虚拟机的静态ip地址为192.168.1.141。 3、在uboot控制台设置ub…

linux安装 redis,在linux中安装redis

本文中使用的系统是Ubantu 18.04因为我是第一次使用Linux系统&#xff0c;并不知道使用哪一款比较好&#xff0c;主要是因为Ubantu的界面很好看(笑)在使用linux安装redis之前遇到过几个小问题。在本文中写下来。我在使用window远程ssh连接linux时&#xff0c;出现access denied…

cocos2d-x的Android工程开启c++0x特性

首先一定要确定你所安装NDK支持c0x&#xff08;我安装的android-ndk-r8&#xff09; 文本打开 项目目录/proj.android/jni/Application.mk 在APP_CPPFLAGS那一行最后追加上 -stdc0x&#xff0c;改完之后可能这样 APP_CPPFLAGS : -FRTTI -DCOCOS2D_DEBUG1 -stdc0x ok&#xff0c…

了解 Windows Azure 存储的可伸缩性、可用性、持久性和计费

借助 Windows Azure存储&#xff0c;应用程序开发者及其应用程序和用户可以在云中使用可用性更高、持久性更长、可伸缩性更强的海量存储。开发者可以构建能随时随地高效访问数据的服务&#xff0c;在所需的时间段内存储任意数量的数据&#xff0c;并按基于实际使用情况进行付费…

linux 安装git失败,Linux运维知识之linux下安装git常见故障整理

本文主要向大家介绍了Linux运维知识之linux下安装git常见故障整理&#xff0c;通过具体的内容向大家展现&#xff0c;希望对大家学习Linux运维知识有所帮助。FAQ1: Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).[roottestss git]# git clone git192.1…

JS函数addEventListener的浏览器差异性封装

IE8及更早的版本不支持 addEventListener()函数,因此需要一个标准的函数将这些差异性做封装: 1 function addListener(target, type, handler) { 2 if (target.addEventListener) { 3 target.addEventListener(type, handler, false); 4 } else if (target.att…

第一季3:HI3518E方案整体架构介绍(硬件和软件支持)

以下内容源于朱有鹏嵌入式课程的学习与整理&#xff0c;如有侵权请告知删除。 1、硬件资源 &#xff08;1&#xff09;HI3518E单芯片提供&#xff1a;CPU DSP 内置64MB DDR ETHERNET MAC。 &#xff08;2&#xff09;外置16MB的SPI接口的Flash用来存放程序&#xff08;ubo…

线性表顺序表---逆置所有元素

1 /*顺序表中所有的元素逆置2 * 3 */4 #include <iostream.h>5 using namespace std;6 7 int main(){8 void reverse_arr(int arr[],int n);9 int a[]{0,1,2,3,4,5,6,7}; 10 int n7; 11 reverse_arr(a,n); 12 for(int i0;i<n;i){ 13 …

dhcp failover linux,ISC dhcp failover的mclt参数很重要啊

MCLT简单的说就是&#xff0c;决定了当dhcp failover因为failover通信中断或其它原因导致其中某台&#xff0c;如B机出故障时&#xff0c;由A机为B机的客户暂时提供服务时分配给客户的租约时间。文档中建议配置为3600秒&#xff0c;但也不是说3600秒是最合适的。这个参数仅能在…

第一季1:视频设备开发的技术流

以下内容源于朱有鹏嵌入式课程的学习与整理&#xff0c;如有侵权请告知删除。 1、视频从产生到被消费的整个流程 &#xff08;1&#xff09;原始视频产生&#xff1a;镜头和sensor。 &#xff08;2&#xff09;图像处理&#xff1a;ISP&#xff08;image signal processing&a…

Android 调整屏幕分辩率

Android 可设置为随着窗口大小调整缩放比例及设定fixed的窗口大小。 对于surface的控制在SurfaceHolder类中进行 而Android 屏幕分辩率中已经有一个类DisplayMetics提供 Andorid.util 包下的DisplayMetrics 类提供了一种关于显示的通用信息&#xff0c;如显示大小&#xff0c;分…

(一)FlexViewer之整体框架解析

文章版权由作者李晓晖和博客园共有&#xff0c;若转载请于明显处标明出处&#xff1a;http://www.cnblogs.com/naaoveGIS/。 1.FlexViewer简介 FlexViewer框架为Esri提供的可以高效开发基于WEB的地理信息应用系统的一种完全免费的应用程序框架。目前有两种版本&#xff0c;一种…