自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

frank 的专栏

人类的一切智慧是包含在这四个字里面的:”等待“ 和 ”希望“。—— 《基督山伯爵》

  • 博客(149)
  • 资源 (6)
  • 收藏
  • 关注

原创 可能是最通俗易懂的 Java 位操作运算讲解

Java 位操作这是一项很基础很基础的知识内容,在所有 Android 和 Java 开发者的学习之路上,大家都接触过,但是实际运用的场景却很少见,很多人估计都忘记有这个知识点了。事实上,在 C/C++ 开发领域因为与硬件的联系更紧密,所以位操作运算应用的更普遍。Java 因为面向对象的特性很多时候不需要接触位操作,但是在某些特定场景下,巧妙运用位操作,能够起到非常高效的的表现。这篇博文不谈应用,只

2017-04-20 19:35:54 31998 16

原创 RecyclerView探索之通过ItemDecoration实现StickyHeader效果

我在上一篇《小甜点,RecyclerView 之 ItemDecoration 讲解及高级特性实践 》 讲解了 ItemDecoration 的基本用法及它的一些实践,抱着学习研究的态度,这一篇作为实践篇主要目的是尝试通过 ItemDecoration 来实现 RecyclerView 中的 StickyHeader 功能。 关于 StickyHeader 想必大家已经很清楚了,如果不有不清楚的,

2017-04-17 15:58:42 30475 20

原创 小甜点,RecyclerView 之 ItemDecoration 讲解及高级特性实践

小甜点,RecyclerView 之 ItemDecoration 讲解及高级特性实践毫无疑问,RecyclerView 是现在 Android 世界中最重要的系统组件之一,它的出现就是为了高效代替 ListView 和 GridView。当时它的出现解决了我一个大的需求,这个需求就是在电视盒子界面上横向加载应用列表,由于 ListView 没有横向加载的功能,而网络上开源的那些 Horizonta

2017-04-13 20:46:36 52475 27

原创 dlopen failed: /data/app/xx/lib/arm/xx.so: has text relocations

刚报了一个错误java.lang.UnsatisfiedLinkError: dlopen failed: /data/app/xx/lib/arm/libxx.so: has text relocations 看这意思是找不到相关的so文件。 但是5.1系统上就是可以正常运行的,6.0却不行。同一份代码,同事的可以,但是我的就不行。后来比较了一下,我与同事的build.gradle文件有点不一

2017-04-06 11:58:19 16609 2

原创 AndroidStudio不自动添加新创建的文件到VCS

从远程仓库下载了一份源码,版本控制是用的SVN。但发现了一个问题,修改和删除文件时,版本管理都有记录。但是如果我新建一个文件时,却发现没有自动关联到VCS,也不能手动添加到VCS中,这样我提交代码时,就无法提交新建文件的记录,并且在AndroidStudio中无法add它到版本控制系统,必须到文件目录手动进行add。 不过,后来在网上找到了答案。解决之法很简单。打开File–>Setting–

2017-03-08 16:53:00 19371

原创 Android绘图Canvas十八般武器之Shader详解及实战篇(下)

前言上一篇《Android绘图Canvas十八般武器之Shader篇(上)》 我们知道了Bitmap的用法,及TileMode的详细情况。接下来,这一篇作为整个知识体系的下半部要讲的是Shader的其它几个子类。 首先声明,网上很多称之为渲染,如图形渲染,线性渲染等,而在这里我更喜欢称为渐变。 LinearGradient 线性渐变渲染器LinearGradient中文翻译过来就是线性渐变的意思

2016-12-16 15:41:40 13728 7

原创 Android绘图Canvas十八般武器之Shader详解及实战篇(上)

前言Android中绘图离不开的就是Canvas了,Canvas是一个庞大的知识体系,有java层的,也有jni层深入到Framework。Canvas有许多的知识内容,构建了一个武器库一般,所谓十八般武艺是也,Paint是Canvas的一个重要的合作伙伴,但今天要讲的不是Canvas也不是Paint,而是与Paint相关的知识点Shader. 什么是Shader?Shader在英语辞典中被解释为着

2016-12-15 20:14:01 12824 2

原创 java.lang.IllegalStateException: Realm access from incorrect thread. Realm objects can only be acce

java.lang.IllegalStateException: Realm access from incorrect thread. Realm objects can only be accessed on the thread they were created.这两天碰到一个bug,因为自己的不小心。bug如下: 提示出错的代码是这一段:mRealm.executeTran

2016-12-12 20:06:26 16810

原创 ClipDrawable让开发变得更简单

ClipDrawable让开发更简单Android开发者对Drawable自然是无比熟悉,Drawable代表一类可以绘制的东西,它有许多继承类,常见的就是BitmapDrawable,此外ShapeDrawable,LayerListDrawable也用得比较多,这篇文章讲另外一个比较常见的类ClipDrawable。ClipDrawable非常简单,写博客是因为觉得它非常好用,有时候合理的运用能

2016-12-09 00:59:03 18163

原创 java.lang.NoClassDefFoundError: com.android.tools.fd.runtime.AppInfo

昨天遇到一坑,在Android Studio上在线调试的时候好好的,结果导出APK,为了图方便,直接从build文件目录下拿到apk装到目标机器上。结果却出现了异常报错的情况。log显示如下: 报错信息是: java.lang.NoClassDefFoundError: com.android.tools.fd.runtime.AppInfo 到这里我就有点懵了,com.android.t

2016-12-05 11:43:32 13926

原创 通信协议之Protocol buffer(Java篇)

之前一直习惯用json进行数据的传输,觉得很方便。来到新公司后发现同事们用的更多的的协议都不是json,而是Protocol buffer。这个东西之前没有听说过,不明白同事们为什么放弃好好的json不用,用这个。后来了解到经常是设备与设备之间进行通信,而不是设备与服务器做通信。很多设备是linux下c语言做核心服务,c来解析json比较麻烦。于是决定花些时间来学习这个陌生的协议。简介Protoco

2016-11-16 16:16:38 34978 19

翻译 我眼中最好用的Android日志记录库Logger。

logger github地址简介我刚开始学c的时候最喜欢用的就是用printf()打印信息。后来学java的时候又经常用System.out.println()这个方法。再后来学Android的时候接触到了Log工具类更是欢喜的不得了。但程序员都是懒的。后来Log敲烦了,心里总有些不爽。好在AndroidStudio提供了logt生成TAG,logd直接生成log.d()这样确实让我更爽了。 不

2016-11-01 14:39:11 7263

原创 Android常用加密手段之MD5加密(字符串加密和文件加密)

前言安全问题一直伴随着互联网的成长,如何有效地保护应用程序的数据是每一个开发者都应该考虑和努力的事情。这篇文章介绍Android平台上常用的加密方式之MD5加密。MD5 MD5即Message-Digest Algorithm 5(信息-摘要算法5),用于确保信息传输完整一致。是计算机广泛使用的杂凑算法之一(又译摘要算法、哈希算法),主流编程语言普遍已有MD5实现。将数据(如汉字)运算为另一固定

2016-10-31 17:59:00 30999 1

原创 OKHTTP之缓存配置详解

前言在Android开发中我们经常要进行各种网络访问,比如查看各类新闻、查看各种图片。但有一种情形就是我们每次重复发送的网络请求其实返回的内容都是一样的。比如一个电影类APP,每一次向服务器申请某个电影的相关信息,如封面、简介、演员表等等,它们的信息都是一样的。显然,这样有点浪费资源,最主要的是这些重复的请求产生了没有必要的流量。流量、流量、流量!!!重要的事情说三遍!刚开始工作的我也不懂,后来才发

2016-10-25 11:47:31 37456 24

原创 OKHTTP学习之高级特性

前言上一篇我已经将OKHTTP的基础知识介绍了一番<< OKHTTP学习之基础知识及运用 >>。这一篇我们一起探索一些复杂的功能。 在这之前我们将基础知识再回顾一下。 Call同步请求 execute异步请求 enqueue异步请求时的回调 Callback服务器的回复 Response服务的消息体 ResponseBody网络访问的请求 RequestHeader请求的

2016-10-24 15:17:40 16515 3

原创 OKHTTP学习之基础知识及运用

OKHTTP简介 okhttp是一个现代化的高效的http库。它能使资源下载的更快和节省带宽。 okttp的高效体现在: * http/2 允许多个访问同一主机地址的请求共享同一个socket。 * 连接池减少了请求的延时 * 通过GZIP压缩下载时的文件大小 * Response缓存机制避免了网络请求完成时其它重复的请求。 如果你配置了多个服务端的IP地

2016-10-20 11:57:13 12638 2

原创 Android中MVP模式讲解及实践

前两年的时候,我经常逛http://androidweekly.net这个网站,上面就有过很多文章介绍MVP模式,我很感兴趣,于是把这个东西介绍给身边的同事,同事们好像没有多大反应,可能是当时在国内MVP用的范围还比较少吧。后来我换了工作,再后来某一天我发现各类博客纷纷在介绍这个东西,各类群里面也在讨论这个东西。我感觉到MVP被越来越多的人认可了,反倒是自己显得落伍起来。所以,趁着空闲,做一...

2016-10-17 15:44:08 33526 22

原创 Realm数据库学习之快速入门

build.gradle配置顶层build.gradlebuildscript { repositories { jcenter() } dependencies { classpath "io.realm:realm-gradle-plugin:1.2.0" }}app模块中的build.gradleapply plugin: '

2016-09-14 16:49:33 10650

原创 RxAndroid从零开始学之五(常见操作符与三级缓存)

RxAndroid的操作符有很多,本以为写了上一节的一些基本的Operator就可以正常编写代码了,但是后来在github上看googlesample,发现了一些另外的Operator。那么本文就继续介绍这些operator并加上自己的一些理解。first()只发射第一个数据项,或者是满足条件的第一个数据项。 Observable.just(1,2,3,4).first().subscribe

2016-09-12 17:40:09 12373

原创 RxAndroid从零开始学之四(常见操作符)

这一篇文章开始,我们要接触更复杂的一些知识点Operator翻译过来就是操作符的意思。什么用途呢? 先看场景分析。 一般在学校的学生花名册找一个学生的话,是通过学生的学号。然后通过学号检索出学生的详细情况。现在我们就要做这样的工作,通过学号找出学生,然后在屏幕上显示学生名字。我们先定义一个Student.java类public class Student { private long id

2016-09-06 17:21:26 10943 2

原创 RxAndroid从零开始学之三(线程调度)

通过前面的文章,我们已经知道了RxAndroid中的Observable、Subscribers、Observer的创建,及subscribe的使用。 接下来,我们开始学习RxAndroid中的线程。线程学Android中恐怕无人不知ANR.正因为如此,我们才会使用Thread+Handler或者Aysnctask的代码编写方式。假设有这么一个需求,程序要进行一个耗时的计算任务,然后得到一个字符串

2016-09-06 09:36:55 11637

原创 RxAndroid从零开始学之二(Observable的其它创建与订阅形式)

前一篇文章简单地写了Observable、Observer、Subcriber及subcribe()方法的使用。这篇再往下学习一些基础的知识点。内容也不会长。Observable的创建的另外方式我们知道。Observable<String> mObservable = Observable.create(new Observable.OnSubscribe<String>() {

2016-09-05 14:19:53 11813

原创 RxAndroid从零开始学习之一(RxJava的简单Demo)

前言现在RxJava,RxAndroid似乎很火,很多开发群里面都在讨论。因为本人虽然一直在开发Android,但近两年跟系统内置app和framework层打交道更多,没有想到脱离互联网领域这么点时间,这么多新技术就冒出来了。所以想想很有危机感,感觉脱离群众很久了。那么,来吧。打算用一段时间将这个知识点从零开始学起。本人偏向于实用主义,不想开山立作去详尽解释RxAndroid中具体的语法,只想通过

2016-09-02 10:35:03 14925 2

原创 build/core/java.mk 33: *** cts/apps/CtsVerifier: Invalid LOCAL_SDK_VERSION 'current' Choices are: .

刚刚编译4.4.2的源代码时遇到 build/core/java.mk 33: * cts/apps/CtsVerifier: Invalid LOCAL_SDK_VERSION ‘current’ Choices are: . stop. 的错误我代码是同事给我的git仓库地址,他说他上传的时候遗漏了某些代码。我在网上查找答案 网上查找解决方法:You can first try: “rm

2016-04-21 12:09:51 16004 1

原创 Android Framework中的线程Thread及它的threadLoop方法

当初跟踪Camera的代码中的时候一直追到了HAL层,而在Framework中的代码看见了若干个Thread。它们普遍的特点就是有一个threadLoop方法。按照字面的意思应该是这个线程能够循环处理数据。对应我想到到了java上层中的HandlerThread,这个估计也差不多,但当时心里总有一个疙瘩,想弄清楚它到底是怎么循环起来的。Android中java世界的Thread先来看看java是怎么

2016-04-09 11:48:49 30080 4

原创 Android IBinder的linkToDeath介绍及情景模拟

最近查看Framework源码的时候,读到了AudioService处理音量的流程,在这里碰到了IBinder的linkToDeath()这个知识点,比较感兴趣,所以记录下来,并自己写demo尝试了一下。我们简单来看下AudioService处理静音这一块。 /frameworks/base/media/java/android/media/AudioManager.javapublic clas

2016-04-01 11:23:32 23448 1

原创 No enclosing instance of type Test is accessible. Must qualify the allocation with an enclosing inst

No enclosing instance of type Test is accessible. Must qualify the allocation with an enclosing instance of type Test (e.g. x.new A() where x is an instance of Test).最近在尝试写一Demo的时候,碰到这个异常,导致Eclipse报错。

2016-03-31 10:31:48 12142

原创 Java设计模式--原型模式

原型模式 android

2016-03-28 10:22:07 11355 2

原创 自定义View,指示wifi信号强度(菜鸟历险记)

我的Android是自学的,自学教材是李刚老师的《疯狂Android讲义》。因为之前是学C语言的,从事的嵌入式行业的开发,接触的是arm世界,用纯c语言写成的bin文件去驱动板子上的显示器及其它。后来有个项目要用Android开发,没有办法就开始自学,当时的打算是1个月的时间学会java,1个月的时间学会Android.因为觉得自己c语言还可以,特别是解决了指针这一个难题后,心里有信心学其它语言会比

2016-03-27 14:03:05 18796 11

《 神奇的 ViewDragHelper,让你轻松定制拥有拖拽能力的 ViewGroup》代码

博客《 神奇的 ViewDragHelper,让你轻松定制拥有拖拽能力的 ViewGroup》的示例代码

2017-06-25

Android pdf示例代码

博文 《Kotlin 第二弹:Android 中 PDF 创建与渲染实践 》的示例代码

2017-05-27

StickyHeaderDemo

《RecyclerView探索之通过ItemDecoration实现StickyHeader效果 》源码。

2017-04-17

ItemDecoration 博文源码

ItemDecoration 博文源码 博文地址 http://blog.csdn.net/briblue/article/details/70161917

2017-04-13

AndroidShader示例代码

博文相关代码。

2017-01-19

mvpsample示例代码

mvpsample示例代码

2016-10-18

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除