<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[(*￣︶￣) ]]></title><description><![CDATA[]]></description><link>https://blog.csdn.net/htq__</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; htq__]]></copyright><item><title><![CDATA[smali语法]]></title><link>https://blog.csdn.net/htq__/article/details/54615647</link><guid>https://blog.csdn.net/htq__/article/details/54615647</guid><author>htq__</author><pubDate>Thu, 19 Jan 2017 14:20:09 +0800</pubDate><description><![CDATA[smali文件格式每个smali文件都由若干条语句组成，所有的语句都遵循着一套语法规则。在smali 文件的头3 行描述了当前类的一些信息，格式如下：[java] view plaincopy.class  [ 修饰关键字]   .super   .source   打开MainActivity.smali 文件，头3 行代码如下：[java] view plaincopy.class publi]]></description><category></category></item><item><title><![CDATA[基于寄存器与基于栈的虚拟机]]></title><link>https://blog.csdn.net/htq__/article/details/54289797</link><guid>https://blog.csdn.net/htq__/article/details/54289797</guid><author>htq__</author><pubDate>Mon, 09 Jan 2017 15:59:31 +0800</pubDate><description><![CDATA[什么是虚拟机虚拟机是借助于操作系统对物理机器的一种模拟。但是我们今天所讲述的虚拟机概念比较狭义，与vmware或者virtual-box不同，而是针对具体语言所实现的虚拟机。例如在JVM或者CPython中，JAVA或者python源码会被编译成相关字节码，然后在对应虚拟机上运行，JVM或CPython会对这些字节码进行取指令，译码，执行，结果回写等操作，这些步骤和真实物理机器上的概念都很相似。相]]></description><category></category></item><item><title><![CDATA[git冲突解决]]></title><link>https://blog.csdn.net/htq__/article/details/52882095</link><guid>https://blog.csdn.net/htq__/article/details/52882095</guid><author>htq__</author><pubDate>Fri, 21 Oct 2016 12:26:09 +0800</pubDate><description><![CDATA[刚刚在上传自己的项目到github上时出现了一些错误，在网上百度了一下，根据网友提供的解决方式还是没能解决，折腾了半天，最终还是解决了，因此记录一下，或许以后还可能遇到这个错误，另外也可以帮助遇到相同错误的小伙伴们。错误主要是在push自己的本地项目到远程仓库时一直拒绝，具体错误信息如下：根据错误提示，要先使用git pull origin master，但是任然报错，错误如下：后来折腾半天，终于]]></description><category></category></item><item><title><![CDATA[MD5算法原理]]></title><link>https://blog.csdn.net/htq__/article/details/52318596</link><guid>https://blog.csdn.net/htq__/article/details/52318596</guid><author>htq__</author><pubDate>Thu, 25 Aug 2016 21:32:06 +0800</pubDate><description><![CDATA[MD5（单向散列算法）的全称是Message-Digest Algorithm 5（信息-摘要算法），经MD2、MD3和MD4发展而来。MD5算法的使用不需要支付任何版权费用。    MD5功能：    输入任意长度的信息，经过处理，输出为128位的信息（数字指纹）；    不同的输入得到的不同的结果（唯一性）；    根据128位的输出结果不可能反推出输入的信息（不可逆）；     MD5属不属]]></description><category></category></item><item><title><![CDATA[【BAT经典算法面试题系列】求和为n的连续正整数]]></title><link>https://blog.csdn.net/htq__/article/details/52189152</link><guid>https://blog.csdn.net/htq__/article/details/52189152</guid><author>htq__</author><pubDate>Fri, 12 Aug 2016 11:11:16 +0800</pubDate><description><![CDATA[马上就要到9月份了，意味着一年一度的秋招就要开始了，相信不论是正在实习的童鞋还是马上就要找工作的童鞋，BAT无疑是国内的“明星企业”，是每个学计算机的小伙伴们心之向往的企业，但是呢？对于进BAT来讲，即使你项目经验非常丰富，想进BAT，还有一道门槛要过那就是算法面试，尤其是想去百度的小伙伴们，那算法必须得考，也是面试中的重点。说实话，对于算法这个东西，真的得靠天赋的，不是像项目那样，你多做多动手自]]></description><category></category></item><item><title><![CDATA[【安卓自定义控件系列】自绘控件打造界面超炫功能超强的圆形进度条]]></title><link>https://blog.csdn.net/htq__/article/details/52054261</link><guid>https://blog.csdn.net/htq__/article/details/52054261</guid><author>htq__</author><pubDate>Thu, 28 Jul 2016 14:33:31 +0800</pubDate><description><![CDATA[在前面我们讲过了安卓自定义控件三种方式中的组合控件，现在我们来讲解一下通过自绘的方式来实现自定义控件，本博客将以自定义圆形进度条为例向大家讲解自定义控件的知识，首先来看一下效果图吧，这个是本人自定义圆形进度条demo工程的运行截图：




首先说一下自己这个自定义圆形进度条要达到的目标：
1能够支持设置进度条各种属性，如圆环的大小，颜色，进度条的大小，颜色，进度条的颜色支持设置三种颜]]></description><category></category></item><item><title><![CDATA[【安卓自定义控件系列】安卓自定义控件之组合控件]]></title><link>https://blog.csdn.net/htq__/article/details/52014989</link><guid>https://blog.csdn.net/htq__/article/details/52014989</guid><author>htq__</author><pubDate>Sun, 24 Jul 2016 18:51:48 +0800</pubDate><description><![CDATA[在安卓开发中，谷歌已经为我们提供了许多原生控件，基本上能够满足我们日常的开发需求，但是某些项目中原生控件可能达不到产品所要求的各式各样的酷炫效果或功能效果，这个时候我们只能自己自定义控件来满足项目需求，我们知道自定义控件包括三种方式：
1继承控件，即继承谷歌提供的原生控件，在此基础上提供一些原生控件不具备的功能，如github上各种酷炫效果的开源组件基本上都是采用的这种方式.
2组合控件：即组]]></description><category></category></item><item><title><![CDATA[使用百度地图实现基本的地图显示与定位功能]]></title><link>https://blog.csdn.net/htq__/article/details/51804327</link><guid>https://blog.csdn.net/htq__/article/details/51804327</guid><author>htq__</author><pubDate>Fri, 01 Jul 2016 21:47:06 +0800</pubDate><description><![CDATA[最近在项目中用到了地图显示与定位功能，那么毫无疑问首选百度地图，关于百度地图的基本使用在其官网介绍的十分详细，而且还附带程序Demo代码供大家参考。链接：点击打开链接。注意在自己的项目中使用百度地图需要先注册一个百度开发者账号，然后通过一些配置操作获取一个keyStore。这个不难，但是过程很琐碎，大家可以参照百度地图API官网的步骤一步一步来，这里就不详细叙述，下面给出自己项目中使用百度地图定位]]></description><category></category></item><item><title><![CDATA[【java多线程系列】java中的volatile的内存语义]]></title><link>https://blog.csdn.net/htq__/article/details/51764156</link><guid>https://blog.csdn.net/htq__/article/details/51764156</guid><author>htq__</author><pubDate>Mon, 27 Jun 2016 13:09:25 +0800</pubDate><description><![CDATA[在java的多线程编程中，synchronized和volatile都扮演着重要的 角色，volatile是轻量级的synchronized，它在多处理器开发中保证了共享变量的可见性，可见性指的是当一个线程修改一个共享变量时，另一个线程能够读到这个修改后的值。如果volatile修饰符使用恰当的话，它比synchronized的使用和执行成本更低，因为它不会引起线程上下文的切换和调度。本文将从vo]]></description><category></category></item><item><title><![CDATA[【java多线程系列】java内存模型与指令重排序]]></title><link>https://blog.csdn.net/htq__/article/details/51759004</link><guid>https://blog.csdn.net/htq__/article/details/51759004</guid><author>htq__</author><pubDate>Sun, 26 Jun 2016 10:21:28 +0800</pubDate><description><![CDATA[在多线程编程中，需要处理两个最核心的问题，线程之间如何通信及线程之间如何同步，线程之间通信指的是线程之间通过何种机制交换信息，同步指的是如何控制不同线程之间操作发生的相对顺序。很多读者可能会说这还不简单，java中的同步采用的是锁机制或volatile来完成的，的确，在应用层，java中的同步的确是通过加锁来完成的，但是锁机制是如何实现的呢？这就涉及到java中的内存模型的相关知识。本博客将带领大]]></description><category></category></item><item><title><![CDATA[【java虚拟机系列】JVM类加载器与ClassNotFoundException和NoClassDefFoundError]]></title><link>https://blog.csdn.net/htq__/article/details/51753883</link><guid>https://blog.csdn.net/htq__/article/details/51753883</guid><author>htq__</author><pubDate>Fri, 24 Jun 2016 22:43:10 +0800</pubDate><description><![CDATA[在我们日常的项目开发中，会经常碰到ClassNotFoundException和NoClassDefFoundError这两种异常，对于经验足够的工程师而言，可能很轻松的就可以解决，但是却不一定明白为何要去这么做，本博客将从java虚拟机类加载的角度让大家彻底理解ClassNotFoundException和NoClassDefFoundError这两种异常及一些重用的解决方案。


在博客]]></description><category></category></item><item><title><![CDATA[【java虚拟机系列】从java虚拟机字节码执行引擎的执行过程来彻底理解java的多态性]]></title><link>https://blog.csdn.net/htq__/article/details/51747121</link><guid>https://blog.csdn.net/htq__/article/details/51747121</guid><author>htq__</author><pubDate>Fri, 24 Jun 2016 12:48:03 +0800</pubDate><description><![CDATA[我们知道面向对象语言的三大特点之一就是多态性，而java作为一种面向对象的语言，自然也满足多态性，我们也知道java中的多态包括重载与重写，我们也知道在C++中动态多态是通过虚函数来实现的，而虚函数是通过一个虚函数表来完成的，这也很好理解，那么java语言的多态性是怎么实现的呢？这就需要我们从java虚拟机字节码执行引擎的执行过程来找答案了，下面就从java虚拟机字节码执行引擎的执行过程带领大家彻]]></description><category></category></item><item><title><![CDATA[【java虚拟机序列】java中的垃圾回收与内存分配策略]]></title><link>https://blog.csdn.net/htq__/article/details/51733420</link><guid>https://blog.csdn.net/htq__/article/details/51733420</guid><author>htq__</author><pubDate>Wed, 22 Jun 2016 21:19:38 +0800</pubDate><description><![CDATA[在【java虚拟机系列】java虚拟机系列之JVM总述中我们已经详细讲解过java中的内存模型，了解了关于JVM中内存管理的基本知识，接下来本博客将带领大家了解java中的垃圾回收与内存分配策略。


垃圾回收（Garbage Collection，GC）是java语言的一大特色，在Java中，程序员不需要去关心内存动态分配和垃圾回收的问题，这一切都交给了JVM来处理。而在C/C++中是需要]]></description><category></category></item><item><title><![CDATA[安卓中的事件分发机制源码解析]]></title><link>https://blog.csdn.net/htq__/article/details/51567444</link><guid>https://blog.csdn.net/htq__/article/details/51567444</guid><author>htq__</author><pubDate>Sun, 05 Jun 2016 16:45:05 +0800</pubDate><description><![CDATA[安卓中的事件分发机制主要涉及到两类控件，一类是容器类控件ViewGroup，如常用的布局控件，另一类是显示类控件，即该控件中不能用来容纳其它控件，它只能用来显示一些资源类容，如Button，ImageView等控件。暂且称前一类控件为ViewGroup类控件（尽管ViewGroup本身也是一个View），后者为View类控件。]]></description><category></category></item><item><title><![CDATA[安卓IPC机制之Binder详解]]></title><link>https://blog.csdn.net/htq__/article/details/51548451</link><guid>https://blog.csdn.net/htq__/article/details/51548451</guid><author>htq__</author><pubDate>Thu, 02 Jun 2016 12:17:05 +0800</pubDate><description><![CDATA[IPC（Inter-Process Communication，跨进程通信）是指两个进程之间数据交换的过程，因此我们首先必须了解什么是进程，什么是线程。]]></description><category></category></item><item><title><![CDATA[【安卓中的缓存策略系列】安卓缓存策略之综合应用ImageLoader实现照片墙的效果]]></title><link>https://blog.csdn.net/htq__/article/details/51544336</link><guid>https://blog.csdn.net/htq__/article/details/51544336</guid><author>htq__</author><pubDate>Tue, 31 May 2016 19:10:50 +0800</pubDate><description><![CDATA[在前面的【安卓缓存策略系列】安卓缓存之内存缓存LruCache和【安卓缓存策略系列】安卓缓存策略之磁盘缓存DiskLruCache这两篇博客中已经将安卓中的缓存策略的理论知识进行过详细讲解，还没看过这两篇博客的看官建议先去看一下，本博客将依据这些理论知识打造一个ImageLoader，实现照片墙的效果，关于照片墙的知识网上相关博客也很多，首先解释一下照片墙的概念：用一个GridView控件当作“墙]]></description><category></category></item><item><title><![CDATA[【安卓中的缓存策略系列】安卓缓存策略之磁盘缓存DiskLruCache]]></title><link>https://blog.csdn.net/htq__/article/details/51378348</link><guid>https://blog.csdn.net/htq__/article/details/51378348</guid><author>htq__</author><pubDate>Thu, 12 May 2016 21:03:01 +0800</pubDate><description><![CDATA[安卓中的缓存包括两种情况即内存缓存与磁盘缓存，其中内存缓存主要是使用LruCache这个类，其中内存缓存我在【安卓中的缓存策略系列】安卓缓存策略之内存缓存LruCache中已经进行过详细讲解，如看官还没看过此博客，建议看官先去看一下。
我们知道LruCache可以让我们快速的从内存中获取用户最近使用过的Bitmap，但是我们无法保证最近访问过的Bitmap都能够保存在缓存中，像类似GridVie]]></description><category></category></item><item><title><![CDATA[【安卓中的缓存策略系列】安卓缓存之内存缓存LruCache]]></title><link>https://blog.csdn.net/htq__/article/details/51375525</link><guid>https://blog.csdn.net/htq__/article/details/51375525</guid><author>htq__</author><pubDate>Wed, 11 May 2016 21:04:58 +0800</pubDate><description><![CDATA[缓存策略在移动端设备上是非常重要的，尤其是在图片加载这个场景下，因为图片相对而言比较大会花费用户较多的流量，因此可用缓存方式来解决，即当程序第一次从网络上获取图片的时候，就将其缓存到存储设备上，这样在用户下次使用这张图片时就不用从网络上再次获取，这样就能为用户节省一定的流量。这个功能目前绝大部分主流APP都会使用，如腾讯QQ，微信。但很多时候为了提高APP的用户体验，我们还需要把图片在内存中缓存一]]></description><category></category></item><item><title><![CDATA[安卓中的消息循环机制Handler及Looper详解]]></title><link>https://blog.csdn.net/htq__/article/details/51352875</link><guid>https://blog.csdn.net/htq__/article/details/51352875</guid><author>htq__</author><pubDate>Mon, 09 May 2016 19:37:15 +0800</pubDate><description><![CDATA[我们知道安卓中的UI线程不是线程安全的，我们不能在UI线程中进行耗时操作，通常我们的做法是开启一个子线程在子线程中处理耗时操作，但是安卓规定不允许在子线程中进行UI的更新操作，通常我们会通过Handler机制来完成该功能，即当子线程中耗时操作完成后，在子线程中通过Handler向主线程发送消息，在主线程中的Handler的handleMessage方法中处理接受到的消息。这就是安卓中的消息机制，安]]></description><category></category></item><item><title><![CDATA[安卓java.lang.IllegalStateException: The specified child already has a parent.解决方案]]></title><link>https://blog.csdn.net/htq__/article/details/51290990</link><guid>https://blog.csdn.net/htq__/article/details/51290990</guid><author>htq__</author><pubDate>Sun, 01 May 2016 18:25:50 +0800</pubDate><description><![CDATA[在使用ViewPager的时候遇到一个错误java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.。经过多次调试及网上查找相关资料，终于弄明白是咋回事，现记录如下：
首先跟大家讲解一下为何会出现]]></description><category></category></item></channel></rss>