十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
编辑...
创新互联公司是一家集网站建设,嘉定企业网站建设,嘉定品牌网站建设,网站定制,嘉定网站建设报价,网络营销,网络优化,嘉定网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。
导读:
Android P 全面禁止了非安全的http连接,如果要使用非加密连接,需要配置network security config.步骤如下:
1.1 在res/xml下建立我们自己的network security config文件,名字任意,可以叫做network_security_config.xml
1.2 如果我们相对某些网址使用非安全连接,可以使用如下配置
1.2 如果我们想要允许所有的非安全连接,可以使用如下配置
1.3 然后在AndroidManifest的application标签中增加如下属性
socket连接也必须要使用安全连接,必须要使用SSLSocketFactory,而不能使用SocketFactory.
请注意,SSLScoket本身并不校验hostname的安全性,我们必须使用getDefaultHostnameVerifier的verify方法对hostname进行校验。
在Android P上,对WebView的数据进行了进程隔离,同一个应用程序的不同进程无法访问其他进程中WebView的数据,包括Cookie等。
谷歌推荐的做法是只在一个进程中使用WebView,所以我们应该把所有使用到WebView的Activity都放置在同一个进程中。我们可以在不需要使用WebView的进程中调用WebView的静态方法disableWebView来强制要求该进程不能使用WebView.
1.通知渠道
2.通知角标
3.通知圆点
4.通知延后
5.消息样式
6.通知超时
7.后台执行限制
8.画中画模式
9.自适应图标
10.蓝牙体验提升
11.智能文本选择与智能共享
12.WLAN感知
13.取消屏幕纵横比限制
14.其他
尽管 Android 刷版本号的步伐年年加快,但每年带给用户的惊喜从未减少。经历了四个开发者预览版的洗礼后,Android 8.0 终于在今天凌晨迎来了正式版发布。
如果你还不清楚 Android O 有哪些关键的新特性,不妨让我们通过这篇文章快速为你梳理一遍。
代号「奥利奥」
和发布会前几天外媒传出的消息一样,Android 8.0 的甜品代号果然是「奥利奥」(Oreo)。
而昨晚的发布会碰巧赶上了美国日全食,为此 Google 也准备了一段应景的揭晓视频:
从奇巧板到牛轧糖再到这次的奥利奥,不得不说近几个 Android 版本所选择的甜品都非常可口。在开始新功能介绍之前,我们不妨通过下面这张长图回顾一下 Android 历代甜品代号:
通知——往往是 Android 系统的信息过载的「重灾区」,也是近三个大版本以来 Google 不断在优化和改进的重点。在 Android 8.0 中,通知系统有了如下改进:
Android 8.0 引入了通知渠道特性,将应用的通知进行分门别类,用户可以针对不同的通知类别单独设置通知优先级别和提醒方式。
Google 的时钟应用提供了 4 个通知渠道
假想一下(这不可能),适配了这一特性的淘宝客户端,我们可以屏蔽那些直播通知和促销推荐,物流信息、秒杀提醒则可以适当「放行」。
在早前的 Android 版本中,我们只能借助第三方启动器和通知读取工具(比如 Nova Launcher+Telsa)来实现通知角标效果。
Android 8.0 开始,应用可以在启动器图标上显示通知圆点来提示用户,但这个圆点角标和 iOS 上那个有所不同——它仅提示用户该应用有通知,不会显示具体的通知数量。考虑到部分用户的「红点强迫症」,这算是一种折衷的设计了……
通常,当一条通知出现在通知栏,除了点击查看、划掉不理以外,我们就只剩下「放任不管」这种处理方式了。这显然不太优雅,太多的通知驻留不仅会让通知栏拥挤不堪,回过头进行处理的时候也很不方便。
所以,Android 8.0 引入了另一种通知处理操作——通知延后。当我们暂时不便处理某条应用通知时,只需要在该条通知上清扫,点击出现的时钟图标,即可让这条通知暂时从通知栏消失,在设定好的时间后再回来。
通知延后功能演示
理论上来说,如果开发者在开发应用时没有进行特殊限制,所有的非常驻通知(比如媒体通知)都可以被延后。
Android 8.0 提供了新的通知背景着色方式,除了大家可能已经见过的多彩媒体通知以外,一些常驻高优先级通知也可以利用这种背景着色方式来让自己更加引人注目,比如驾驶导航和后台通话通知。
目前,一些使用原生通知样式的应用已经可以在 Android 8.0 上正确调用新的通知背景着色机制了,效果也十分讨人喜爱。
原生 Android 系统的消息通知向来好用——我们不仅可以通过消息通知进行快速回复,还能通过扩展试图看到多条消息通知并逐条回复(详情请参阅 Android Nougat 的通知改进详解)。
在 Android 8.0 中,消息通知样式得到了进一步完善。开发者可以通过新的通知函数来为消息通知的扩展视图增加消息历史,让用户在快速处理通知的过程中更加熟悉回话上下文。
除了上面提到的通知延后功能以外,Android 8.0 还面向开发者提供了通知超时特性,允许特定通知在设定时间后自行清除;进而,系统还能区分某条应用的清除操作是由用户还是应用发出。
利用这些特性,应用开发者能够探索设计出对用户造成打扰程度最小的通知方式。
系统级自动填充框架
不管是在手机上注册账号、登录账号还是输入其他常用个人信息,过程都相当繁琐且容易出错,选择第三方密码管理和自动填写工具又不得不额外考虑安全和隐私问题。
因而在 Android 8.0 中,Google 首次整合了一个系统级的全局自动填写功能。开启后,当我们在第一次进行应用设置、登录时,系统就会帮我们快速填写好对应的个人信息和密码。
系统级自动填写使用起来非常方便
当然,如果不想使用 Google 提供的密码保存服务,也可以等待 1Password、LastPass 等服务商跟进这一特性,到时我们就可以在「系统-语言和输入法-输入帮助」自由选择想要使用的自动填充服务。
未来会有更多应用适配这一特性
优秀的多任务处理能力一直以来都是 Android 系统的魅力所在,但同时运行的应用太多肯定会为系统造成不小的负担。如果还有应用或服务在后台运行,而用户正在使用其他需要大量系统资源的应用(例如玩游戏或观看视频),就会因为硬件性能不足导致卡顿,部分应用可能还需要重新加载。
为此,Android 8.0 对应用在后台运行时可以执行的操作施加了限制,面向 Android 8.0 进行开发的应用将在两个方面受到限制:
后台服务限制:处于空闲状态时,应用可以使用的后台服务存在限制。
广播限制:除了有限的例外情况,应用无法为隐式广播注册接收器。
不清楚何为「服务」何为「广播」也没关系,只需要知道:当一个面向 Android 8.0 开发或被用户手动开启了后台限制的应用被放到后台运行时,系统在为它分配各项系统资源时就会「酌情考虑」了。
这个后台执行限制此前也存在缺陷和不足,好在经过绿色守护开发者 @oasisfeng 和部分热心 Android 用户的热心反馈,Google 已于第四个开发者预览版(DP4)中修复了后台服务管控漏洞。即便是那些顽固的国产毒瘤,在 Android 8.0 中也不得不收敛了。
Android Nougat 引入了应用「分屏」功能,允许用户将任意两个(适配了该特性)的应用或窗口在屏幕上进行上下分屏,提升了应用间的协作和使用效率。
而从 Android 8.0 开始,系统将支持更加自由、灵活的「画中画」模式。这个通常用于视频播放的特性早已在部分 OEM 厂商的定制 ROM 和 Android TV 当中的实现,但加入原生 Android 8.0 依然令人惊喜。
一边看视频一边浏览其他内容
如果你订阅了 YouTube Red 并开启了「后台播放功能」,系统就能在你把 YouTube 放到后台的同时将视频内容以悬浮窗的形式继续播放;当你在 Chrome 中查看网页视频时,也可以将某个标签中的视频「拿出来」,一边浏览其他网页一边查看视频;知名 Android 播放器 VLC 也抢在正式版发布前就适配了画中画模式,升级 Android 8.0 正式版以后别忘了试一试。
Android 系统上到底改采用异形图标还是规则图标?在这个问题上,不同的 OEM 厂商和用户都有自己的选择偏好。这也导致不同 Android 设备的体验迥异,百花齐放的表象之下,无论是应用开发者和图标设计师们往往感到很迷茫。
为了解决这个问题,Google 在 Android 8.0 中引入了自适应图标规范。依据这一规范开发的自适应图标不仅可以最大程度上保留自己的特色,同时还能完美地融入到不同启动器和 ROM 的整体视觉风格当中。
除此之外,应用开发者还能脑洞大开,赋予这些图标不同的动态效果。
关于自适应图标规范的意义所在以及开发者如何进行设计和适配,请参阅少数派先前发布的译文:
Android O 自适应图标的意义何在?Google 设计师给你答案 | 科普设计自适应图标实现自适应图标Android O 新特性介绍:自适应图标(Adaptive Icons)
Android 8.0 还从多个角度增强了原生 Android 平台对蓝牙的支持,具体包括:
支持 AVRCP 1.4 标准:支持远程浏览和控制 TV、HiFi 等设备的媒体库。支持蓝牙低功耗 (BLE) 5.0 标准:传输速度提升两倍、传输距离提升四倍、数据承载能力提升八倍。此外,5.0 标准还优化了时隙可用性和信道选择算法,可规避 Wi-Fi 和 LTE 信道干扰来提高数据传输质量。集成更多蓝牙协议编解码器,包括由 Sony 提供的 LDAC 编解码器。
毫无疑问,Android 8.0 对于那些爱听歌的用户来说是一次良心满满的升级:只要手里蓝牙耳机满足硬件要求,就可以轻松实现无损蓝牙音乐传输。
利用机器学习和人工智能,当我们在 Android 8.0 中进行文字点选操作时,系统会自动识别我们想要复制的文字内容。在长按弹出的浮动工具条中,系统还将提供可用于处理被选中部分文字内容的应用选项。
自动识别文字内容并提供应用建议 - 1
例如,当我们长按一段文字中地址的一部分,系统不仅会将整个地址内容进行选中,还能在弹出的浮动工具条中显示地图应用,点击即可快速调用地图打开选中地址;同理,如果我们选中的是一段 URL,那么 Chrome 浏览器就会出现在弹出的浮动工具条中,方便我们快速跳转至该 URL 所指向的网页。
自动识别文字内容并提供应用建议 - 2
同样的技术也将运用于 Android 8.0 的「分享」接口中,如果我们试图分享一张购物小票的照片,在分享列表中,系统会优先建议那些记账应用;而如果我们分享一张自拍,美颜应用则更可能会出现在分享菜单的前列。
Android 8.0 新增了对 WLAN 感知的支持,此技术基于周边感知联网 (NAN) 规范。在具有相应 WLAN 感知硬件的设备上,应用和附近设备可以通过 WLAN 进行搜索和通信,无需依赖互联网接入点。
开启 WLAN 感知功能后,当我们位于已保存的 WiFi 连接附近时,系统就会自动使用这个 WiFi 接入点。
以 Android 7.1(API 级别 25)或更低版本为目标平台开发的应用默认最大屏幕纵横比为 1.86,但这也导致这些应用在一些新近机型(比如 Galaxy S8/S8+)上显示效果不佳(无法全屏、上下黑边等等)。
采用非传统屏幕纵横比的新近机型 | 源:bgr
而面向 Android 8.0 或更高版本系统所开发的应用将不要求设定最大纵横比,保证应用能够最大限度地兼容屏幕比例各异的 Android 机型。
对开发者而言,他们还可以利用下面这些 Android 8.0 新特性:
Android平台采用了整合的策略思想,包括底层Linux操作系统、中间层的中间件和上层的Java应用程序。下面我把Android的特性及其架构体系结构总结一下。
一、Android的平台特性
Android平台有如下特性:
1. 应用程序框架支持组件的重用与替换。
这样我们可以把系统中不喜欢的应用程序删除,安装我们喜欢的应用程序。
2. Dalvik虚拟机专门为移动设备进行了优化。
Android应用程序将由Java编写、编译的类文件通过DX工具转换成一种后缀名为.dex的文件来执行。Dalvik虚拟机是基于寄存器的,相对于Java虚拟机速度要快很多。
3. 内部集成浏览器基于开源的WebKit引擎。
有了内置的浏览器,这将意味着WAP应用的时代即将结束,真正的移动互联网时代已经来临,手机就是一台“小电脑”,可以在网上随意遨游。
4. 优化的图形库包括2D和3D图形库,3D图形库基于OpenGL ES 1.0。
强大的图形库给游戏开发带来福音。在3G最为重要的的应用莫过于手机上网和手机游戏。
5. SQLite用作结构化的数据存储。
6. 多媒体支持包括常见的音频、视频和静态印象文件格式
如MPEG4、H.264、MP3、AAC、AMR、JGP、PNG、GIF。
7. GSM电话(依赖于硬件)。
8. 蓝牙(Bluetooth)、EDGE、3G、WiFi(依赖于硬件)。
9. 照相机、GPS、指南针和加速度计(依赖于硬件)。
10. 丰富的开发环境包括设备模拟器、调试工具、内存及性能分析图表和Eclipse集成的开发环境插件。
Google提供了Android开发包SDK,其中包含了大量的类库和开发工具,并且针对Eclipse的可视化开发插件ADT。
二、Android平台架构
从上图我们可以看出,Android操作系统的体系结构可分为4层,由上到下依次是应用程序、应用程序框架、核心类库和Linux内核,其中第三层还包括Android运行时的环境。下面分别来讲解各个部分。
1. 程序应用
Android
连同一个核心应用程序包一起发布,该应用程序包包括E-mail客户端、SMS短消息程序、日历、地图、浏览器、联系人管理程序等。所有的应用程序都是用Java编写的。
2. 应用程序框架
开发者完全可以访问核心应用程序所使用的API框架。该应用程序框架架构用来简化组件软件的重用,任何一个应用程序都可以发布它的功能块并且任何其他的应用程序都可以使用其所发布的功能块(不过得遵循框架的安全性限制)。该应用程序重用机制使得组件可以被用户替换。
以下所有的应用程序都由一系列的服务和系统组成,包括:
1)一个可扩展的视图(Views)可以用来创建应用程序,包括列表(lists)、网络(grids)、文本框(text
boxes)、按钮(buttons),甚至是一个可嵌入的Web浏览器。
2)内容管理器(Content Providers)使得应用程序可以访问另一个应用程序的数据(如联系人数据库),或者共享它们自己的数据。
3)一个资源管理器(Resource Manager)提供非代码资源的访问,如本地字符串、图形和分层文件(layout files)。
4)一个通知管理器(Notification Manager)使得应用程序可以在状态栏中显示客户通知信息。
5)一个活动类管理器(Activity Manager)用来管理应用程序生命周期并提供常用的导航回退功能。
3. Android程序库
Android包括一个被Android系统中各种不同组件所使用的C/C++集库。该库通过Android应用程序框架为开发者提供服务。
以下是一些主要的核心库:
1)系统C库:一个从BSD继承来的标准C系统函数库(libc),专门为基于Embedded Linux的设备定制。
2)媒体库:基于PacketVideo
OpenCORE;该库支持录放,并且可以录制许多流行的音频视频格式,还有静态映像文件包括MPEG4、H.264、MP3、AAC、JPG、PNG。
3)Surface Manager:对显示子系统的管理,并且为多个应用程序提供2D和3D图层的无缝融合。
4)LibWebCore:一个最新的Web浏览器引擎,用来支持Android浏览器和一个可嵌入的Web视图。
5)SGL:一个内置的2D图形引擎。
6)3D libraries:基于OpenGL ES 1.0 APIs实现;该库可以使用硬件3D加速(如果可用)或者使用高度优化的3D软加速。
7)FreeType:位图(bitmap)和向量(vector)字体显示。
8)SQLite:一个对于所以应用程序可用、功能强劲的轻型关系型数据库引擎。
4. Android运行库
Android包括了一个核心库,该核心库提供了Java编程语言核心库的大多数功能。
每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例。Dalvik是针对同时高效地运行多个VMs实现的。Dalvik虚拟机执行.dex的Dalvik可执行文件,该格式文件针对最小内存使用做了优化。该虚拟机是基于寄存器的,所有的类都是经由Java汇编器编译,然后通过SDK中的DX工具转化成.dex格式由虚拟机执行。
Dalvik虚拟机依赖于Linux的一些功能,比如线程机制和底层内存管理机制。
5. Linux内核
Android的核心系统服务依赖于Linux内核,如安全性、内存管理、进程管理、网络协议栈和驱动模型。Linux内核也同时作为硬件和软件栈之间的硬件抽象层。
主要特性:
1.分屏多任务
进入后台多任务管理页面,然后按住其中一个卡片,然后向上拖动至顶部即可开启分屏多任务,支持上下分栏和左右分栏,允许拖动中间的分割线调整两个APP所占的比例。现在,用户可以一次在屏幕上打开两个应用。
在运行 Android N 的手机和平板电脑上,用户可以并排运行两个应用,或者处于分屏模式时一个应用位于另一个应用之上。 用户可以通过拖动两个应用之间的分隔线来调整应用。
在 Android TV 设备上,应用可以将自身置于画中画模式,从而让它们可以在用户浏览或与其他应用交互时继续显示内容。
多窗口支持为您提供新的吸引用户方式,特别是在平板电脑和其他更大屏幕的设备上。 您甚至可以在您的应用中启用拖放,从而使用户可以方便地将内容拖放到您的应用或从其中拖出内容—这
是一个非常好的增强用户体验的方式。向您的应用添加多窗口支持并配置多窗口显示的处理方式非常简单。 例如,您可以指定您的 Activity 允许的最小尺寸,从而防止用户将 Activity 调整到
该尺寸以下。 您还可以为应用禁用多窗口显示,这可确保系统将仅以全屏模式显示应用。
2.全新下拉快捷开关页
在安卓7.0中,下拉打开通知栏顶部即可显示5个用户常用的快捷开关,支持单击开关以及长按进入对应设置。如果继续下拉通知栏即可显示全部快捷开关,此外在快捷开关页右下角也会显
示一个“编辑“按钮,点击之后即可自定义添加/删除快捷开关,或拖动进行排序。
3.通知消息快捷回复
安卓7.0加入了全新的API,支持第三方应用通知的快捷操作和回复,例如来电会以横幅方式在屏幕顶部出现,提供接听/挂断两个按钮;信息/社交类应用通知,还可以直接打开键盘,在输
入栏里进行快捷回复。
4.通知消息归拢
安卓7.0会将同一应用的多条通知提示消息归拢为一项,点击该项即可展开此前的全部通知,允许用户对每个通知执行单独操作。
5.夜间模式
安卓7.0中重新加入了夜间深色主题模式,该功能依然需要在系统调谐器中开启,从顶部下划打开快捷设置页,然后长按其中的设置图标,齿轮旋转10秒钟左右即可提示已开启系统调谐
器,之后用户在设置中即可找到“系统调谐器”设置项。点开其中的“色彩和外观”,即可找到夜间模式,开启后即可使用全局的深色主题模式,同时亮度和色彩也会进行一定的调整,该功能可以
基于时间或地理位置自动开启。另外,系统调谐器中也提供了RGB红绿蓝三色调节滑动条,允许用户手动精细调节,例如减少蓝色或增加红色以提供类似护眼模式的效果。
6.流量保护模式
安卓7.0新增的流量保护模式不仅可以禁止应用在后台使用流量,还会进一步减少该应用在前台时的流量使用。其具体实现原理目前尚不清楚,推测其有可能使用了类似Chrome浏览器的数
据压缩技术。此外,谷歌还扩展了ConnectivityManager API的能力,使得应用可以检测系统是否开启了流量保护模式,或者检测自己是否在白名单中。安卓7.0允许用户单独针对每个应用,
选择是否开启数据保护模式。
7.全新设置样式
安卓7.0启用了全新的设置样式,首先每个分类下各个子项之间的分割线消失了,只保留分类之间的分割线。全新的设置菜单还提供了一个绿色的顶栏,允许用户通过后方的下拉箭头,快速
设定勿扰模式等。除了勿扰模式外,顶栏菜单还可以显示诸多其他的设置状态,例如数据流量的使用情况,自动亮度是否开启等。谷歌也在安卓7.0的设置中加入了汉堡菜单,在二级设置界面中
的左上角,你就会看到这个汉堡菜单,点击后即可看到所有设置项,方便用户快速跳转。
8.改进的Doze休眠机制
谷歌在安卓7.0中对Doze休眠机制做了进一步的优化,在此前的安卓6.0中,Doze深度休眠机制对于改善安卓的续航提供了巨大的作用。而在安卓7.0中,谷歌对Doze进行了更多的优化,
休眠机制的使用规则和场景有所扩展,例如只要手动在后台删掉应用卡片,关屏后该应用就会被很快深度休眠。
9.系统级电话黑名单功能
安卓7.0将电话拦截功能变成了一个系统级功能。其它应用可以调用这个拦截名单,但只有个别应用可以写入,包括拨号应用、默认的短信应用等。被拦截号码将不会出现在来电记录中,也
不会出现通知。另外用户也可以通过账户体系备份和恢复这个拦截名单,以便快速导入其它设备或账号。
10.菜单键快速应用切换
双击菜单键,就能自动切换到上一个应用。此外,如果你不停地点击菜单键的话,就会在所有应用中不间断地轮换,应用窗口会自动放大,顶部还会出现倒计时条,停止点击且倒计时结束
后,当前应用会自动放大并返回到前台。
据谷歌介绍,Nougat带来了250多项新特性。以下是其中的部分特性:
1.新的Interpreter+JIT+AOT编译器,我们之前详细介绍过。总的来说,该编译器减少了应用程序安装时间和存储空间,并在手机空闲的时候编译代码的热点部分,提高性能。
2.Daydream:一个在移动设备上创建虚拟现实体验的VR SDK。其中有一个面向Unity 3D的SDK,用于创建Android和iOS VR应用程序,还有一个SDK是专门用于Android的。
3.Vulkan:一个跨平台的图形和计算API。它来自Khronos Group,面向现代GPU。Vulkan不只适用于智能手机,还适用于PC、控制器,甚至是嵌入式设备。Vulkan 1.0规范是今年早些时候发布的。
4.多窗口:在Nougat上,开发人员可以创建两个窗口,一个在上面,一个在下面,或者在分屏模式下并排显示。应用界面的大小可以改变。
5.借助Direct Reply,开发人员可以增强通知功能,让用户可以在通知抽屉上直接操作。
6.改进了在Android Marshmallow中引入的Doze,当屏幕关闭而设备没有接通电源时,限制应用程序使用CPU和网络。也就是说,只允许在特定的时间窗口内同步和访问网络,以便节省电池。
7.Svelte进一步降低了后台运行的应用程序使用的内存。
要想更全面地了解Android Nougat的新特性,我们建议您阅读Android 7.0 for Developers,其中包含有关“数据流量节省(Data Saver)”、号码拦截、呼叫显示、多区域支持、新Emojis、WebView(已回归Chrome)、 虚拟文件等特性的详细信息。