从extends和super浅谈java泛型

从extends和super浅谈java泛型泛型是从jdk 1.5之后引入的,对于开发者而言,使用泛型能够写出更加自然的代码,对于编写一些通用的类尤为有用。想象一下,如果没有泛型的支持,我们在要实现一个Integer类型的链表时,不能直接复用系统的List泛型类的各种子类,而必须自己继承List实...

2017-05-23 16:29:21

阅读数 251

评论数 0

Webpack打包font-awesome

使用webpack构建font-awesome或者bootstrap的时候,最常见的一个问题就是构建字体文件的问题。经常会出现无法找到字体文件的问题。下面就讲一下如何正确构建引入字体文件: 1. 首先安装依赖: npm install style-loader css-loader file...

2017-05-13 16:35:33

阅读数 9143

评论数 0

Mac下IDEA出现cannot find any declarations解决方法

关联本地的JDK首先需要本机安装jdk,注意osx自带的jdk是没有源码的,最好重新安装一下。关联jdk的方法如下: 选择工程,然后File->Project Structure。然后在Project中确保Project SDK存在,如果不存在,点击New,选择本机的一个jdk的路径。如图:...

2017-05-04 10:23:08

阅读数 734

评论数 0

Glide源码分析(六)——从DecodeJob相关实现看图片加载流程

DecodeJob是集数据加载、解析和回调通知于一体的包装内,它在内部根据配置的不同情况将相关的工作委托给不同的类来实现,是Glide内实现数据加载功能的中枢。首先来看其中会用到的几个比较重要的类。LocalPath和DecodePathDecodePath内部保存有两个主要的成员,一个是由Res...

2017-03-23 19:19:06

阅读数 626

评论数 1

Glide源码分析(五)——ModelLoader机制

ModelLoaderRegistryModelLoaderFactory和MultiModelLoaderFactoryModelLoaderFactory是一个工厂类接口,实现类使用它的接口来对外构建不同了类型的modelLoader,它的实现类一般是不同类型的ModelLoader的内部类,...

2017-03-23 19:17:29

阅读数 2151

评论数 0

Glide源码分析(四)——Registry机制

Registry是Glide内部实现的模块挂接中心,它建立了功能需求和实现模块之间的映射关系,使这些模块能够根据需求进行灵活的挂载,模块和模块之间又相互独立互不影响,很好地实现了系统功能的解耦。 在Registry内部,提供了对如下几种类型模块的挂载支持:/** * 数据加载模块 */ pr...

2017-03-23 19:16:00

阅读数 826

评论数 0

Glide源码分析(三)——图片缓存相关实现

LruBitmapPoolGlide实现bitmap缓存的实现类。其缓存功能实现的核心依赖于两个类:SizeConfigStrategy和AttributeStrategy,在API 19之前,使用AttributeStrategy,之后使用SizeConfigStrategy。两种strateg...

2017-03-23 19:14:01

阅读数 860

评论数 0

Glide源码分析(二)——磁盘缓存实现

Glide中默认磁盘缓存实现的入口为DiskLruCacheFactory,DiskLruCacheFactory提供了几个接收不同参数的构造函数,以允许指定缓存文件的位置和磁盘缓存的大小。其中比较有意思的是,在构造函数中DiskLruCacheFactory并没有立即构建缓存的File,而是在b...

2017-03-23 19:06:55

阅读数 805

评论数 0

Glide源码分析(一)——DiskLruCache磁盘缓存的实现

Glide源码分析(一)——DiskLruCache磁盘缓存的实现Glide磁盘的实现主要是通过DiskLruCache来实现的。DiskLruCache并非针对Glide编写的,而是一个通用的磁盘缓存实现,虽然并非Google官方的代码,但是已经在很多应用中得到了引入使用。journal日志Di...

2017-03-23 19:02:13

阅读数 1256

评论数 0

Ubuntu下修改键盘映射

由于公司的电脑是MAC,而我自己家里面的电脑是Ubuntu,在开发环境中,各种快捷键经常离不开ctrl和alt键,但是mac和其他电脑键盘这两个键的位置正好相反,因此在家和在公司来回切换键盘的使用习惯是相当痛苦的事情。

2016-08-29 00:13:47

阅读数 6395

评论数 0

Linux下解决no jdk found问题

Linux下解决no jdk found问题最近准备在Ubuntu下面搭建Android开发环境,将官方下载的内容解压后,为了能够在dash中方便地搜索,因此又在/usr/share/applications目录下面创建了Android Studio的快捷方式。但是遇到一个奇葩的问题就是: 直接在...

2016-06-15 23:02:01

阅读数 2530

评论数 0

android FlatBuffers剖析

android FlatBuffers简介概述FlatBuffers是google最新针对游戏开发退出的高性能的跨平台序列化工具,目前已经支持C++, C#, Go, Java, JavaScript, PHP, and Python (C和Ruby正在支持中),相对于json和Protocol ...

2016-03-13 21:04:05

阅读数 3639

评论数 1

Java枚举单例

注意enum不是Enum,有Java基础的同学们应该都不会把二者混淆了。简单来说,enmu只是jdk1.5引入的语法糖,它不是java中的新增类型,编译器在编译阶段会自动将它转换成一个继承于Enum的子类,例如如下的代码:public enum GenderEnum { MALE, ...

2016-02-28 17:23:47

阅读数 2399

评论数 1

在MAC OS下面编译flatBuffers的flatc文件

最近在研究google的flatbuffers,因此涉及到使用flatc来讲IDL描述的数据结构编译成flatbuffers能够使用的fbs结构的文件。由于是在MAC OS下面,因此最初尝试使用XCode来编译,但是这个玩意儿特别大,足足有4G+,而且苹果也特别操蛋,在中国没有服务器,因此下载不仅...

2016-02-20 22:04:07

阅读数 2340

评论数 4

利用MAT进行内存泄露分析

前言 对于程序员来说码代码容易,保证代码的稳定性很难。有时候写完一个功能可能只需要一天时间,但是这个功能隐藏的bug导致的线上问题排查可能需要一周或者更长时间。因此,拥有良好的代码结构和编码规范是一个程序员应该长期坚持并为之奋斗的一个目标。但是,百密也难免一疏,没有百分之百没有问题的代码...

2015-12-13 23:31:40

阅读数 21376

评论数 4

Android ANR分析

前言 ANR即Application Not Responding,顾名思义就是应用程序无响应。在Android中,一般情况下,四大组件均是工作在主线程中的,Android中的Activity Manager和Window Manager会随时监控应用程序的响应情况,如果因为一些耗时操作...

2015-11-28 21:42:48

阅读数 28494

评论数 9

android content provider java.lang.SecurityException: Permission Denial异常解决

一般情况下,出现这个异常都是因为调用者没有在manifest中声明content provider说需要的read或者write权限导致的。例如,content provider的声明为(注意exported属性为true其他程序才能获取到provider的数据):<provider ...

2015-11-05 13:17:33

阅读数 814

评论数 0

使用Android Studio进行本地单元测试(Local Unit Tests)

使用Android Studio进行本地单元测试(Local Unit Tests)由于目前Google已经停止了对Eclipse ADT插件的更新,因此迫使Android的开发者迁移到Android Studio中。Android Studio基于JetBrains IntelliJ IDEA,...

2015-09-19 22:20:04

阅读数 3519

评论数 0

Android 视差滚动控件

今天看到一个视差滚动控件,觉得挺好的,于是自己动手写了一个。

2014-09-25 21:18:30

阅读数 5552

评论数 0

ubuntu12.10下下载android源码

最近折腾了一阵android源码下载的问题,在网上找了一些教程照着做,出现了各种问题,归根结底就是因为一些网址被墙了,但是很多教程又没有更新,所以出现了下载中出现的各种问题。强烈建议去 http://source.android.com/source/downloading.html#initi...

2013-11-02 17:46:30

阅读数 3457

评论数 0

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