<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[狂发飘飘]]></title><description><![CDATA[琴之工之侨]]></description><link>https://blog.youkuaiyun.com/Green_shing</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Green_shing]]></copyright><item><title><![CDATA[Android性能优化之Bitmap的内存优化]]></title><link>https://blog.youkuaiyun.com/Green_shing/article/details/78784611</link><guid>https://blog.youkuaiyun.com/Green_shing/article/details/78784611</guid><author>Green_shing</author><pubDate>Tue, 12 Dec 2017 18:15:42 +0800</pubDate><description><![CDATA[1、BitmapFactory解析Bitmap的原理

BitmapFactory提供的解析Bitmap的静态工厂方法有以下五种：
Bitmap decodeFile(...)
Bitmap decodeResource(...)
Bitmap decodeByteArray(...)
Bitmap decodeStream(...)
Bitmap decodeFileDescriptor(]]></description><category></category></item><item><title><![CDATA[aidl文件import 报错; couldn't find import for class]]></title><link>https://blog.youkuaiyun.com/Green_shing/article/details/75219334</link><guid>https://blog.youkuaiyun.com/Green_shing/article/details/75219334</guid><author>Green_shing</author><pubDate>Mon, 17 Jul 2017 10:30:46 +0800</pubDate><description><![CDATA[aidl文件import 报错; couldn't find import for class]]></description><category></category></item><item><title><![CDATA[Handler的深入了解]]></title><link>https://blog.youkuaiyun.com/Green_shing/article/details/51996137</link><guid>https://blog.youkuaiyun.com/Green_shing/article/details/51996137</guid><author>Green_shing</author><pubDate>Fri, 22 Jul 2016 17:00:01 +0800</pubDate><description><![CDATA[在android开发中，Handler大家会经常看到和用到。这里不说怎么使用，主要想一探Handler究竟。
使用Handler来处理消息，其实就是这样一个过程：创建Handler时候，Handler就获取一个线程的Looper和他的MessageQueue，通过Handler发送处理的消息，其实就是把需要处理的消息放置于一个线程的Looper的MessageQueue中，而后Looper会运行一个for (;;)的死循环来取出消息，并处理。]]></description><category></category></item><item><title><![CDATA[android 虚拟导航按钮(NavigationBar)可手动隐藏开发]]></title><link>https://blog.youkuaiyun.com/Green_shing/article/details/51897383</link><guid>https://blog.youkuaiyun.com/Green_shing/article/details/51897383</guid><author>Green_shing</author><pubDate>Wed, 13 Jul 2016 16:08:59 +0800</pubDate><description><![CDATA[系统修改来实现NavigationBar可以手动隐藏，其中涉及的修改包括：PhoneWindow、PhoneWindowManager以及PhoneStatusBar等。
          在包 com.android.internal.policy.impl里面有PhoneWindowManager类，这是一个主要管理手机显示系统的所有window的类，我们知道在android中每个显示的界面其实都是一个window,比如一个activity的显示界面、一个Dialog弹出框、还有上面提到的 虚拟按钮（]]></description><category></category></item><item><title><![CDATA[android中xml tools属性详解]]></title><link>https://blog.youkuaiyun.com/Green_shing/article/details/51689306</link><guid>https://blog.youkuaiyun.com/Green_shing/article/details/51689306</guid><author>Green_shing</author><pubDate>Thu, 16 Jun 2016 09:11:25 +0800</pubDate><description><![CDATA[android中xml tools属性详解.]]></description><category></category></item><item><title><![CDATA[Android常用的一些make命令]]></title><link>https://blog.youkuaiyun.com/Green_shing/article/details/47666291</link><guid>https://blog.youkuaiyun.com/Green_shing/article/details/47666291</guid><author>Green_shing</author><pubDate>Fri, 14 Aug 2015 19:06:46 +0800</pubDate><description><![CDATA[1.make -jXX
  XX表示数字，这个命令将编译Android系统并生成镜像，XX表示可以使用到的CPU核数，这在配置好的电脑上特别有用，公司的16核ubuntu服务器执行make -j16只要不到20分钟，而双核PC上需要4个小时！

2.make snod
这条命令将重新生成镜像，消耗的时间很少，类似WinCE的makeimg过程，如果你修改了一些数据文件（如音乐、视频）等文件]]></description><category></category></item><item><title><![CDATA[自定义一个在底部显示的dialog]]></title><link>https://blog.youkuaiyun.com/Green_shing/article/details/47255675</link><guid>https://blog.youkuaiyun.com/Green_shing/article/details/47255675</guid><author>Green_shing</author><pubDate>Mon, 03 Aug 2015 14:30:04 +0800</pubDate><description><![CDATA[自定义一个在底部显示的dialog!]]></description><category></category></item><item><title><![CDATA[Dialog显示手机android安装的app信息]]></title><link>https://blog.youkuaiyun.com/Green_shing/article/details/47254941</link><guid>https://blog.youkuaiyun.com/Green_shing/article/details/47254941</guid><author>Green_shing</author><pubDate>Mon, 03 Aug 2015 14:18:01 +0800</pubDate><description><![CDATA[最近做功能开发时候需要显示当前手机安装的app信息.这个dialog显示了当前手机安装的app,当点击一个菜单项时候就会在上面显示一个上锁的图案(如上图:视频/相机/联系人).这时一个可以对app上锁的设计界面.]]></description><category></category></item><item><title><![CDATA[android之LruCache源码解析]]></title><link>https://blog.youkuaiyun.com/Green_shing/article/details/46714431</link><guid>https://blog.youkuaiyun.com/Green_shing/article/details/46714431</guid><author>Green_shing</author><pubDate>Wed, 01 Jul 2015 21:32:31 +0800</pubDate><description><![CDATA[移动设备开发中,由于移动设备(手机等)的内存有限,所以使用有效的缓存技术是必要的.android提供来一个缓存工具类LruCache,开发中我们会经常用到,下面来他是如何实现的.LruCache缓存数据是采用持有数据的强引用来保存一定数量的数据的.每次用到(获取)一个数据时,这个数据就会被移动(一个保存数据的)队列的头部,当往这个缓存里面加入一个新的数据时,如果这个缓存已经满了,就会自动删除这个缓存队列里面最后一个数据,这样一来使得这个删除的数据没有强引用而能够被gc回收.]]></description><category></category></item><item><title><![CDATA[源码解析:ArrayBlockingQueue和LinkedBlockingQueue的区别]]></title><link>https://blog.youkuaiyun.com/Green_shing/article/details/46680565</link><guid>https://blog.youkuaiyun.com/Green_shing/article/details/46680565</guid><author>Green_shing</author><pubDate>Mon, 29 Jun 2015 17:11:29 +0800</pubDate><description><![CDATA[对于ArrayBlockingQueue和LinkedBlockingQueue已经都只是知道如何使用以及他们各自的特点,没有去看看源码到底驶入实现的!因为ArrayBlockingQueue和LinkedBlockingQueue是java开发中常常用到的数据结构,所以有必要看看源码深入一下.下面从源码来了解他们各自的特点,最后再做一下总结.]]></description><category></category></item><item><title><![CDATA[android触摸事件流程(一)]]></title><link>https://blog.youkuaiyun.com/Green_shing/article/details/46561957</link><guid>https://blog.youkuaiyun.com/Green_shing/article/details/46561957</guid><author>Green_shing</author><pubDate>Fri, 19 Jun 2015 15:50:25 +0800</pubDate><description><![CDATA[对于android的触摸事件,一直以来都有点模糊,所以决定搞搞清楚.这里一共分三部分来解决这个问题:第一部分:触摸事件是如何起源的.第二部分:view是如何处理触摸事件的.第三部分:viewgroup是如何分发和处理触摸事件的.]]></description><category></category></item><item><title><![CDATA[深入Java核心 Java内存分配原理精讲(3)]]></title><link>https://blog.youkuaiyun.com/Green_shing/article/details/46560817</link><guid>https://blog.youkuaiyun.com/Green_shing/article/details/46560817</guid><author>Green_shing</author><pubDate>Fri, 19 Jun 2015 13:55:27 +0800</pubDate><description><![CDATA[栈、堆、常量池虽同属Java内存分配时操作的区域，但其适用范围和功用却大不相同。本文将深入Java核心，详细讲解Java内存分配方面的知识。]]></description><category></category></item><item><title><![CDATA[深入Java核心 Java内存分配原理精讲(2)]]></title><link>https://blog.youkuaiyun.com/Green_shing/article/details/46560799</link><guid>https://blog.youkuaiyun.com/Green_shing/article/details/46560799</guid><author>Green_shing</author><pubDate>Fri, 19 Jun 2015 13:53:21 +0800</pubDate><description><![CDATA[String是一个特殊的包装类数据。可以用：
String str = new String("abc");   String str = "abc";  
两种的形式来创建，第一种是用new()来新建对象的，它会在存放于堆中。每调用一次就会创建一个新的对象。而第二种是先在栈中创建一个对String类的对象引用变量str，然后通过符号引用去字符串常量池 里找有没有"abc",如果没有，则将"a]]></description><category></category></item><item><title><![CDATA[深入Java核心 Java内存分配原理精讲(1)]]></title><link>https://blog.youkuaiyun.com/Green_shing/article/details/46560771</link><guid>https://blog.youkuaiyun.com/Green_shing/article/details/46560771</guid><author>Green_shing</author><pubDate>Fri, 19 Jun 2015 13:51:03 +0800</pubDate><description><![CDATA[Java内存分配与管理是Java的核心技术之一，之前我们曾介绍过Java的内存管理与内存泄露以及Java垃圾回收方面的知识，今天我们再次深入Java核心，详细介绍一下Java在内存分配方面的知识。一般Java在内存分配时会涉及到以下区域：
◆寄存器：我们在程序中无法控制
◆栈：存放基本类型的数据和对象的引用，但对象本身不存放在栈中，而是存放在堆中
◆堆：存放用new产生的数据
◆静态域：存]]></description><category></category></item><item><title><![CDATA[android之view的TouchDelegate]]></title><link>https://blog.youkuaiyun.com/Green_shing/article/details/46551121</link><guid>https://blog.youkuaiyun.com/Green_shing/article/details/46551121</guid><author>Green_shing</author><pubDate>Thu, 18 Jun 2015 18:44:20 +0800</pubDate><description><![CDATA[ouchDelegate是一个工具类,其目的是让一个view在一个特定的位置拥有比自己实际的触摸区域更大的可触摸的区域.触摸区域被更改的view被称作"delegate view".这个工具类应该被"delegate view"的父view使用.其实TouchDelegate的主要目的就是来扩大一个view的触摸区域的.]]></description><category></category></item><item><title><![CDATA[LruCache的终极解析]]></title><link>https://blog.youkuaiyun.com/Green_shing/article/details/46483503</link><guid>https://blog.youkuaiyun.com/Green_shing/article/details/46483503</guid><author>Green_shing</author><pubDate>Sat, 13 Jun 2015 18:20:08 +0800</pubDate><description><![CDATA[LruCache是android提供的一个常用而且有用的数据缓存工具类.
LruCache是一个通过强引用来保存一定数量的数据的缓存技术.每次使用一个数据时候,这个数据就会被移动到队列的最前面(这样维护来一个访问数据的顺序).当新加一个数据到这个已经满了的缓存时候,这个缓存里面最后面的数据(最不常使用的数据)就会被清理掉.]]></description><category></category></item><item><title><![CDATA[HashMap的数据结构]]></title><link>https://blog.youkuaiyun.com/Green_shing/article/details/46482503</link><guid>https://blog.youkuaiyun.com/Green_shing/article/details/46482503</guid><author>Green_shing</author><pubDate>Sat, 13 Jun 2015 14:32:00 +0800</pubDate><description><![CDATA[1.HashMap的数据结构
　　数组的特点是：寻址容易，插入和删除困难；而链表的特点是：寻址困难，插入和删除容易。那么我们能不能综合两者的特性，做出一种寻址容易，插入删除也容易的数据结构？答案是肯定的，这就是我们要提起的哈希表，哈希表有多种不同的实现方法，我接下来解释的是最常用的一种方法—— 拉链法，我们可以理解为“链表的数组” ，如图：

　　从上图我们可以发现哈希表是由数组+链表组成的]]></description><category></category></item><item><title><![CDATA[详细介绍Java中的堆、栈和常量池]]></title><link>https://blog.youkuaiyun.com/Green_shing/article/details/46481039</link><guid>https://blog.youkuaiyun.com/Green_shing/article/details/46481039</guid><author>Green_shing</author><pubDate>Sat, 13 Jun 2015 10:36:59 +0800</pubDate><description><![CDATA[下面主要介绍JAVA中的堆、栈和常量池：
1.寄存器
最快的存储区， 由编译器根据需求进行分配，我们在程序中无法控制。
2. 栈
存放基本类型的变量数据和对象的引用，但对象本身不存放在栈中，而是存放在堆（new 出来的对象）或者常量池中（字符串常量对象存放在常量池中。）
3. 堆
存放所有new出来的对象。
4. 静态域
存放静态成员（static定义的）
5. 常量池
存放字]]></description><category></category></item><item><title><![CDATA[android studio创建一个工程时候报错]]></title><link>https://blog.youkuaiyun.com/Green_shing/article/details/46472685</link><guid>https://blog.youkuaiyun.com/Green_shing/article/details/46472685</guid><author>Green_shing</author><pubDate>Fri, 12 Jun 2015 16:03:56 +0800</pubDate><description><![CDATA[android studio工程时候,打开布局文件,直接报错.]]></description><category></category></item><item><title><![CDATA[Android 4.3中的视觉边界布局(Optical bounds layout)]]></title><link>https://blog.youkuaiyun.com/Green_shing/article/details/46467941</link><guid>https://blog.youkuaiyun.com/Green_shing/article/details/46467941</guid><author>Green_shing</author><pubDate>Fri, 12 Jun 2015 09:44:35 +0800</pubDate><description><![CDATA[不错的文章,转载了:http://www.tuicool.com/articles/YRRRnq

Optical bounds layout(视觉/光学边界布局)是在4.3（Api level 18）中引入的一种新的布局对齐方式。之前是使用控件边界来布局的。可以在“设置” 中的 “开发者选项” 中的 “显示布局边界” 功能来查看界面的每个空间的编辑。
下面两个图是使用控件边界布局和视觉编辑]]></description><category></category></item></channel></rss>