自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 View相关问题解惑(ViewRootImpl,PhoneWindow创建时机,View.post为何可以获取View宽高)

毕业一年了,都没有找到时间对Android技术进行整理,疲于项目工作,发现对一些基础性的疑惑没有进行追根溯源。若想在技术方面有所提升,对源码的解读是必须要迈过去的坎。以后要继续坚持写博客了。1. Activity.setContentView()到底做了什么?执行了此方法,就开始渲染视图(执行ViewRootImpl.performTransversal)了吗?首先回答:setConten...

2019-01-26 20:19:14 1501

原创 mysql无法插入中文字符或者报错SQLExeception

可参考解决:mysql无法插入中文字符或者报错SQLExeception最近在使用Hibernate的时候遇到了很多小问题,其中就有mysql无法插入中文字符或者报错SQLExeception这个问题,对于这个问题其实直接进入可参考的链接,跟着照做即可,其实主要需要两步修改才能完成1,更改mysql安装目录里面的my.ini配置文件(windows系统)中牵扯到设置ch

2016-10-28 20:41:06 3274

原创 docker 入门

安装Docker(参考了安装前的配置)安装Docker2(参考了开启docker服务,pull 镜像等)玩转Docker(ubuntu,虽然安装指令不同,但是docker 的操作指令是相同的)Docker原理(经典)docker学习笔记介绍:Docker 基于C/S架构,Docker CLient, Docker DiamonDocker c

2016-07-29 09:14:11 350

原创 项目用到的开源库

SwipeBackLayout控件:https://github.com/ikew0ng/SwipeBackLayout/tree/master/library/src/main/java/me/imid/swipebacklayout/lib其有关的解析:https://segmentfault.com/a/1190000002977515ViewHolder的相关库:https

2016-07-20 10:26:26 564

原创 android studio NDK 配置及入门案例

据说android studio 的NDK现在开发已经很方便了,现在来尝试一波。首先介绍一下我的android studio 环境 android studio 1.5首先需要配置一下NDK开发环境: 下载android-ndk-r10,并解压点击project structure--->选择SDK Location --->选择解压后的android-ndk-r1

2016-07-20 01:45:16 858

转载 linux进程状态

转自:http://blog.csdn.net/huzia/article/details/18946491Linux是一个多用户,多任务的系统,可以同时运行多个用户的多个程序,就必然会产生很多的进程,而每个进程会有不同的状态。Linux进程状态:R (TASK_RUNNING),可执行状态。只有在该状态的进程才可能在CPU上运行。而同一时刻可能有多个进程处于可执行状态,这

2016-06-08 09:06:44 361

转载 深入理解Linux进程间通信

转自:http://www.ibm.com/developerworks/cn/linux/l-ipc/序linux下的进程通信手段基本上是从Unix平台上的进程通信手段继承而来的。而对Unix发展做出重大贡献的两大主力AT&T的贝尔实验室及BSD(加州大学伯克利分校的伯克利软件发布中心)在进程间通信方面的侧重点有所不同。前者对Unix早期的进程间通信手段进行了系统的改进和扩充,形

2016-05-23 09:33:14 733

原创 解析memcached

memcached翻译文档memcached的客户端(阿里的java实现)memcached的java版客户端的使用实例memcached的分布式实现不是memcached服务端实现的,memcached的服务端之间相互不能通信,因此memcached的分布式是通过memcached客户端实现的。memcached的客户端:主要就是实现了分布

2016-05-10 09:37:01 323

原创 最大数字序列和问题,买卖股票问题,以及最长公共字串问题

最大字串加强版最大子串和原理给定由n个整数(可能为负整数)组成的序列A1,A2,A3,...,An,求该序列的连续子段的和的最大值。当所有整数均为负整数时定义其最大子段和为0例如   {-4, 11,-2, 13,-7,-3,12} 的最大子段和为22int MaxSum(int array[],int n) { int b=0; int

2016-04-19 18:25:25 1423

原创 深复制与浅复制

浅拷贝是指在拷贝对象时,对于基本数据类型的变量会重新复制一份,而对于引用类型的变量只是对引用进行拷贝,没有对引用指向的对象进行拷贝。而深拷贝是指在拷贝对象时,同时会对引用指向的对象进行拷贝。区别就在于是否对 对象中的引用变量所指向的对象进行拷贝。与序列化,反序列化的关系:序列化,反序列化过程中对象是深复制,反序列化还原后的对象地址与原来的的地

2016-04-11 11:10:56 286

转载 二叉树有关编程

package BinaryTreeSummary; import java.util.ArrayList; import java.util.Iterator; import java.util.LinkedList; import java.util.List; import java.util.Queue; import java.util.Stack;

2016-04-05 23:31:38 1525

原创 与AQS有关的并发类

ReetrantLock与Condition:参考在java.util.concurrent包中,有两个很特殊的工具类,Condition和ReentrantLock,使用过的人都知道,ReentrantLock(重入锁)是jdk的concurrent包提供的一种独占锁的实现。它继承自Dong Lea的 AbstractQueuedSynchronizer(同步器),确切的说是Reen

2016-04-05 11:13:11 537

转载 理解网络模型各层协议的分工及由来

我们每天使用互联网,你是否想过,它是如何实现的?  全世界几十亿台电脑,连接在一起,两两通信。上海的某一块网卡送出信号,洛杉矶的另一块网卡居然就收到了,两者实际上根本不知道对方的物理位置,你不觉得这是很神奇的事情吗?  互联网的核心是一系列协议,总称为"互联网协议"(Internet Protocol Suite)。它们对电脑如何连接和组网,做出了详尽的规定。理解了这些协议,就理解

2016-03-13 20:22:27 1744 1

转载 TCP慢启动、拥塞避免、快重传、快恢复

转自:点击打开链接为了防止网络的拥塞现象,TCP提出了一系列的拥塞控制机制。最初由V. Jacobson在1988年的论文中提出的TCP的拥塞控制由“慢启动(Slow start)”和“拥塞避免(Congestion avoidance)”组成,后来TCP Reno版本中又针对性的加入了“快速重传(Fast retransmit)”、“快速恢复(Fast Recovery)”算法,再后

2016-02-16 11:36:05 704

原创 解析java序列化机制

java序列化对象序列化机制:把内存中的java对象包装成与平台无关的二进制流,从而允许将二进制流持久保存到磁盘上,或者通过网络将这种二进制流传输到另外的节点,然后再通过反序列化,将java对象从IO流中恢复。序列化的必要性: java中,一切皆对象,在分布式环境中需要将Object从这一端网络到另一端,这就需要有一种可以在两端传输数据的协议,java序列化就是为了解决

2016-01-11 12:39:22 717

原创 java中equal()与==的区别(顺便谈谈String,stringBuffer,StringBuilder)

首先==,当用于基本数据类型是比较大小,比较的是他们的值。当用于复合数据类型(类对象)时,比较的是两个对象存放的的地址,除非是同一new出来的对象,否则比较的结果是false。至于equal(),上帝类Object中有equal()方法,因此所有类都有equal()的方法,在Object里面equals方法同上面复合类型里面使用==一样也是比较两个对象的地址,但是并非所有的类的eq

2016-01-10 21:01:47 717

原创 Matrix的preXxx,setXxx,postXxx方法执行顺序的区分

Matrix的preXxx,setXxx,postXxx方法执行顺序的区分大家在android开发时,免不了用到Matrix这个类,其实就是一个操作矩阵的类。其中包括pre系列方法:preScale,preTranslate,preRotate,preSkew,set系列方法:setScale,setTranslate,setRotate,setSkew,post系列方

2016-01-07 20:55:02 2270

原创 刷新界面之invalidate()与postInvalidate()

刷新界面之invalidate()与postInvalidate()刷新View的界面,有两种方法:invalidate()和postInvalidate(),那么他们又有什么区别和联系呢?invalidate():一般用于更新UI线程里的View界面postInvalidate():用于更新非UI线程的View界面难道invalidate(),只能

2016-01-06 20:52:25 6970

原创 解决:Android Studio 不能预览

关于无法预览布局文件,是很苦恼的,有一种快速解决办法:找到res -> values ->styles.xml,进入styles.xml,将 改为: 其实就是在Theme前面加上Base.即可。ps:据说出现此种现象是引入的V7包版本太新而adt版本太老导致,可以更新adt版

2016-01-02 22:29:37 3135

原创 AsyncTask源码解析

作为异步消息机制,AsyncTask可替代Thread+Handler,以更新UI线程,先上一个例子,感受一下AsyncTaskAsyncTask是抽象类,因此首先需要继承它,并实现它为实现的方法。在继承时,需要三个泛型参数,params :执行任务时,传入的参数,在后台执行。Progress:任务执行过程中,需要显示当前进度的单位类型Result:执行完毕后,返回结果的类型

2015-12-27 16:39:30 264

原创 Looper, Handler,Message关系解析

提到这三个类,我们很容易联系到异步消息机制,那么异步消息机制的作用是什么呢?解决如下问题:   由于1,Android中的只有UI线程才能更新UI线程            2,并且UI线程里不能进行耗时操作,否则会报出ANR异常。那么我们如何进行耗时操作,并且更新UI界面的变化,这时异步消息机制就可以大展拳脚了!Looper:负责维护一个MessageQueue,并且

2015-12-26 15:13:18 292

原创 Binder框架及AIDL解析

Binder其实就是,连接服务端和客户端的桥梁,Binder可以提供系统中任何程序都可以访问的全局服务。(这时,我们可能会想到AIDL,因为提到全局的服务,我们一般都会用到AIDL,这和Binder有什么关系呢?其实,AIDL的内部实现,归根结底也是利用Binder的框架,只不过AIDL的代码是系统自动帮我们生成的,所以我们一般借助AIDL以简化不同应用程序间访问的全局服务。)我们可以把任意的

2015-12-26 12:45:24 332

原创 Spring AOP AspectJ注解和XML配置两种实现(Maven构建)

Spring AOP 的两种实现方式分别是注解@(基于AspectJ)和XML配置,虽然方式不同,但万变不离其宗,最终都是运用java反射和动态代理技术(这是JDK方式)或者java反射和CGlib(CGlib方式)。这是Spring内部支持的两种方式。jdk方式:运用了动态代理,因此必须有接口实现。CGlib方式:继承类,并不关心接口,因为没有用动态代理嘛。 本文主要

2015-12-23 19:04:20 23060 5

原创 解决:Hibernate 向Mysql插入中文数据乱码,出现???

刚开始,用hibernate,好不容易插入Mysql成功了,却发现中文乱码,搜索了半天,解决了问题,记录一下。hibernate插入mysql数据库出现中文乱码需要向两个方面检查,其一:mysql数据库的配置,看看你建立的表里面相应的字段是否utf-8字符编码,如果不是,将相应字段的字符编码改为utf8;也可以在my.ini文件里更改默认的字符配置,默认是latin,我们需要改为u

2015-12-22 10:52:14 1262

原创 解决MySQL服务无法启动及MySQL5.4.10更改root密码

以前没安装过配置的MySQL,这一次第一次安装.zip文件(需要解压的)MySQL,竟然出错,搞了半天,很是郁闷。先记录下步骤吧:1,配置环境变量:将MySql解压路径添加到Path环境变量.(这一步很常规,配置过Java环境变量的都会)2,在解压路径下复制my-default.ini到解压路径,并重命名为my.ini,在my.ini里更改(当然要注销掉#)basedir

2015-12-21 19:53:18 2319

原创 maven初识-Jetty,eclipse,maven结合

maven初识maven即构建项目工具(主要是克服一些jar包的依赖问题,解决工程在你哪里可以运行,而我却不能运行)maven是用于java的,配置之前需要配置JAVA_HOME(即jdk路径)配置maven:新建环境变量M2_HOME为maven解压路径,然后在环境变量Path里添加;%M2_HOME%;即可。测试:mvn -version构建maven项目:

2015-12-14 21:48:35 514

原创 Vim快捷键

首先需要知道命令模式与文本模式的切换命令模式->文本模式:i (即insert)插入到光标左侧文本模式->命令模式:esc退出键其次也得知道如何退出文本吧:注意由于退出文本属于命令键因此应该进入命令模式,即退出文本模式按esc:q!不保存强制退出:wq保存退出:q退出:w保存可以看出vim之强大在于它的组合功能将:q(退出)与:w(保存)组合起来就是

2015-12-13 10:30:39 401

原创 Git 项目上传至github入门实战并解决常见错误

1.Git GUI首先,在push到github的项目必须先建立版本(即creat  repository的名字一样),一般是先pull下来,再push(为了防止有其他人提交了代码,而你却不知道,造成的一些冲突)进行第三步时,必须写提交描述,否则报错,如下最后一步,需要填写目的路径,直接github上粘贴相应版本路径即可,还必须输入github的名字和密码

2015-12-12 19:14:07 7882

原创 git项目push到gitHub(配置篇)

首先需要注册gitHub账号,当然也必须有Git客户端啦打开Git 客户端,选择repository(即版本库,没有就新建一个)进入Git.Bash,输入:ssh-keygen -C '[email protected]' -t rsa邮箱号为注册github邮箱如图将会在c/Users/Administrator/.ssh/id_rsa 生成相应文件(注意此时还没生成),然

2015-12-12 13:02:29 755

原创 ConcurrentHashMap笔记

ConcurrrentHashMap的高并发性主要是参考这一篇,权当学习笔记啦谈到ConcurrentHashMap 由于涉及到高并发性,所以就不得不涉及到java的内存模型(不懂多线程内存模型,何谈并发?)重排序:表现为一种乱序执行,编译器生成指令的次序,可以不同于源代码所写的顺序执行(即编译器有可能不是顺序执行)。重排序后的指令,对于优化执行以及成熟的全局寄存器分配

2015-12-11 19:11:33 579

原创 Android Studio关于新建项目引入V7包导致的错误(最后附上Android Studio入门指南链接)

刚入手Android Studio ,新建项目,就遇到了麻烦。对于Android Studio的配置信息,会在build.gradel(两个:一个是project的,一个是gradel的)引用v7包会在下面多出一句配置。如下:dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') compile

2015-12-04 17:23:37 4062

转载 浅谈Linux内存管理机制

浅谈Linux内存管理机制经常遇到一些刚接触Linux的新手会问内存占用怎么那么多?在Linux中经常发现空闲内存很少,似乎所有的内存都被系统占用了,表面感觉是内存不够用了,其实不然。这是Linux内存管理的一个优秀特性,在这方面,区别于Windows的内存管理。主要特点是,无论物理内存有多大,Linux 都将其充份利用,将一些程序调用过的硬盘数据读入内存,利用

2015-11-30 09:39:52 511

原创 Android 自定义控件

其实是根据鸿洋大神的博客改的自定义View步骤:1、自定义View的属性(res/values/新建XML文件)如下 既然自定义了view控件,那么就应该在主布局中使用呀,因此在主布局中引入注意:主布局中

2015-11-29 20:33:52 280

转载 ListView之Recycler机制

源地址ListView之Recycler机制[java] view plaincopyprint?public View getView(int position, View convertView, ViewGroup parent)  这个就是ListView中的getView()方法,参数convertV

2015-11-29 19:41:37 353

原创 GitHub Android 常用第三方框架源码地址

LisView 的扩展类:Maxwin-z/XListView-Android   ImageLoader加载图片工具类: nostra13/Android-Universal-Image-Loader

2015-11-28 21:19:44 371

转载 view.setTag()和view.getTag()

原文地址:http://www.cnblogs.com/qingblog/archive/2012/07/03/2575140.htmlhttp://write.blog.csdn.net/postedit?ref=toolbarhttp://www.cnblogs.com/qingblog/archive/2012/07/03/2575140.htmlView

2015-11-21 19:38:40 335

转载 更新Android版本后,新建工程出错

最近初学android,版本是22.6.0的话,每次创建一个项目就会出现一个appcompat_v7工程;然后我升级到最新的版本23.0.4之后,创建第一个项目,也会出现一个appcompat_v7工程,但创建多个项目的话,appcompat_v7工程也仅有一个,但有错误;  上网查了一下,原来appcompat_v7是Google的一个兼容包,就是一个支持库,项目新建后之

2015-11-18 21:50:03 443

原创 Android基础

Android四大组件:ContentProvider Activity Service BroadCastReceiverContentProvider :继承ContentProvider 并覆盖相应的insert,delete,update,query方法,这里方法里面用拼接的数据库查询语句(其实就是省略了重复的关键字)的相应方法比较方便。Content Provider的入

2015-11-16 20:57:45 324

空空如也

空空如也

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

TA关注的人

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