自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 收藏
  • 关注

原创 关于工程编译不过等奇葩问题

昨天搞到大半夜,一个工程,明明在其他电脑可以随便编译通过,怎么到这台电脑就是不行,于是钻了牛角尖,各种删除,重装重启。然而不管用,但是睡觉时想起一个原因:那个工程放在了一个工程之内,因为那个目录之前不小心解压或创建过一个工程,直接建在了根目录,而这个工程又是那种module形式的,所以悲剧了,一个小问题搞的一天不安生。首先,关于工程编译不过这个具体问题,一般有三个地方去搞:1 工程本身,比如各个gr...

2017-03-26 10:45:31 463 1

原创 android style attribute 学习记录

要使用自定义属性需要如下几步: 1 定义属性名称 2 指定属性的值 3 代码中获取属性值 4 view中使用获取的值定义属性名称属性名称在res/values/attrs.xml中定义,有两种方式1 单独定义<resources><attr name="CustomizeStyle" format="reference" /> //reference 另一个资源的id,如一个图片,一个s

2017-03-24 18:05:37 602

转载 欢迎使用CSDN-markdown编辑器

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl

2017-03-24 16:30:29 286

原创 Windows intallij 配置storm项目

storm项目用maven管理,intallij已经集成maven能比较方便快速的执行storm项目,这里按照http://www.flyne.org/article/42/3这篇文章的介绍,实际操作将一个简单的入门项目运行起来。下面记录过程以及遇到的一些问题。1 将项目下载到本地2 使用intallij导入项目,这个项目也能用eclipse导入3 因为maven提供的命令并没有直接运行这个项目的

2017-03-05 15:09:49 316

原创 Bitmap 不同类型占内存大小

ALPHA_8 : 图片只有alpha值,没有RGB值,一个像素占用一个字节 ARGB_4444 : 一个像素占用2个字节,alpha(A)值,Red(R)值,Green(G)值,Blue(B)值各占4个bites,共16bites,即2个字节 ARGB_8888 : 一个像素占用4个字节,alpha(A)值,Red(R)值,Green(G)值,Blue(B)值各占8个bites,共32bit

2017-02-18 23:18:55 511

原创 Android View绘制流程

介绍View绘制流程之前,先记录几个概念:window、DecorView、ViewRootwindow:PhoneWindow对象,按类型分为应用窗口、子窗口、系统窗口,应用窗口是我们需要关注的,子窗口必须依附于父窗口才能呈现,系统窗口不关注。window是控制顶级view的外观和行为策略,包括事件传递等。decorview:即一个activity的顶级view,即默认创建的activity打开的

2017-02-18 16:17:11 246

原创 Simple RxJava 简单的RxJava实现

RxJava是非常好的开源库,大家都懂的,为了学习它的源码,我按照源码抽出来最简单的几个概念,写了一个极简的RxJava,4个类,3个接口,能做到嵌套拉平,线程切换以及单个值的类型转换操作,其实基本上算照抄代码啦- - ),这里简单记录一下。三个接口:Observe、OnSubscribe、OperatorObserve:相当于监听主题发出通知的回调,也可以理解为接受处理结果的地方,因为这个原因,比

2017-02-18 13:30:54 381

原创 md5和base64记录

MD5,信息摘要算法,根据信息提取摘要生成唯一标识,用于判断源信息是否被更改过,不管源信息多少,能生成固定长度的md5值base64:对信息重新编码,有一个编码表,表中有64个符号,将原信息的8bit字节每6位取一次高位补零。之所以每6位取一次,是保证了字符在编码表内,这个表内的字符都是ascii码中的可见字符。

2017-02-15 12:36:26 242

原创 Java 数据结构记录

List: ArrayList、LinkdeList、VectorArrayList是维护一个数组,内存连续,善于查找,不善增删 LinkedList是双向链表,内存不连续,善于增删,不善查找 Vector和arraylist相同,但是方法设置了同步,线程安全Map: hashmap:数组和链表的结合,数组用来保存index,链表用来保存值,先用key的hashcode算出index,快速查

2017-02-15 12:24:02 263

原创 DexClassLoader和PathClassLoder

DexClassLoder和PathClassLoader都继承自BaseDexClassLoader,唯一的区别就是传入super构造方法的optimizedDirectory参数,前者可以在外部传入,后者不可以在外部调用时传入,而自己默认传入了null。一个有值一个为null,这个影响了后面加载dex或jar/apk/zip文件时的决策,BaseDexClassLoader使用DexPathLi

2016-12-25 22:46:38 306

原创 Android 事件分发

android 事件分发不是高深技术,却是做UI很重要的基础,以此复习记录。分发规则所谓分发事件的过程,就是传递MotionEvent的过程关于MotionEvent需要记录一下的是:getX/Y和getRaxX/Y的区别,前者是返回相对于当前触摸的View的左上角的位置,而后者则是相对于手机屏幕左上角事件分发的处理主要是在dispatchTouchEvent中进行,这个方法中会调用onInterc

2016-10-15 12:09:41 235

原创 非对称加密、https加密和android apk证书签名

一、非对称加密非对称加密就是生成公钥私钥对,通信双方持有对方公钥(当然这个公钥可以被任何人获取,这就会造成后面说的不安全因素),用对方的公钥加密信息发给对方,对方用私钥解密。好处就是不用传递私钥。用对称加密的话会传递对称密钥,比较不好。二、https加密通信https通信不完全使用非对称加密,先用非对称加密交换对称密钥,再用对称密钥加密通信,因为非对称加密不适合对大量数据加密。1、交换公钥首先要使用

2016-09-10 13:30:21 694

原创 AIDL需要注意的两点

一、两边aidl文件完全相同,包括包名 二、远程service需要注册为exported=true,不然只有他同一个进程可以绑定

2016-09-10 08:23:48 506

原创 Android Binder理解

Binder使用形式的思考:binder为什么是这样用Binder是android中很重要的一个概念,书上和网络已经有很多对Binder的说明,往深了有说原理的,浅的则说使用。我没有能力往深里说,因为直到现在其底层原理我也是不明白的。而简单应用层的使用不过进程间通信(IPC),这个形式几乎是固定的,我感觉没什么好说的,aidl,messenger,这些底层都是binder,随便都能找到使用方法。所以

2016-08-14 01:56:24 344 1

原创 Android 处理软键盘弹出问题

引发的问题键盘弹出后和界面互相作用一般有如下问题:键盘遮挡你想看到的内容键盘压缩了你的界面键盘自动弹出键盘把界面顶出窗口暂时想到这几种情况,由于最近做一个聊天的软件,遇到一些问题,所以想把类似问题全搞清楚,解决方法做如下总结。遮挡内容默认情况,输入法顶起你点击的输入框,只保证这个输入框能看到,它下面的东西都遮挡,如果这个输入框很高,那界面不做变动。如果低的话其下面的东西都被遮挡,如上第

2016-07-24 22:52:00 6744

原创 Android Studio 配置lambda表达式和rxjava

一、Android中使用Rxjava现在rxjava越来越火,之前看过一阵,后来有别的事就放下了。现在有时间再搞起,当然我们不是因为它火才搞它,是因为真的好用。步骤:android studio 一个,这是废话build.gradle中配置: compile ‘io.reactivex:rxandroid:1.2.1’ compile ‘io.reactivex:rxjava:1.1.7’

2016-07-24 17:56:28 1097

原创 Java 垃圾收集

对象判活 垃圾收集首先需要判断一个对象是否是”活”的,一般有两种算法:1 引用计数:为每个对象加一个计数器,每次引用加一,实现简单,效率高,但是不能解决循环引用;2 可达性分析:通过判断一个对象是否可达来确定是否为活,目前一些语言的主流实现。可达性分析 可达性分析即从GC Root对象开始,向下搜索,搜索路径称为引用链,当一个对象不能从任何GC Root对象到达时,则证明此对象不可用。 GC

2016-05-23 23:01:19 560

原创 java 虚拟机运行时内存分布分析

java 虚拟机运行时内存分布分析虚拟机所管理的内存如下图:首先,虚拟机管理内存分为线程共享和线程隔离两大类,线程共享的有方法区和堆;线程隔离数据区有 虚拟机栈、本地方法区和程序计数器。方法区:这里记录运行时所需的规范类东西,比如类的描述信息,常量,静态变量,即时编译器编译后的代码数据等。这里基本上是不变的,有的虚拟机是用GC分代收集机制来统一管理这里,然后分代的时候分给这里为“永久代”(但这

2016-04-17 18:24:10 784

翻译 Groovy DSL (1) Command chains

Groovy可以方便的制作DSL,Command chain是支持它这么做的一个特性。 简单说,就是方法调用用约定好的规则省略括号和“ . ”等操作符,下面看例子// equivalent to: turn(left).then(right)turn left then right ** 这里省略了括号和点,一个方法间隔一个参数,当然,后面的方法是前面方法的返回值 **// equi

2016-03-23 13:28:30 321

原创 程序员修炼之道--笔记

我的代码被猫吃了在所有弱点中,最大的弱点就是害怕暴露弱点为你自己和你的行为负责这样一种观念,是注重实效的哲学的一块基石。注重实效的程序员对他自己的职业生涯负责,并且不怕承认无知或错误。如果你为某个结果负责,你就应该切实负起责任。当你犯错误(就如同我们所有人都会犯错误一样),诚实的承认它,并设法给出各种选择。提供各种选择,不要找蹩脚的借口在你走向任何人,告诉他们为何某事做不到,为何耽搁,为何出问题之前

2016-03-23 00:39:15 396

翻译 Groovy 闭包(官方文档)

Groovy 闭包目录1.语法  1.1 定义闭包  1.2 用闭包作为一个对象  1.3 调用闭包 2.参数  2.1 一般参数  2.2 默认(隐藏)参数  2.3 不定数量参数 3.代理策略  3.1 groovy闭包和lambda表达式  3.2 Owner、delegate、和this的介绍   3.2.1 this介绍   3.2.2 Owner介绍   3.2

2016-03-22 18:23:17 557

空空如也

空空如也

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

TA关注的人

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