<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[AD_wen的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/AD_wen</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; AD_wen]]></copyright><item><title><![CDATA[设计模式（二）——工厂设计模式（1）]]></title><link>https://blog.youkuaiyun.com/AD_wen/article/details/77971525</link><guid>https://blog.youkuaiyun.com/AD_wen/article/details/77971525</guid><author>AD_wen</author><pubDate>Wed, 13 Sep 2017 21:45:37 +0800</pubDate><description><![CDATA[一、概念 
工厂设计模式也是日常开发中常用的设计模式之一。首先我们先来搞清楚什么是工厂设计模式，我们为什么要使用这种模式。工厂模式主要是为创建对象提供过渡接口，以便将创建对象的具体过程屏蔽隔离起来，达到降低耦合提高灵活性的目的。举个例子：我们去买车，车就是一个对象，没有工厂的话，我们就需要自己制造一辆车，也就是New一个对象；但是制造车的过程很复杂，自己制造很麻烦；所以有了工厂，工厂帮我们制造好车，]]></description><category></category></item><item><title><![CDATA[Android面试——AsyncTask]]></title><link>https://blog.youkuaiyun.com/AD_wen/article/details/77921045</link><guid>https://blog.youkuaiyun.com/AD_wen/article/details/77921045</guid><author>AD_wen</author><pubDate>Sun, 10 Sep 2017 11:20:53 +0800</pubDate><description><![CDATA[一、什么是AsyncTask？
  AsyncTask是安卓提供的轻量级的异步类，使用时可以继承AsyncTask，在类中可以进行异步操作，可以把运算好的结果交给UI线程来进行UI的显示。适合做一些耗时比较短的操作，耗时长的操作适合用线程池。
  
  AsyncTask本质上是一个封装了线程池和Handler的异步框架，主要是用来执行异步任务的，由于内部集成了Handler，所以能够方便的在UI线]]></description><category></category></item><item><title><![CDATA[Android面试——BroadcastReceiver]]></title><link>https://blog.youkuaiyun.com/AD_wen/article/details/77898689</link><guid>https://blog.youkuaiyun.com/AD_wen/article/details/77898689</guid><author>AD_wen</author><pubDate>Fri, 08 Sep 2017 20:18:20 +0800</pubDate><description><![CDATA[一、BroadcastReceiver是什么？
  1.Broadcast是一种广泛运用的在应用程序之间传输信息的机制，可以跨进程通信，Android中我们要发送的广播内容是一个Intent，这个Intent可以携带我们要传送的数据。是android四大组件之一、是app内的全局监听器，运行于主线程中； 
  2.它实现了不同程序之间的数据共享：一条广播可以被多个广播接受者接受。Service的信息]]></description><category></category></item><item><title><![CDATA[Android面试——OOM及ANR]]></title><link>https://blog.youkuaiyun.com/AD_wen/article/details/77887579</link><guid>https://blog.youkuaiyun.com/AD_wen/article/details/77887579</guid><author>AD_wen</author><pubDate>Thu, 07 Sep 2017 22:02:36 +0800</pubDate><description><![CDATA[一、什么是oom？
  OOM就是当前占用的内存加上我们申请的内存资源超过了Dalvik虚拟机的最大内存限制就会抛出的Out Of 
  Memory的异常，主要是因为过多的内存泄漏造成的OOM。
二、造成OOM的主要原因有哪些？平时开发中需要注意什么？bitmap是内存消耗大户，所以为了避免出现oom，首先要对bitmap进行优化：
  1.图片显示：如：显示缩略图时不调用网络请求加载大图、Lis]]></description><category></category></item><item><title><![CDATA[Android面试——内存泄漏]]></title><link>https://blog.youkuaiyun.com/AD_wen/article/details/77887439</link><guid>https://blog.youkuaiyun.com/AD_wen/article/details/77887439</guid><author>AD_wen</author><pubDate>Thu, 07 Sep 2017 21:50:18 +0800</pubDate><description><![CDATA[一、什么是内存泄漏？
  内存泄漏是指无用对象（不再使用的对象）持续占有内存或无用对象的内存得不到及时释放，从而造成的内存空间的浪费称为为内存泄漏。
二、造成内存泄漏的原因有哪些，怎么解决？1.单例模式造成的内存泄漏
  原因：单例的静态特性使得单例的生命周期和应用的生命周期一样长，如果一个Activity已经不需要使用了，而单例对象还持有该Activity的引用，那么这个Activity将不能被正]]></description><category></category></item><item><title><![CDATA[Android面试——Fragment相关]]></title><link>https://blog.youkuaiyun.com/AD_wen/article/details/77857119</link><guid>https://blog.youkuaiyun.com/AD_wen/article/details/77857119</guid><author>AD_wen</author><pubDate>Tue, 05 Sep 2017 21:49:16 +0800</pubDate><description><![CDATA[一、什么是Fragment，为什么它会被称为第五大组件Fragment是一个模块化和可重用的组件， 目的是为了解决不同屏幕分辩率的动态和灵活UI设计。 
Fragment之所以被称为第五大组件是因为它比Activity更节省内存，其切换模式也更加舒适，使用频率不低于四大组件，且有自己的生命周期，但是必须依附于Activity。 
Fragment的优点可以具体整理为如下几点：
  
  Fragme]]></description><category></category></item><item><title><![CDATA[Android面试——Service相关]]></title><link>https://blog.youkuaiyun.com/AD_wen/article/details/77853645</link><guid>https://blog.youkuaiyun.com/AD_wen/article/details/77853645</guid><author>AD_wen</author><pubDate>Tue, 05 Sep 2017 17:08:24 +0800</pubDate><description><![CDATA[今天介绍一下面试时被问到的关于Service的问题。一、什么是Service以及它的生命周期Service是Android组件的一种，派生自android.app.service类。它不提供交互界面，只是在后台运行，进行功能调度或提供数据支持。可以运行在自己的进程，也可以运行在其他应用程序进程的上下文里。 需要通过某一个Activity或者Context对象来调用。Service组件主要有两个作用：]]></description><category></category></item><item><title><![CDATA[基础控件——TextView实现部分文字可点击]]></title><link>https://blog.youkuaiyun.com/AD_wen/article/details/77843074</link><guid>https://blog.youkuaiyun.com/AD_wen/article/details/77843074</guid><author>AD_wen</author><pubDate>Mon, 04 Sep 2017 22:14:05 +0800</pubDate><description><![CDATA[本次来讲解一下SpannableString和SpannableStringBuilder实现定制文本。 
直接上代码public class MainActivity extends AppCompatActivity {    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCr]]></description><category></category></item><item><title><![CDATA[Android面试——Activity相关]]></title><link>https://blog.youkuaiyun.com/AD_wen/article/details/77841848</link><guid>https://blog.youkuaiyun.com/AD_wen/article/details/77841848</guid><author>AD_wen</author><pubDate>Mon, 04 Sep 2017 20:58:54 +0800</pubDate><description><![CDATA[今天介绍一下面试时被问到的关于Activity的问题。*一、什么是Activity，介绍一下Activity的生命周期。
  
  Activity四大组件之一，一般一个用户交互界面对应一个 activity    * Activity 
  是Context的子类,同时实现了window.callback和keyevent.callback, 可以处理与窗体用户交互的事件.
  Activity的]]></description><category></category></item><item><title><![CDATA[基础控件——TextView]]></title><link>https://blog.youkuaiyun.com/AD_wen/article/details/77804053</link><guid>https://blog.youkuaiyun.com/AD_wen/article/details/77804053</guid><author>AD_wen</author><pubDate>Sat, 02 Sep 2017 21:43:34 +0800</pubDate><description><![CDATA[对每个Android程序员来说，我们接触的第一个android控件恐怕就是TextView了，今天分享一下TextView的基础用法，我会在下一篇文章介绍TextView的一些高级用法。首先我们来认识一下组成TextView的最基本的几个属性：<TextView
        android:id="@+id/tv"
        android:layout_width="match_pare]]></description><category></category></item><item><title><![CDATA[设计模式（一）——单例设计模式]]></title><link>https://blog.youkuaiyun.com/AD_wen/article/details/77727138</link><guid>https://blog.youkuaiyun.com/AD_wen/article/details/77727138</guid><author>AD_wen</author><pubDate>Wed, 30 Aug 2017 23:07:41 +0800</pubDate><description><![CDATA[设计模式大家一定不陌生，Java语言中我们经常会有意无意的就使用到一些设计模式，那么设计模式到底是什么，为什么要使用设计模式呢？其实设计模式（Design Pattern）是一套被反复使用、多数人知晓的、经过分类的、代码设计经验的总结。说白了就是整理写法，让代码更系统化，优化代码量，使用更方便。使用设计模式的目的：为了代码可重用性、让代码更容易被他人理解、保证代码可靠性。设计模式分为很多种，今天先跟]]></description><category></category></item><item><title><![CDATA[Toast工具类]]></title><link>https://blog.youkuaiyun.com/AD_wen/article/details/77718091</link><guid>https://blog.youkuaiyun.com/AD_wen/article/details/77718091</guid><author>AD_wen</author><pubDate>Wed, 30 Aug 2017 16:24:47 +0800</pubDate><description><![CDATA[Toast想必大家都不陌生， 它是Android中提供一种简单的消息提示框机制，可以在用户点击了某些按钮后，提示用户一些信息，提示的信息不能被用户点击，Toast的提示信息根据设置的时间显示后自动消失。在实际开发中，经常会有一些界面需要用到Toast来给用户的一个操作提示。如登录界面提示用户输入密码错误： 
Toast.makeText(xxxActivity.this,"密码输入错误",Toast]]></description><category></category></item><item><title><![CDATA[自定义Log工具——管理你的Log日志]]></title><link>https://blog.youkuaiyun.com/AD_wen/article/details/77418141</link><guid>https://blog.youkuaiyun.com/AD_wen/article/details/77418141</guid><author>AD_wen</author><pubDate>Sat, 19 Aug 2017 23:23:50 +0800</pubDate><description><![CDATA[在实际开发过程中，为了方便调试，我们往往会在很多地方打印大量的Log日志来方便对可能出现的BUG进行快速查找。
一个一个删，不仅浪费时间，而且遗漏的可能性非常大，删除后也不利于后期更新维护。
下面跟大家分享一个我自己使用的一个Log工具类，轻松管理Log日志，供大家参考:
import android.util.Log;/**
 * Description: LogUtils日志工具类
 * Aut]]></description><category></category></item></channel></rss>