文章的开头还是要说一下,我只是搬运工,将最新的google IO 有关Android L的东西总结一下。 方便大家。
文章的结构是以官方API为结构讲解;我这里只讲其中的我比较关心的三个方面:1、新系统对现有App影响 2、用户的界面 3、 电源效率
当然如果想体验新的Android L 系统以及demo ,最好还是有个nexus 。
一、新系统对现有App影响
注:开发者应该注意一下,也许你的应用于新的系统某些细微的地方不兼容,导致应用无法运行。
1. 新的运行环境(ART)
下面是ART的一些重要特性
提前编译
垃圾回收的改进
调试支持的改进
但是ART在现有的系统中还是被雪藏在开发者选项中,这说明它还是有自己的弊端的。下面一片文章介绍了它的优缺点。下面是ART的一些重要特性
大部分的Android App在ART里应该不需要改变,然而,一些方法在Dalvik可以运行,在ART里无法运行。对于最重要问题的详细介绍,可以看 Verifying App Behavior on the Android Runtime (ART),值得注意的是:
你使用开发工具生成非常规代码(例如一些混淆器)
你使用一些技术与压缩垃圾回收不一致。(ART不实现压缩垃圾回收,但是压缩垃圾回收将在Android Open-Source Project里进行开发)
http://www.shanzhaiv5.com/article.php?id=932 大家可以对比一下
2. Notification
如果你最近使用Ringtone.MediaPlayer或者Vibrator类添加声音和振动在你的Notification里,移除这些代码,因为系统现在是不被打扰模式,改为使用Notification.Builder方法添加Sounds和Vibrator。
3.
ActivityManager.getRecentTasks()
ActivityManager.getRecentTask()方法现在被废弃来保护用户隐私。为了向后兼容,这个方法仍然会返回一个小的数据子集,包含调用程序自己的任务和一些其他的非敏感任务。如果你的App使用这个方法来取回自己的任务,使用andro.app.ActivityManager.getAppTask()来获取这些信息。
二、用户的界面
android L的新的交互我自己的感觉是简直不要太炫,更多的体验还需要用户自己来体会。下面先给出github上Google io 2014 demo的下载地址,大家可以看一下源码以及其中使用的开源工具,谷歌自己用的东西应该不会有错吧。 我用的android studio直接clone下来用的。 可以直接运行
这里要注意,
IO大会的Keynote讲稿也有哦, 拿来直接用,包含pdf版本,YouTube视频,以及原版Keynote讲稿。
下面进入正题哦
1. Meterial Design (详细内容点此看官方文档)
主题、 动画、 Activitity过度动画, 众多改变真的不错哦。 2. notification
废话不多说继续给demo , 自己体验DEMO: 下载地址https://github.com/kunny/notifications-android-L
三、电源效率
这里我只讲一下原理,肯定有不足,还请指正
举个例子: 作为北邮学子很荣幸参与了 “我邮”客户端(戳我下载)的开发, 其中做了一个消息通知的东西,采用的是一种后台轮询的措施(大概就是后台开service, 过一段时间就会检测当前手机环境适合联网请求,等等一系列操作),试想如果有很多这种应用,这是一件比较可怕的事情,手机即使处于锁屏状态cpu也得不到休息。 怎么才能省电呢。 谷歌提出了一个策略:采用JobScheduler。给开发者提供统一的接口, 而有关这种轮询的过程交给系统来给你处理,机器会自动检测自身的状况, 让一批应用在同一时间段运行上面说的操作,这样即使有多个应用采用了上面说的轮询, CPU也是会保证有时间来休息。 这样岂不是起到了省电的作用。
当然JobScheduler还不止上面说的一个功能(例如充电时执行一些耗费CPU的操作,wifi状况下处理一些下载操作。不是说现在的应用不能做,而是每个应用都有自己的一套策略,不同意,这样很可能造成cpu的浪费)。总之它可以统一为应用调度。不用每个应用在去处理自己的逻辑。反正 有统一的接口不接规范了代码,简化了开发过程中对一些状况的逻辑处理,最终还起到了省点作用,何乐而不为。
还有,他还提供了检测应用电量的工具。方便开发者对开发的应用的电量进行检测。这对于测试来说是个好消息。 我对我们部门的测试人员总是被说我们的应用好点,人家使用电流计测量的。可是我们哪里有这工具。嗯嗯。 更多内容详见官方文档吧。