8 rowandjj

尚未进行身份认证

我要认证

阿里巴巴资深移动开发工程师

等级
TA的排名 4k+

FloatingActionButton源码解析

FloatingActionButton源码解析背景FloatingActionButton(下文以fab代替)是android support design组件库中提供的一个视图控件,是material design设计中fab的官方实现。此控件的官方介绍如下: Floating action buttons are used for a promoted action. They are d

2016-05-02 15:48:49

Service#onStartCommand返回值解析

Service#onStartCommand返回值解析Service类有个生命周期方法叫onStartCommand,每次启动服务(startService)都会回调此方法。此方法的原型如下: public int onStartCommand(Intent intent, int flags, int startId)需要关注的是这个方法有一个整型的返回值,它有以下选项:START_STIC

2015-12-29 19:51:13

android冷启动优化

android冷启动优化1. 什么是冷启动冷启动指的是应用第一次启动或者应用被杀死(不在内存中)后重新启动的情况。 你可能已经发现了,这种情况下启动时间会稍长一点。因为它会重新初始化资源(Application等)。app启动时通常会在Application或者所谓的SplashActivity中做初始化工作。如果Application中的工作过多的话, 那么当冷启动的时候,就会出现白屏情况,因为

2015-12-14 16:06:54

Picasso学习笔记

下面是我在学习Picasso过程中做的笔记.关于图片加载库的思考 我们为什么要用图片库呢? 图片库通常会对图片加载逻辑进行封装、优化,比如多级缓存/异步线程调度/图片压缩变换,有了这些特性,开发者不再需要关注内存占用、 OOM、网络请求等问题,而只需关注业务本身的逻辑,这对提高生产效率还是很有帮助的。我通过调研一些图片库,发现一个图片加载库通常有以下模块:请求分发模块。负

2015-11-21 15:36:01

Downloadmanager in android

Downloadmanager使用 DownloadManager是android提供的一个下载管理器 缺点:不支持断点续传使用方法:创建实例:DownloadManager manager = (DownloadManager) context.getSystemService(Context.DOWNLOAD_SERVICE);创建下载任务:DownloadManager.R

2015-11-19 15:22:33

HttpCache in android

github地址:https://github.com/Rowandjj/AndroidHttpCache概述http Cache指的是web浏览器所具有的复用本地已缓存的文档”副本”的能力。我们知道,通过网络获取内容有时候成本很高,因而 缓存和重用以前获取的资源的能力成为优化性能很关键的一个方面。http协议本身提供了缓存的支持。缓存的优势1. 减少冗余数据传输2. 缓解网络带宽瓶颈

2015-11-09 22:15:37

java8新特性学习

内容: 1. lambda表达式 2. streamAPI 3. 内置函数接口 4. 接口默认实现方法 5. android中使用lambda/streamAPI=======1.lambda表达式: 几种形式:()->statement()->(statement)()->{statement}以Thread为例:new Thread(new Runnable(){ pub

2015-09-28 20:40:16

实现一个Material效果的ProgressBar

先来看看效果: 分析下难点: 1. 动画的实现; 2. 边界的控制; 3. 状态保存与恢复; 4. 两种状态的实现,loading状态(不停旋转)、progress状态。分别来看下。 1. 动画如何实现: 将动画进行拆解,可以发现它其实是一个弧不断变长变短的一个过程+弧本身在绕圆形转动两部分组成。 所以可以分开来处理,弧度变长变短可以通过canvas.drawArc的参数st

2015-08-09 20:17:42

仿易讯客户端loading效果

下面来实现一个loading效果。具体效果如下: 首先对这个效果进行拆分,它由以下部分组成:1 一个”闪电”样式的图案;2 “闪电”图案背后是一个圆角矩形;3 “闪电”图案上面有一层颜色不断”飘过” 拆分完效果后,思考下如何实现。下面是我的思考过程。1 android sdk并没有提供这样的控件,很显然是需要自定义控件;2 很显然是一个View而不是ViewGroup,所以可以

2015-08-05 21:39:08

【安卓笔记】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

2015-06-02 13:45:07

【安卓笔记】使用DialogFragment托管dialog

普通的AlertDialog在横竖屏切换时会被销毁,如果dialog上面有数据,也将丢失。解决方案是使用DialogFragment。 使用dialogFragment通常需要复写两个方法: onCreateView(LayoutInflater, ViewGroup, Bundle) onCreateDialog(Bundle)如果你想自定义dialog样式,只需要复写onCreat

2015-06-01 20:50:45

【安卓笔记】崩溃日志收集

应用发布之后,总有人反馈说发生crash,但是由于拿不到log,我无法定位问题。后来发现,我们应该收集crash日志,并上传到服务器。国内有很多的三方机构提供了崩溃收集的sdk,我们可以直接拿来使用,比如,我之前做的app使用的是bugHD(http://bughd.com/)提供的服务。但是崩溃收集的原理是什么呢?搜索了一下,发现使用的是java中的uncaughtExceptionHandle

2015-05-22 12:03:55

【安卓笔记】gradle入门

随着Android Studio越来越完善,更多的开发者舍弃掉Eclipse。但是新的IDE与以往的Eclipse有很大区别,这导致部分开发者望而却步,其中一个大家觉得比较麻烦的是Android Studio采用的新的构建系统,gradle。那么这篇文章我将对gradle进行一个简单介绍(主要讲gradle配合Android Studio的使用),希望帮助大家熟悉gradle。一. gradle是

2015-04-10 09:45:59

【安卓笔记】RecyclerView+SwipeRefreshLayout示例

通过这篇文章你将学会:1.RecyclerView的基本用法;2.SwipeRefreshLayout的基本用法;3.为RecyclerView的item添加响应事件。RecyclerView简单说下,它是用来替代传统ListView的,RecyclerView更加灵活,而且可以与动画很好的结合,你可以很方便的为每个item增加各种动画效果,另外,RecyclerView强制使用ViewHolde

2015-03-29 10:37:31

【安卓笔记】CardView+RecyclerView使用示例

CardView+RecycleView可以非常方便的实现一个卡片式列表布局,之前编写卡片式布局非常麻烦(地址:http://blog.csdn.net/chdjj/article/details/41546477),还得编写各种资源文件。另外,单独使用RecyclerView我们还得关注ItemDecoration,但是使用CardView就不必管了,因为CardView本身就可以设置阴影。下面

2015-03-29 10:29:36

【安卓笔记】硬盘缓存工具类的编写

DiskLruCache(https://github.com/JakeWharton/DiskLruCache)想必大家都很熟悉。(不熟悉的请看这里),它是jakewharton大神写的一个开源库,提供了硬盘缓存的方案。       但是该库的API比较简单,有时候并不能满足我们使用。比如说如果你想把缓存中的数据以Bitmap的形式返回,API并没有提供这样的方法,我们必须通过DiskL

2015-02-16 18:39:03

【安卓笔记】Volley全方位解析,带你从源码的角度彻底理解

转载请声明原出处(blog.csdn.net/chdjj),谢谢!Volley 是 Google 推出的轻量级 Android 异步网络请求框架和图片加载框架。在 Google I/O 2013 大会上发布。其适用场景是数据量小,通信频繁的网络操作。

2015-02-15 18:30:57

【安卓笔记】下拉刷新组件的使用及实现

项目中如果需要实现下拉刷新一般有以下几个选择:1.使用开源库Android-pullToRefresh。2.使用support.v4包提供的SwipeRefreshLayout。3.自己实现一个。下面分别简单介绍:注:以listView下拉刷新为例.方案1:使用开源库Android-pullToRefresh1.下载Android

2015-01-25 17:15:18

【安卓笔记】Widget

什么是Widget?App Widget是android提供的桌面小工具,它能够嵌入到桌面,并且可以定期更新自己的数据。如下图所示:如何创建Widget?创建一个Widget需要以下几个组件:1AppWidgetProviderInfo:这个类提供了Widget的元数据,比如Widget的布局,更新频率,大小等等。它通常都使用xml定义,位置

2014-12-31 13:24:00

【安卓笔记】view.getX和view.getTranslationX区别

1.view.getTranslationX计算的是该view的偏移量。初始值为0,向左偏移值为负,向右偏移值为正。2.view.getX相当于该view距离父容器左边缘的距离,等于getLeft+getTranslationX。示意图:举例:布局文件:<RelativeLayout xmlns:android="http://schemas.andro

2014-12-31 13:16:35

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!