Android开发最佳实践
10月14日-16日,由CSDN和创新工场联合主办的MDCC 2015中国移动开发者大会将在北京新云南皇冠假日酒店隆重召开,现在抢注大会门票,即享多重好礼!猛戳>>立即抢票。本文作者,平台与技术Android专场演讲嘉宾——腾讯Android工程师 胡凯热爱开源与分享,维护Android官方培训课程协作项目,关注Android应用的性能优化的总结与分享,推崇Android官方最佳实践。
前段时间,Google公布了 Android开发最佳实践的一系列课程,涉及到一些平时开发过程中应该保持的良好习惯以及如何使用最新的 Android Design Support Library来快速实现官方推荐的Material Design样式的应用。下面是个人的学习摘要总结,不对的地方请多多交流指点,谢谢!
1)注意对隐式Intent的运行时检查保护
类似打开相机,发送图片等隐式Intent,是并不一定能够在所有的Android设备上都正常运行。例如打开相机的隐式Intent,如果系统相 机应用被关闭或者不存在相机应用,又或者是相机应用的某些权限被关闭等等情况都可能导致这个隐式的Intent无法正常工作。一旦发生隐式Intent找 不到合适的调用组件的情况,系统就会抛出ActivityNotFoundException的异常,如果我们的应用没有对这个异常做任何处理,那应用就 会发生Crash。
预防这个问题的最佳解决方案是在发出这个隐式Intent之前调用resolveActivity做检查,关于这个API的解释以及用法如下:
然后这个API的使用范例如下:
- Intent intent = new Intent(Intent.ACTION_XXX);
- ComponentName componentName = intent.resolveActivity(getPackageManager());
- if(componentName != null) {
- String className = componentName.getClassName();
- }
2)使用NotificationCompat兼容包来处理消息通知
为了解决Android系统版本差异导致的Notification兼容性问题,Android官方提供了 NotificationCompat兼容类来帮助开发实现体验统一的Notification。通常来说,建立一个Notification至少会有三 种元素:图标,标题,文本。我们通常会使用如下的代码来实现一个基础的Notification功能:
上面那段代码,运行时候的效果应该如下所示:
为了给上面的Notification添加点击之后的响应效果,我们还需要构造一个PendingIntent作为contentIntent,例如:
- PendingIntent intent = xxx;
- builder.setContentIntent(intent);
为了使得Notification更加的具有辨识度,我们还有可能做如下的设置:
从Android 4.1开始,Notification可以支持展开显示的模式,这样一来,Notification就演变出了下面4种不同的风格样式:
Notification还提供了快捷操作的功能,如下图所示:
除了显示在手机上的Notification,我们还可以给Notification分别设置在Wearable,Auto上的不同表现行为,例如针对可穿戴设备上显示Notification,我们可以如下的设置:
关于更多的Wearable上的Notification相关的知识,还可以参考 Pages of Content与 Stackable Notifications。