FloatingActionButton源码解析 FloatingActionButton源码解析背景FloatingActionButton(下文以fab代替)是android support design组件库中提供的一个视图控件,是material design设计中fab的官方实现。此控件的官方介绍如下: Floating action buttons are used for a promoted action. They are d
Service#onStartCommand返回值解析 Service#onStartCommand返回值解析Service类有个生命周期方法叫onStartCommand,每次启动服务(startService)都会回调此方法。此方法的原型如下: public int onStartCommand(Intent intent, int flags, int startId)需要关注的是这个方法有一个整型的返回值,它有以下选项:START_STIC
android冷启动优化 android冷启动优化1. 什么是冷启动冷启动指的是应用第一次启动或者应用被杀死(不在内存中)后重新启动的情况。 你可能已经发现了,这种情况下启动时间会稍长一点。因为它会重新初始化资源(Application等)。app启动时通常会在Application或者所谓的SplashActivity中做初始化工作。如果Application中的工作过多的话, 那么当冷启动的时候,就会出现白屏情况,因为
Picasso学习笔记 下面是我在学习Picasso过程中做的笔记.关于图片加载库的思考 我们为什么要用图片库呢? 图片库通常会对图片加载逻辑进行封装、优化,比如多级缓存/异步线程调度/图片压缩变换,有了这些特性,开发者不再需要关注内存占用、 OOM、网络请求等问题,而只需关注业务本身的逻辑,这对提高生产效率还是很有帮助的。我通过调研一些图片库,发现一个图片加载库通常有以下模块:请求分发模块。负
Downloadmanager in android Downloadmanager使用 DownloadManager是android提供的一个下载管理器 缺点:不支持断点续传使用方法:创建实例:DownloadManager manager = (DownloadManager) context.getSystemService(Context.DOWNLOAD_SERVICE);创建下载任务:DownloadManager.R
HttpCache in android github地址:https://github.com/Rowandjj/AndroidHttpCache概述http Cache指的是web浏览器所具有的复用本地已缓存的文档”副本”的能力。我们知道,通过网络获取内容有时候成本很高,因而 缓存和重用以前获取的资源的能力成为优化性能很关键的一个方面。http协议本身提供了缓存的支持。缓存的优势1. 减少冗余数据传输2. 缓解网络带宽瓶颈
java8新特性学习 内容: 1. lambda表达式 2. streamAPI 3. 内置函数接口 4. 接口默认实现方法 5. android中使用lambda/streamAPI=======1.lambda表达式: 几种形式:()->statement()->(statement)()->{statement}以Thread为例:new Thread(new Runnable(){ pub
实现一个Material效果的ProgressBar 先来看看效果: 分析下难点: 1. 动画的实现; 2. 边界的控制; 3. 状态保存与恢复; 4. 两种状态的实现,loading状态(不停旋转)、progress状态。分别来看下。 1. 动画如何实现: 将动画进行拆解,可以发现它其实是一个弧不断变长变短的一个过程+弧本身在绕圆形转动两部分组成。 所以可以分开来处理,弧度变长变短可以通过canvas.drawArc的参数st
仿易讯客户端loading效果 下面来实现一个loading效果。具体效果如下: 首先对这个效果进行拆分,它由以下部分组成:1 一个”闪电”样式的图案;2 “闪电”图案背后是一个圆角矩形;3 “闪电”图案上面有一层颜色不断”飘过” 拆分完效果后,思考下如何实现。下面是我的思考过程。1 android sdk并没有提供这样的控件,很显然是需要自定义控件;2 很显然是一个View而不是ViewGroup,所以可以
【安卓笔记】ormlite入门 ps:写这篇文章的目的是尝试下新的markdown编辑器哈哈简介 ORMLite provides a lightweight Object Relational Mapping between Java classes and SQL databases. There are certainly more mature ORMs which provide this functionality
【安卓笔记】使用DialogFragment托管dialog 普通的AlertDialog在横竖屏切换时会被销毁,如果dialog上面有数据,也将丢失。解决方案是使用DialogFragment。 使用dialogFragment通常需要复写两个方法: onCreateView(LayoutInflater, ViewGroup, Bundle) onCreateDialog(Bundle)如果你想自定义dialog样式,只需要复写onCreat
【安卓笔记】崩溃日志收集 应用发布之后,总有人反馈说发生crash,但是由于拿不到log,我无法定位问题。后来发现,我们应该收集crash日志,并上传到服务器。国内有很多的三方机构提供了崩溃收集的sdk,我们可以直接拿来使用,比如,我之前做的app使用的是bugHD(http://bughd.com/)提供的服务。但是崩溃收集的原理是什么呢?搜索了一下,发现使用的是java中的uncaughtExceptionHandle
【安卓笔记】gradle入门 随着Android Studio越来越完善,更多的开发者舍弃掉Eclipse。但是新的IDE与以往的Eclipse有很大区别,这导致部分开发者望而却步,其中一个大家觉得比较麻烦的是Android Studio采用的新的构建系统,gradle。那么这篇文章我将对gradle进行一个简单介绍(主要讲gradle配合Android Studio的使用),希望帮助大家熟悉gradle。一. gradle是
【安卓笔记】RecyclerView+SwipeRefreshLayout示例 通过这篇文章你将学会:1.RecyclerView的基本用法;2.SwipeRefreshLayout的基本用法;3.为RecyclerView的item添加响应事件。RecyclerView简单说下,它是用来替代传统ListView的,RecyclerView更加灵活,而且可以与动画很好的结合,你可以很方便的为每个item增加各种动画效果,另外,RecyclerView强制使用ViewHolde
【安卓笔记】CardView+RecyclerView使用示例 CardView+RecycleView可以非常方便的实现一个卡片式列表布局,之前编写卡片式布局非常麻烦(地址:http://blog.csdn.net/chdjj/article/details/41546477),还得编写各种资源文件。另外,单独使用RecyclerView我们还得关注ItemDecoration,但是使用CardView就不必管了,因为CardView本身就可以设置阴影。下面
【安卓笔记】硬盘缓存工具类的编写 DiskLruCache(https://github.com/JakeWharton/DiskLruCache)想必大家都很熟悉。(不熟悉的请看这里),它是jakewharton大神写的一个开源库,提供了硬盘缓存的方案。 但是该库的API比较简单,有时候并不能满足我们使用。比如说如果你想把缓存中的数据以Bitmap的形式返回,API并没有提供这样的方法,我们必须通过DiskL
【安卓笔记】Volley全方位解析,带你从源码的角度彻底理解 转载请声明原出处(blog.csdn.net/chdjj),谢谢!Volley 是 Google 推出的轻量级 Android 异步网络请求框架和图片加载框架。在 Google I/O 2013 大会上发布。其适用场景是数据量小,通信频繁的网络操作。
【安卓笔记】下拉刷新组件的使用及实现 项目中如果需要实现下拉刷新一般有以下几个选择:1.使用开源库Android-pullToRefresh。2.使用support.v4包提供的SwipeRefreshLayout。3.自己实现一个。下面分别简单介绍:注:以listView下拉刷新为例.方案1:使用开源库Android-pullToRefresh1.下载Android