Android开发最佳实践《IT蓝豹》

Android开发最佳实践

 
移动开发Android经验分享应用GoogleMaterial Design
摘要:前 段时间,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的使用范例如下:

[java]view plaincopy
  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,例如:

[java] view plaincopy
  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。

转载于:https://www.cnblogs.com/yangguangcheng/p/4866244.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/290239.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

.NET MAUI 已在塔架就位 ,4月份发布RC

最美人间三月天,春光不负赶路人。在充满无限希望的明媚春天里,一路风雨兼程的.NET 团队正奋力实现新的突破。根据计划,新一代移动开发平台MAUI 将于4月份 发布RC。目前,MAUI的测试工作和火箭发射前各项准备工作在github 上按计划有…

如何把照片正面变成反面_没有锁边机如何做衣服(五种方法)

这么多年一直没有锁边机,但是也做了很多衣服,今天给大家分享一些我曾经用过的方法。来去缝来去缝适合缝制轻薄面料,如雪纺、真丝、欧根纱等。反反相对,缝份0.5厘米把缝份剪掉0.2厘米翻过来使正面相对,留0.5厘米的缝份车…

linux线程池资料

2019独角兽企业重金招聘Python工程师标准>>> http://www.360doc.com/content/13/0728/13/13308646_303116654.shtml http://blog.csdn.net/turkeyzhou/article/details/8755976 http://blog.csdn.net/zhoubl668/article/details/8927090 http://blog.csdn.net/zypue…

Xamarin效果第二篇之公众号App

前面简单摸索一下Xamarin然后简单做了一个时间轴;这不这几天再次基于Xamarin实现了一下公众号App;我也就是瞎折腾,闲话不多扯,上效果:主Page直接用TabbedPage(类似WPF中的TabControl)然后后台添加内容Page:”互动“页使用CollectionView和模板选择器:"发表&quo…

K8S原来如此简单(一)K8S核心组件与基本原理

k8s视频课程K8S核心组件与工作原理k8s官方文档:https://kubernetes.io/zh/docs/home/前提掌握容器技术:Docker,Containerd等K8S优势使用简单,少量人/小团队可以轻松维护大型分布式系统全面拥抱微服务架构,快速迭代&…

docker supervisor管理进程

Supervisor管理进程Docker容器在启动的时候开启单个进程,比如,一个ssh或者apache的daemon服务。但我们经常需要在一个机器上开启多个服务,这可以有很多方法,最简单的就是把多个启动命名放到一个启动脚本里面,启动的时候…

理解Linux系统中的load average

一、什么是load average?linux系统中的Load对当前CPU工作量的度量 (WikiPedia: the system load is a measure of the amount of work that a computer system is doing)。也有简单的说是进程队列的长度。Load Average 就是一段时间 (1 分钟、5分钟、15分钟) 内平均…

【贯穿】.NET6结合Docker傻瓜式实现容器编排

常规开发部署的痛点一个项目的开发上线有很多纷繁复杂的问题,例如:操作系统运行环境以及各种应用配置、集群环境搭建等等。特别是各种版本的迭代导致的不兼容,这些对于曾经的架构师而言也十分苦恼。而Docker的出现实现了从“蚂蚁搬家”到“乾…

bootstrapt 表格自适应_一起聊B端设计 - 如何设计表格?

一、 数据查看让我们先来回顾一下表格的基本构成,最上面的为表头,横为行,纵为列,内容区每一组展示数据区域为单元格。 表格的设计,虽然看似简单,但是作为用户最常用的组件之一,我们需要对视觉和…

.NET 6 攻略大全(二)

点击上方蓝字关注我们(本文阅读时间:15分钟)接上篇内容,本篇文章将介绍:Arm64、容器、支持 OpenTelemetry 指标、Windows Forms 的相关攻略。 Arm64这些天来,对于笔记本电脑、云硬件和其他设备来说,Arm64 令…

ubuntu 开启 apache mod_rewrite

2019独角兽企业重金招聘Python工程师标准>>> ci里需要隐藏index.php的输入需要使用apache的rewrite模块,按照下面的步骤开启mod_rewrite http://www.dev-metal.com/enable-mod_rewrite-ubuntu-14-04-lts/ 转载于:https://my.oschina.net/u/1177171/blog/354202

composer切换源_Composer具体安装方法

composer 作为依赖管理工具,使用频率还是挺高的。特别是对于我这种比较懒的程序猿,有现成轮子的时候坚决不自己重复造轮子。它主要有三部分构成:命令行工具,包仓库,代码库。包仓库就是我们常说的 composer 源&#xff…

C# 操作FireBird 附源码

写了一个C#操作firebird数据库的小Demo,有需要的可以研究研究, 步骤: 1.创建数据库 2.建数据表,插入数据,并读取、 写的时候碰到N多奇葩问题,记录了一些 解决方案: 程序集-生成-目标平台 改成 x86 源码地址…

.NET 6 攻略大全(三)

点击上方蓝字关注我们(本文阅读时间:15分钟).NET 6 继续与大家相约周日啦。本篇文章将介绍:单文件应用、IL 修整、System.Text.Json、源代码构建、库AIP的相关攻略。 单文件应用 在 .NET 6中,已为 Windows 和 macOS 启用内存中单文…

测试眉形的有哪个软件_这五款自动化软件测试工具,你最喜欢用哪个?

对测试自动化的依赖性增加导致大量自动化软件测试工具的出现,使得很难确定哪些是最好的。为了帮助您完成自动化工作,我们根据自己和他人的经验创建了五大最佳自动化软件测试工具列表。1. SeleniumSelenium可以说是web开发人员和测试人员中最受欢迎的自动…

本科 8年经验,20k的Offer,接还是不接?

伴随着疫情的此起彼伏,今年的金三银四跳槽季比往年要低沉很多,近日一条朋友圈火遍社区,“坐标一线城市,本科毕业,8年经验,15天仅5场面试,最终接了20k的offer,今年真难!”…

CAD中批量打印

同事在网上找各种软件来实现CAD图的批量打印,总是问题多多。于是,我想到一个更方便的解决方法,即只要我将一个打印出来,然后就可以用批量处理来实现。 1.在CAD中输入plot命令(或快捷键CtrlP),即…

Photoshop脚本 使用ExtendScript编写Ps脚本

源自:http://coolketang.com/tutorials/menu1lesson3.php本节课程将演示如何使用ExtendScript编写脚本,它是由Adobe公司开发的一款脚本语言工具包。以后的所有课程也将使用这款工具编写脚本。您可以在开始菜单(Windows电脑)或Application目录(Mac电脑)上…

CentOS6.4安装Vbox增强包

2019独角兽企业重金招聘Python工程师标准>>> 1、升级#yum update2、安装gcc #yum install gcc安装编译系统3、安装外置核心模块#yum install kernel-devel4、添加一个连接 ln -s /usr/src/kernels/2.6.18- 164.15.1.el5-i686(内核版本) /usr/src/linux 5、重启以…

eltree ref什么时候有_Vue3响应式系统源码解析-Ref篇

文章转载自:https://zhuanlan.zhihu.com/p/85978064我们阅读源码的原因是什么?无非是1:学习;2:更好的使用这个库。如果只是想大致的了解下原理,倒不必花时间阅读源码,几句话,几张图就…