<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[用心去专研技术，用代码改变世界__ Mr.Wang]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Carry_Code</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Carry_Code]]></copyright><item><title><![CDATA[Android App 内存泄露之Handler]]></title><link>https://blog.youkuaiyun.com/Carry_Code/article/details/64137705</link><guid>https://blog.youkuaiyun.com/Carry_Code/article/details/64137705</guid><author>Carry_Code</author><pubDate>Mon, 20 Mar 2017 20:53:24 +0800</pubDate><description><![CDATA[一：为啥出现这样的问题呢1.在Java中，非静态(匿名)内部类会默认隐性引用外部类对象。而静态内部类不会引用外部类对象。
 如果外部类是Activity，则会引起Activity泄露 。当Activity finish后，延时消息会继续存在主线程消息队列中1分钟，然后处理消息。而该消息引用了Activity的Handler对象，然后这个Handler又引用了这个Activity。这些引用对象会保持到]]></description><category></category></item><item><title><![CDATA[Android蓝牙自动配对工具类，亲测好使！！！]]></title><link>https://blog.youkuaiyun.com/Carry_Code/article/details/53940086</link><guid>https://blog.youkuaiyun.com/Carry_Code/article/details/53940086</guid><author>Carry_Code</author><pubDate>Fri, 30 Dec 2016 10:28:33 +0800</pubDate><description><![CDATA[蓝牙自动配对，即搜索到其它蓝牙设备之后直接进行配对，不需要弹出配对确认框或者密钥输入框。 
经过最近一段时间得研究，针对网上给出的案例。总结了一个亲测好使的Demo。 
说明如下： 
1、本Demo用来连接蓝牙设备HC-05，如果你要连接其他蓝牙设备，注意修改相关名字以及修改设备初试pin值。 
2、将Demo安装在Android手机上，点击按钮，可以实现与目标蓝牙设备的自动配对。 
3、若目标蓝牙]]></description><category></category></item><item><title><![CDATA[android httpClient 支持HTTPS的处理方式]]></title><link>https://blog.youkuaiyun.com/Carry_Code/article/details/53897959</link><guid>https://blog.youkuaiyun.com/Carry_Code/article/details/53897959</guid><author>Carry_Code</author><pubDate>Tue, 27 Dec 2016 18:34:49 +0800</pubDate><description><![CDATA[欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来，用它写博客，将会带来全新的体验哦：
Markdown和扩展Markdown简洁的语法
代码块高亮
图片链接和图片上传
LaTex数学公式
UML序列图和流程图
离线写博客
导入导出Markdown文件
丰富的快捷键
快捷键
加粗    Ctrl + B 
斜体    Ctrl + I 
引用    Ctrl]]></description><category></category></item><item><title><![CDATA[android中图片的处理（绘制圆形，圆角||缩略图）]]></title><link>https://blog.youkuaiyun.com/Carry_Code/article/details/52790077</link><guid>https://blog.youkuaiyun.com/Carry_Code/article/details/52790077</guid><author>Carry_Code</author><pubDate>Tue, 11 Oct 2016 17:33:45 +0800</pubDate><description><![CDATA[/**
     * 圆角处理
     * 
     * @param bitmap
     *            原图
     * @param roundPx
     *            角度
     * @return
     */
    public static Bitmap getCornerBitmap(Bitmap bitmap, float roundPx]]></description><category></category></item><item><title><![CDATA[生产者消费者模式]]></title><link>https://blog.youkuaiyun.com/Carry_Code/article/details/52750945</link><guid>https://blog.youkuaiyun.com/Carry_Code/article/details/52750945</guid><author>Carry_Code</author><pubDate>Fri, 07 Oct 2016 17:54:50 +0800</pubDate><description><![CDATA[注：一个生产者，一个消费者。1.测试类/**
 * 生产者消费者模式
 * 有两个角色，生产者和消费者
 * 生产者负责生产,消费者负责消费
 * 生产者生产的商品，交给消费者来消费，商品数据在生产者和消费者之间共享
 * 商品数量不能为负数,商品需要有地方来保存(比如仓库),所以商品数量还应该有上限(商品数量最多不能超过某个数)
 * 当商品数量为0时，消费者不能继续消费
 * 当商品数量达到上限]]></description><category></category></item><item><title><![CDATA[阻塞双端消息队列 BlockingDeque（先进先出的原则管理）]]></title><link>https://blog.youkuaiyun.com/Carry_Code/article/details/52638365</link><guid>https://blog.youkuaiyun.com/Carry_Code/article/details/52638365</guid><author>Carry_Code</author><pubDate>Fri, 23 Sep 2016 15:00:47 +0800</pubDate><description><![CDATA[既是一个队列的生产者又是这个队列的消费者的时候可以使用到 BlockingDeque。 
看图我们之后秒懂了吧，当我们需要把数据发送的对方时，又想有规律均速一条一条的发送，我们就可以这么干了。直接上菜啦： 
 1. 现在onCreate中启动消息处理器
        new HandleMess().start();2  获得BlockingDeque对象 BlockingDeque<byte[]]]></description><category></category></item><item><title><![CDATA[关于性能监控]]></title><link>https://blog.youkuaiyun.com/Carry_Code/article/details/51817709</link><guid>https://blog.youkuaiyun.com/Carry_Code/article/details/51817709</guid><author>Carry_Code</author><pubDate>Sun, 03 Jul 2016 23:19:42 +0800</pubDate><description><![CDATA[一.性能监控的作用： 
能通过压缩平均恢复时间来减少应用程序的停机时间，或者记录某个应用程序从发生问题到恢复正常，一共花费了多久，并且能够通过检查识别性能瓶颈来提高应用程序性能。IT专家们需要方法来记录分析和改善数据中心性能以及应用程序性能。 
二 . 性能监控软件可以从多个来源获得： 
   ①系统厂商工具。许多大型服务器厂商都提供监控工具来支持其产品，同样也包括第三方产品。 
   ② 第三方工]]></description><category></category></item><item><title><![CDATA[框架模式MVC与MVP的区别]]></title><link>https://blog.youkuaiyun.com/Carry_Code/article/details/51816978</link><guid>https://blog.youkuaiyun.com/Carry_Code/article/details/51816978</guid><author>Carry_Code</author><pubDate>Sun, 03 Jul 2016 21:18:25 +0800</pubDate><description><![CDATA[MVC和MVP到底有什么区别呢？  
MVC全名是Model View Controller，是模型(model)－视图(view)－控制器(controller)的缩写，一种软件设计典范，用一种业务逻辑、数据、界面显示分离的方法组织代码，将业务逻辑聚集到一个部件里面，在改进和个性化定制界面及用户交互的同时，不需要重新编写业务逻辑。 
 
从这幅图可以看到，我们可以看到在MVC里，View是可以直接]]></description><category></category></item><item><title><![CDATA[Android消息传递之EventBus 3.0使用详解]]></title><link>https://blog.youkuaiyun.com/Carry_Code/article/details/51814709</link><guid>https://blog.youkuaiyun.com/Carry_Code/article/details/51814709</guid><author>Carry_Code</author><pubDate>Sun, 03 Jul 2016 12:20:23 +0800</pubDate><description><![CDATA[EventBus产生需求背景：在做项目的时候往往需要应用程序内各组件间、组件与后台线程间的通信。比如耗时操作，等耗时操作完成后通过Handler或Broadcast将结果通知给UI，N个Activity之间需要通过Listener通信，之前的实现方式我们在Android消息传递之组件间传递消息（二）中已经介绍过了，其实这些都可以通过EventBus轻松实现，EventBus通过发布/订阅(publi]]></description><category></category></item><item><title><![CDATA[利用DrawerLayout和触摸事件分发来实现抽屉侧滑业务]]></title><link>https://blog.youkuaiyun.com/Carry_Code/article/details/51699249</link><guid>https://blog.youkuaiyun.com/Carry_Code/article/details/51699249</guid><author>Carry_Code</author><pubDate>Fri, 17 Jun 2016 13:11:19 +0800</pubDate><description><![CDATA[效果展示 
还是看代码实在，直接上菜了。 
1.MainActivity的代码：
public class MainActivity extends AppCompatActivity implements    MyDraweLayout.GetPositionCallback {        private List<ImageView> imageList;
        private]]></description><category></category></item><item><title><![CDATA[Activity七大生命周期详解]]></title><link>https://blog.youkuaiyun.com/Carry_Code/article/details/51636553</link><guid>https://blog.youkuaiyun.com/Carry_Code/article/details/51636553</guid><author>Carry_Code</author><pubDate>Sat, 11 Jun 2016 14:59:57 +0800</pubDate><description><![CDATA[首先，流程图来一张： 
介绍生命周期之前，先提一下任务的概念： 
任务其实就是activity 的栈，换句话说任务就是” 应用程序” 。 
栈底的是启动整个任务的Activity，栈顶的是当前运行的用户可以交互的Activity，当一个activity 启动另外一个的时候，新的activity 就被压入栈，并成为当前运行的activity。而前一个activity 仍保持在栈之中。当用户按下BACK]]></description><category></category></item><item><title><![CDATA[实现打开Android系统相册、照相机并实现照相，录像功能。]]></title><link>https://blog.youkuaiyun.com/Carry_Code/article/details/51615205</link><guid>https://blog.youkuaiyun.com/Carry_Code/article/details/51615205</guid><author>Carry_Code</author><pubDate>Wed, 08 Jun 2016 20:13:21 +0800</pubDate><description><![CDATA[通过本篇博客，你将学到以下知识点： 
1.学会如何打开Android系统中相册的图片，视频，并使用这些图片，视频。 
2.学会如何打Android开照相机进行照相，录像，并使用这样图片和视频。 
下面我将展示两种方法来实现这些需求，注意，以下代码要用真机测试才行。 
效果展示先：一. 第一种方法： 
①.想顺利的打开Android中的相册和照相机，首先我们要在清单中注册一些权限： <!--使用相机硬]]></description><category></category></item><item><title><![CDATA[当ListView遇上RecyclerView,  ListView将甘拜下风]]></title><link>https://blog.youkuaiyun.com/Carry_Code/article/details/51606423</link><guid>https://blog.youkuaiyun.com/Carry_Code/article/details/51606423</guid><author>Carry_Code</author><pubDate>Tue, 07 Jun 2016 20:29:09 +0800</pubDate><description><![CDATA[1.RecyclerView是什么？  RecylerView是support-v7包中的新组件，是一个强大的滑动组件，与经典的ListView相比，同样拥有item回收复用的功能，这一点从它的名字recylerview即回收view也可以看出。看到这也许有人会问，不是已经有ListView了吗，为什么还要RecylerView呢？这就牵扯到第二个问题了。
2.RecyclerView的优点是什么？]]></description><category></category></item><item><title><![CDATA[使用SurfaceView播放视频，调节进度，滑动屏幕调节音量并显示音量。]]></title><link>https://blog.youkuaiyun.com/Carry_Code/article/details/51598172</link><guid>https://blog.youkuaiyun.com/Carry_Code/article/details/51598172</guid><author>Carry_Code</author><pubDate>Mon, 06 Jun 2016 20:54:01 +0800</pubDate><description><![CDATA[效果展示： 首先在清单文件中注册：
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
java代码：
public class MainActivity extends AppCompatActivity implements SurfaceHolder.Callback
{    priv]]></description><category></category></item><item><title><![CDATA[SurfaceView与Canvas的结合实现气泡动态壁纸]]></title><link>https://blog.youkuaiyun.com/Carry_Code/article/details/51597758</link><guid>https://blog.youkuaiyun.com/Carry_Code/article/details/51597758</guid><author>Carry_Code</author><pubDate>Mon, 06 Jun 2016 19:34:35 +0800</pubDate><description><![CDATA[效果展示： 
 
其实每个View中都有Canvas可以用来绘制动画，只需要在这个View中重载onDraw()方法就可以，但是SurfaceView类是一个专门用来制动动画的类。Canvas(中文叫做”画布”)就和HTML5中的canvas标签一样可以在一定区域内自由绘制图形。Canvas+SurfaceView制作的动画与View Animation和Property Animation这类动画]]></description><category></category></item><item><title><![CDATA[使用Handler中postDelayed方法实现广告页面无限循环轮播效果]]></title><link>https://blog.youkuaiyun.com/Carry_Code/article/details/51594842</link><guid>https://blog.youkuaiyun.com/Carry_Code/article/details/51594842</guid><author>Carry_Code</author><pubDate>Mon, 06 Jun 2016 13:24:16 +0800</pubDate><description><![CDATA[效果展示： 
直接上代码： 
1.MainActivity的代码：public class MainActivity extends Activity
{
    private ViewPager viewPager;    private ImageView[] imageViews;    private int COUNT = 4;    private Handler mHandler;]]></description><category></category></item><item><title><![CDATA[自定义书签导航]]></title><link>https://blog.youkuaiyun.com/Carry_Code/article/details/51590162</link><guid>https://blog.youkuaiyun.com/Carry_Code/article/details/51590162</guid><author>Carry_Code</author><pubDate>Sun, 05 Jun 2016 16:48:14 +0800</pubDate><description><![CDATA[效果展示： 
 
切换后： 
实现思路： 
1.三个书签其实就是三个TextView，先用shape画出TextView的两种状态，然后用选择器selector去切换TextView的状态。 
2.创建三个Fragment，然后使用FragmentPagerAdapter进行适配。 
3.三个TextView设置监听方法，当切换TextView时，Fragment也会相应的改变，也可以给三个View]]></description><category></category></item><item><title><![CDATA[点击图片产生水波的动画效果代码展示]]></title><link>https://blog.youkuaiyun.com/Carry_Code/article/details/51569028</link><guid>https://blog.youkuaiyun.com/Carry_Code/article/details/51569028</guid><author>Carry_Code</author><pubDate>Thu, 02 Jun 2016 17:57:24 +0800</pubDate><description><![CDATA[效果展示先： 
XMl布局中的代码 <com.example.administrator.gamehleper.widget.ScaleView
            android:layout_margin="5dp"
            android:layout_width="0dp"
            android:layout_weight="1"]]></description><category></category></item><item><title><![CDATA[自定义Android标题栏TitleBar布局]]></title><link>https://blog.youkuaiyun.com/Carry_Code/article/details/51568692</link><guid>https://blog.youkuaiyun.com/Carry_Code/article/details/51568692</guid><author>Carry_Code</author><pubDate>Thu, 02 Jun 2016 17:21:14 +0800</pubDate><description><![CDATA[效果展示： 
 
自定义Android标题栏TitleBar布局，右边的图片可实现动画效果。代码展示： 
1.MainActivity中的布局： <com.example.administrator.gamehleper.widget.TitleBar
        android:id="@+id/title_bar"
        android:layout_width="match_pa]]></description><category></category></item><item><title><![CDATA[TextView属性大全+单行显示长文本]]></title><link>https://blog.youkuaiyun.com/Carry_Code/article/details/51563864</link><guid>https://blog.youkuaiyun.com/Carry_Code/article/details/51563864</guid><author>Carry_Code</author><pubDate>Thu, 02 Jun 2016 09:32:12 +0800</pubDate><description><![CDATA[android:autoLink设置是否当文本为URL链接/email/电话号码/map时，文本显示为可点击的链接。可选值(none/web/email/phone/map/all) 
android:autoText如果设置，将自动执行输入值的拼写纠正。此处无效果，在显示输入法并输入的时候起作用。 
android:bufferType指定getText()方式取得的文本类别。选项editable]]></description><category></category></item></channel></rss>