<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[技术路漫漫]]></title><description><![CDATA[吾将上下而求索]]></description><link>https://blog.youkuaiyun.com/Geek_Geek</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Geek_Geek]]></copyright><item><title><![CDATA[#Android源码#View的onMeasure方法]]></title><link>https://blog.youkuaiyun.com/Geek_Geek/article/details/50647557</link><guid>https://blog.youkuaiyun.com/Geek_Geek/article/details/50647557</guid><author>Geek_Geek</author><pubDate>Wed, 10 Feb 2016 15:48:15 +0800</pubDate><description><![CDATA[分析所得
功能：测量View和它的内容，来决定测量宽度和测量高度。
该方法由measure(int,int)调用，并且必须要经过子类重写来提供精确和有效的内容测量。
约定：当重写该方法时，必须调用setMeasuredDimension(int, int)来保存测量的宽度和高度，否则会引发IllegalStateException异常
子类有义务保证测量的宽度和高度至少要是view的最小高度和宽度。]]></description><category></category></item><item><title><![CDATA[#Android源码#View的构造方法为什么要4个？]]></title><link>https://blog.youkuaiyun.com/Geek_Geek/article/details/50649427</link><guid>https://blog.youkuaiyun.com/Geek_Geek/article/details/50649427</guid><author>Geek_Geek</author><pubDate>Wed, 10 Feb 2016 14:35:35 +0800</pubDate><description><![CDATA[问题描述在View中发现有四个构造方法（5.0下是三个），如下，有什么玄妙吗？//C1
public View(Context context) {
    ....
}
//C2
public View(Context context, @Nullable AttributeSet attrs) {
    this(context, attrs, 0);
}
//C3
public View(C]]></description><category></category></item><item><title><![CDATA[#Android源码#MeasureSpec]]></title><link>https://blog.youkuaiyun.com/Geek_Geek/article/details/50647516</link><guid>https://blog.youkuaiyun.com/Geek_Geek/article/details/50647516</guid><author>Geek_Geek</author><pubDate>Tue, 09 Feb 2016 22:51:06 +0800</pubDate><description><![CDATA[分析源码得出
MeasureSpec类是View的一个静态内部类。
MeasureSpec是parent到child的布局要求的封装。每个MeasureSpec代表了一个宽度或高度的请求。MeasureSpec由size和mode组成。
有三种mode：UNSPECIFIED:  parent没有对child施加任何约束，child可以设置任意size
EXACTLY:  parent指定child]]></description><category></category></item><item><title><![CDATA[#Android源码#Android Touch事件分发机制思考]]></title><link>https://blog.youkuaiyun.com/Geek_Geek/article/details/50612209</link><guid>https://blog.youkuaiyun.com/Geek_Geek/article/details/50612209</guid><author>Geek_Geek</author><pubDate>Sat, 30 Jan 2016 21:31:51 +0800</pubDate><description><![CDATA[——– 写在前面 ————————————————用一天来思考Touch事件的分发，值了！参考了一些知名的博客，由于并没有引用其中的原文就不具体写引用了。Google一下就有了。以下是我的看法，有错漏的欢迎指正。转载请注明出处：Lshare版权所有概述Android中的事件分发是遵循类似责任链模式的，就是从根节点开始逐层往里分发事件，直到找到责任人（即响应事件的View）或找不到责任人事件“丢弃”为]]></description><category></category></item><item><title><![CDATA[#UML#UML类图]]></title><link>https://blog.youkuaiyun.com/Geek_Geek/article/details/50578754</link><guid>https://blog.youkuaiyun.com/Geek_Geek/article/details/50578754</guid><author>Geek_Geek</author><pubDate>Mon, 25 Jan 2016 11:48:13 +0800</pubDate><description><![CDATA[参考文档：http://www.uml.org.cn/oobject/201104212.asphttp://www.ibm.com/developerworks/cn/rational/rationaledge/content/feb05/bell/UML统一建模语言（Unified Modeling Language）,一个支持模型化和软件系统开发的图形化语言。由OMG（Object Manag]]></description><category></category></item><item><title><![CDATA[#Android源代码#android:onClick属性的底层调用]]></title><link>https://blog.youkuaiyun.com/Geek_Geek/article/details/50557120</link><guid>https://blog.youkuaiyun.com/Geek_Geek/article/details/50557120</guid><author>Geek_Geek</author><pubDate>Thu, 21 Jan 2016 19:28:58 +0800</pubDate><description><![CDATA[原理在View类的构造方法中发现这样的一个有趣的东西，可见。我们在布局中使用android:onClick="functionName"，底层其实是设置好了监听器了，然后利用反射调用我们在代码中写的方法，如：//在Activity中写的代码
public void functionName(View v){
    //doSomthing
}//View中反射调用
Method mHandler]]></description><category></category></item><item><title><![CDATA[#Android源码#自定义UI控件]]></title><link>https://blog.youkuaiyun.com/Geek_Geek/article/details/50553682</link><guid>https://blog.youkuaiyun.com/Geek_Geek/article/details/50553682</guid><author>Geek_Geek</author><pubDate>Thu, 21 Jan 2016 13:11:38 +0800</pubDate><description><![CDATA[自定义UI控件系统是如何定义UI控件的？1. 首先我们在布局文件中定义了一个布局我们自定义的布局（其中声明了命名空间为xmlns后面的内容）<View
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/view"
    android:visibility="visible"]]></description><category></category></item><item><title><![CDATA[#ApiDemos#view之Animation]]></title><link>https://blog.youkuaiyun.com/Geek_Geek/article/details/50544818</link><guid>https://blog.youkuaiyun.com/Geek_Geek/article/details/50544818</guid><author>Geek_Geek</author><pubDate>Tue, 19 Jan 2016 20:51:34 +0800</pubDate><description><![CDATA[#ApiDemos#view之AnimationAnimation1–Shake代码风格
布局风格最外层使用padding–10dip
第一个子控件使用marginBottom–10dip
宽高使用wrap_content或match_content<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
an]]></description><category></category></item><item><title><![CDATA[【20】MySQL数据库]]></title><link>https://blog.youkuaiyun.com/Geek_Geek/article/details/50538072</link><guid>https://blog.youkuaiyun.com/Geek_Geek/article/details/50538072</guid><author>Geek_Geek</author><pubDate>Mon, 18 Jan 2016 17:28:08 +0800</pubDate><description><![CDATA[MySQL数据库一、数据库
  数据的存储仓库
1.概述1.1 优点
可存储大量数据
方便检索
保持数据的一致性和完整性
安全、可共享
通过组合查询产生新的数据
1.2 常见数据库
oracle数据库（47%，oracle）
DB2（IBM）
SQL Sever（Microsoft）
MySQL（瑞典AB公司–>sun公司–>oracle公司）
SQLite（Googel Android，轻量级数据]]></description><category></category></item><item><title><![CDATA[【19】文件上传与下载]]></title><link>https://blog.youkuaiyun.com/Geek_Geek/article/details/50538028</link><guid>https://blog.youkuaiyun.com/Geek_Geek/article/details/50538028</guid><author>Geek_Geek</author><pubDate>Mon, 18 Jan 2016 17:23:20 +0800</pubDate><description><![CDATA[文件上传与下载一、文件上传1.应用场景招聘网站、email等2.上传条件
必须使用post请求，因为get请求最大为1kb
表单默认会对提交数据进行URL编码，对文件（二进制数据）无效，需要改变enctype的属性值为multipart/form-data，数据将以流形式上传
    <form enctype="application/x-www-form-urlencoded">//默认，进行U]]></description><category></category></item><item><title><![CDATA[【18】JSTL标签库]]></title><link>https://blog.youkuaiyun.com/Geek_Geek/article/details/50537998</link><guid>https://blog.youkuaiyun.com/Geek_Geek/article/details/50537998</guid><author>Geek_Geek</author><pubDate>Mon, 18 Jan 2016 17:19:36 +0800</pubDate><description><![CDATA[JSTL标签库全称JavaServer Pages Standard Tag Library，目的是提供一套标准通用的标签函数库，和EL一起取代JSP中嵌套java代码的做法。一、安装
JSTL主要是由Apache组织的Jakarta Project实现，JSTL1.1要求容器必须支持Servlet2.4且JSP2.0以上版本。
复制jstl.jar和standard.jar到工程的WEB-INF\]]></description><category></category></item><item><title><![CDATA[【17】EL表达式]]></title><link>https://blog.youkuaiyun.com/Geek_Geek/article/details/50537989</link><guid>https://blog.youkuaiyun.com/Geek_Geek/article/details/50537989</guid><author>Geek_Geek</author><pubDate>Mon, 18 Jan 2016 17:18:09 +0800</pubDate><description><![CDATA[EL表达式全称Expression Language，用来替代JSP的脚本表达式向浏览器输出数据和执行一些基本的运算。一、JSP最佳实践
  不出现一行java代码，因为java代码回使得整个页面结构非常混乱和难以维护。Servlet：负责产生数据与接收用户的请求数据；
Jsp：负责显示数据；
EL：输出数据
二、EL表达式格式
${标识符}，相当于：
<%=[ pageContext|reques]]></description><category></category></item><item><title><![CDATA[【16】JSP]]></title><link>https://blog.youkuaiyun.com/Geek_Geek/article/details/50537978</link><guid>https://blog.youkuaiyun.com/Geek_Geek/article/details/50537978</guid><author>Geek_Geek</author><pubDate>Mon, 18 Jan 2016 17:16:27 +0800</pubDate><description><![CDATA[JSP全称为Java Server Page,本质是一个Servlet。解决Servlet向浏览器输出数据难得问题。一、概述
不需要编译JSP页面
是文本文件
可以写HTML代码和java代码，容易排版
可以直接使用out、request、response、session等等对象,见源码：
public void _jspService(HttpServletRequest request, Htt]]></description><category></category></item><item><title><![CDATA[#Android源码#ApplicationInfo中flags的设计]]></title><link>https://blog.youkuaiyun.com/Geek_Geek/article/details/50534823</link><guid>https://blog.youkuaiyun.com/Geek_Geek/article/details/50534823</guid><author>Geek_Geek</author><pubDate>Mon, 18 Jan 2016 09:47:21 +0800</pubDate><description><![CDATA[介绍ApplicationInfo是android.content.pm包下的一个实体类，用于封装应用的信息，flags是其中的一个成员变量public int flags = 0;，用于保存应用的标志信息。设计ApplicationInfo实体类的设计很棒！用一个public int flags = 0;保存所有的标志信息，省了定义许多Boolean变量的代码。对一个int值（32位）1（二进制形]]></description><category></category></item><item><title><![CDATA[Android Annotations快速开发框架入门]]></title><link>https://blog.youkuaiyun.com/Geek_Geek/article/details/50526387</link><guid>https://blog.youkuaiyun.com/Geek_Geek/article/details/50526387</guid><author>Geek_Geek</author><pubDate>Fri, 15 Jan 2016 23:14:52 +0800</pubDate><description><![CDATA[Android Annotations快速开发框架入门环境搭建Eclipse IDE
上官网下载androidannotations-bundle-3.2.zip
解压获取androidannotations-api-3.2.jar放到项目中的libs目录下
新建一个compile-libs目录，放入androidannotations-3.2.jar
右击项目，选中Properties，找到Jav]]></description><category></category></item><item><title><![CDATA[手写的Android命名规范]]></title><link>https://blog.youkuaiyun.com/Geek_Geek/article/details/50522111</link><guid>https://blog.youkuaiyun.com/Geek_Geek/article/details/50522111</guid><author>Geek_Geek</author><pubDate>Fri, 15 Jan 2016 10:33:03 +0800</pubDate><description><![CDATA[手写的Android命名规范 已送达，请签收：]]></description><category></category></item><item><title><![CDATA[ListView优化之道]]></title><link>https://blog.youkuaiyun.com/Geek_Geek/article/details/50507424</link><guid>https://blog.youkuaiyun.com/Geek_Geek/article/details/50507424</guid><author>Geek_Geek</author><pubDate>Tue, 12 Jan 2016 23:05:22 +0800</pubDate><description><![CDATA[菜鸟刚入行时，写ListView时会写成下面这样，在滑动时会发现很卡，特别是数据多的时候。这时候就需要优化了。怎么优化？接着看。@Override
public View getView(int position, View convertView, ViewGroup parent) {
    //省略获取数据操作
    //视图绑定操作
    convertView=View.inflat]]></description><category></category></item><item><title><![CDATA[【15】Session]]></title><link>https://blog.youkuaiyun.com/Geek_Geek/article/details/50449882</link><guid>https://blog.youkuaiyun.com/Geek_Geek/article/details/50449882</guid><author>Geek_Geek</author><pubDate>Sat, 02 Jan 2016 23:34:06 +0800</pubDate><description><![CDATA[Session一、概述
  当用户访问服务器的web资源时，服务器会给每个用户浏览器创建一个独享会话对象（Session对象）,也是一个域对象，存放用户的数据。当用户再次访问时，就可以拿出这些数据给用户服务了。
二、实现原理
服务器如何识别不同用户浏览器的？当用户浏览器第一访问服务器时，服务器向浏览器发送一个带JSESSIONID的cookie。当用户浏览器再次发出请求时，通过判断带过来的Cooki]]></description><category></category></item><item><title><![CDATA[【14】Cookie]]></title><link>https://blog.youkuaiyun.com/Geek_Geek/article/details/50449872</link><guid>https://blog.youkuaiyun.com/Geek_Geek/article/details/50449872</guid><author>Geek_Geek</author><pubDate>Sat, 02 Jan 2016 23:31:05 +0800</pubDate><description><![CDATA[Cookie一、会话
默认情况下，用户打开一个浏览器访问web资源到关闭一个浏览器称之为会话。
会话技术要解决的问题是：浏览器和服务器会话过程中，服务器对用户数据的保存问题。
二、概述
  一种客户端技术，服务器把每个用户的数据以Cookie小文件的形式发送给用户各自的浏览器。当用户使用浏览器再去访问服务器的web资源时，再带着各自的Cookie过去。实现服务器对用户数据的客户端保存。应用场景：自动]]></description><category></category></item><item><title><![CDATA[【13】编码、解码与乱码]]></title><link>https://blog.youkuaiyun.com/Geek_Geek/article/details/50446312</link><guid>https://blog.youkuaiyun.com/Geek_Geek/article/details/50446312</guid><author>Geek_Geek</author><pubDate>Fri, 01 Jan 2016 23:14:13 +0800</pubDate><description><![CDATA[编码、解码与乱码一、常用字符集和编码1.ASCII美国信息交换标准代码
编码规则：7位表示一个字符，共128个字符
缺点：只能显示26个拉丁字母、阿拉伯数字和英文标点符号
2.EASCII欧洲扩展字符集
编码规则：8位表示一个字符，共256个字符
缺点：虽解决了部分西欧语言的字符显示问题，但对其他更多的语言依然无力
3.GB2312/GB2312-80等中文字符集
编码规则：把127号的字符取消掉（]]></description><category></category></item></channel></rss>