5.0更新内容
Android 5.0 Lollipop系统升级进行了许多项改动。
1.全新的Material Design设计风格,对移动应用的影响:
为了保持与Android系统风格的一致性,建议各个产品线使用新的material design风格。
2. 全新风格的通知中心对移动应用的影响:
1) 测试了原有通知机制在5.0上的兼容性。
3. ART 模式大大提升了性能,对移动应用的影响:
1) 应用兼容性:如果应用本身对Dex文件做了处理,可能会出现兼容性问题;
2) 性能优化:可重点关注ART带来的性能优化数据,对于大量使用CPU的应用,性能提升比较明显。但如果应用程序的时间主要花在调用系统API,提升会小一些;
3) 应用安装包体积:因为安装时进行了预先编译,应用安装的时间会变长,安装后生成的文件也会变大;
4) 第一次启动时长:如果以DexClassLoader的形式加载代码,第一次启动时间也会变长。
4、谷歌开源的Material Design图标
开发相关
1.不允许多个相同自定义权限
本次升级对应用最严重的影响就是部分应用无法安装, 原因主要是Android L的新规则规定,若APP含有一个或 多个相同自定义权限,签名不一致无法正常安装;
2.实现Material Design(简称MD)的方方面面
MD是一系列UI特性的组合,阿里巴巴团队的这个帖子介绍得清晰易懂,但要在我们的应用里逐一实现这些特性就不那么容易了,特别是要兼容 Android 4.x甚至2.x的时候。Google官方AppCompat v21在这方面只提供了有限的支持,例如ActionBar和侧滑菜单,而像FAB(Fixed Action Button) 等等则没有包含在内。
其实在GitHub上已经有不少第三方的实现,值得一提的是,这个名为MaterialDesignCenter的项目把大量相关项目汇总在了一起供开发者参考,值得 一看。以下列出我认为值得使用的第三方实现:
FAB: FloatingActionButton
对话框: material-dialogs
各类UI控件: MaterialDesignLibrary
另外几个汇集了android上各类交互效果的项目Interactive-animation、awesome-android-ui、android-open-project(300+项目,不仅限于MD),同 样值得参考。
3.使用appcompat里RecyclerView和CardView时的问题
GitHub上的这个开源项目可以帮助解决一些问题,例如添加divider、点击事件等等,但还远远不够。
CardView的多状态背景色问题,暂时没有解决,参考链接;
下拉刷新:可使用android原生的SwipeRefreshLayout解决;
上拉翻页:方案1)仍使用SwipeRefreshLayout; 方案2)自己监听事件实现Endless效果;
HeaderView:RecyclerView没有像ListView那样提供addHeaderView()方法,要实现类似效果,有两种方法:1)将第一个item作为header,使
用android-parallax-recyclerview这个库; 2)让第一个item完全透明,下层显示一个同高的view作为header,使用ASOV这个库。
4.使用SlidingTabLayout替代Actionbar的tab导航
v7包的Actionbar对象里,与navigation有关的方法(例如setNavigationMode)都不建议使用了,应使用googleio2014提供的
SlidingTabLayout实现类似功能。