自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 资源 (5)
  • 收藏
  • 关注

原创 View背后不为人知的勾当(二)--onDraw

内容太多,尚未完工,估计得写到这个周末 需要知道的问题 点线面和Paint图形变换,色彩混合,Shader,网格等16ms和掉帧问题SurfaceView和TextureView硬件加速1 关于onDraw1.1 16ms和掉帧的问题得知道16ms一帧的问题,如果渲染一帧超过16ms,如用了20ms渲染,下一帧的切换就来不及,这一帧就持续了32ms,就出现了掉帧,掉帧多了,用户就会感

2016-12-12 23:36:58 1655

原创 View背后不为人知的勾当(一)--自定义控件和测量过程

本节首先讲讲自定义控件套路,自定义属性,测量过程的问题,为了后面的几节能专注于实现特效,而不受本文这些惯用套路的影响特效系列的目录关于Draw关于动画关于滑动关于Layout要实现界面特效,首先得掌握:View的简单原理自定义属性measure过程这算是UI特效的周边技术,任何特效都得考虑这几个问题安卓特效的实现,需要借助以下四个技术点:draw动画滑动layout1 Vi

2016-12-11 23:27:08 781

原创 Java 9:装B之前你必须要会的——泛型,注解,反射

1 泛型1.1 基本概念泛型提供了编译期的类型检查,但问题远非这么简单///原生态类型List list1 = new ArrayList(); ///规避的类型检查List list1 = new ArrayList<String>();///参数化类型List<Object> list2 = new ArrayList<Object>(); //可以放任何类型的对象,没指导意义Li

2016-12-11 20:53:10 3001

原创 Java 8:活好水多——Java 的新IO (nio)

Java的IO体系:旧IO新IO:nio,用ByteBuffer和FileChannel读写nio通道管理:SelectorOkio:io的封装,好像不关nio的事Netty:目的是快速的实现任何协议的server和client端 所以说你可以用netty通过channel等实现一个httpclient,和URLConnection平级这个课题太大了,应该分层次学: 第一层是官方的文档

2016-12-10 23:34:42 11456

原创 Java 7:Java集合从不懂到更不懂,不信来看

集合1 集合关系网关系网:数组 Arrays.asList就成了List接口Collection3个分支:List,Set,QueueList两个分支:Sequential(代表作是LinkedList)和RandomAccess(ArrayList,Vector,Stack) 用时要考虑是频繁插入,还是频繁访问LinkedList可以快速插入删除,因为只是节点的操作,但下标访问(随机访

2016-12-10 23:26:23 1419 1

原创 Java 6-6:你存的不只有.avi——ThreadLocal-线程本地存储

对于一个变量,从不同的线程取出来的是不同的拷贝public static class ThreadLocalVariableHolder{ private static ThreadLocal<Integer> value = new ThreadLocal<Integer>(){ private Random rand = new Random(47); pr

2016-12-10 01:30:09 505

原创 Java 6-5:拒绝3P,拒绝黄赌毒!——安全性失败,同步访问

首先需要注意的是锁会让并行变为串行,但安全和效率,这两个之间没有折衷,安全第一,但我们要追求的必须是高效安全本文涉及到: 原子操作临界区锁信号量1 共享受限资源什么时候会出现共享受限资源的冲突? 有一份数据摆在这里,多个worker线程都对其进行修改,状态就可能会乱了 总之,每次访问一个资源时,从进去到出来,都要保证数据的一致性基本上所有保护共享受限资源的方法,都是序列化对受限资源的

2016-12-10 01:26:02 779

原创 Java 6-4:别看了,坑的就是你——活性失败-volatile

线程A对某变量值的修改,可能没有立即在线程B体现出来,称为活性失败。 注意下面这个例子,在PC和安卓上运行结果可能不一样(安卓可能不需要volatile)例子public class VolatileTest extends Thread { /** * 使用了volatile,则1秒后,子线程会退出循环,因为在主线程将isRunning置位为false */

2016-12-10 01:19:17 2575

原创 Java 6-3:轮流值班儿,相互纠缠——线程协作

本文重点是线程的协作,如线程并发的执行一个任务,线程A等待线程B完成后再接着执行,线程A和B交替的执行某个任务1 join线程A等待线程B执行完,在A中调用B.join() A中的B.join()可以被中断 B也可以被中断 B被中断后,run方法继续执行直到返回,此刻A的join依旧有效 A被中断后,或者join到期后,run方法也继续执行,所以可能需要加条件判断public class

2016-12-10 01:13:06 1626

原创 Java 6-2:收放自如,融汇贯通,让线程不再疯癫——线程的阻塞和关闭

本节重点说说线程什么时候会阻塞,如何关闭1 让出时间片Thread.yield(); 通知并建议线程调度器,我已经做完了主要工作,时间片你可以分给别人了 即使调用了这个,还是可能没有切换时间片,或者切换了,但是还是给了当前线程Thread.sleep(1000); TimeUnit.SECOND.sleep(1); 让当前线程进入睡眠状态,程序就阻塞在这里了 这个的表现应该是比yield良

2016-12-10 00:53:42 496

原创 Java 6-1:清华池的故事——线程和线程池

1 Java的线程1.1 线程和线程池Java的线程就是Thread,一个Thread对象,就是一个线程 Runnable是一个接口,给Thread提供任务这两个就是Java里最基本的线程new Thread(Runnable, "thread-name").start();但线程对于操作系统来说,是一种资源,既然是资源,就不能无限使用,同时线程也是一种重量级的对象,初始化也是个费事的工程,所以为

2016-12-08 11:13:03 535

原创 Java 5:方法设计

Java 5:方法设计本文把范围从类和对象缩小到方法上,我们实现一个方法,试图阐明我们实现一个方法时,需要考虑的基本问题。大约如下: 参数返回值:参数和返回值取决于你想让用户如何调用你的方法条件检查:在繁琐和简洁之间寻找平衡异常处理:可恢复的异常用受检异常,致命异常用runtime方法的功能方法的副作用:对对象状态的影响!!!占位符!!!

2016-12-07 22:52:16 331

原创 Java 4:类的行为和设计模式

Java 4:类的行为和设计模式本文想要说明的问题是,类需要一个良好的关系网来约束类之间的通信,在实现功能的同时,利用面向对象的特性,使模块达到对修改关闭,对扩展开放。 最近看到一句话,说组件化的程度,就是一个团队的技术实力的体现,确实有道理。下面会提到的概念: 继承:概念上的is-a组合:组合配合注入,看似简单,但其力量十分巨大设计模式!!!占位符!!!

2016-12-07 22:51:43 260

原创 Java 3:对象的通用行为

本文说的是类的通用行为,要定义一个类,首先考虑本文提到的几个问题0 前言类的分类:活动实体,如Thread,安卓的Activity 一个线程就是一个Thread对象,两个线程要相等,就得是同一个对象一个安卓界面就是一个Activity对象,两个界面要相等,就得是同一个对象值类,如Person 一个学生可能对应好几个对象,要判断相等,可不能依赖于两个是不是同一个对象Java的对象普通对象

2016-12-07 22:39:09 377

原创 Java 2:枚举

1 基本使用package com.cowthan.enum2;public enum Planet { MERCURY(3.302e+23, 2.439e6), //水星 VENUS(4.869e+24, 6.052e6), //金星 EARTH(5.975e+24, 6.378e6), // MARS(6.419e+23, 3.393e6), //火星

2016-12-05 01:09:10 280

原创 Java 1: 射基模式*$#%$#@射鸡摸式^%$%^ ! 设计模式!——对象管理

则不达的博客从这篇文章开始,我想说说我为什么写博客,其实之前也尝试过写博客,但都没有坚持下来,但这回找工作跳槽比较从容,再加上做安卓开发的这三年,都没有把知识体系好好整理一下,一直都是忙工作,正应了一个哥们说的那句话,一年经验重复了三年,当初定好的一天一点进步的目标也没有实现,所以为了给之前三年一个交代,也给之后三年一个好的开端,所以我从今天开始写文章,这些文章都是一边学一边整理,所以更像是一份笔记

2016-12-05 01:08:17 691

7.Redis学习笔记.pdf

redis学习笔记,讲解redis的安装使用,基本原理,常见场景,脚本,持久化,事务等高级特性都有讲解

2020-01-31

3.Hadoop学习笔记.pdf

hadoop学习笔记,hadoop简介,适用于hadoop入门,讲解hadoop安装,使用,基本原理,大数据,分布式等概念

2020-01-31

安卓-自动抢红包

利用残疾人选项实现自动抢红包,亲测安卓8.0,微信6.6.7可用

2018-09-06

Android加载大图片OOM异常解决

安卓下显示图片经常遇到OOM问题,这里给出了常用解决方案

2013-09-27

安卓语音控制器

在安卓下使用语音开启应用,想打开什么,只需要说一声就行

2013-09-27

空空如也

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

TA关注的人

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