十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
Android开发中的finish()与onDestroy()方法都是用来结束activity的。
网站建设哪家好,找创新互联公司!专注于网页设计、网站建设、微信开发、微信小程序开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了鹿邑免费建站欢迎大家使用!
1、不同点区别:
finish()方法用于结束一个Activity的生命周期。而onDestory()方法则是Activity的一个生命周期。
其作用是在一个Activity对象被销毁之前,Android系统会调用该方法,用于释放此Activity之前所占用的资源。finish会调用到onDestory方法。在onDestory里打印一句话,运行一下程序,会发现finish方法会把那句话打印出来。
2、方法区别:
Activity.finish()方法:
在你的activity动作完成的时候,或者Activity需要关闭的时候,调用此方法,当你调用此方法的时候,系统只是将最上面的Activity移出了栈,并没有及时的调用onDestory()方法,其占用的资源也没有被及时释放。因为移出了栈,所以当你点击手机上边的“back” 按键的时候,也不会再找到这个Activity.
Acitvity.onDestory()方法:
系统销毁了这个Activity的实例在内存中占据的空间。在Activity的生命周期中,onDestory()方法是他声明的最后一步,资源控件等就被回收了。当重新进入此Activity的时候,必须重新创建,执行onCrate()方法。
扩展资料
中介软件
1、操作系统与应用程序的沟通桥梁,应用分为两层:函数层(Library)和虚拟机(Virtual Machine)。 Bionic是 Android 改良libc的版本。Android 同时包含了Webkit,所谓的Webkit 就是Apple Safari 浏览器背后的引擎。Surface flinger 是就2D或3D的内容显示到屏幕上。Android使用工具链(Toolchain)为Google自制的Bionic Libc。
2、Android采用OpenCORE作为基础多媒体框架。Open CORE可分7大块:PVPlayer、PVAuthor、Codec、PacketVideo Multimedia Framework(PVMF)、Operating System Compatibility Library(OSCL)、Common、OpenMAX。
3、Android 使用skia 为核心图形引擎,搭配OpenGL/ES。skia与Linux Cairo功能相当,但相较于Linux Cairo, skia 功能还只是雏形的。2005年Skia公司被Google收购,2007年初,Skia GL源码被公开,Skia 也是Google Chrome 的图形引擎。
4、Android的多媒体数据库采用SQLite数据库系统。数据库又分为共用数据库及私用数据库。用户可通过ContentResolver类(Column)取得共用数据库。
5、Android的中间层多以Java 实现,并且采用特殊的Dalvik 虚拟机(Dalvik Virtual Machine)。Dalvik虚拟机是一种“暂存器型态”(Register Based)的Java虚拟机,变量皆存放于暂存器中,虚拟机的指令相对减少。
6、Dalvik虚拟机可以有多个实例(Instance), 每个Android应用程序都用一个自属的Dalvik虚拟机来运行,让系统在运行程序时可达到优化。Dalvik 虚拟机并非运行Java字节码(Bytecode),而是运行一种称为.dex格式的文件。
参考资料来源:百度百科-Android
android开发用的是Java语言。
Java也拥有自己强大的开源社区,当编写时遇到问题就能通过这些社区找到答案。android开发的教程,书籍和课程,包括免费和付费的,这些教程可以让先用java语言开始入门Android开发之路。
Android代码,示例demo 和App都是用Java编写的,使用Java的开发者更容易转为Android开发者,这在一开始Android生态系统未能建立时,尤为重要。
扩展资料
Java语言很成熟
Java语言可以说是一个相当成熟的计算机编程语种,性能很好,用的人也超级多,除了基础类库完善,各种高级的第三方组件更是不计其数,更重要的是Java虚拟机规范是开放的,谷歌只要按照甲骨文的虚拟机规范很容易写出一套虚拟机。
Java语言安全
由于Java语言经常被使用在网络环境中,为了增加其程序的安全性,Java语言提了一个防止恶意代码攻击的安全机制,另外Java的强类型机制、垃圾回收器、异常处理和安全检查机制,也使得用Java语言编写的程序具有很好的健壮性。
参考资料来源:百度百科—Java 编程语言
参考资料来源:百度百科—android开发
Android 用甜点作为它们系统版本的代号的命名方法开始于 Andoird 1.5 发布的时候。作为每个版本代表的甜点的尺寸越变越大,然后按照26个字母数序:纸杯蛋糕,甜甜圈,松饼,冻酸奶,姜饼,蜂巢。
Android 1.1
发布时间:发布于 2008 年9月
Android 1.5
Cupcake纸杯蛋糕 发布时间:发布于 2009 年 4 月
Android 1.6
Donut甜甜圈 发布时间:2009 年 9 月
Android 2.0
Eclair松饼 发布时间:2009 年 10 月 26 日
Android 2.1
Eclair松饼 发布时间: 2009 年 10 月 26 日 Android 2.1主要特性:提升硬件速度 更多屏幕以及分辨率选择 大幅度的用户界面改良支持 Exchange活动墙纸 大幅改进虚拟键盘 蓝牙 2.1 Google 地图
Android 2.2
Froyo冻酸奶 谷歌于北京时间2010年5月20日晚上10:30点在旧金山Moscone会展中心举办Google I/O 2010大会第二天的会议,Google正式发布了代号是“froyo 冻酸奶”的Android操作系统2.2版。 相对于上一版本的 改变: 1、整体性能大幅度的提升 2、3G网络共享功能。 3、Flash的支持。 4、App2sd功能。 5、全新的软件商店。 6、更多的Web应用API接口的开发。
Android 2.2 For x86
在几位华人软件工程师的努力下,中国的用户已经可以享受到真正在上网本上可以安装使用的Android了,这就是孙翊、黄志伟和Corentin Chary和其他几位活跃的开发人员正在参与的Android-x86开源项目。此外,还有其他的开发人员如Kelly2.Blue、Wu Hai Gang、Swand ke 和 Wallace1 wang,他们都是来自中国大陆和台湾的华人软件工程师。 在孙翊发来的最新版本更新说明中,明确表示:他们已经解决了众多的技术难题,包括中文拼音输入法的bug修订,蓝牙支持,无线网卡支持、SSL的bug修订等,甚至已经可以直接安装到上网本上,从硬盘启动。
Android2.3
Gingerbread姜饼 北京时间2010年12月7日凌晨,Google正式对外发布了他们的下一代智能手机操作系统Android 2.3也就被大家所熟知的Android Gingerbread系统。 主要更新包括: 游戏:增加了新的垃圾回收和优化处理事件,以提高对游戏的支持能力。原生代码可直接存取输入和感应器事件、EGL/OpenGL ES、OpenSL ES。新的管理窗口和生命周期的框架。 多媒体:支持VP8和WebM视频格式,提供AAC和AMR宽频编码,提供了新的音频效果器,比如混响、均衡、虚拟耳机和低频提升 通讯方式:支持前置摄像头、SIP/VOIP和NFC(近场通讯) 站在用户的角度看,这次更新的亮点主要有: 简化界面、速度提升: 更快更直观的文字输入: 一键文字选择和复制/粘帖: 改进的电源管理系统: 新的应用管理方式: 原生支持前置摄像头、互联网通话和NFC(近场通讯): 系统原生支持VoIP,可以在联系人里加入它的SIP帐户,然后直接通过系统来拨打VoIP电话。 增加下载管理器:
Android 2.4
Ice cream sandwich冰激凌三明治 预计在2011年第四季度发布。其甜品代号为 Ice cream sandwich(冰激凌三明治) 目前已知的Android 2.4带来的更新包括更多的动画特效、更快的运行速度、软件通话降噪、视频聊天等。
Android N.n
有可靠的消息人士表示,继“冰激凌三明治”之后,下一版Android系统的代号将为“Jelly Bean”。
Android3.0
Honeycomb(蜂巢) 3.0系统特性 ·优化针对平板 ·全新设计的UI增强网页浏览功能 ·n-app purchases功能
Android3.1
Honeycomb 蜂巢(改进3.0BUG) ·经过优化的Gmail电子邮箱; ·全面支持GoogleMaps Android 3.1Honeycomb(3.0改进) 将Android手机系统跟平板系统再次合并,从而方便开发者。 任务管理器可以滚动,支持USB 输入设备(键盘、鼠标等)。 支持 Google TV.可以支持XBOX 360无线手柄 widget支持的变化,能更加容易的定制屏幕widget插件。
Android 3.2
Honeycomb(蜂巢) 2011年7月13日,谷歌公司放出了新版“蜂巢”Android 3.2的升级源码,合作厂商摩托罗拉亦在当日发布了针对旗下XOOM平板电脑的升级固件,为用户更新新版系统。 Android 3.2这一新版平板电脑操作系统开始支持7英寸设备,并引入了应用显示缩放功能,可以让那些针对手机开发的应用,更平滑的显示在平板电脑上。
编辑本段系统优势
开放性 在优势方面,Android平台首先就是其开放性,开放的平台允许任何移动终端厂商加入到Android联盟中来。显著的开放性可以使其拥有更多的开发者,随着用户和应用的日益丰富,一个崭新的平台也将很快走向成熟。 挣脱束缚 在过去很长的一段时间,特别是在欧美地区,手机应用往往受到运营商制约,使用什么功能接入什么网络,几乎都受到运营商的控制。自从iPhone上市,用户可以更加方便地连接网络,运营商的制约减少。随着EDGE、HSDPA这些2G至3G移动网络的逐步过渡和提升,手机随意接入网络已不是运营商口中的笑谈。 丰富的硬件 这一点还是与Android平台的开放性相关,由于Android的开放性,众多的厂商会推出千奇百怪,功能特色各具的多种产品。 开发商 Android平台提供给第三方开发商一个十分宽泛、自由的环境。因此不会受到各种条条框框的阻挠,可想而知,会有多少新颖别致的软件会诞生。但也有其两面性,血腥、暴力、情色方面的程序和游戏如何控制正是留给Android难题之一。 Google应用 从搜索巨人到全面的互联网渗透,Google服务如地图、邮件、搜索等已经成为连接用户和互联网的重要纽带,而Android平台手机将无缝结合这些优秀的Google服务。
编辑本段系统缺陷
一、Android系统手机泄密 二、拨号后自动挂断电话 通话BUG频繁出现 三、对硬件配置要求高 制造成本增加 四、系统费电严重 安卓手机续航不足 五、系统计算器计算有偏差 例如在Android系统自带的计算器内输入14.52-14.49,正确结果应该是0.03,但是计算器结果显示的数字为0.0299999。
编辑本段研发联盟
开放手机联盟
为了推广Android,Google和几十个手机相关企业建立了开放手机联盟(Open Handset Alliance)。 联盟成员包括摩托罗拉(Motorola)、HTC、SAMSUNG、LG、Intel、NVIDIA、SiRF、Skype、KUPA Map 、MTK 以及中国移动在内的34家技术和无线应用的领军企业。这34家企业中并不包含把持Symbian的Nokia公司,以及凭借着iPhone风光正在的Apple公司,微软没有加入,加拿大RIM和它的Blackberry也被挡在门外。 手机开放联盟大家庭成员名单: 终端制造商 Motorola(摩托罗拉)- 美国(美国最大的手机制造商,著名老牌IT公司) Sony Ericsson(索尼爱立信)- 英国(索尼和爱立信的合资公司) HTC(宏达国际电子股份有限公司)-中国台湾 Samsung Electronics(三星电子)- 韩国 LG Electronics(LG电子)- 韩国 Lumigon (丹麦陆力更手机公司)- 丹麦 ARCHOS(爱可视)- 法国 TOSHIBA(东芝)- 日本 安卓
SHARP(夏普)-日本 Fujitsu(富士通)-日本 NEC(日本电気株式会社)-日本 魅族 - 中国 小米--中国 移动运营商 China Telecom(中国电信)- 中国 China Mobile(中国移动)- 中国 China Unicom(中国联通)- 中国 SK Telecom - 韩国 KT - 韩国 LG U - 韩国 KDDI by AU - 日本 Softbank -日本 NTT DoCoMo(日本电信电话公司)- 日本 Sprint Nextel(美国斯普林特Nextel公司)- 美国 Telecom Italia(意大利电信)- 意大利 Telefónica - 西班牙 T-Mobile - 德国 半导体公司 ARM- 英国 Texas Instruments(德州仪器)- 美国 Qualcomm(高通)- 美国 NVIDIA(英伟达)- 美国 MediaTek(联发科)- 中国台湾 ST(意法半导体)- 欧洲 Infineon(英飞凌科技)- 德国 ST-Ericsson(ST爱立信)- 欧洲 Audience (听众)- 美国 Broadcom (博通)- 美国 Intel(英特尔)- 美国 Marvell (俊茂微电子)- 美国 SiRF(瑟夫)- 美国 Synaptics(新思)- 美国 HP(惠普)- 美国 软件公司 Aplix - 日本 Ascender - 美国 Skype(微软)- 美国 Esmertec(微迅)- 瑞士 Living Image - 美国 NMS Communications - 加拿大 Noser Engineering AG - 德国 Nuance Communication - 美国 PacketVideo - 美国 SkyPop - 美国 Sonix Network - 美国 The Astonishing Tribe - 瑞典 Wind River Systems(风河)- 美国
编辑本段使用品牌
大事记
2008年9月22日,美国运营商德国T-Mobile在纽约正式发布第一款Android手机——T-Mobile G1。该款手机为台湾宏达电子(HTC)代工制造,是世界上第一部使用Android操作系统的手机,支持WCDMA/HSPA网络,理论下载速率7.2Mbps,并支持Wi-Fi。 2009年10月28日正式发布了Android 2.0 智能手机操作系统。 2010年1月索尼爱立信首款Android机型X10上市 。 2010年1月7日,Google在其美国总部正式向外界发布了旗下首款合作品牌手机Nexus One(HTC G5),并同时开始对外发售。 2010年7月9日,美国NDP集团调查显示,Android系统已占据了美国移动系统市场28%的份额。 北京时间2011年3月25日,据国外媒体报道,谷歌周四表示,谷歌暂停开源Android3.0,并将暂时阻止小型手机生产商使用其Android 3.0“Honeycomb”系统,期限未定。 谷歌一位发言人通过电子邮件声明称,Honeycomb是专为平板电脑而非手机设计的,在该系统以开源形式发布前,还有很多工作要做。谷歌向《商业周刊》表示,推迟发布可能达数月之久。
国内品牌
HTC 安卓手机(5张)魅族 魅族M9为一款多点触摸手机,于2010年12月16日发布,2011年1月1日正式上市。 J.wong在论坛发帖确定魅族M9将不能刷原生的Android系统,M9将不是简简单单的在Android系统上加个UI,而是深层定制安卓系统,现有的Android软件的兼容性也绝对不是问题。J.wong甚至表态想刷Android系统的安卓控们请远离M9。J.wong表示魅族M9的系统虽然内核采用Android内核,但从UI和用户体验方面完全看不出任何安卓的影子,使用Android内核只是为了能兼容数以十万计的安卓软件,增强魅族M9的软件扩展性,让M8之前一直被诟病的软件数量成为历史。 天语 天语W700是K-Touch天语手机在2011年初推出的一款WCDMA制式3G Android智能手机,同时,它还是第一款国产双核手机。这款采用了NVIDIA TEGRA2平台的高端智能手机首次发布在位于拉斯维加斯的CES2011展会上亮相。 天语W700采用基于ARM Cortex-A9 Dual Core的Tegra2 AP20H处理器,主频为1GHz,具有高性能低功耗的特点,它集成了高清视频处理器、图像处理器、音频处理器等众多模块的高度整合处理器。 联想 OMS和T-mobile G1搭载的Android(以最初上市版本为主)的不同之处就是可以使用户自行关闭正在运行的程序而不是由系统控制:按住屏幕上方向下拖动即可看到任务管理器。 HKC Pearl 做为目前在市面上唯一正式销售的Windows和Android系统双系统手机,这款HKC Pearl 珍珠珠配备了QVGA屏幕,内存采用了128MB/256MB的标准配置,主处理器采用PXA 310处理器,624Mhz的主频性能非常强劲,而且机器还配备了Wi-Fi,蓝牙2.0无线传输设置。 华为 华为U8230在外观上有别于其他Android手机的塑料风格,通体的银灰色和正面功能键盘的发丝纹路都洋溢着商务机型的味道。而作为功能上的特色,U8230拥有一块3.5英寸的大屏幕、高达1500毫安时的锂电池和一枚320万象素摄像头采用Android平台1.5版本。 中兴 中兴最近也大力发展android手机,推出了v880。 海尔 海尔的产品也青睐搭载android系统。海尔于09年上市的H7采用直板全触屏设计,操作系统上正是采用了最新的Google Android2.0操作系统。 海尔于2011年7月亮相青岛国际消费电子博览会的haipad,搭载创新工场家族“点心os”首款为PAD定制的“点心—互联网智能手持终端解决方案”。 华禹 xPhone是由上海禹华通信技术有限公司设计的,采用类iphone的触控设计,配置了3寸WQVGA分辨率的触摸屏,内建300W像素的摄像头,搭载Android平台,采用主频 624Mhz的Marvell PXA-310处理器,拥有128MB SDRAM+256MB ROM的内存配置,支持最大16GB的存储卡扩展,给出的参数中还加入了WiFi功能。 琦基 去年11月27日,琦基发布了全球首款Google Android/Windows Mobile双操作系统的智能手机琦基i6,采用Google Android操作系统的叫做琦基i6 goal,采用Windows Mobile操作系统的叫做琦基i6 Win。 蓝魔 蓝魔的V系列MP4以及平板电脑采用安卓系统。 酷派 推出D539等多款搭载Android平台的3G商务机型 小米 小米手机是小米公司(全称北京小米科技有限责任公司)研发的一款高性能发烧级智能手机。手机预计2011年8月发布,售价1999元,主要针对手机发烧友,采用线上销售模式。小米手机使用了高通Snapdragon S3 MSM8260手机处理器,也是世界上首款双核1.5GHz的智能手机。
国外品牌
三星、LG、摩托罗拉、夏普、索尼爱立信
编辑本段系统架构
应用程序
Android以Java为编程语言,从接口到功能,都有层出不穷的变化,其中Activity等同于J2ME的MIDlet,一个 Activity 类(class)负责创建视窗(window),一个活动中的Activity就是在 foreground(前景)模式,背景运行的程序叫做Service。两者之间通过由ServiceConnection和AIDL连结,达到复数程序同时运行的效果。如果运行中的 Activity 全部画面被其他 Activity 取代时,该 Activity 便被停止(stopped),甚至被系统清除(kill)。 View等同于J2ME的Displayable,程序人员可以通过 View 类与“XML layout”档将UI放置在视窗上,Android 1.5的版本可以利用 View 打造出所谓的 Widgets,其实Widget只是View的一种,所以可以使用xml来设计layout,HTC的Android Hero手机即含有大量的widget。至于ViewGroup 是各种layout 的基础抽象类(abstract class),ViewGroup之内还可以有ViewGroup。View的构造函数不需要再Activity中调用,但是Displayable的是必须的,在Activity 中,要通过findViewById()来从XML 中取得View,Android的View类的显示很大程度上是从XML中读取的。View 与事件(event)息息相关,两者之间通过Listener 结合在一起,每一个View都可以注册一个event listener,例如:当View要处理用户触碰(touch)的事件时,就要向Android框架注册View.OnClickListener。另外还有Image等同于J2ME的BitMap。
中介软件
操作系统与应用程序的沟通桥梁,应用分为两层:函数层(Library)和虚拟机(Virtual Machine)。 Bionic是 Android 改良libc的版本。Android 同时包含了Webkit,所谓的Webkit 就是Apple Safari 浏览器背后的引擎。Surface flinger 是就2D或3D的内容显示到屏幕上。Android使用工具链(Toolchain)为Google自制的Bionic Libc。 Android采用OpenCORE作为基础多媒体框架。OpenCORE可分7大块:PVPlayer、PVAuthor、Codec、PacketVideo Multimedia Framework(PVMF)、Operating System Compatibility Library(OSCL)、Common、OpenMAX。 Android 使用skia 为核心图形引擎,搭配OpenGL/ES。skia与Linux Cairo功能相当,但相较于Linux Cairo, skia 功能还只是雏形的。2005年Skia公司被Google收购,2007年初,Skia GL源码被公开,目前Skia 也是Google Chrome 的图形引擎。 Android的多媒体数据库采用SQLite数据库系统。数据库又分为共用数据库及私用数据库。用户可通过ContentResolver类(Column)取得共用数据库。 Android的中间层多以Java 实现,并且采用特殊的Dalvik 虚拟机(Dalvik Virtual Machine)。Dalvik虚拟机是一种“暂存器型态”(Register Based)的Java虚拟机,变量皆存放于暂存器中,虚拟机的指令相对减少。 Dalvik虚拟机可以有多个实例(instance), 每个Android应用程序都用一个自属的Dalvik虚拟机来运行,让系统在运行程序时可达到优化。Dalvik 虚拟机并非运行Java字节码(Bytecode),而是运行一种称为.dex格式的文件。
硬件抽像层
Android 的 HAL(硬件抽像层)是能以封闭源码形式提供硬件驱动模块。HAL 的目的是为了把 Android framework 与 Linux kernel 隔开,让 Android 不至过度依赖 Linux kernel,以达成 kernel independent 的概念,也让 Android framework 的开发能在不考量驱动程序实现的前提下进行发展。 HAL stub 是一种代理人(proxy)的概念,stub 是以 *.so 档的形式存在。Stub 向 HAL“提供”操作函数(operations),并由 Android runtime 向 HAL 取得 stub 的 operations,再 callback 这些操作函数。HAL 里包含了许多的 stub(代理人)。Runtime 只要说明“类型”,即 module ID,就可以取得操作函数。
编程语言
Android 是运行于 Linux kernel之上,但并不是GNU/Linux。因为在一般GNU/Linux 里支持的功能,Android 大都没有支持,包括Cairo、X11、Alsa、FFmpeg、GTK、Pango及Glibc等都被移除掉了。Android又以bionic 取代Glibc、以Skia 取代Cairo、再以opencore 取代FFmpeg 等等。Android 为了达到商业应用,必须移除被GNU GPL授权证所约束的部份,例如Android将驱动程序移到 userspace,使得Linux driver 与 Linux kernel彻底分开。bionic/libc/kernel/ 并非标准的kernel header files。Android 的 kernel header 是利用工具由 Linux kernel header 所产生的,这样做是为了保留常数、数据结构与宏。 目前Android 的 Linux kernel控制包括安全(Security),存储器管理(Memory Management),程序管理(Process Management),网络堆栈(Network Stack),驱动程序模型(Driver Model)等。下载Android源码之前,先要安装其构建工具 Repo来初始化源码。Repo 是 Android 用来辅助Git工作的一个工具。
安全与权限
Android本身是一个权限分立的操作系统。在这类操作系统中,每个应用都以唯一的一个系统识别身份运行(Linux用户ID与群组ID)。系统的各部分也分别使用各自独立的识别方式。Linux就是这样将应用与应用,应用与系统隔离开。 系统更多的安全功能通过权限机制提供。权限可以限制某个特定进程的特定操作,也可以限制每个URI权限对特定数据段的访问。 Android安全架构的核心设计思想是,在默认设置下,所有应用都没有权限对其他应用、系统或用户进行较大影响的操作。这其中包括读写用户隐私数据(联系人或电子邮件),读写其他应用文件,访问网络或阻止设备待机等。 安装应用时,在检查程序签名提及的权限,且经过用户确认后,软件包安装器会给予应用权限。从用户角度看,一款Android应用通常会要求如下的权限: 拨打电话、发送短信或彩信、修改/删除SD卡上的内容、读取联系人信息、读取日程信息,写入日程数据、读取电话状态或识别码、精确的(基于GPS)地理位置、模糊的(基于网络获取)地理位置、创建蓝牙连接、对互联网的完全访问、查看网络状态,查看WiFi状态、避免手机待机、修改系统全局设置、读取同步设定、开机自启动、重启其他应用、终止运行中的应用、设定偏好应用、震动控制、拍摄图片等。 一款应用应该根据自身提供的功能,要求合理的权限。用户也可以分析一款应用所需权限,从而简单判定这款应用是否安全。如一款应用是不带广告的单机版,也没有任何附加内容需要下载,那么它要求访问网络的权限就比较可疑。
Android的多媒体框架包括支持播放多种常见的媒体类型,可以轻松地把音频、视频和图像集成到你的应用。可以播放音频或视频媒体文件,这些文件是存储在你的应用程序的资源文件中的。应用程序的资源文件可以是文件系统中独立的文件,或通过网络连接获取的一个数据流,所有使用MediaPlayer APIS的资源文件,是谷歌自带的播放器
一、实现目标
1.1支持格式
支持主流的视音频格式:mp3/mp4/mkv/avi/3gp/rmvb/mov/flv等。
1.2支持功能
1.2.1当然最重要的是播放功能,含播放控制(播放、暂停,声音、亮度调整等)
1.2.2可以扫描SDcard,用列表展现出来,可以搜索
1.2.3可以播放网络视音频(http、rtsp、mms)
二、Vitamio项目简介
Vitamio是一个支持所有Android设备的多媒体框架。Vitamio与Android默认的MediaPlayer工作方式相似,但包含更加强大的功能!(注意:Vitamio商业化后个人免费、公司收费)
2.1网址
官方微博:
官方网址:
2.2成功案例
国内:VPlayer、熊猫影音、321影音等
国外:Tvltaliane、Dizi TV等
2.3 网络协议
支持以下协议的音频和视频播放:
* MMS
* RTSP (RTP, SDP)
* HTTP流式传输(progressive streaming)
* HTTP Live Streaming (M3U8), Android 2.1+
2.4 媒体格式
Vitamio集成了许多音频和视频的解码包,相比Android内置默认的媒体格式,这里列出其中的一些:
* divx/xvid
* wmv
* flv
* ts
* rmvb
* mkv
* mov
* m4v
* avi
* mp4
* 3gp
2.5 字幕
Vitamio支持显示一些内置或外挂字幕格式:
* SubRip(.srt)
* Sub Station Alpha(.ssa) / Advanced Sub Station移步wiki
* Alpha(.ass)
* SAMI(.smi/.sami)
* MicroDVD(.sub/.txt)
* SubViewer2.0(.sub)
* MPL2(.mpl/.txt)
* Matroska (.mkv) 字幕轨迹
2.6 其他功能
* 后台播放
* 多音轨支持
* 多字幕支持,包括内部或外挂的
* 多平台处理器优化
* 可调长宽比
* 文字编码自动检测
2.7许可/授权(Lisences)
Vitamio使用了sevral开源项目,感谢他们。
2.7.1FFmpeg
FFmpeg提供软件解码器和多路输出(demuxers)。Vitamio使用LGPLv2.1许可下FFmpeg的代码,代码可以从这里下载。
2.7.2Universalchardet (是Mozilla的一个自动检测页面文字编码的程序)
Universalchardet是Mozilla的编码检测库。Vitamio使用MPL许可下Universalchardet的代码来检测字母文本编码。
以上主要是对官方介绍进行了简单翻译。
android系统架构分从下往上为linux 内核层、运行库、应用程序框架层、和应用程序层
linuxkernel:负责硬件的驱动程序、网络、电源、系统安全以及内存管理等功能。
libraries和 androidruntime:libraries:即c/c++函数库部分,大多数都是开放源代码的函数库,例如webkit,该函数库负责 android网页浏览器的运行,例如标准的c函数库libc、openssl、sqlite等,当然也包括支持游戏开发2dsgl和 3dopengles,在多媒体方面有mediaframework框架来支持各种影音和图形文件的播放与显示,例如mpeg4、h.264、mp3、 aac、amr、jpg和png等众多的多媒体文件格式。android的runtime负责解释和执行生成的dalvik格式的字节码。
applicationframework(应用软件架构),java应用程序开发人员主要是使用该层封装好的api进行快速开发。
applications:该层是java的应用程序层,android内置的googlemaps、e-mail、即时通信工具、浏览器、mp3播放 器等处于该层,java开发人员开发的程序也处于该层,而且和内置的应用程序具有平等的位置,可以调用内置的应用程序,也可以替换内置的应用程序。
上面的四个层次,下层为上层服务,上层需要下层的支持,调用下层的服务,这种严格分层的方式带来的极大的稳定性、灵活性和可扩展性,使得不同层的开发人员可以按照规范专心特定层的开发。
android应用程序使用框架的api并在框架下运行,这就带来了程序开发的高度一致性,另一方面也告诉我们,要想写出优质高效的程序就必须对整个 applicationframework进行非常深入的理解。精通applicationframework,你就可以真正的理解android的设计 和运行机制,也就更能够驾驭整个应用层的开发。