收藏本站
博为峰Android开发培训Banner
您所在的位置:博为峰教育首页 > 资料精选 > 学习资料 > 【学习资料】Android系统开发最佳实践

【学习资料】Android系统开发最佳实践

     发布时间:2015年10月14日 12:52分    来源:博为峰教育网采编    关键词:Android系统     | 上一篇 | 下一篇 |


 

      前段时间,Google公布了 Android开发最佳实践的一系列课程,涉及到一些平时开发过程中应该保持的良好习惯以及如何使用最新的 Android Design Support Library来快速实现官方推荐的Material Design样式的应用。下面是个人的学习摘要总结,不对的地方请多多交流指点,谢谢!

 

Android系统开发最佳实践01

 

      1)注意对隐式Intent的运行时检查保护

      类似打开相机,发送图片等隐式Intent,是并不一定能够在所有的Android设备上都正常运行。例如打开相机的隐式Intent,如果系统相机应用被关闭或者不存在相机应用,又或者是相机应用的某些权限被关闭等等情况都可能导致这个隐式的Intent无法正常工作。一旦发生隐式Intent找不到合适的调用组件的情况,系统就会抛出Activity Not Found Exception的异常,如果我们的应用没有对这个异常做任何处理,那应用就会发生Crash。

预防这个问题的最佳解决方案是在发出这个隐式Intent之前调用resolve Activity做检查。

 

      2)使用Notification Compat兼容包来处理消息通知

      为了解决Android系统版本差异导致的Notification兼容性问题,Android官方提供了Notification Compat兼容类来帮助开发实现体验统一的Notification。通常来说,建立一个Notification至少会有三种元素:图标,标题,文本。

 

      3)Android 6.0 Marshmallow的运行时权限

      Android 6.0开始引入了新的运行时权限检查授权机制,替代了之前安装应用的时候对权限进行授权的方案。为了避免6.0及以上的机器运行发生运行时异常,我们需要做到至少以下5个步骤:

  •    ●  检查系统版本号:针对6.0以下的系统版本,默认权限在安装的时候已经获取到了,对于6.0开始的版本,才需要做运行时的权限检查。
  •    ●  检查申请的权限:在使用某个权限之前,需要检查权限是否已经获取到了。
  •    ●  解释申请的权限:在权限没有获取到的情况下,需要通过should Show Request Permission Rationable()的判断来决定如何给用户进行提示。
  •    ●  执行申请权限操作:前面判断没有获取到权限,为了能够让功能顺利执行,我们会需要在代码里面再次执行申请此权限的操作。
  •    ●  处理权限申请的结果:申请权限之后,我们需要处理申请的响应结果,分别处理权限申请成功与失败的情况。
  •  

      4)使用Media Session Compat操作音乐的播放

      Media Session Compat来自Android官方的兼容包,通过它可以告诉Android系统与其他的应用,自己正在播放的内容是什么以及自己支持哪些类型的播放控制:

Android系统开发最佳实践02

      在Android的官方培训课程中有介绍过关于 Media Button Receiver的概念,Android系统会把来自蓝牙控制器或者是耳机等其他设备的操作事件转换成Media Button事件传递出来,如果我们的应用程序需要监听这些事件并做出相应的响应,就需要注册MEDIA_BUTTON的action,接收到这些事件之后,再传递给音乐播放模块进行控制处理。

      基于上面的认知,我们现在演示如何使用Media Session Compat,下面演示了如何构造一个Media Session Compat以及构造完之后通常需要做的三件事情:设置合理的flag,设置回调(在5.0开始会响应onPlay,onPause等等回调),设置激活。
      搭建好了Medi aSession Compat之后,还需要通过Media Metadata Compat来传递播放的资料信息,通过Play back State Compat来传递播放的状态信息。做了上面那些操作之后,Media Session Compat的任务就算是完成了。

 

      5)使用Toolbar替代ActionBar

      自从MaterialDesign开始,Android官方就开始使用Toolbar替代了原来的ActionBar,现在Toolbar已经加入Support兼容包。Toolbar是一个相比起ActionBar更加丰富,更加灵活的组件,另外它的布局本身还是View Hierarchy的一部分,这就意味着可以对Toolbar执行动画操作,增加点击滑动事件等等,甚至我们还可以在一个页面里面加入两个Toolbar。

      为了启用Toolbar,首先要做的事情就是关闭当前Activity的ActionBar。我们可以通过使得Activity的主题继承Theme.AppCompat.NoActionBar,然后在对应的XML布局文件中,添加toolbar布局信息。