Google Developer Day 2016见闻

作为一个菜鸟今天凑热闹参加了GDD,还是挺有意思的,知道了一些新的东西,体验了Google好玩儿的产品。

今天我主要参加的是Android的分会场,当我在会场亲身体验的时候其实感觉也没什么,会场间歇玩儿手机的时候,发现——额,GDD竟然是个这么大的新闻!

以下是我残存的记忆能想到的内容整理出来的,但是不全!有好多代码没记下来,等到官方keynote和视频出来后,我再仔细学习下:

Session1: Android中的新增功能

这部分其实在早先时候的预览版里已经出现了,并且现在这部分的文档已经完全汉化:官网文档。

Android增强的通知

  • 对于实时通信应用,可以直接在通知栏里对通知进行恢复(这点国内好多厂商在5.0的系统上都做到了。比如,锤子科技) 详细参见官方文档

快速设置

  • “快速设置”就是直接从通知栏显示关键设置,比如操作允许用户在快速设置栏里添加用户自定义的模块(胡坤,这个主题的分享者说:在Android7.1.1上可以添加App),进行快速启动。(Android手机上下拉的通知栏里,添加用户自定义的模块,进行快速启动,这块国内好多厂商已经做了)。详见API:quicksettings

低电耗模式的改进Doze:

  • 在Android 6.0 上的低电耗模式,当用户设备未插接电源、处于静止状态且屏幕关闭时,该模式会推迟 CPU 和网络活动。在7.0上,通过在设备未插接电源且屏幕关闭状态下、但不一定要处于静止状态(例如用户外出时把手持式设备装在口袋里)时可以使用部分 CPU 和网络限制,进一步增强了低电耗模式。详见官方文档,对低电耗模式和应用待机模式进行针对性优化

后台优化:Svelte项目

  • Android 7.0 移除了三项隐式广播(CONNECTIVITY_ACTION 、 ACTION_NEW_PICTURE 和 ACTION_NEW_VIDEO ),以帮助优化内存使用和电量消耗。之前版本的 Android 中,应用可以注册接收来自其他应用(例如相机)的隐式 ACTION_NEW_PICTURE 和 ACTION_NEW_VIDEO 广播。当用户使用相机应用拍摄照片时,这些应用即会被唤醒以处理广播。

为缓解这些问题7.0所带来的优化:

  • 面向Android 7.0 开发的应用不会收到 CONNECTIVITY_ACTION 广播,即使它们已有清单条目来请求接受这些事件的通知。在前台运行的应用如果使用 BroadcastReceiver 请求接收通知,则仍可以在主线程中侦听 CONNECTIVITY_CHANGE
  • 应用无法发送或接收 ACTION_NEW_PICTURE 或 ACTION_NEW_VIDEO 广播。此项优化会影响所有应用,而不仅仅是面向 Android 7.0 的应用。

解决方案:

JobScheduler,详见API文档JobScheduler

应用快捷方式

类似于iPhone上的3D Touch 和 魅族手机上的3D Press。详见官方文档App Shortcuts

Display Size

在android手机的设置里有个字体大小的设置,当你把字体调整为超大号后,你会发现一种非常诡异的现象:字体的UI布局不会变,字变大了,显得很诡异;7.0有个显示大小Display Size,可以让布局跟着你的字体大小来改变,不会显得那么诡异。

存储管理意图

app现在可以发一个ACTION_MANAGE_STORAGE的intent,将用户带入系统的“释放空间”界面。例如,如果一个App当前没有更多的空间可以使用了,它可以使用使用这个intent来让用户删除不需要的App和内容来释放额外的存储空间。

感想

Android7.0所带来的变化,其实在国内不少厂商已经早早都实现了,这一点国内的厂商还是走在前列的,为他们点个赞!

以上是Android会场的第一个分享,其实上面的分享文档上都有,查看更详细的文档请移步:

  • Android 7.0 for Developers

  • Android 7.1 for Developers

Session2: Android开发工具中的新增功能

Constraint Layout

约束性布局,是一个新玩意儿,详情移步:Build a Responsive UI with ConstraintLayout

layout-inspector 布局分析器:

比如你看到一个好玩儿的App觉着布局不错,可以用来分析它的布局。官方文档:Layout Inspector

FireBase

最新版的Android Studio集成了FireBase,今天又一个专门的分会场来讲解FireBase。官网:FireBase

Lint

  • Lint可以直接在编辑代码的时候就提示出:可能存在的缺陷;
  • 之前在编译完后会出现一大堆的警告⚠️,现在可以将这些警告配置在一个单独的文件里,在下一个编译的时候,不在提示这些警告;

详情异步,官方文档:Improve Your Code with Lint

更快的instant run:

在Android Studio刚更新2.0的时候,我发现真的是巨慢,更新2.1后有所改善,据说instant run 变得更快了。当时听了个稀里糊涂,说是用到了:hot swap ; warm swap ; cold swap。还有两个啥技术来着,等keynote ,官方视频出来后,我在好好学习一下。

详情移步,官方文档:instant-run

apk减肥之:PNG to WebP

同样的清晰度,WebP要比PNG减少很大的体积。

详情参见:

  • Webp 官方文档:WebP
  • apk 减肥(瘦身) 官方文档: Reduce APK Size

以上是第二场分享,我能记住的东西,等keynote和视频出来后,我再仔细学习一遍。

Session3: Android支持库的新变化

  • Fragments

Fragment生命周期的改善,FragmentTransaction使用commitNow()函数,替代commit的效果。

  • NotificationManagerCompat

改善的通知,调用getImportance()方法可以显示用户指定的重要通知。

  • 用来替换WebView的Custom Tabs:

前提设备上必须要有Chrome

  • VectorDrawableCompat
  • Night Mode
  • ColorStateList
  • BottomSheetDialogFragment
  • AppBarLayout
  • CollapsingToolbarLayout
  • StateListAnimator

Support库的东西挺多的,上面都是大会演讲者分享的东西,大概记了一下。

详情移步,官方文档:support-library

Session4: Android Wear2.0的新变化

Android的穿戴设备,这个时间段有两场Android的分享一场在Angular会场的"Android开发中的电量和内存优化",我去了Angular会场,等官方视频出来了,我再学习下这个会场的分享

Session5 :“哎呀!我的Android应用程序又崩溃了!”

设备兼容

不同厂商对于android的定制,会引起各种问题。不做兼容,也可能会造成app crash。

版本兼容

Android自身快速的迭代,本身各个版本之间的兼容性问题,也会造成App crash;

ProGuard

keep 防止资源误删除;

设备本身的功能

比如,在调用相机的时候,需要检查当前设备有相机。否则也会crash,问题来了,现在还有没有相机的设备吗?这可能是那位老师提到的——神奇的印尼市场吧!

调用设备功能的时候,要告诉App,我需要该设备,并且检查设备上是否有相应的功能,such as: 相机、蓝牙。

不要用非公开的API

Session6 :Android开发中的电量和内存优化

这部分内容跟其他分享部分的内容有重叠,提到了好几个东西:Doze、App Standby、jobs、JobInfo。

电池优化

Doze、App Standby 官方文档:对低电耗模式和应用待机模式进行针对性优化

内存优化

在低内存的设备上,监听网络状态的变化,会引起明显的内存抖动,7.0去掉了CONNECTIVITY_CHANGE的广播,替代解决方案:JobScheduler。

电池诊断:

  • Batterystats and Battery Historian Walkthrough

  • battery-historian

Session7:Vulkan——专为Android打造的高性能3D图形API

一个白头发的大叔分享的,只能在Android 7.0上用,并且对硬件设备要求较高,估计是为了VR做准备,想买新手机的要不再等等吧!

官方文档:Vulkan Graphics API

总结:

接下来重点学习一下: Constraint LayoutJobScheduler 看看这俩东西是怎么玩儿的!

  • 参加这样的大会,在会场内我没学到很多东西,但我知道了很多我不知道的东西,我记下了我不知道的,然后Google他们,然后学习他们;

  • 会后Google了一下,发现那些老师分享的东西其实在官网的文档都有了,只不过是我不知道而已;

  • 我一直很闭塞,走出来才发现:喔噢,这么多开发者,好多有意思的事儿;

  • 你看,跟着文档走,然后“ it’s a good idea to get your hands dirty and try it for yourself”,那么你也是大神了;

  • 最后,重要的一点:午餐、晚餐——我吃的很爽,对于我这样的Low B,有吃的,还不收费,当然是放开吃啦!哈哈!

你可能感兴趣的:(Google Developer Day 2016见闻)