精华内容
下载资源
问答
  • android 安卓系统

    千次阅读 2012-02-23 11:07:49
    Android是一种以Linux为基础的开放源码操作系统,主要使用于便携设备。目前尚未有统一中文名称,中国大陆地区较多人使用安卓(非官方)或安致(官方)。Android操作系统最初由Andy Rubin开发,最初主要支持手机。...
     
    

    Android是一种以Linux为基础的开放源码操作系统,主要使用于便携设备。目前尚未有统一中文名称,中国大陆地区较多人使用安卓(非官方)或安致(官方)。Android操作系统最初由Andy Rubin开发,最初主要支持手机。2005年由Google收购注资,并组建开放手机联盟开发改良,逐渐扩展到平板电脑及其他领域上。Android的主要竞争对手是苹果公司iOS以及RIM的Blackberry OS。2011年第一季度,Android在全球的市场份额首次超过塞班系统,跃居全球第一。 2011年11月数据,Android占据全球智能手机操作系统市场52.5%的份额,中国市场占有率为58%。

    中文名: 安卓、安致
    外文名: Android
    开发商: Google/开放手持设备联盟
    发行商: Google
    发行时间: 2008年9月23日
    编程语言: C/C++(底层) Java等(应用层)
    源码模式: 混合(自由免费,开放源码)
    包类型: APK
    支持平台: ARMMIPSx86
    内核类: 整块性核心(Linux)

    名称来源

      Android一词最早出现于法国作家利尔亚当(Auguste Villiers de l'Isle-Adam)在1886年发表的科幻小说未来夏娃》(L'ève future)中。他将外表像人的机器起名为Android。

    版本

    命名规则

      Android用甜点作为它们系统版本的代号的命名方法开始于 Android 1.5 发布的时候。作为每个版本代表的甜点的尺寸越变越大,然后按照26个字母数序:纸杯蛋糕甜甜圈松饼冻酸奶姜饼蜂巢冰激凌三明治,根据最新消息新一代Android版本将命名为果冻豆(Jelly Bean)。

    发行版本

      
    版本 备注
    Android1.1 2008 年9月发布的Android第一版
    Android 1.5
    Cupcake
    (纸杯蛋糕)
    2009年4月30日,官方1.5版本(Cupcake 纸杯蛋糕)的Android发布。主要的更新如下:
    1、拍摄/播放影片,并支持上传到Youtube
    2、支持立体声蓝牙耳机,同时改善自动配对性能
    3、最新的采用WebKit技术的浏览器,支持复制/贴上和页面中搜索
    4、GPS性能大大提高
    5、提供屏幕虚拟键盘
    6、主屏幕增加音乐播放器和相框widgets
    7、应用程序自动随着手机旋转
    8、短信、Gmail、日暦,浏览器的用户接口大幅改进,如Gmail可以批量删除邮件
    9、相机启动速度加快,拍摄图片可以直接上传到Picasa
    10、来电照片显示
    Android 1.6
    Donut
    (甜甜圈)
    2009年9月15日,1.6(Donut 甜甜圈)版本软件开发工具包发布。主要的更新如下:
    1、重新设计的Android Market手势
    2、支持CDMA网络
    3、文字转语音系统(Text-to-Speech)
    4、快速搜索框
    5、全新的拍照接口
    6、查看应用程序耗电
    7、支持虚拟私人网络(VPN)
    8、支持更多的屏幕分辨率。
    9、支持OpenCore2媒体引擎
    10、新增面向视觉或听觉困难人群的易用性插件
    Android2.0/2.0.1/2.1
    Eclair
    (松饼)
    2009年10月26日,2.0(Eclair 松饼)版本软件开发工具包发布。主要的更新如下:
    1、优化硬件速度
    2、"Car Home"程序
    3、支持更多的屏幕分辨率
    4、改良的用户界面
    5、新的浏览器的用户接口和支持HTML5
    6、新的联系人名单
    7、更好的白色/黑色背景比率
    8、改进Google Maps3.1.2
    9、支持Microsoft Exchange
    10、支持内置相机闪光灯
    11、支持数码变焦
    12、改进的虚拟键盘
    13、支持蓝牙2.1
    14、支持动态桌面的设计
    Android 2.2/2.2.1
    Froyo
    (冻酸奶)
    2010年5月20日,2.2(Froyo 冻酸奶)版本软件开发工具包发布。主要的更新如下:
    1、整体性能大幅度的提升
    2、3G网络共享功能。
    3、Flash的支持。
    4、App2sd功能。
    5、全新的软件商店。
    6、更多的Web应用API接口的开发。
    Android 2.3
    Gingerbread
    (姜饼)
    2010年12月7日,2.3(Gingerbread 姜饼)版本软件开发工具包发布。主要的更新如下:
    1、增加了新的垃圾回收和优化处理事件
    2、原生代码可直接存取输入和感应器事件、EGL/OpenGL ES、OpenSL ES。
    3、新的管理窗口和生命周期的框架。
    4、支持VP8和WebM视频格式,提供AAC和AMR宽频编码,提供了新的音频效果器
    5、支持前置摄像头、SIP/VOIP和NFC(近场通讯)
    6、简化界面、速度提升:
    7、更快更直观的文字输入:
    8、一键文字选择和复制/粘帖:
    9、改进的电源管理系统:
    10、新的应用管理方式:

    Android 3.0
    Honeycomb
    (蜂巢)
    2011年2月2日, 3.0(Honeycomb 蜂巢)版本主要更新如下:
    ·优化针对平板
    ·全新设计的UI增强网页浏览功能
    ·n-app purchases功能
    Android 3.1
    Honeycomb
    (蜂巢)
    2011年5月11日在Google I/O开发者大会宣布发布,版本主要更新如下:
    Honeycomb蜂巢(改进3.0BUG)
    经过优化的Gmail电子邮箱;
    全面支持GoogleMaps
    将Android手机系统跟平板系统再次合并从而方便开发者。
    任务管理器可滚动,支持USB 输入设备(键盘、鼠标等)。
    支持 Google TV.可以支持XBOX 360无线手柄
    widget支持的变化,能更加容易的定制屏幕widget插件。

    Android 3.2
    Honeycomb
    (蜂巢)
    2011年7月13日发布,版本更新如下:
    支持7英寸设备
    引入了应用显示缩放功能

    Android 4.0
    Ice Cream Sandwich
    (冰激凌三明治)
    2011年10月19日 在香港发布,
    4.0(Ice Cream Sandwich 冰激凌三明治)版本主要更新如下:
    1、全新的ui
    2、全新的Chrome Lite浏览器,有离线阅读,16标签页,隐身浏览模式等。
    3、截图功能
    4、更强大的图片编辑功能
    5、自带照片应用堪比Instagram,可以加滤镜、加相框,进行360度全景拍摄,照片还能根据地点来排序
    6、Gmail加入手势、离线搜索功能,UI更强大。
    7、新功能People:以联系人照片为核心,界面偏重滑动而非点击,集成了Twitter、Linkedin、Google+等通讯工具。有望支持用户自定义添加第三方服务。
    8、新增流量管理工具,可具体查看每个应用产生的流量。
    9、正在运行的程序可以像电脑一样的互相切换
    10、人脸识别功能
    11、系统优化、速度更快
    12、支持虚拟按键,手机可以不再拥有任何按键
    13、更直观的程序文件夹
    14、平板电脑和智能手机通用
    15、支持更大的分辨率
    16、专为双核处理器编写的优化驱动
    17、全新的Linux内核
    18、增强的复制粘贴功能
    19、语音功能
    20、全新通知栏
    21、更加丰富的数据传输功能
    22、更多的感应器支持
    23、语音识别的键盘
    24、全新的3D驱动, 游戏支持能力提升
    25、全新的谷歌电子市场
    26、增强的桌面插件自定义

    Android N.n
    Jelly Bean
    “果冻豆”
    继“冰激凌三明治”之后的下一版Android系统。

    大事纪

      2005年事件
      Google收购了成立仅22个月的高科技企业Android。
      2007年事件
      11月5日,Google公司正式向外界展示Android操作系统。
      11月5日,Google与34家手机制造商、软件开发商、电信运营商和芯片制造商共同创建开放手持设备联盟。

    2008年

      5月28日,Patrick Brady于Google I/O大会上提出Android HAL架构图。
      8月18日,Android获得美国联邦通信委员会的批准。
      9月22日,谷歌正式对外发布第一款Android手机——HTC G1。
      9月23日,谷歌发布Android1.0。
      9月24日,全球业界都表示不看好Android操作系统,并且声称最多1年,Android就会被Google关闭。

    2009年

      4月30日,Android1.5正式发布。
      5月10日,HTC G1和HTC G2市场大卖,成为仅次于iPhone的热门机型。
      9月25日,Android1.6正式发布。
      9月29日,HTC Hero G3广受欢迎,成为全球最受欢迎的机型。
      10月28日,Android 2.0 智能手机操作系统正式发布。
      11月10日,由于Android的火热,Android平台出现第一个恶意间谍软件:Mobile Spy,该程序会自动记录用户所输入的任何信息并发送到黑客的邮箱中,还可以视频录下用户的所有操作过程。

    2010年

      1月7日,Google发布了旗下第一款自主品牌手机:Nexus one(HTC G5)。
      1月,谷歌与Linux基金会就Linux内核的同步和维护意见不一致而产生了矛盾。
      2月3日,Linux内核开发者Greg Kroah-Hartman将Android的驱动程序从Linux内核“状态树”上除去,从此,Android与Linux开发分道扬镳。
      5月19日,Google正式对外发布Android2.2智能操作系统。
      5月20日,Google对外正式展示了搭载Android系统的智能电视-Google TV,该电视为全球首台智能电视。
      7月1日,Google宣布正式与雅虎、亚马逊合作,并且在Android上推出多项Kindle服务和雅虎服务。
      7月9日,美国NDP集团调查显示,Android系统已占据了美国手机市场28%的份额,全球17%的市场份额。
      8月12日,Android平台出现第一个木马病毒:Trojan-SMS.AndroidOS.FakePlayer.a,该木马病毒会伪装成应用程序,当用户不小心安装之后,它便会疯狂地发送短信,使用户的手机开通高额的收费服务。
      9月,Android应用数量超过9万个。
      9月21日,Google对外公布数据,每日销售的Android设备的新用户数达到20万。
      10月26日,Google宣布Android达到第一个里程碑:电子市场上的Android应用数量达到10万个。
      12月7日,Google正式发布Android2.3操作系统。

    2011年

      1月,Google对外宣布Android Market上的应用数量超过20万。
      1月,Google对外公布数据,每日Android设备的新用户数达到30万。
      2月2日,Android3.0正式发布。
      2月3日,谷歌发布了专用于平板电脑的Android 3.0Honeycomb系统,它带来了很多激动人心的新特性。这是首个基于Android的平板电脑专用操作系统。
      6月,Android在日本的智能手机操作系统市场占有率达到57%。
      7月,Android在欧洲的智能手机操作系统市场占有率达到了22.3%
      7月,Google对外公布数据,Android每天的新用户达到55万,Android设备用户总数达1.35亿。
      8月,谷歌收购摩托罗拉移动。
      8月,Google对外宣布Android Market上的应用数量超过30万。
      8月2日,Android手机已占据全球智能机市场48%的份额,并在亚太地区市场占据统治地位,终结了Symbian(塞班系统)的霸主地位,跃居全球第一。
      8月,Android在韩国的智能手机操作系统市场占有率达到了95%。
      8月,Android系统在35个国家市场占有率第一,平均市场占有率达到48%。
      8月,Android系统成为亚太地区第一大系统,市场占有率为亚太地区第一大。
      9月,Android在美国的智能手机操作系统市场占有率达到43%。
      10月19日,谷歌正式发布Android 4.0操作系统。
      11月,Android Market上提交审核的应用程序数量达到50万。随后,谷歌对Android Market上的应用程序进行了大清理,据统计,此次清理共清理了约18万个应用程序,包括流氓应用、病毒软件、侵犯版权、低质量和滥竽充数的各种程序,谷歌将这一系列应用删除后,使得Android市场中的优质应用程序总数到31.5万。
      11月15日,Android在中国大陆的智能手机操作系统市场占有率达到了58%。
      11月20日,谷歌宣布启动了Android Market应用审核、取缔、清扫行为,定期对电子市场上存在的不合格、低质量、违法恶意的应用程序进行清理,保证Android优质应用程序的增长。
      11月18日,美国NPD数据显示,Android和iOS平台上的游戏占有率都首度超过任天堂DS掌机和索尼PSP掌机,手机游戏玩家也超过了掌机玩家,游戏开发商更倾向于向Android和iOS手机上开发游戏。
      11月18日,谷歌报告显示,通过谷歌服务器激活的Android设备用户总数已经超过2亿,每天通过谷歌服务器激活的新用户数超过55万,而这仅仅是通过谷歌服务器激活的用户设备数。
      12月9日,Google对外宣布,Android达到另一个里程碑,Android电子市场即Android Market的累计下载量已经突破100亿次,平均每月的下载量为10亿次。 12月18日,Google移动事业部副总裁Andy Rubin表示,每天激活的Android设备已达到70万部。
      12月26日,Andy Rubin通过Twitter宣布,圣诞节的前两天24日和25日,共有370万部Android设备被激活。

    2012年

      1月4日,应用商店调研公司Distimo的数据显示,Android电子市场(Android Market)上的应用程序数量突破40万个,每4个月增加10万个应用程序。同时在谷歌电子市场上登记的Android开发者达到了10万名。
      1月20日,谷歌报告显示,通过谷歌服务器激活的Android设备用户总数已经超过2.5亿,距离去年11月的数量,在短短2个月时间内全球共卖出5000万台安卓设备,平均每秒钟就卖出10台安卓设备。
      2月4日,comScore等多家数据市场研究机构的数据都一致显示,安卓在美国手机市场以47.3%的占有率巩固了自己的霸主地位。

    系统架构

      Android的系统架构和其它操作系统一样,采用了分层的架构。从架构图看,android分为四个层,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和linux核心层。
      Android是以Linux为核心的手机操作平台,作为一款开放式的操作系统,随着Android的快速发展,如今已允许开发者使用多种编程语言来开发Android应用程序,而不再是以前只能使用Java开发Android应用程序的单一局面,因而受到众多开发者的欢迎,成为真正意义上的开放式操作系统。
      在Android中,开发者可以使用Java作为编程语言来开发应用程序,也可以通过NDK使用C/C++作为编程语言来开发应用程序,也可使用SL4A来使用其他各种脚本语言进行编程(如:pythonluatclphp等等),还有其他诸如:Qt(qt for android)、Mono(mono for android)等一些著名编程框架也开始支持Android编程,甚至通过MonoDroid,开发者还可以使用C#作为编程语言来开发应用程序。另外,谷歌还在2009年特别发布了针对初学者的Android Simple语言,该语言类似Basic语言。而在网页编程语言方面,JavaScriptajax,HTML5,jquerysencha、dojo、mobl、PhoneGap等等都已经支持Android开发。
      而在Android系统底层方面,Android使用C/C++作为开发语言。

    应用程序(部分)

      早期的Android应用程序开发,通常通过Android SDK(Android软件开发包)下使用Java作为编程语言来开发应用程序,但通过不同的软件开发包,则使用的编程语言也不同。
      例如开发者可以通过Android NDK(Android Native开发包)使用C语言或者C++语言来作为编程语言开发应用程序。同时谷歌还推出了适合初学者编程使用的Simple语言,该语言类似微软公司的Visual Basic语言。此外,谷歌公司还推出了Google App Inventor开发工具,该开发工具可以快速地构建应用程序,方便新手开发者。
      Java开发方面
      Android支持使用Java作为编程语言来开发应用程序,而Android的Java开发方面从接口到功能,都有层出不穷的变化。考虑到Java虚拟机的效率和资源占用,谷歌重新设计了Android的Java,以便能提高效率和减少资源占用,因而与J2ME等不同。 其中Activity等同于J2ME的MIDlet,一个 Activity 类(Class)负责创建视窗(Windows),一个活动中的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。另外还有BitMap等同于J2ME的Image。
      C/C++开发方面
      早期的Android开发只支持Java作为编程语言开发应用程序,因而使得其他语言开发者只能望而却步。2010年4月,谷歌正式对开发者发布了Android NDK,NDK允许开发者使用C/C++作为编程语言来为Android开发应用程序,初版的NDK使得开发者看到了C/C++在Android开发中的希望。
      但是,当前版本的NDK在功能上还有很多局限性:NDK并没有提供对应用程序生命周期的维护;NDK也不提供对Android系统中大量系统事件的支持;对于作为应用程序交互接口的UI API,当前版本的NDK中也没有提供。但是相对于初版的NDK,现在的NDK已经进行了许多重大的功能改进。
      由此可见,NDK仍然需要完善和发展,相信未来随着NDK的发展,NDK可以做得更多更好。

    中介软件

      操作系统与应用程序的沟通桥梁,应用分为两层:函数层(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 程序主要由下列四个部分组成,分别是:活动(Activity) - 用于表现功能服务(Service) - 相当于后台运行的Activity广播接收器(BroadcastReceiver) - 用于接收广播意图(Intent)- 用于连接以上各个组件,并在其间传递消息

    1 Activity 介绍

      Android 中,Activity 是所有程序的根本,所有程序的流程都运行在Activity 之中,Activity可以算是开发者遇到的最频繁,也是Android 当中最基本的模块之一。在Android的程序当中,Activity 一般代表手机屏幕的一屏。如果把手机比作一个浏览器,那么Acitivity就相当于一个网页。在Activity 当中可以添加一些Button、Check box 等控件。可以看到Activity 的概念和网页的概念相当类似。
      一般一个Android 应用是由多个Activity 组成的。这多个Activity 之间可以进行相互跳转,例如,按下一个Button 按钮后,可能会跳转到其他的Activity。和网页跳转稍微有些不一样的是,Activity 之间的跳转有可能返回值,例如,从Activity A 跳转到Activity B,那么当Activity B 运行结束的时候,有可能会给Activity A 一个返回值。这样做在很多时候是相当方便的。
      当打开一个新的屏幕时,之前一个屏幕会被置为暂停状态,并且压入历史堆栈中。用户可以通过回退操作返回到以前打开过的屏幕。我们可以选择性的移除一些没有必要保留的屏幕,因为Android 会把每个应用的开始到当前的每一个屏幕保存在堆栈中。Activity 是由Android 系统进行维护的,它也有自己的生命周期,即它的一个产生、运行、销毁的一个周期,对于Activity,关键是其生命周期的把握,其次就是状态的保存和恢复(onSaveInstanceState onRestoreInstanceState),以及Activity 之间的跳转和数据传输(intent)。

    2 Service 介绍

      Service 是android 系统中的一种组件,它跟Activity 的级别差不多,但是他不能自己运行,只能后台运行,并且可以和其他组件进行交互。Service 是没有界面的长生命周期的代码。Service 是一种程序,它可以运行很长的时间,但是它却没有用户界面。这么说有点枯燥,我们来看个例子。打开一个音乐播放器的程序,这个时候若想上网了,那么,我们打开Android 的浏览器,这个时候虽然我们已经进入了浏览器这个程序,但是,歌曲的播放并没有停止,而是在后台继续一首接着一首的播放。其实这个播放就是由播放音乐的Service进行控制。当然这个播放音乐的Service也可以停止,例如,当播放列表里边的歌曲都结束,或者用户按下了停止音乐播放的快捷键等。service 可以在和多场合的应用中使用,比如播放多媒体的时候用户启动了其他Activity这个时候程序要在后台继续播放,比如检测SD 卡上文件的变化,再或者在后台记录你地理信息位置的改变等等,总之服务嘛,总是藏在后头的。

    3 Broadcast

      在Android 中,Broadcast 是一种广泛运用的在应用程序之间传输信息的机制。而BroadcastReceiver 是对发送出来的Broadcast进行过滤接受并响应的一类组件。可以使用BroadcastReceiver 来让应用对一个外部的事件做出响应。这是非常有意思的,例如,当电话呼入这个外部事件到来的时候,可以利用BroadcastReceiver 进行处理。例如,当下载一个程序成功完成的时候,仍然可以利用BroadcastReceiver 进行处理。BroadcastReceiver不能生成UI,也就是说对于用户来说不是透明的,用户是看不到的。BroadcastReceiver通过NotificationManager 来通知用户这些事情发生了。BroadcastReceiver 既可以在AndroidManifest.xml 中注册,也可以在运行时的代码中使用Context.registerReceiver()进行注册。只要是注册了,当事件来临的时候,即使程序没有启动,系统也在需要的时候启动程序。各种应用还可以通过使用Context.sendBroadcast () 将它们自己的intent broadcasts广播给其他应用程序。注册BroadcastReceiver有两种方式:

    4 Intent 介绍

      Intent 是一个将要执行的动作的抽象的描述,一般来说是作为参数来使用,由Intent来协助完成android 各个组件之间的通讯。Intent 负责对应用中一次操作的动作、动作涉及数据、附加数据进行描述,Android 则根据此Intent 的描述,负责找到对应的组件,将Intent 传递给调用的组件,并完成组件的调用。因此,Intent 在这里起着一个媒体中介的作用,专门提供组件互相调用的相关信息,实现调用者与被调用者之间的解耦。例如,在一个联系人维护的应用中,当我们在一个联系人列表屏幕(假设对应的Activity 为listActivity)上,点击某个联系人后,希望能够跳出此联系人的详细信息屏幕(假设对应的Activity为detailActivity)。为了实现这个目的,listActivity需要构造一个Intent,这个Intent 用于告诉系统,我们要做"查看"动作,此动作对应的查看对象是"某联系人",然后调用startActivity(Intent intent),将构造的Intent 传入,系统会根据此Intent 中的描述,到ManiFest中找到满足此Intent 要求的Activity,系统会调用找到的Activity,即为detailActivity,最终传入Intent,detailActivity 则会根据此Intent中的描述,执行相应的操作。Intent 主要是用来启动其他的activity 或者service,所以可以将intent 理解成activity 之间的粘合剂。Intent具体有一下3 种形式:
      通过startActivity 方法来启动一个新的Activity;
      通过broadcast Intent 机制可以将一个Intent 发送给任何对这个Intent 感兴趣的BroadcastReceiver;
      通过startService (Intent) 或bindService(Intent,ServiceConnection,int) 来和后台的Service 进行交互。[1]
    展开全文
  • Android L系统 剖析安卓5.0安卓L新特性

    千次阅读 2014-10-28 14:42:19
    新一代安卓系统此前一直传闻是安卓5.0,不过这次Google并没有按常理出牌,新一代安卓系统被命名为Android L,全新的命名更加彰显Google革新安卓系统的决心。Android L带来了诸多劲爆新特性,例如支持6

    Android L系统全新发布了!在Google I/O 2014上,Google正式发布了最新一代安卓系统Android L,安卓系统终于告别了安卓4.×,迈入了全新的版本周期。新一代安卓系统此前一直传闻是安卓5.0,不过这次Google并没有按常理出牌,新一代安卓系统被命名为Android L,全新的命名更加彰显Google革新安卓系统的决心。Android L带来了诸多劲爆新特性,例如支持64位、全新用户界面、使用ART作为默认运行环境等等,我们一起来看看Android L的一些信息吧。

    Android L新特性 安卓L新特性
    Google发布了全新安卓系统Android L

      Android L:开启新时代的版本

      安卓系统的命名一直有规律可循,除了大家熟知的数字代号外,安卓系统还会采用首字母按字母表排列的甜品作为代号。比如说,安卓4.0是Ice Crean Sandwich冰淇淋三明治(I),安卓4.1~4.3是Jelly Bean果冻豆(J),安卓4.4在KitKat奇巧巧克力(K)。这次Android L的命名更加简洁,直接使用了接着上一版本KitKat首字母“K”的L作为版本号,沿袭传统的同时,弃用数字也意味着安卓新时代的到来。

    Android L新特性 安卓L新特性
    Android L的全新命名开启了安卓新时代

      不过,Android L目前仍只是一个开发者测试版本,Google明早将会放出适用于Nexus 5和Nexus 7的Android L开发者预览版本系统镜像。很难说Android L在最终发布推送时会不会再度改名,比如说改成更符合人们习惯的“安卓5.0”。Google将会在秋季发布Android L正式版,共同期待吧。

      Android L新特性:全新的用户界面

      ◆Material Design

      Google在安卓4.0定下了Android Design的调子,Holo风从安卓4.0一直刮到了安卓4.4,现在Android L终于要带来安卓用户界面的变革了!Android L带来了名为“Material Design”(材料设计)的全新设计理念,和Holo相比,Material Design更加色彩丰富,不像Holo那样灰暗。根据Google的设计副总裁Matias Duarte介绍,Android L的Material Design灵感来自纸张和墨水,Android L的界面会拥有类似物理表面和边缘的视觉效果——这一切很大程度上得益于Android L动态阴影的加入以及动画的加强。

    Android L新特性 安卓L新特性
    Android L中使用了Material Design风格

    Android L新特性 安卓L新特性
    无论是按钮还是图标还是界面色调,Android L都与之前不同

    Android L新特性 安卓L新特性
    全新的Material Design主题

    Android L新特性 安卓L新特性
    Android L可以适配App主题色


    静态的图片无法很好地感受Material Design的效果,大家来看一下Android L界面演示视频

      Android L在界面色彩方面有了非常大的改动。Android L引入了全新的“调色板”特性,可以让系统界面自动适配App UI的颜色和图像。从视觉效果来看,Android L的界面和iOS 7的通知栏融合App色调有一定的相似之处,不过Android L并没有毛玻璃半透明特效。和安卓4.1之后的安卓一样,Android L的UI也拥有高速的反馈和流畅的滑动,这些都会给用户带来良好的体验。

      ◆卡片风格

      安卓系统在近年来大量引入了卡片风格的设计,在Android L中,卡片风格得到了进一步的运用。Android L全新的通知中心、电话界面等都使用了卡片风格设计,这些卡片能够将更大面积的内容呈现给用户,令按钮更加清晰,而“嵌套滚动”(nested scrolling)的新特性可以让开发者可决定哪些部分的UI采用不同的滚动,动画效果比之前的安卓系统更加丰富。

    Android L新特性 安卓L新特性

    Android L新特性 安卓L新特性
    卡片风格出现在了Android L的每一处

      卡片风格被运用到了Android L的每一个角落,甚至在锁屏界面上,用户也可以获得直接和卡片式的通知面板进行交互。此外,Google还将卡片风格运用到了弹窗上,引入了“heads-up”的新型通知类型——这是一种全新的通知中心,采用了巨大的弹出式窗口来进行通知,因为弹框很大,所以你不会轻易错过。

    Android L新特性 安卓L新特性
    Android L拥有全新的通知弹窗

      ◆环动式设计

      安卓一向以多任务著称,在Android L中,Google对安卓的多任务界面进行了改良。Android L使用了环动式设计的多任务切换界面,这和Windows Vista/Windows 7的多任务切换有点相似。

    Android L新特性 安卓L新特性

    Android L新特性 安卓L新特性
    Android L多任务切换界面使用了环动式设计

      据Google介绍,Android L的多任务控制更加优秀和简洁,不过实际上手会不会有更好的表现,还有待考验。

      Android L新特性:更高的运行效率

      ◆使用ART抛弃Dalvik Java虚拟机

      安卓4.4首次引入了ART运行环境,和之前的Dalvik虚拟机JIT即使编译相比,ART模式会预先将安卓App编译成为本地代码,减少了即使编译对计算性能的浪费,提高了安卓App运行效率。在安卓4.4中,ART只是作为隐藏的开发者选项存在,在Android L中,ART模式终于登上正位,安卓要彻底告别Dalvik了!根据Google介绍,ART模式会大幅提升安卓运行效率,同时不会对现有开发有太大的影响——换言之不会造成什么兼容性问题,毕竟无论是ART还是Dalvik,运行的都是Java代码。

    Android L新特性 安卓L新特性
    Android L使用ART大幅提升运行效率

      ◆支持64位计算

      苹果在去年发布iPhone 5S以及iOS 7,将移动操作系统带入了64位计算的时代。不过,实际上更需要64位计算支持的,也许会是安卓设备——安卓系统对RAM的需求量总所周知的大,而64位能让安卓利用到更多RAM。这次,Android L终于能够支持64位计算,运算速度更快,也可以轻松管理大内存。

    Android L新特性 安卓L新特性
    Android L支持64位计算

      不过,安卓阵营64位硬件的问世尚需时日,有消息称高通将会在今年年底发布支持64位的骁龙810处理器,而ARM阵营也会在今年年底和明年年初正式迈入64位时代。Android L要发挥最大功用,也许还得等上一段时间。

      ◆Android Extension Pack带来超强游戏画面

      苹果在WWDC上介绍了Metal 3D图形技术,号称可以为iOS设备带来游戏主机级别的画面。Google现在也推出针锋相对的技术了!Android L将会支持Android Extension Pack,这可以为高端安卓设备带来PC级别的游戏画面。Android Extension Pack是安卓全新的游戏API,支持铺嵌和几何着色等功能,绘图品质极佳。

    Android L新特性 安卓L新特性

    Android L新特性 安卓L新特性
    Android Extension Pack会为Android L带来PC级别的游戏画面

      不过游戏一直是安卓的弱项,Android Extension Pack效用如何,还有待观察。

      Android L:升级更快更安全

      碎片化问题一直是安卓的阿克琉斯之踵,带来的升级困难以及安全问题让苹果有机会在WWDC大会上狠狠奚落了安卓一番。在Android L中,Google提出了新方案解决安卓的安全和碎片化问题。根据Google介绍,Android L中Google会通过Google Play服务推送安全补丁,无需依赖设备厂商。而Android L还会内置“工厂还原”模式,能够让用户在丢失手机时远程清除手机数据保护隐私。同时,Android L还拥有“通用数据控制”特性,可以调整所有app的隐私设置,“你将知道任何关联变动”——这项功能对于安卓用户来说可谓是渴望已久的甘霖。

    Android L新特性 安卓L新特性
    Google称Google Play服务最新版覆盖了93%设备

    Android L新特性 安卓L新特性
    Play服务将承担起安卓安防重任

      不过,鉴于在中国,Google并不展开任何和Google帐号有关的服务,所以国行安卓机并不附带Google Play服务。Android L的安全推送的确很好,但也许在中国无力施展。

      Android L:共建手表TV汽车PC生态圈

      安卓和iOS的战场早已经不局限于手机和平板这样的移动设备,穿戴是设备(智能手表)、客厅、汽车等领域已经随处可见安卓和iOS的战争。Google I/O 2014大会上还发布了Android Wear智能手表系统、Android TV系统以及Android Auto汽车系统,和Android L共同构成全方位包围人们生活的安卓生态圈。

    Android L新特性 安卓L新特性
    Google提出了安卓设备无缝切换的理念

      ◆Android Wear

      Android Wear是Google新发布的专用于智能手表的特制安卓系统,根据Google的演示,Android Wear可以结合Android L,当用户在Android L上安装一个App时,Android Wear将会出现相应的副本。同时,Android Wear也可以代替Android L接听电话以及一些其他功能。Google介绍,人们平均每天看手机125次,Android Wear的使命就是让用户从揣裤兜的动作解放出来。

    Android L新特性 安卓L新特性
    Android Wear将可以替代Android L接电话

    Android L新特性 安卓L新特性
    在Android L安装了一个App,将会在Android Wear上创建副本

      ◆Android TV

      Android TV是安卓进军客厅的桥头堡,在Google I/O大会上终于首次亮相。Android TV能够通过Android L和Android Wear控制,比如说用户通过Nexus 5语音搜索,Android TV即可呈现出搜索结果。同时,Android TV还带来了“Cast Screen”特性,Android L可以将图像投影的Android TV上,Google通关某个协议让投影图像几乎没有延时和掉帧,三星、Nexus、HTC、LG等厂商均会支持Cast Screen Android TV投影功能。

    Android L新特性 安卓L新特性

    Android L新特性 安卓L新特性

    Android L新特性 安卓L新特性
    Android TV进军客厅,用户可以用Android L控制Android TV,并让手机相应图像投影到TV上

      ◆Android Auto

      Android Auto是Google针对车载设备发布了特制安卓系统,Google称,驾驶员在驾驶中查看手机非常危险,于是Android Auto应运而生。Android Auto能够结合Android L,让驾驶员用语音回复短信,驾驶员无需腾出手来操作安卓手机增加危险系数。同时,Android Auto还提供了导航、音乐、语音控制等功能,目前已经有大量汽车厂商加入到Google的汽车开放联盟,将来这些厂商都会推出Android Auto的汽车。

    Android L新特性 安卓L新特性
    Android Auto车载系统

      苹果在今年也开始进军汽车市场,推出了CarPlay车载系统,Android Auto显然要面临激烈的竞争。

      ◆Chrome OS

      Chrome OS是Google推出的桌面操作系统,自推出以来一直没有太好的市场表现。现在,Google打算将安卓的生态带到Chrome OS平台上了!据Google介绍,Chrome OS将可以运行一些安卓App,安卓App能够以平铺或者垂直界面在Chrome OS上运行。受限于技术,这项特性也许不是特别完善,但未来会有越来越多的安卓App出现在Chrome OS平台。

    Android L新特性 安卓L新特性

    Android L新特性 安卓L新特性
    Chrome OS可以运行安卓应用

      总结

      Android L的出现无疑令人激动,从界面到性能,从本地到网络,Android L新特性可谓是从安卓4.0以来前所未有的重磅。除了Android L本身,Google正在构建不同设备直接的生态圈,各类设备纳入到安卓生态后会产生怎样的化学反应,令人无限遐想。总的来说,Android L完全可以称得上是一次安卓系统的革命,让我们期待Android L的正式版吧!

    展开全文
  • 安卓9.0系统特性

    千次阅读 2019-09-08 14:44:27
    日前针对Android系统特有的开放式特点,及其所带来的卡顿、运行不流畅问题,谷歌特意研制出最新版Android 9.0,以增强系统的封闭性。于是,网上曝出了很多安卓“抄袭”“模仿”iOS的说法。不过在笔者看来,不管...

                                                  安卓9.0系统新特性

    新特性一:

           日前针对Android系统特有的开放式特点,及其所带来的卡顿、运行不流畅问题,谷歌特意研制出最新版Android 9.0,以增强系统的封闭性。于是,网上曝出了很多安卓“抄袭”“模仿”iOS的说法。不过在笔者看来,不管是不是“抄袭”,谷歌能有这方面的想法,便意味着安卓的未来,也许就不会比苹果的iOS系统差。

     

    就像iOS系统11.3发布测试,Android 9.0系统预览测试或许也将在本月的14号左右发布。根据此前网络上许多爱好者的发生,我们也提前预料到这次的Android 9.0或许将带给我们同以往安卓系统,完全不同的体验。

     

    1、适配异形全面屏

    iPhone X的“刘海儿”屏造型初亮相时,网友吐槽“丑哭”。确实,从常规的审美角度来说,“刘海儿”造型的屏幕设计并不美。但是这丝毫不影响它成为各大安卓手机厂商模仿的对象,笔者猜测,原因或许就因为它是苹果设计出来的,毕竟苹果在全球手机行业代表了某种权威。

    所以在今年即将发布的新机型里面,有不少安卓厂商都是异形全面屏设计。而谷歌为了照顾好这一板块,即将面世的Android 9.0系统,自然也要具备适配“刘海儿”屏的功能。

    2、原声支持虹膜识别

    虽然现在很多手机都支持面部识别解锁,但是实话是说,这种技术目前尚不成熟,并不是很安全。而最好的办法还是配合虹膜识别来实现更加安全的面部解锁。日前,XDA的开发者从谷歌提交到开源项目的代码中发现,谷歌正致力于将虹膜识别技术集成到安卓系统当中,Android 9.0或许将会原生支持虹膜识别。

    目前,在安卓手机的阵营中,仅有三星等几款手机支持虹膜识别,一旦Android系统能够原生支持这一功能,相信未来将会有更多的安卓手机支持。

    3、支持手机秒变蓝牙鼠标、键盘

    初见这则功能介绍的时候,笔者也是“大吃一惊”:难道Android 9.0还能这么玩儿?

    早在2014年,高通 CodeAurora 论坛的一位成员层提交过一个增加 Android 设备对 HID 的支持。虽然这个功能在2016年的 Android 系统中测试后,仍被禁用和隐藏。

    不过最新有信息现实,谷歌似乎重新激活了这个功能,并将其添加到了最新的Android 版本中。这意味着未来运行 Android 9.0 的设备将可以将自己变成 HID 设备,比如鼠标,键盘,甚至是游戏手柄都可以。

    4、原生支持夜间主题

    此前Android的黑夜模式曾在安卓6.0的时候出现过,不过遗憾的时,谷歌迟迟没有将其引入正式版。而根据不久前谷歌官方Android Issue Tracker泄露,Android 9.0将有两个新特性,即全局黑夜模式和为具备Always-on display(屏幕常显)功能手机加入原生的天气支持。

    笔者猜测,这或许是因为谷歌考虑到了用户对续航敏感和有关灯玩手机的习惯。

     

    新特性二:

    室内WIFI定位

    Android P增加了对RTT Wi-Fi协议的支持,以此作为室内定位的基础。 
    在支持硬件支持的Android P设备上,开启定位并且打开WIFI扫描后就可以使用该功能进行定位。应用可以测量与附近支持RTT的Wi-Fi接入点(AP)的距离。设备必须启用位置并启用Wi-Fi扫描(在设置>位置下)。使用这个功能不会连接到WIFI,而且为了保持隐私,只有手机能确定AP到设备的距离,反之则不能。 
    如果设备测量到3个或更多AP的距离,则可以使用多点定位算法来估算最适合这些测量值的设备位置。其结果通常可以精确到1至2米范围。

    //注:该处在2018.3.8的版本中还有bug,WIFI_RTT_RANGING_SERVICE没有添加到@ServiceName标记中
    WifiRttManager wifiRttManager = (WifiRttManager) getSystemService(Context.WIFI_RTT_RANGING_SERVICE);
    RangingRequest.Builder builder = new RangingRequest.Builder();
    builder.addAccessPoint();
    builder.addWifiAwarePeer();
    wifiRttManager.startRanging(builder.build(), () -> {...}, new RangingResultCallback{...});

    该功能API在android.net.wifi.rtt下。

    “刘海”屏幕支持

    Android P 支持了手机屏幕是不规则形状时的获取(主要是应对刘海屏吧)。可以使用类似windowInsets.getDisplayCutout()来获取一些你想要的信息。

    //您可以在自己的View中获取到不应该绘制的部分屏幕
    getRootWindowInsets().getDisplayCutout().getBounds();
    getRootWindowInsets().getDisplayCutout().getSafeInsetBottom();
    getRootWindowInsets().getDisplayCutout().getSafeInsetLeft();
    getRootWindowInsets().getDisplayCutout().getSafeInsetRight();
    getRootWindowInsets().getDisplayCutout().getSafeInsetTop();
    //也可以设置Window的属性
    WindowManager windowManager = (WindowManager) getApplicationContext().getSystemService(Context.WINDOW_SERVICE);
    WindowManager.LayoutParams layoutParams = new WindowManager.LayoutParams();
    layoutParams.layoutInDisplayCutoutMode = WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_ALWAYS;
    layoutParams.layoutInDisplayCutoutMode = WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_DEFAULT;
    layoutParams.layoutInDisplayCutoutMode = WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_NEVER;

    通知

    Android P还增加了许多对通知的支持。

    增强体验

    从Android 7.0开始,就优化了Android通知栏的体验。 
    在P当中,又新增了下述功能: 
    支持图像:Android P现在在手机上的消息通知中显示图像。您可以在消息上使用setData()来显示图像。 
    会话参与者的简化支持:新的Notification.Person类用于标记参与聊天的人,包括他们的头像和URI。还有其他的一些API,现在都用Person类作为标志参数而不是CharSequence。

    Notification.Builder builder = new Notification.Builder(this, "a");
    //新的聊天对象
    Notification.Person p = new Notification.Person();
    //在MessagingStyle中用Person代替了以往的CharSequence
    Notification.MessagingStyle messageStyle = new Notification.MessagingStyle(p);
    Notification.MessagingStyle.Message message = new Notification.MessagingStyle.Message("aaa", 100, p);
    //可以显示图像了
    message.setData();
    messageStyle.addMessage(message);
    builder.setStyle(messageStyle);
    Notification notification = builder.build();

    将回复另存为草稿:当用户无意中关闭消息通知时,您的应用可以检索系统发送的EXTRA_REMOTE_INPUT_DRAFT来获取一些信息。 
    确定对话是否是群组对话:您可以使用setGroupConversation()来有目的地将对话标识为群组对话或非群组对话。 
    为意图设置语义动作:setSemanticAction()方法允许您为某个动作提供语义含义,如标记为读取,删除,回复等。 
    SmartReply

    通道设置、广播以及免打扰

    Android O引入了Notification Channels,可让您为要显示的每种类型的通知创建一个用户可自定义的频道。 Android P通过以下更改简化了通知渠道设置: 
    阻止渠道:用户现在可以在应用的通知设置中阻止整组渠道。您可以使用isBlocked()方法来确定某个组何时被阻止,不对被阻止的组发送消息。 
    此外,您的应用可以使用新的getNotificationChannelGroup()方法查询当前渠道设置。 
    新的广播类型:Android系统现在在通知频道和频道组的阻塞状态发生变化时发送广播。拥有被阻止的频道或群组的应用可以监听这些Intent并作出相应的反应。有关这些Intent的更多信息,请参阅NotificationManager参考中更新后的常量列表。有关对广播Intent作出反应的信息,请参阅广播。 
    新的免打扰优先级类别:NotificationManager.Policy有两个新的策略常量:PRIORITY_CATEGORY_ALARMS(按优先级排列)和PRIORITY_CATEGORY_MEDIA_SYSTEM_OTHER(优先排列媒体,系统和游戏声音)

    多相机支持和相机更新

    现在,可以同时从两个或更多的物理摄像头同时获得数据流。在具有双前置或双后置摄像头的设备上,可以实现无法使用单个摄像头实现的功能,例如无缝缩放,散景 ,和立体视觉。 该API还允许您调用合理的或者融合的相机流,以便在两台或更多台相机之间自动切换。 
    相机的其他改进包括新的android.hardware.camera2.params.SessionConfiguration,有助于减少初始捕捉期间的延迟。而Surface共享可让相机客户端处理各种使用情况,而无需停止和启动相机流式传输。 此外还添加了基于显示的闪光灯支持的API。 
    Android P还支持支持deveices上的外部USB / UVC相机

    新的图片解码

    Android P新增了ImageDecoder类,为解码图像提供了一种更优的方法。由此可以用ImageDecoder来替换BitmapFactory和BitmapFactory.Options。更多使用方法请参见官方API。

    String filePath = "test";
    File file = new File(filePath);
    ImageDecoder.Source source = ImageDecoder.createSource(file);
    ImageDecoder.decodeBitmap(source);
    ImageDecoder.decodeDrawable(source, (imageDecoder, imageInfo, source1) -> {
        //裁剪图像
        imageDecoder.setCrop();
        //调整大小
        imageDecoder.setResize();
    });
    BitmapFactory.decodeFile(filePath);

    动画

    Android P引入了一个新的AnimatedImageDrawable类来绘制和显示GIF和WebP动画图像。 AnimatedImageDrawable与AnimatedVectorDrawable类似,因为AnimatedImageDrawable动画也是基于RenderThread工作的。 RenderThread本身在内部使用工作线程进行解码,因此解码不会干扰RenderThread。 这种实现允许您的应用拥有动画图像,而无需管理其更新或干扰应用的UI线程。

    Drawable d = ImageDecoder.decodeDrawable(...);
    if (d instanceof AnimatedImageDrawable) {
        // Prior to start(), the first frame is displayed
        ((AnimatedImageDrawable) d).start();  
    }

    HDR VP9视频,HEIF图像压缩和媒体API

    Android P增加了对HDR VP9 Profile 2的内置支持。

    Android P支持HEIF图像(隔壁IOS在2017年10月推的新的图片编码)编码。 
    Android P还引入了MediaPlayer2。该播放器支持使用DataSourceDesc构建的播放列表。

    MediaPlayer2.create();

    注:笔者对图像/视频编解码方面不甚了了,有兴趣的可以自行参阅API

    JobScheduler中的数据成本敏感度

    在Android P当中,JobScheduler得到了改进,使其能够更好地为用户处理与网络相关的工作,并配合运营商分别提供网络状态信号。 
    Jobs现在可以定义出其估计的数据大小,预取信号,并指定详细的网络要求 - 运营商可以将网络报告为拥塞或不用流量计费的。然后,JobScheduler根据网络状态管理工作。例如,当网络拥塞时,JobScheduler可能推迟大型网络请求。在不用流量计费的的网络上时,JobScheduler可以预读来改进用户体验。

    神经网络API 1.1

    对神经网络API新增了9个功能:Pad, BatchToSpaceND, SpaceToBatchND, Transpose, Strided Slice, Mean, Div, Sub, and Squeeze。

    改进表单自动填充

    Android 8.0(API26)引入了自动填充框架,这使得在应用中填写表单变得更加容易。 Android P引入了自动填充服务并实现了多项改进,以在填写表单时进一步增强用户体验。 有关更多详细信息,请参阅自动填充框架。 
    注:该自动填充框架笔者应是Google服务中的内容,国内用户可能会体验不到(或许有厂商自己的版本)。

    安全增强

    Android P引入了许多新的安全功能,包括统一的指纹验证对话框和敏感交易的高确信度的用户确认。 有关更多详细信息,请参阅安全更新页面。

    Android 备份加密

    Android P支持使用客户端密钥对Android备份进行加密。 这项隐私措施,需要设备的PIN,图案密码或标准密码才能从用户设备备份的数据中恢复数据。 
    要了解有关在Android设备上备份数据的更多信息,请参阅数据备份概述。 
    注:据笔者所知,国内厂商基本都做了自己的备份系统(或者和其他大厂合作),所以没兴趣的同学散了吧。

    展开全文
  • Android 安卓8.O新系统什么时候发布呢?安卓8.O什么出来,上市的时间具体是什么时候?安卓8.0系统什么新的功能?有哪些新的特效?安卓8.0系统又有哪些手机?下面是学习啦小编带来关于Android安卓8.0系统什么时候发布...

    Android 安卓8.O新系统什么时候发布呢?安卓8.O什么出来,上市的时间具体是什么时候?安卓8.0系统有什么新的功能?有哪些新的特效?安卓8.0系统又有哪些手机?下面是学习啦小编带来关于Android安卓8.0系统什么时候发布出来的内容,希望能让大家有所收获!

    Android安卓8.0系统什么时候发布出来 安卓8.0发布时间表上市

    Android安卓8.0系统发布上市时间

    今年5月发布

    Android安卓8.0会新增特性

    1、合并Chrome OS

    据传,谷歌或可合并Android与Chrome OS以使平台更加统一。

    2、多窗口模式

    多窗口模式能够充分利用大屏手机、平板的屏幕空间。

    3、OpenJDK替换Java API

    Android不再使用Java API是因为官司败诉过。OpenJDK能够更简单地创建通用代码,从而改善Android的开发环境。

    4、3D Touch功能

    实际上国产华为已经有相关产品预先支持3D Touch功能了,而三星也将会提供相应的支持。

    5、独立升级

    如果真的可以实现的话,用户就可以直接通过谷歌进行升级,完全避开第三方的限制,相信这是用户及其渴望的。无需等待,可从官方直升最新版,但是怎样解决兼容等问题是急需解决的问题。

    Android安卓8.0系统什么时候发布出来相关文章:

    展开全文
  • 闲暇无事,整理下Android各个版本系统特性,以方便后续查看! 1. android 1.1  发布时间:发布于 2008 年9月 2.Android 1.5 Cupcake纸杯蛋糕 发布时间:发布于 2009 年 4 月 3.Android 1.6 Donut甜甜圈 ...
  • 众所周知,现在智能手机系统基本被安卓和iOS瓜分,其中安卓因为本身开源特性和较低的部署成本,是目前世界上绝大多数手机的通用系统,而iOS作为苹果手机的专用系统,凭借着每一代苹果手机巨大的销量,也在市场上占有...
  • Android系统介绍及平台特性

    万次阅读 2013-08-08 16:46:16
    Android系统下Java编程详解 Android简介 Android一词英文本义指“机器人”,它是由Google公司于2007年11月推出的基于Linux平台的开源手机操作系统,依靠Google公司的强大开发和媒体资源,Android成为众多手机厂商...
  • 原标题:安卓系统什么越用越卡?三个小妙招教你解决问题使用安卓系统的朋友们都知道,安卓手机越用越卡,但这是为什么呢?各大手机厂商都非常喜欢使用安卓系统,因为它是一个开放系统,不想iOS系统那样严格。使用...
  • 体现在安卓系统上就是root权限,默认没有root权限的话,是没有办法改写系统文件的,而操作系统的这个特性和上面说起来的只读内存十分相似,只不过是从软件层面上保持自身的不可改写罢了,一旦获取了root权限,也就是...
  • 近日谷歌更新了Android Beta项目的网站,确认Android Nougat Beta Progaram项目已经结束,安卓8.0测试版即将到来。有网友已经表示:坐等升级!实际上,不久后的本月17日,谷歌将举行一年一度的I/O大会,不出意外,...
  • 北京时间5月18日,谷歌I/O开发者大会上,正式公布了最新操作系统Android O和Android GO,实际上这两个系统就是最新的安卓8.0。而现在两个月过去了,谷歌也放出了多个开发者预览版,正在一步步调试和优化,所以最终的...
  • 作者:韩梦飞沙 QQ:313134555 Android 5.0_百度百科Android 5.0曝光:ART成默选项-Android 5.0,谷歌,ART,虚拟机,-驱动之家不得不看的16项安卓5.0系统特性
  • 原标题:Win10 Mobile内置完整安卓系统前瞻科技快讯,微软将以何种方式完成移动平台通用程序以及对 iOS 和安卓应用的移植与兼容成为外界关注的焦点,近日有开发者在对最新镜像 Win 10 Mobile 10240 的解析中发现,...
  • Android系统各版本特点

    千次阅读 2019-01-20 13:35:40
    本文为自己多年来在Android实战开发过程中总结归纳的一些常见问题,现在分享出来希望对初学者有所帮助。 本文出自门心叼龙的博客,转载请注明出处: https://blog.csdn.net/geduo_83/article/details/86561333  ...
  • 在Google I/O 2014上,Google正式发布了最新一代安卓系统Android L,安卓系统终于告别了安卓4.×,迈入了全新的版本周期。新一代安卓系统此前一直传闻是安卓5.0,不过这次Google并没有按常理出牌,新一代安卓系统
  • 原标题:为什么氢OS被称为最接近原生安卓的操作系统?目前市场上主流的操作系统安卓和iOS两大阵营,而由于iOS向来是属于苹果手机的专属,想要体验则需要购入昂贵的苹果手机。而安卓因为开源的特性受到众多手机品牌...
  • 深度定制安卓系统是指以android源码为基础,以产品特性为目的而进行深度改造的系统。市面上最常见的深度定制系统是中国移动OPhone所采用的OMS系统。深度定制不只是对UI进行的重新设计,还会围绕硬件的特性系统API...
  • 相信大家都知道最近在搞机圈有个大新闻,就是小米即将于8月份推出MIUI 9。...MIUI成功后,乐蛙、点心等三方定制ROM迅速崛起,但随着手机系统生态逐渐稳定、刷机需求降低,定制安卓系统的范围逐渐缩小...
  • Android知识体系总结之Android部分之Android系统版本特性篇 Android各版本特性 Android 0.x,Android 1.x, Android 2.x,Android 3.x,Android 4.x,Android 5.x,Android 6.x版本特性 Android 7.0(Api 24) Android ...
  • 安卓因为开源的特性受到众多手机品牌的追捧,开发人员可以对系统进行任意定制,像小米的MIUI,华为的EMUI等。手机发烧友都知道,原生的安卓与iOS的体验其实是没有太大差别的,而系统的修改必定会对原生安卓的完整...
  • 分析 Android 系统特点和发展方向 Android 系统简介 应用程序 中介软件 硬件抽像层 Android 的 HAL 硬件抽像层是能以封闭源码形式提供硬件驱 动模块 编程语言 开放手机联盟 手机开放联盟大伙儿庭成员名单 1手机和...
  • 今天要写的这篇博文意义重大,也是网上很少有的,这是在我工作中学会的一项技术,当然,它也是由简单的问题组合而来的。如何在安卓中写C语言程序,调试安卓驱动,测试... 最简单的说法,安卓系统是这样加载的: Bo
  • Android4.3系统是目前最新的安卓系统,本次的升级主要带来了四大特性:1.多用户登录:Android 4.3支持同一设备设定多个登录帐号,家长可为儿童设置限制账户,以显示指定的内容和程序。2.Bluetooth 4.0 Low Energy:...
  • Android 4.0 Space 留白 PopupMenu GlidLayout 网格布局 Android 5.0 MaterialDesign设计风格 Material Theme Meterial Dialog CardView RecyclerView SwipeRefreshLayout Toolbar RippleDrawable 视图的...
  • 随着微软的surface更新换代, Windows平板是越来越受欢迎,在工作上,win平板处理办公文件和兼容性...虽然透过安装Android-X86也是可以运行安卓系统的,但是在设定上比较繁琐,所以不推荐了,我们要说的一定是简单实...
  • 小米4c的手机系统什么小米4c的手机系统是MIUI 6(基于Android OS 5.1)。电池方面,小米4c配备了3080mAh(4.4V高电压)电池,支持快充2.0,采用了USB Type-C接口,正反都能插,也成为了首款采用USB Type-C接口的小米...
  • 这些特性可能对于习惯了其它手机操作系统的用户可能有不习惯的地方,需要重新学习和适应,另外在成长期中的Android系统也会存在不足,这些特性的总结有助于应用的用户体验提升。milestone为代表的android手机首先...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 184,825
精华内容 73,930
关键字:

安卓系统的特性是什么