关于Android Pie(Android 9.0),你想知道的都在这了

2,380 阅读17分钟

2018年8月7日-凌晨1点,谷歌发布了Android 9.0操作系统,它的名字是Android 9,被命名为Android Pie。让我们看看关于Android 9派你需要知道的一切。

大纲如下:

  • Android Pie 新特性有哪些?
  • 官方Release Note更新说明
  • 哪些设备第一时间将集成Android Pie?
  • Android Pie 源码在哪里下载?

Android Pie 新特性有哪些?

1、App Actions

这个特性推荐使用AI进行操作。AI会尝试找出你接下来要做什么,以及你接下来需要什么,当你启动app抽屉时,它会告诉你。根据你的当前地理位置、一天中的某个时间段,甚至是你连接耳机的时候,向你推荐一些东西。还有位于应用程序抽屉中的快捷键可以预测你将要做什么,这样你就可以更快地完成你在手机上要做的事情。例如,如果你通常打开应用程序面板,然后打开手机应用程序,然后给你的好朋友打电话。在Android Pie上,你最终会看到打开这个应用程序后,就开始建议你给好友电话。

App Actions.gif

2、App slices

slice为你提供了应用的一部分,Android系统认为这是你在寻找某个应用时需要的功能。例如,如果你在搜索中输入“Hawaii”,一个应用程序切片可能会建议你在谷歌photos应用中查看你最近的夏威夷度假照片。比如你要打车,Slices可以做到这一点,搜索“Lyft”,你就会看到一个能给你提供价格和时间,你可以用来完成预约服务。

slices.jpg

3、New gesture navigation(新的手势导航栏)

在跟随时代潮流下,Google一向推崇于Cool的东西,即将推出的谷歌像素或Android One系列的Android手机,Android 9.0 Pie的特点是使用一种新的方式在设备中导航。传统的back、home和最近的应用程序键都消失了。将在底部有一个新的HomeBar指示器——就像iPhone X一样,只是短了一点。应用程序按钮的职责被一个非常熟悉的手势取代了。在椭圆指示器上滑动可以作为滚动条,但是在新的导航条上仍然有一个返回键。向右滑动可以访问最近的应用,或者向上滑动可以访问你的应用抽屉和应用建议。它在Pixel手机上非常流畅。切换到以前的应用程序,在浏览窗口后,在底部添加一个滑块。

new-android-p-navigation.gif

4、Manual rotation(手动旋转)

那些很烦的自动旋转现在可能成为过去。现在旋转屏幕也可以是手动的了,在导航栏上有一个指示器可供点击。

Manual rotation.gif

5、Security and privacy features(安全和隐私特性)

Android Pie引入了大量新的安全和隐私特性,以帮助您保持数据的安全性。更新中引入的最有用的特性之一是,当你的麦克风、摄像头或传感器空闲时,应用程序将不再能够访问它们。怎么做到的,AI

6、Digital Wellbeing(数字健康)

这一切都是为了让你不要一直使用手机。我们需要它。拼命。 制造商的最上瘾的数码产品,即YouTube和Android,所谓的数字健康项目在Android p .它由仪表板显示你如何使用你的设备,像时间在应用程序,手机解锁,或者通知,要求你的注意力,你知道在哪里。App Timer选项可以为应用程序的使用设置一个计时器,甚至当你的限制值用完时,图标会变色。有一个新的DND管理模式,它可以停止所有的调用或通知声音,甚至可以在你获得新的声音时弹出预览。“下风”功能实现了这三种功能:在晚上打开夜灯,在DND模式下快速运行,甚至在睡眠时间接近时以灰度显示。所有这些都有一个手势——把你的手机翻过来,它就会自动进入数字健康模式,甜心。

wellbeing-android-p.gif

  • Dashboard(面板)

让你快速了解你在手机上使用的应用程序,你收到了多少通知,以及你多久查看一次手机。

  • App timers(app计时器) 允许您设置应用程序的使用限制。这样系统就会在你即将达到预设的使用极限时提醒你,防止你过度使用应用程序和手机。

  • Wind down(放松一下) 设置一个时间表来启用DND(Do Not Distur,免打扰)模式,并在规定的时间内将屏幕变为灰色。

  • Do Not Disturb(免打扰) 它现在将屏幕变成了灰度,同时也明显地禁用了通知,除非有重要联系人来呼叫你。

  • Better notification management(更好的通知管理) 可以关闭一系列应用程序的通知,系统甚至可能会要求你在取消通知后停止接收特定类型的通知。让你进入AI时代

7、Adaptive battery(电量自适应)

使用设备上的机器学习来了解用户的使用应用程序情况,并优先考虑最常用的应用程序和服务的电池电量,根据您的使用情况优化应用程序的后台进程,防止电量浪费流失。应用程序如果过度使用电量,系统还会提醒你,通过AI可以改进电池的寿命,谷歌指出可以减少30%获取Wake Lock的情况,(Wake Lock是一种锁的机制, 只要有人拿着这个锁,系统就无法进入休眠, 可以被用户态程序和内核获得)

battery-brightness.gif

8、Adaptive brightness(亮度自适应)

根据你一天中主要使用时间,自动改变亮度等级。根据你的周围环境,了解你喜欢的亮度等级,并自动调整你手机的亮度等级。

官方Release Note更新说明

从官方发布的Open Source的Release Note来看,有如下更新

1、通过WiFi往返时延室内定位

通过WiFi往返时延室内定位(RTT表示往返时延。在计算机网络中它是一个重要的性能指标,表示从发送端发送数据开始,到发送端收到来自接收端的确认(接收端收到数据后便立即发送确认),总共经历的时延),简单理解就是室内无线电波(WIFI)、磁场、声音信号或移动设备收集的其他感觉信息来定位建筑物内物体或人的技术。

Indoor-Positioning.jpg

2、支持设备使用插槽连接来显示

也就是手机可以连接电脑显示屏,来感受大屏显示的魅力

3、多摄像头支持,增加了连接USB摄像头的功能

在Android Pie的设备上,用户可以同时从两个或多个物理摄像头访问数据流。在具有双前置或双后置摄像头的设备上,可实现使用单个摄像头无法实现的创新功能,例如无缝变焦,散景和立体视觉。API还允许调用或融合的摄像机媒体流,以自动在两个或更多摄像机之间切换。相机中的其他改进包括 有助于减少初始捕获期间延迟的其他会话参数,以及允许相机客户端处理各种用例而无需停止和启动相机流的表面共享。我们还添加了基于显示的闪存支持 和访问OIS时间戳的 API,以 实现应用级图像稳定和特效。在Android Pie中,多摄像头API 支持具有FULL或 LIMITED功能的设备的单色摄像头 。单色输出通过YUV_420_888 Y为灰度,U(Cb)为128,V(Cr)为128 的格式实现 。

4、bitmaps and drawables使用了新的解码器解码

Android Pie引入了ImageDecoder类,效率更高效。它提供了一种用于解码图像的现代化方法。使用此类而不是BitmapFactoryBitmapFactory.Options API。ImageDecoder允许new一个 Drawable或一个 Bitmap字节缓冲区,文件或URI。要解码图像,请先createSource() 使用编码图像的来源进行调用 。然后,调用 decodeDrawable() 或decodeBitmap() 通过传递ImageDecoder.Source 对象来创建一个Drawable]或一个Bitmap。要更改默认设置,请传递OnHeaderDecodedListener给 decodeDrawable()或decodeBitmap()。 一旦知道,就ImageDecoder调用onHeaderDecoded()图像的默认宽度和高度。如果编码图像是动画GIF或WebP,则decodeDrawable()返回该类Drawable的实例 AnimatedImageDrawable。我们可以使用不同的方法来设置图像属性:要将解码图像缩放到精确大小,请将目标尺寸传递到 setTargetSize()。您还可以使用样本大小缩放图像。将样本大小直接传递给 setTargetSampleSize()。要在缩放图像范围内裁剪图像,请调用 setCrop()。要创建可变位图,请true进入setMutableRequired()。ImageDecoder还可以为图像添加自定义和复杂的效果,如圆角或圆形蒙版。setPostProcessor() 与PostProcessor 类的实例一起使用以达到想要的任何绘图效果。

5、新的“AnimatedImageDrawable”类,用于在UI中支持本地动画

Android Pie引入了AnimatedImageDrawable用于绘制和显示GIF和WebP动画图像的类。AnimatedImageDrawable类似于 AnimatedVectorDrawable渲染线程驱动动画的方式AnimatedImageDrawable。渲染线程还使用工作线程进行解码,因此解码不会干扰渲染线程上的其他操作。此实现允许您的应用显示动画图像,而无需管理其更新或干扰应用的UI线程上的其他事件。一个AnimatedImageDrawable可以利用的实例进行解码ImageDecoder。以下代码段显示了如何使用ImageDecoder解码你的 AnimatedImageDrawable

private void decodeImage() throws IOException {

    Drawable decodedAnimation = ImageDecoder.decodeDrawable(
        ImageDecoder.createSource(getResources(), R.drawable.my_drawable));

    if (decodedAnimation instanceof AnimatedImageDrawable) {
        // Prior to start(), the first frame is displayed.
        ((AnimatedImageDrawable) decodedAnimation).start();
    }
}

ImageDecoder有几种方法可以让你进一步修改图像。例如,您可以使用该setPostProcessor()方法修改图像的外观,例如应用圆形蒙版或圆角。

6、支持HDR VP9视频和HEIF图像压缩

Android Pie增加了对高动态范围(HDR)VP9配置文件2的内置支持,因此我们现在可以通过YouTube,Play电影和支持HDR的设备上的其他来源播放用户提供支持HDR的电影。Android Pie增加了对平台的HEIF(heic)图像编码的支持。HEIF静态图像样本在MediaMuxerMediaExtractor类中得到支持HEIF改进了压缩以节省存储和网络数据。借助Android 9设备上的平台支持,您可以轻松地从后端服务器发送和使用HEIF图像。确保您的应用与此数据格式兼容以进行共享和显示后,请在应用中尝试将HEIF作为图像存储格式。您可以使用ImageDecoderBitmapFactory进行jpeg-to-heic转换以从jpeg获取位图,并且可以使用HeifWriter从YUV字节缓冲区,Surface或Bitmap写入HEIF静止图像。

媒体指标也可从AudioTrackAudioRecordMediaDrm类。

Android Pie为MediaDRM类添加了方法,以获取指标,HDCP级别,安全级别和会话数,并添加对安全级别和安全停止的更多控制。有关详细信息,请参阅API Diff报告。

在Android Pie中,Audio API包含用于使用,内容类型和输入预设的 AudioStream属性。使用这些属性,您可以创建针对VoIP或摄像机应用程序进行调整的流。您还可以设置SessionID以将Audio流与可包含效果的子混合相关联。使用AudioEffect API控制效果。

Android Pie包含用于DynamicsProcessingAudioEffect API。使用此类,我们可以构建基于通道的音频效果,包括各种类型的多个阶段,包括均衡,多频段压缩和限制器。频带和活动阶段的数量是可配置的,并且大多数参数可以实时控制。

7、改进了JobScheduler以便更好地处理与网络相关的工作。

从Android Pie开始,JobScheduler可以使用运营商提供的网络状态信号来改善网络相关作业的处理。

JobScheduler可以声明其估计的数据大小,信号预取,并指定详细的网络要求。JobScheduler然后根据网络状态管理工作。例如,当网络发出拥塞信号时, JobScheduler可能会推迟大型网络请求。在未计量的网络上,JobScheduler可以运行预取作业以改善用户体验,例如通过预取标题。

添加作业时,请务必使用setEstimatedNetworkBytes(),setPrefetch()setRequiredNetwork()在适当时帮助 JobScheduler正确处理工作。当您的作业执行时,请务必使用Network返回的对象JobParameters.getNetwork()。否则,我们可以将隐式使用设备的默认网络,该网络可能无法满足您的要求,从而导致意外的数据使用。

8、改进了神经网络API 1.1

Neural Networks API是在8.1的Android(API级27)引入,以加速在Android装置上的机器学习。Android 9扩展并改进了API,增加了对九个新操作的支持:

元素数学运算:

  • ANEURALNETWORKS_DIV

  • ANEURALNETWORKS_SUB

数组操作:

  • ANEURALNETWORKS_BATCH_TO_SPACE_ND

  • ANEURALNETWORKS_SPACE_TO_BATCH_ND

  • ANEURALNETWORKS_SQUEEZE

  • ANEURALNETWORKS_STRIDED_SLICE

  • ANEURALNETWORKS_TRANSPOSE

  • ANEURALNETWORKS_PAD

  • ANEURALNETWORKS_MEAN

此外,API还引入了一个新功能, ANeuralNetworksModel_relaxComputationFloat32toFloat16()允许您指定是否以ANEURALNETWORKS_TENSOR_FLOAT32与IEEE 754 16位浮点格式相同的范围和精度进行计算 。

9、Autofill框架的进一步改进

(Autofill Framework最低支持SDK API 26(Android O)+),Demo地址:github.com/googlesampl… 9引入了多项改进,自动填充服务可以实现这些改进,以在填写表单时进一步增强用户体验。

10、支持指纹确认的安全事务

在Android Pie中,系统代表您的应用提供生物识别身份验证对话框。此功能为对话框创建标准化的外观,感觉和位置,使用户更有信心他们对可信赖的生物识别凭据检查器进行身份验证。

如果您的应用程序用于FingerprintManager向用户显示指纹身份验证对话框,请切换为使用BiometricPromptBiometricPrompt依赖于系统来显示身份验证对话框。它还会更改其行为以适应用户选择的生物识别身份验证的类型。

注意:使用BiometricPrompt前,你应该先使用 hasSystemFeature()方法,以确保该设备支持FEATURE_FINGERPRINT,FEATURE_IRIS或FEATURE_FACE。如果设备不支持生物识别身份验证,我们可以使用该createConfirmDeviceCredentialIntent()方法回退到验证用户的PIN,模式或密码。

11、客户端加密备份

Android Pie增加了对使用客户端密钥加密Android备份的支持。满足以下条件时,将自动启用此支持:

  • 用户已使用Android Pie或更高版本启用了备份。
  • 用户已为其设备设置了屏幕锁定,需要PIN,图案或密码才能解锁。

启用此隐私措施后,需要设备的PIN,模式或密码才能从用户设备的备份中恢复数据。

什么设备第一时间将集成Android Pie

Android Pie已经出现了,现在每个人都想知道Android Pie什么时候会出现在市场上的手机运行,这个问题很难回答。根据以往厂商的升级的经验,做了一些预测,整理了一个OEM(OEM产品是为品牌厂商度身订造的,生产后也只能使用该品牌名)级的流行Android设备列表,认为这些设备将会升级到Android 9 Pie。当然这个列表不代表最终实际情况,做过ROM的开发工程师都知道,Google每发布一个新版本,都需要解里面很多Bug,以及过CTS(兼容性测试),还有厂商自己要做一些定制化处理,一般Google Android新版本Release半年前或更早,各大厂商基本就已经拿到了授权源码,然后在做定制开发和Bug fix

  • Google像素手机
设备 预计更新时间
Google Pixel (sailfish) 2018.08.07
Google Pixel XL (marlin) 2018.08.07
Google Pixel 2 2018.08.07
Google Pixel 2 XL 2018.08.07
  • HTC
设备 预计更新时间
HTC U Ultra Q2 2019
HTC U11 Q1 2019
HTC U11 Life Q4 2018
HTC U11+ Q4 2018
HTC U11 EYEs Q1 2019
HTC U12+ Q4 2018
  • 华为
设备 预计更新时间
Huawei Honor 8 Pro Q1 2019
Huawei Honor 9 Lite Q1 2019
Huawei Honor 9 and V9 Q1 2019
Huawei Honor View 10 Q4 2018
Huawei Honor 10 Q4 2018
Huawei Honor 9N Q1 2019
Huawei Nova 3 Q4 2018
Huawei Nova 3i Q4 2018
Huawei Nova 2s Q4 2018
Huawei Mate 9 Q1 2019
Huawei Mate 9 Porsche Design Q1 2019
Huawei Mate 9 Pro Q1 2019
Huawei Mate 10 Q4 2018
Huawei Mate 10 Porsche Design Q4 2018
Huawei Mate 10 Pro Q4 2018
Huawei P20 Q4 2018
Huawei P20 Pro Q4 2018
Huawei P20 Lite Q1 2019
Huawei P10 Q1 2019
Huawei P10 Plus Q1 2019
  • 一加手机
设备 预计更新时间
OnePlus 3 Q1 2019
OnePlus 3T Q1 2019
OnePlus 5 Q4 2018
OnePlus 5T Q4 2018
OnePlus 6 Q3 2018
  • Oppo
设备 预计更新时间
Oppo R15 Pro Q4 2018 (Beta available)
Oppo R15 Q4 2018
Oppo Find X Q4 2018
  • 三星
设备 预计更新时间
Samsung Galaxy S9 Q1 2019
Samsung Galaxy S9+ Q1 2019
Samsung Galaxy Note 8 Q2 2019
Samsung Galaxy S8 Q2 2019
Samsung Galaxy S8 Active Q3 2019
Samsung Galaxy S8+ Q2 2019
Samsung Galaxy A8 and A8+ (2018) Q2 2019
Samsung Galaxy A8 Star (A9 Star) Q2 2019
Samsung Galaxy A6 Q2 2019
Samsung Galaxy A6+ Q2 2019
Samsung Galaxy Note FE Q3 2019
Samsung Galaxy J4 Q3 2019
Samsung Galaxy J6 Q3 2019
Samsung Galaxy J8 Q3 2019
  • Sony
设备 预计更新时间
Sony Xperia XZ2 Q3 2018 (Beta available)
Sony Xperia XZ2 Compact Q3 2018
Sony Xperia XZ2 Premium Q3 2018
Sony Xperia XA2 Q4 2018
Sony Xperia XA2 Ultra Q4 2018
Sony Xperia XZ1 Q4 2018
Sony Xperia XZ1 Compact Q4 2018
Sony Xperia XZ Premium Q1 2019
Sony Xperia XZs Q1 2019
  • Vivo
设备 预计更新时间
Vivo X21 Q4 2018 (Beta available)
Vivo X21 UD Q4 2018 (Beta available)
Vivo Nex A Q4 2018
Vivo Nex S Q4 2018
Vivo V9 Q1 2019
  • 小米
设备 预计更新时间
Xiaomi Mi 8 Q4 2018
Xiaomi Mi 8 EE Q4 2018
Xiaomi Mi 8 SE Q4 2018
Xiaomi Mi 6 Q2 2019
Xiaomi Mi A1 Q4 2018
Xiaomi Mi A2 Q4 2018
Xiaomi Mi A2 Lite Q4 2018
Xiaomi Mi Mix 2 Q4 2018
Xiaomi Mi Mix 2S Q4 2018 (Beta available)
Xiaomi Mi Max 3 Q1 2019
Xiaomi Redmi Note 5 AI (Note 5 Pro) Q1 2019
Xiaomi Redmi S2 (Redmi Y2) Q2 2019
Xiaomi Redmi 6 Q3 2019
Xiaomi Redmi 6A Q3 2019
Xiaomi Redmi 6 Pro Q2 2019
  • LG

LG的手机部门表现不佳,这也是我们没有在2018年MWC上看到LG七国集团(G7)的原因之一,因为该公司正在重新制定战略,然后才有望实现重大复苏。即使有这么多的财务问题,LG在软件更新方面也没有被吓倒,依然可能有多款设备更新

设备 预计更新时间
LG G6 Q4 2018
LG Q8 Q2 2019
LG V20 Q1 2019
LG V30 Q4 2018
LG V30+ Q4 2018
LG V30S ThinQ Q4 2018
LG V35 ThinQ Q4 2018
LG G7 ThinQ Q4 2018
LG Q7 Q1 2019
LG Q Stylus Q1 2019
LG Stylo 4 Q1 2019

Android Pie 源码在哪里下载?

下载一份以前的老版本源码,依然在repo中,查看当前可用的Android源码分支和版本,也可以在下载好的Android源码根目录下执行如下命令:

$ git --git-dir .repo/manifests/.git/ branch -a

或者

$ cd .repo/manifests
$ git branch -a | cut -d / -f 3

附上一份网上找的Android从2.2到8.0的源码,有需要的可以下载:

android-2.2_r1 链接: pan.baidu.com/s/1qYfwxEO 密码: r217

android-2.3.7_r1 链接: pan.baidu.com/s/1qYqRB1E 密码: qcei

android-4.1.1_r1 链接: pan.baidu.com/s/1mhXwVgc 密码: qidj

android-4.3_r1 链接: pan.baidu.com/s/1geOJDB1 密码: 355a

android-4.4.4_r1 链接: pan.baidu.com/s/1nuZwEVn 密码: t3qw

android-wear-5.1.1_r1 链接: pan.baidu.com/s/1hrQJ6XQ 密码: 3g3x

android-6.0.0_r1 链接: pan.baidu.com/s/1geHYeOz 密码: fsd6

android-6.0.1_r2 链接: pan.baidu.com/s/1skEVR1F 密码: ik6t

android-7.1.1_r1 链接: pan.baidu.com/s/1dF6hc3n 密码: pfsq

android-8.0.0_r1 链接: pan.baidu.com/s/1bqKNx3x 密码: bthv


欢迎关注我的微信公众号「码农突围」,分享Python、Java、大数据、机器学习、人工智能等技术,关注码农技术提升•职场突围•思维跃迁,20万+码农成长充电第一站,陪有梦想的你一起成长。