自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 资源 (6)
  • 收藏
  • 关注

原创 QQ底部Tab栏高斯模糊效果源码解析

前言前段时间QQ更新后发现下面的Tab栏添加了动态高斯模糊效果,众所周知,高斯模糊这玩意儿比较耗时,动态的模糊效果在安卓的APP中比较少见。在自己猜测了几种做法之后想知道QQ是怎么实现的,于是反编译了一下QQ的apk。鉴于我的逆向基础门都没入,属于只会用一个jadx查查16进制id这种,这里就不班门弄斧介绍了,感兴趣的可以自己去搜搜类似的文章看看。不过这里不得不说QQ的措施做得真好,它里面...

2019-08-27 16:47:19 792

原创 JVM笔记:Java虚拟机的类加载器和双亲委派机制

类与类加载器类加载器虽然只用于实现类的加载动作,但是它在Java程序中起到的作用却远远不限于类加载阶段。对于仍和一个类,都需要由加载它的类加载器和这个类本身一同确立其在Java虚拟机中的唯一性,每一个类加载器,都拥有一个独立的类名称空间。换而言之,判断两个类是否相等,只有在这两个类是由同一个类加载器加载的前提下才有意义,否则,即使两个类来源于同一个Class文件,被同一个虚拟机加载,只要加...

2019-11-05 15:45:14 206

原创 JVM笔记:Java虚拟机的类加载机制

前言虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。类加载的流程类从被加载到虚拟机内存中开始,到卸载出内存位置,它的整个生命周期包括:加载、验证、准备、解析、初始化、使用和卸载,其中验证、准备、解析三个部分统称为连接。这七个阶段的发生顺序如图1-1所示。上图中,加载、验证、...

2019-11-05 15:44:19 165

原创 JVM笔记:i++ 和++i的字节码原理详解

前言一个关于i++和++i的原理详解,对字节码不太熟悉的可以先了解下字节码相关知识,因为从字节码角度更能理解两者的原理。案例 int i = 0, j = 0; i = i++; j =++ j; System.out.println("args = [" + i + "]"); System.out.println("arg...

2019-10-31 15:04:51 353

原创 JVM笔记:Java虚拟机的字节码指令详解

1.字节码Java能发展到现在,其“一次编译,多处运行”的功能功不可没,这里最主要的功劳就是JVM和字节码了,在不同平台和操作系统上根据JVM规范的定制JVM可以运行相同字节码(.Class文件),并得到相同的结果。之所以被称之为字节码,是因为字节码文件由十六进制值组成,而JVM以两个十六进制值为一组,即以字节为单位进行读取。在Java中一般是用javac命令编译源代码为字节码文件,将java...

2019-10-29 15:09:11 872

原创 JVM笔记:Java虚拟机的常量池

这篇文章主要是做一个总结,将查找到相关的资料自己做一个整理,最后会列出查找过的相关资料,感兴趣的可以去翻一翻。常量池class文件常量池(class constant pool)常量池可以理解为Class文件之中的资源仓库,它是Class文件结构中与其他项目关联最多的数据类型,包含了类也是占用Class文件中第一个出现的表类型数据项目。常量池中主要存放两大类常量:字面量(Liter...

2019-10-24 11:20:07 333

原创 JVM笔记:Java虚拟机的内存结构

前言开始先说明一个知识点,Java虚拟机的内存结构和内存模型(JMM)其实是两个不一样的东西,前者是下面要讲的堆栈之类的内容,后者可以看这篇文章。由于全局字符串常量池(string pool或string literal pool) 在Java不同的版本中存放在不同的位置,下面以Java8为例。运行时数据区Java虚拟机在执行Java程序的过程中会把它管理的内存分为若干个数据区域,每个...

2019-10-24 11:18:22 117

原创 算法基础--从TreeMap看红黑树

红黑树(Red Black Tree) 是一种自平衡二叉查找树,相对于普通的二叉树具有通过自旋和变色来保持树两端保持平衡的特点,从而获得较高的查找性能。红黑树的最坏情况运行时间也是非常良好的,并且在实践中是高效的: 它可以在O(log n)时间内做查找,插入和删除。二叉查找树在正式介绍红黑树前,先简要介绍下二叉查找树(BST),二叉排序树或者是一棵空树,或者是具有下列性质的二叉树:...

2019-09-18 18:49:38 430

原创 多线程笔记--锁(synchronized)

synchronized在并发编程中存在线程安全问题,主要原因有:1.存在共享数据 2.多线程共同操作共享数据。关键字synchronized可以保证在同一时刻,只有一个线程可以执行某个方法或某个代码块,同时synchronized可以保证一个线程的变化可见(可见性),即可以代替volatile。实现原理和作用synchronized可以保证方法或者代码块在运行时,同一时刻只有一...

2019-05-12 02:00:22 111

原创 多线程笔记---锁(Synchronized)的优化和种类

通过上一篇文章大致了解了锁 (Synchronized),他最大的特征是在同一时间只有一个线程能够获得对象的监视器(monitor),从而进入到同步代码块中执行,其他线程需要在外面等待,表现出一种互斥性。但是这样有一个很明显的的问题,效率低下,那么多线程都在外面等你执行,这时候就需要对锁进行优化,既然一次只能通过一个线程的形式不能改变,那么我们可以对锁进行优化,缩短获取锁的时间。1.乐观锁和...

2019-05-12 01:59:29 415

原创 Viewpager实现真正的无限滑动,拒绝Integer.MAX_VALUE

Banner大家都不陌生,用于app首页轮播显示图片,并能无限轮播,这个效果一般有三种写法ViewPager设置Integer.MAX_VALUE,这也是大多数博客文章里的写法。同样是使用ViewPager,但是getCount返回值不用为Integer.MAX_VALUE,只需返回图片数量+2第三种就是自己自定义view了,这个好难,需要自己写滑动和手势速度判断,能写出来基本自定义view已

2017-01-19 23:21:19 4804 6

原创 自定义viewGroup+ViewDragHelper: 仿探探主页卡片式滑动,层叠布局

自定义viewGroup+ViewDragHelper: 仿探探主页卡片式滑动,层叠布局前几天看到群里的dalao张旭童用recycleview写了一个这个效果但是我对自定义LayoutManager不熟,刚好又在学习自定义view,所以想到用自定义ViewGroup写写试试,不多说,先上效果图。 数据来自豆瓣的电影评分榜,从图上看到,我们可以滑动最顶层topview卡片,此时下面的

2017-01-08 18:10:49 5074 5

原创 Android开发之第一个小项目--我的MP3播放器之最后一点结束的话(终)

终于把最后这点写完了,但是我自己感觉还是不太满意。毕竟才开始写博客,对博客的字体编写什么的都不太熟,而且这个代码的解析我自己都感觉不太满意。由于这是第一次自己写的项目,最开始简单实现了mp3的功能,后面的功能都是我自己慢慢探索,慢慢添加进去的,所以代码显得有些臃肿杂乱,但后面由于其他的事我一直没来的及改,结果到现在还是没改成。不过,最终还是总结下问题。1. notification中显示的图片没有随

2015-12-23 20:43:03 696

原创 Android播放器中我喜欢的一个地方-----高斯模糊效果

整个这个写的mp3中我最喜欢的就是这一点了,背景高斯模糊化。不废话,依旧看代码package com.verzqli.utils;import android.graphics.Bitmap;/** * Created by paveld on 3/6/14. */public class FastBlur { public static Bitmap doBlur(Bitmap sen

2015-12-22 19:33:03 2194

原创 Android开发之第一个小项目--我的MP3播放器之后台服务Service的实现(四)

这篇是讲后台控制歌曲播放service的代码。我自己感觉解析没怎么写好,看的有问题就提,我会解答的。 嗯,最进弄到了个制作gif的软件,我在最后一篇,发送个软件运行的动态图和这个程序的整体代码逻辑。 哎!新人博客还是没什么人看,自己加油吧!!!!package com.verzqli.service;import android.app.Service;import android.conte

2015-12-22 19:04:33 1078

原创 Android开发之第一个小项目--我的MP3播放器之播放界面的实现(三)

下面是第二个界面播放界面MusicPlayActivity的界面,老规矩,代码解析卸载注释中import android.content.BroadcastReceiver;import android.content.ContentValues;import android.content.Context;import android.content.Intent;import andro

2015-12-22 09:26:36 1484

原创 Android开发之第一个小项目--我的MP3播放器之主界面的实现(二)

嗯 先上两张图~~ 这里两张图片,第一张是列表界面,也是主界面,能显示歌曲界面个下面的播放栏,播放栏点击能进入第二个界面,也能够控制歌曲的播放个暂停。 第二个界面是播放界面,这个界面的解析下一篇说道,这里先列出这里是为了让你们理解这两个界面的关系,好看注释时别弄混了。 其实我还是想实现歌曲分组和专辑分组的,可是到了后面,我发现太多代码写在这个主界面了,不好修改。当时也没什么时间,也就没改了

2015-12-20 18:11:25 1256

原创 设计模式之我见-------单例模式

说到单例模式,大家肯定不陌生,即时有的没有听说过,但是项目中也可能用到过,只是不知道它的名字罢了。 单例模式,顾名思义,在系统中有一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源。 下面举个大家在实际中常用的例子public class SingleTon { public static SingleTon singleTon = null; pri

2015-12-19 11:25:46 646

原创 解决ListView中滑动复用时控件的混乱问题

这个问题恐怕很多人在刚开始使用ListView时都接触到过,就是比如listview的item中有一个Button或一个CheckBox,你明明点击按键改变了他的背景图片或者问题,又或者勾选了CheckBox,但是你一滑动,发现下面你没操作的item也跟着改变了,然后你再滑动回去,结果原来item上面的操作又变没了。这就是listview中item复用时所产生的问题,下面这种图就是例子。上图就是例

2015-12-14 18:37:36 7940

转载 Android Context完全解析,你所不知道的Context的各种细节

转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/47028975前几篇文章,我也是费劲心思写了一个ListView系列的三部曲,虽然在内容上可以说是绝对的精华,但是很多朋友都表示看不懂。好吧,这个系列不仅是把大家给难倒了,也确实是把我给难倒了,之前为了写瀑布流ListView的Demo就写了大半个月的时间。那么本篇文章我们就

2015-12-08 17:32:54 462

原创 android图片的二级缓存,让你不再担心图片加载时的OOM

众所周知,在listview中加载多图时容易造成OOM,不过解决的办法由很多种,郭神的博客中也有很多类似的博客,我参照他的博客和群里的小伙伴七七(他提供的demo),写了这篇图片二级缓存的博客,其实图片的二级缓存在很多的框架中早已帮你封装好了,但是知其然,也要知其所以然。 主activity我就不写了下面我会提供demo,主要就是两图片的网址传给adapter中,下面着重就是adapter中的代码

2015-12-06 15:58:29 2382 1

转载 算法问题

28)给定一数组a[N],我们希望构造数组b [N],其中b[j]=a[0]*a[1]…a[N-1] / a[j],在构造过程中,不允许使用除法:要求O(1)空间复杂度和O(n)的时间复杂度;除遍历计数器与a[N] b[N]外,不可使用新的变量(包括栈临时变量、堆空间和全局静态变量等);实现程序(主流编程语言任选)实现并简单描述。题目和答案来自MreWindow的博客,要看解析的可以移步http:

2015-12-04 17:55:34 441

转载 android四种启动模式(singTop,Task,standard,singleInstance)

合抱之木,生於毫末;九層之台,起於累土;千里之行,始於足下。《老子》今天在社区看到有朋友问“如何在半年内成为顶级架构师”,有网友道“关灯睡觉,不用半年的...”,的确,做梦还来的快一些。作为一个程序员,树立远大的目标是值得欣赏的,但不能只去空想,要一步一步地实践才行。成大事者,须从小事做起;万事起于忽微,量变引起质变。我们今天要讲的是Activity的四种launchMode。

2015-12-03 11:44:06 3015

转载 github的傻瓜式教学,教你如何上传代码到github

Github上传代码菜鸟超详细教程03 MAY 2013最近需要将课设代码上传到Github上,之前只是用来fork别人的代码。这篇文章写得是windows下的使用方法。第一步:创建Github新账户第二步:新建仓库第三部:填写名称,简介(可选),勾选Initialize this repository with a README选项,这是自动创建REAMDE.md

2015-12-03 10:12:58 2413

原创 四大跨进程通信组件之AIDL(跨进程service通信)

AIDL:Android Interface Definition Language,即Android接口定义语言 为了使其他的应用程序也可以访问本应用程序提供的服务,Android系统采用了远程百度百科 过程调用(Remote Procedure Call,RPC)方式来实现。与很多其他的基于RPC的解决方案 一样,Android使用一种接口定义语言(Interf

2015-11-28 18:39:30 728

原创 Android开发之第一个小项目--我的MP3播放器(一)

我的mp3(一)不知不觉学习android也已经有一段时间了,学习完了基础的android知识后,一时间有点迷茫不知道该干什么,于是想写个项目给自己练练手,本来我以为MP3播放器挺好写的,结果后来仔细看了看我3年都没用过的300块的中兴机的默认播放器,我跪了,连他我都写不过。所以,我决定写一个我自己的播放器,就当给自己前面所学的做一个总结,也给需要的人一点帮助。我弄了gif图,可是太大了,一时间我也

2015-11-27 16:58:12 2652 1

圆心记忆小游戏

一款android类记忆小游戏

2016-05-27

android mp3播放器

界面算是挺好的吧,毕竟美化也花了我不少时间,解析代码博客地址:http://blog.csdn.net/verzqli/article/details/50072507

2015-12-23

android 图片的二级缓存

android 图片的二级缓存,让你不再担心你加载图片时的OOM问题

2015-12-06

5.0以后的v7包的recycleview,cardview的jar

5.0以后的v7包的recycleview,cardview的jar,方面好用又好看

2015-11-26

eventBus.jar

eventBus.jar

2015-11-05

断点续传源码

根据幕课网老师编写的,我加了个按键变化,并设置文件长度为进度条最大值

2015-09-10

空空如也

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

TA关注的人

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