自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(75)
  • 资源 (3)
  • 收藏
  • 关注

原创 LruCache原理和用法与LinkedHashMap

一.LruCache算法LruCache算法就是Least Recently Used,也就是最近最少使用算法。他的算法就是当缓存空间满了的时候,将最近最少使用的数据从缓存空间中删除以增加可用的缓存空间来缓存新内容。这个算分的内部有一个缓存列表。每当一个缓存数据被访问的时候,这个数据就会被提到列表头部,每次都这样的话,列表的尾部数据就是最近最不常使用的了,当缓存空间不足时,就会删除列表尾部的缓存数据

2017-08-25 09:17:11 14020 3

原创 APP启动页背景颜色变化

在APP的启动页经常会有一些渐变效果。如果是从半透明渐变为不透明,用View动画AlphaAnimation就能完成。而View动画只有渐变,旋转,平移,和缩放四种动画效果,是完成不了颜色变化的任务的。所以需要用到属性动画。demo下载:http://download.csdn.net/download/qq_25806863/9934747下面是三种用属性动画让启动页背景颜色渐变的方法:界面准备几

2017-08-15 15:49:07 1780

原创 ArrayList和LinkedList的简单实现

ArrayList提供了一宗可增长数组的实现。有点事对get和set调用花费常数时间。缺点是插入和删除代价昂贵,除非插入和删除是在ArrayList的末端进行。LinkedList提供了双链表实现。优点是,插入和删除开销很小,花费常数时间。缺点是不容易做索引,get和set调用昂贵,除非调用接近表的断点的项(离哪端近就从哪端开始)。原文地址:http://blog.csdn.net/qq_258

2017-07-31 11:49:44 2551

原创 Android-socket的基本使用,发送文字和图片以及心跳

项目需求收集通过Socket向服务器发送图片,之前没搞过,网上搜搜写了下面的例子,勉强解决了需求。为了测试切换着方便,所以方法写的有点碎了。。。 原文地址 http://blog.csdn.net/qq_25806863/article/details/75533109要求发送的消息的格式是,8个字节的消息长度+消息体因为需要8个字节,所以消息长度决定用long如果需要4个字节,可以用int。手机

2017-07-20 15:55:20 10560 7

原创 将带有jni的Eclipse项目导入AndroidStudio遇到的问题

当然前提是本地已经配置好了ndk的环境1. NDK integration is deprecated in the current plugin首次编译遇到一个错误:FAILURE: Build failed with an exception.* What went wrong:Execution failed for task ':app:compileDebugNdk'.> Error:

2017-07-11 09:58:49 1650

原创 AVL树的旋转图解和简单实现

AVL树是带有平衡条件的查找二叉树。这个平衡条件要容易保持,而且他要保证树的深度为O(logN)原文地址:http://blog.csdn.net/qq_25806863/article/details/74755131平衡条件一个最理想的平衡条件是左右两个子树的高度完全相等,但只有节点数量为2^n-1的树才满足这个条件(n是层数,2层要3个,3层要7个)。这个条件太严格,不好用。...

2017-07-07 18:03:51 49071 16

原创 二叉查找树的简单实现

二叉查找树首先也是个二叉树,符合二叉树的一切特点。原文地址:http://blog.csdn.net/qq_25806863/article/details/74638590简单介绍但是二叉查找树要求对树中的每个节点,这个节点的左子树中所有的值要小于自己,右子树中所有的值要大于自己。下面是两个的区别:二叉查找树: 不是二叉查找树: 简单实现主要是查询,插入和...

2017-07-07 10:55:37 1046

原创 Android解压中文乱码

在Android中内置有解压的工具,一般可以使用下面的方法解压:注意import的包:因import java.util.zip.ZipEntry;import java.util.zip.ZipFile;/** * 解压缩一个文件 * * @param zipFile 压缩文件 * @param folderPath 解压缩的目标目录 * @

2017-06-23 16:50:30 2892 1

原创 通过轮廓简单实现一个圆图

实现圆图的方法有很多种,这是一种使用轮廓和剪切。通过setOutLineProvider提供一个轮廓通过setClipToOutLine(true)来让视图按轮廓剪切代码很简单:布局activity_main.xml,上面是原图,下面是圆图:<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" and

2017-06-23 15:56:18 931

转载 Mysql 密码报错 You must reset your password ... 和 Your password does N

如果MySQL数据库用户的密码设置过于简单,数据库在用户登录后会提示重置密码,并且不接受简单的密码。 提示需要重置密码: ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement. Mysql数据库版本:5.7.1 操作系统:CentO

2017-06-16 00:29:59 1715

原创 Kotlin让属性只能被赋值一次且不能为空

有时候要求一个属性只能赋值一次,且不能为空,可以用下面的方法本文地址: 用get和set利用属性的get()和set()对值进行控制:class APP : Application() { companion object { var app: Application? = null set(value) { field

2017-06-15 12:01:33 4979 2

原创 对一个KotlinAPP的copy

最近看了下Kotlin。随便找了个简单的地址就开始了copy。真的是copy,代码结构,布局,图片等都是copy的。本文地址: http://blog.csdn.net/qq_25806863/article/details/73209612主要是为了体验一下Kotlin在Android开发中是什么样子的。copy对象就是几百个Gank的其中一个:https://github.com/onlylov

2017-06-14 12:14:58 882

原创 Android多线程-AsyncTask工作流程(源码)

AsyncTask的源码是很简单的,看着并不复杂。只是对Handler和ThreadPoolExecutor进行了一下封装。基于api25(7.1)的代码,使用起来也是很简单的,看上个就知道了。一般要继承AsyncTask并重写下面几个方法,这些方法的执行顺序一目了然:原文地址 //任务执行前调用protected void onPreExecute() {}//执行后台任务protected

2017-05-31 15:43:45 758

原创 Android多线程-AsyncTask的使用和问题(取消,并行和串行,屏幕切换)

AsyncTask是Android提供的一个执行异步工作的类,内部其实是运用了线程池和Handler来进行异步任务的执行和与主线程的交互。AsyncTask只是一个辅助类,适合执行时间短的异步任务。本文基于Android7.0的代码来说的。原文地址 http://blog.csdn.net/qq_25806863/article/details/72782050示例Async...

2017-05-27 15:45:17 8438 2

原创 Android纯的二维码扫描界面和功能-zxing

这是一个只有一个二维码扫描界面的demo,方便之后集成使用。原文地址 http://blog.csdn.net/qq_25806863/article/details/72139582CSDN下载地址 http://download.csdn.net/detail/qq_25806863/9842656demo的GitHub地址 https://github.com/wangyisll/QRDemo

2017-05-15 14:04:04 7552 3

原创 Java多线程-CompletionService

起原文地址 http://blog.csdn.net/qq_25806863/article/details/71743659在之前说过,线程池ThreadPoolExecutor可以调用submit方法来获取返回值Future。像下面这样:这里先定义三个Callable,之后都用这三个: Callable callable1 = new Callable() {

2017-05-12 16:03:15 2326 1

原创 Java多线程-线程池ThreadPoolExecutor的submit返回值Future

起原文地址 http://blog.csdn.net/qq_25806863/article/details/71214033一般使用线程池执行任务都是调用的execute方法,这个方法定义在Executor接口中:public interface Executor { void execute(Runnable command);}这个方法是没有返回值的,而且只接受Runnable。那

2017-05-05 16:09:12 44204 10

原创 java多线程-ThreadPoolExecutor的拒绝策略RejectedExecutionHandler

概述原文地址 http://blog.csdn.net/qq_25806863/article/details/71172823在分析ThreadPoolExecutor的构造参数时,有一个RejectedExecutionHandler参数。RejectedExecutionHandler是一个接口:public interface RejectedExecutionHandler { v

2017-05-04 17:39:05 29277 5

原创 AndroidStudio运行java的main方法

要做AndroidStudio上运行java的main方法很简单。原文地址 http://blog.csdn.net/qq_25806863/article/details/71171321直接新建一个java文件​ 在java文件中写main方法,输入psvm就行public class Demo { public static void main(String[] args) {

2017-05-04 15:47:05 13650 5

原创 Java多线程-线程池Executors

概览博客地址 http://blog.csdn.net/qq_25806863原文地址 通过上一篇对ThreadPoolExecutor的构造方法分析可以感受到,通过ThreadPoolExecutor来创建线程池是比较复杂的,参数比较多,考虑因素也多。因此java自己提供了一个工厂类Executors,里面提供了一些方法,用来创建常用的几种ThreadPoolExecutor线程池。下面是方法概览

2017-05-04 11:19:11 1978 1

原创 Java多线程-线程池ThreadPoolExecutor构造方法和规则

为什么用线程池博客地址 http://blog.csdn.net/qq_25806863原文地址 http://blog.csdn.net/qq_25806863/article/details/71126867有时候,系统需要处理非常多的执行时间很短的请求,如果每一个请求都开启一个新线程的话,系统就要不断的进行线程的创建和销毁,有时花在创建和销毁线程上的时间会比线程真正执行的时间还长。而且当线程数

2017-05-03 17:15:37 121518 32

原创 View动画执行过程和插值器作用

原文地址 http://blog.csdn.net/qq_25806863/article/details/70858897示例补间动画的使用很简单,如下面代码,让图片旋转360度: animation = new RotateAnimation(0,360); animation.setDuration(3000); iv.sta...

2017-04-27 16:05:13 1104

原创 SystemServer的产生和启动

原文地址 http://blog.csdn.net/qq_25806863/article/details/70820063概括基于Android7.1源码。结合一些文章想看一下Android的SystemServer的产生和启动,发现7.1的代码和文章上的不太一样,只玩的源码我也没看过,不知道什么时候开始变得。就做一个记录。大致流程就是Created with Raphaël 2.1.0Start

2017-04-26 18:23:58 2269 1

原创 AndroidStudio JNI NDK CMake

原文地址 http://blog.csdn.net/qq_25806863/article/details/70739717 从AndroidStudio2.2开始,AS就整合了CMake来使用NDK。这种方式比之前用过的简单多了。这里记录一下简单使用。当然,这些东西要先装好:在新项目中使用创建在创建新项目时可以直接选中增加JNI。然后一路next点击finish完成创建。这时,AS就生成了ndk

2017-04-25 15:06:53 458

原创 数组和链表的区别

数组和链表是两种基本的数据结构,他们在内存存储上的表现不一样,所以也有各自的特点。大致总结一下特点和区别,拿几个人一起去看电影时坐座位为例。数组的特点在内存中,数组是一块连续的区域。 拿上面的看电影来说,这几个人在电影院必须坐在一起。数组需要预留空间,在使用前要先申请占内存的大小,可能会浪费内存空间。 比如看电影时,为了保证10个人能坐在一起,必须提前订好10个连续的位置。这样的好处就是能保证1

2017-04-24 16:57:09 91149 20

原创 GitHub Permission denied(publickey)

问题Mac系统每次系统重新启动后,再git说提交都会提示Permission denied (publickey).fatal: Could not read from remote repository.我本地已经在 .ssh/文件夹里有公钥和私钥,而且公钥也已经在GitHub上设置好了,但提交时就是会提示上面的错误。解决:方法一:重新生成公钥和私钥,重新子啊GitHub上设置方法二:运行命

2017-04-24 11:15:25 577

原创 java集合的交集,并集,差集

原文地址 http://blog.csdn.net/qq_25806863/article/details/70312046今天要用到差集,突然懵逼了,然后脑子一抽写出了下面的代码 Set<String> set1 = new HashSet<>(); Set<String> set2 = new HashSet<>(); set1.add("a");

2017-04-21 10:45:28 142391 12

原创 Android动画-属性动画-ViewPropertyAnimator

原文地址 http://blog.csdn.net/qq_25806863/article/details/70229687想想之前使用组合动画的时候,是不是这样的:ObjectAnimator objectAnimator = ObjectAnimator.ofFloat(btnShow, "translationX", 0, 300);ObjectAnimator objectA...

2017-04-18 16:21:36 2979

原创 Android动画-属性动画-AnimatorSet

原文地址 http://blog.csdn.net/qq_25806863/article/details/70226784AnimatorSet是对属性动画的一个集合,可以让很多动画按一定顺序或者 同时进行。概览先看一下属性动画的结构,View动画的基类是Animation,属性动画的基类是Animator ValueAnimator:这个动画是针对属性的值进行动画的 ,...

2017-04-18 12:14:17 4798 1

原创 Android动画-属性动画-ObjectAnimator

原文地址 http://blog.csdn.net/qq_25806863/article/details/70226782ObjectAnimator是最常用的属性动画,他能直接作用在对象上实现动画。概览先看一下属性动画的结构,View动画的基类是Animation,属性动画的基类是Animator ValueAnimator:这个动画是针对属性的值进行动画的 ,不会对UI造成改变,不能直接实现动

2017-04-18 12:13:20 2811

原创 Android动画-属性动画-ValueAnimato

原文地址 http://blog.csdn.net/qq_25806863/article/details/70209242 ValueAnimator是针对值进行动画,支持整形,浮点型,颜色,对象等类型。PropertyAnimation,属性动画。View动画顾名思义,只是对View进行动画,而且动画效果只有旋转,平移,缩放,透明度的动画。最关键的是View动画没有改变锁动画的Vie...

2017-04-17 11:31:00 1478

原创 Android动画-View动画的使用场景

原文地址 http://blog.csdn.net/qq_25806863/article/details/70172818View动画的一个特点就是,他的动画仅仅是动的View的绘制地方,View真正的位置并没有一起动画。View除了会用作直接作用页面中的View外,通常还用用在下面一些地方PopupWindow的动画原效果先做一个PopupWindow,这个Popu...

2017-04-14 15:28:10 1851 1

原创 Android动画-View动画,插值器

原文地址 http://blog.csdn.net/qq_25806863/article/details/70169620补间动画又叫View动画。Android中的补间动画分四种,渐变、缩放、平移,旋转。还有个set是他们的组合,在XML文件中的标签对应是 &lt;alpha&gt;,&lt;scale&gt;,&lt;translate&gt;,&lt;rotate&gt;对应的...

2017-04-14 10:23:32 3998 2

原创 Android点击缩略图查看大图的缩放动画

原文地址 http://blog.csdn.net/qq_25806863/article/details/70156794来自官方培训课程https://developer.android.com/training/animation/zoom.html#animate其实点击小图显示大图非常简单的一种实现方式就是,在布局中加一个全屏的ImageView,然后隐藏。点击小图就把图片设置给大图,然后

2017-04-13 12:04:27 5055

原创 用过的Intent的用法

突然看到之前的一篇笔记,就补充一下发上来。Intent是什么就先不说了。列表可以看一下目录。所有用法均在小米max手机上亲测,android6.0。有些权限在6.0上要动态获取。以后如果用到新功能了再补充,没用过的先不写了。打电话使用ACTION_CALL需要android.permission.CALL_PHONE权限 Intent intent=new Intent(); inte

2017-04-12 18:00:47 976

原创 Android设计模式-总结+索引

通过《Android源码设计模式解析与实战》,对23种设计模式总算有了个初步的了解。书中对设计模式的介绍并不深奥,也没有很深究这些设计模式,但是对于之前没看过设计模式的我来说,让我对每一种设计模式都有了一种概念。设计模式这种东西,我觉得有个概念,然后在开发中可能就会在遇到某些情况时想到一些设计模式。至于深入研究设计模式,应该是要有一定的使用基础的。笔记中只对设计模式的基本概念和结构进行了一下了解,有

2017-04-11 11:49:51 1836

原创 Android设计模式(二十三)-桥接模式

原文地址 http://blog.csdn.net/qq_25806863/article/details/70048778桥接模式也叫桥梁模式,和生活中一样,桥梁就是用来连接河道两岸的主要建筑。桥接模式也是起着连接两边的作用,连接的两边就是抽象部分和实现部分,这就需要在程序设计的时候划分好抽象部分和实现部分了。定义将抽象部分与实现部分分离,使他们都可以独立地进行变化。使用...

2017-04-11 10:53:50 1309

原创 Android设计模式(二十二)-外观模式

原文地址 http://blog.csdn.net/qq_25806863/article/details/70040325外观模式猛一听有点蒙逼,但是在开发中我们应该都用过,只是没这个概念罢了。比如在开发时通常会把图片加载框架和网络框架进行封装,封装到最后只暴露出来一个最上级的类供外部调用,外部调用这一个类提供的方法,然后这个类内部具体调用了什么,用的什么逻辑等等外部都不用管。这样也方便...

2017-04-11 00:01:31 1860

原创 Android设计模式(二十一)-享元模式

原文地址 http://blog.csdn.net/qq_25806863/article/details/69952037享元模式是对象池的一种实现。类似于线程池,线程池可以避免不停的创建和销毁多个对象,消耗性能。享元模式也是为了减少内存的使用,避免出现大量重复的创建销毁对象的场景。享元模式用在一批相同或相似的对象上,这些对象有可以共享的内部状态和各自不同的外部状态。享元模式中会有一...

2017-04-10 17:24:37 1822

原创 Android设计模式(二十)-装饰模式

原文地址 http://blog.csdn.net/qq_25806863/article/details/69944273装饰模式也叫做包装模式,是结构型设计模式之一。目的是为了给一个类或对象增加行为。可以是继承的一种替代。装饰模式也很好理解,比如一个人,给他装上火箭就能上天了,装上潜水服就能下海了,但本身还是个人,人没有任何变化。定义动态地给一个对象添加一些额外的职责,就增...

2017-04-10 11:07:54 1547 1

apache-ant-zip.jar 解压

在使用 Android内置的解压工具时,遇到中文会乱码。使用这个包可以解决。 使用可见 http://blog.csdn.net/qq_25806863/article/details/73649872

2017-06-23

Android二维码扫描功能和界面

单纯的二维码扫描功能和界面 http://blog.csdn.net/qq_25806863/article/details/72139582

2017-05-15

Android使用android-beacon-library接收beacon

Android使用android-beacon-library接收beacon

2017-02-08

空空如也

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

TA关注的人

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