Android开发最佳实践

 
摘要:前 段时间,Google公布了Android开发最佳实践的一系列课程,涉及到一些平时开发过程中应该保持的良好习惯以及如何使用最新的Android Design Support Library来快速实现官方推荐的Material Design样式的应用。

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的使用范例如下:

  1. Intent intent = new Intent(Intent.ACTION_XXX);
  2. ComponentName componentName = intent.resolveActivity(getPackageManager());
  3. if(componentName != null) {
  4. String className = componentName.getClassName();
  5. }

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

为了解决Android系统版本差异导致的Notification兼容性问题,Android官方提供了
NotificationCompat兼容类来帮助开发实现体验统一的Notification。通常来说,建立一个Notification至少会有三
种元素:图标,标题,文本。我们通常会使用如下的代码来实现一个基础的Notification功能:

上面那段代码,运行时候的效果应该如下所示:

为了给上面的Notification添加点击之后的响应效果,我们还需要构造一个PendingIntent作为contentIntent,例如:

  1. PendingIntent intent = xxx;
  2. builder.setContentIntent(intent);

为了使得Notification更加的具有辨识度,我们还有可能做如下的设置:

从Android 4.1开始,Notification可以支持展开显示的模式,这样一来,Notification就演变出了下面4种不同的风格样式:

Notification还提供了快捷操作的功能,如下图所示:

除了显示在手机上的Notification,我们还可以给Notification分别设置在Wearable,Auto上的不同表现行为,例如针对可穿戴设备上显示Notification,我们可以如下的设置:

关于更多的Wearable上的Notification相关的知识,还可以参考
Pages of Content与
Stackable Notifications

Android开发最佳实践《IT蓝豹》的更多相关文章

  1. Android开发最佳实践

    Android开发最佳实践 摘要 ●使用 Gradle 和它推荐的工程结构 ●把密码和敏感数据放在gradle.properties ●不要自己写 HTTP 客户端,使用Volley或OkHttp库 ...

  2. [转]Android开发最佳实践

    ——欢迎转载,请注明出处 http://blog.csdn.net/asce1885 ,未经本人同意请勿用于商业用途,谢谢—— 原文链接:https://github.com/futurice/and ...

  3. Android 开发最佳实践

    原文地址:https://github.com/futurice/android-best-practices/blob/master/translations/Chinese/README.cn.m ...

  4. Android和PHP开发最佳实践

    Android和PHP开发最佳实践 <Android和PHP开发最佳实践>基本信息作者: 黄隽实丛书名: 移动应用开发技术丛书出版社:机械工业出版社ISBN:9787111410508上架 ...

  5. web前端开发最佳实践笔记

    一.文章开篇 由于最近也比较忙,一方面是忙着公司的事情,另外一方面也是忙着看书和学习,所以没有时间来和大家一起分享知识,现在好了,终于回归博客园的大家庭了,今天我打算来分享一下关于<web前端开 ...

  6. Hadoop MapReduce开发最佳实践(上篇)

    body{ font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI& ...

  7. 【读书笔记】iOS-微信公众平台开发最佳实践

    一,微信是由腾讯公司广州研发中心产品团队开发,该团队经理张小龙被称为“微信之父”,公司总裁马化腾确定该产品名称为“微信”. 二,常见问题及解决方案. 1,请求URL超时. 这种情况一般是由于服务器网速 ...

  8. iOS应用开发最佳实践

    <iOS应用开发最佳实践> 基本信息 作者: 王浩    出版社:电子工业出版社 ISBN:9787121207679 上架时间:2013-7-22 出版日期:2013 年8月 开本:16 ...

  9. 【社区公益】送《Web前端开发最佳实践》给需要的人

    算起来至今,我进入软件开发行业已经有11年之久.从最初的研究人工智能,到后来的Web开发,控件开发,直到现在纯粹的Web前端开发.虽然没有大的作品问世,但也是勤勤恳恳,踏实做事,低调做人.从来不吹牛逼 ...

随机推荐

  1. mysql表操作与权限操作

    修改表ALTER TABLE 语法: . 修改表名 ALTER TABLE 表名 RENAME 新表名; . 增加字段 ALTER TABLE 表名 ADD 字段名 数据类型 [完整性约束条件…], ...

  2. 让MySql支持表情符号(MySQL中4字节utf8字符保存方法)

    UTF-8编码有可能是两个.三个.四个字节.Emoji表情是4个字节,而MySQL的utf8编码最多3个字节,所以数据插不进去. 解决方案:将编码从utf8转换成utf8mb4. 1. 修改my.in ...

  3. day20re模块 正则表达式

    re模块,正则1 re是什么 正则就是用一些具有特殊含义的符号组合到一起(称为正则表达式)来描述字符或者字符串的方法. 就是用来描述一类事物的规则.就是一些带有特殊含义的符号或者符号的组合.    作 ...

  4. WPF去除窗体边框及白色边框

    <Window x:Class="WpfAppFirst.Evaluation" xmlns="http://schemas.microsoft.com/winfx ...

  5. 关于springboot

    概念 Spring的优缺点 1. 优点(AOP和IOC简化开发) Spring是Java企业版(Java Enterprise Edition,JEE,也称J2EE)的轻量级代替品.无需开发重量级的E ...

  6. tornado项目注意点

    大体框架思想 如果你做的项目是偏向中小型的话,MTV或者MVC已经足够支撑起整个项目,而如果你做的项目比较大大话,或者说可能以后的业务量很大的话,那你就需要用到四层架构的思想了,那么我们就各自分析下俩 ...

  7. Ignoring query to other database

    Ignoring query to other database 自己今天刚遇到,进入MySQL的时候,输入show databases; 产生如下错误 错误提示 Ignoring query to  ...

  8. 转:ArcGIS中利用ArcMap将地理坐标系转换成投影坐标系(从WKID=4326到WKID=102100)

    对于非地理专业的开发人员,对与这些生涩的概念,我们不一定都要了解,但是我们要理解,凡是以经纬度为单位的都是地理坐标系,因为它归根结底是一个椭球体,只不过各个国家为了反映该国家所在区域地球的真实形状,而 ...

  9. spark 数据读取与保存

    spark支持的常见文件格式如下: 文本,json,CSV,SequenceFiles,Protocol buffers,对象文件 1.文本 只需要使用文件路径作为参数调用SparkContext 中 ...

  10. JSP创建用户验证的实例

    1 显示中文的代码编码解决办法: <%@ page language="java" import="java.util.*" pageEncoding=& ...