<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[d0099的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/d0099</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; d0099]]></copyright><item><title><![CDATA[自定义控件]]></title><link>https://blog.youkuaiyun.com/d0099/article/details/52267059</link><guid>https://blog.youkuaiyun.com/d0099/article/details/52267059</guid><author>d0099</author><pubDate>Sun, 21 Aug 2016 14:10:55 +0800</pubDate><description><![CDATA[Why: 为什么要自定义控件

特定的显示风格处理特有的用户交互优化我们的布局封装等...
How: 如何自定义控件

自定义属性的声明与获取

分析需要的自定义属性在res/values/attrs.xml定义声明在layout.xml文件中进行使用在View的构造方法中进行获取
测量onMeasure

MeasureSpec Mode:EXACTIY(明确的:具体数值及m]]></description><category></category></item><item><title><![CDATA[shape 画图]]></title><link>https://blog.youkuaiyun.com/d0099/article/details/52142297</link><guid>https://blog.youkuaiyun.com/d0099/article/details/52142297</guid><author>d0099</author><pubDate>Sun, 07 Aug 2016 13:01:45 +0800</pubDate><description><![CDATA[xml version="1.0" encoding="utf-8"?>shape xmlns:android="http://schemas.android.com/apk/res/android"> 圆角 -->corners
        android:radius="9dp"
        android:topLeftRadius="2dp"
        android:top]]></description><category></category></item><item><title><![CDATA[Service 以及它的生命周期]]></title><link>https://blog.youkuaiyun.com/d0099/article/details/51912313</link><guid>https://blog.youkuaiyun.com/d0099/article/details/51912313</guid><author>d0099</author><pubDate>Thu, 14 Jul 2016 19:41:55 +0800</pubDate><description><![CDATA[Android Service 是运行在后台的代码，不能与用户交互，可以运行在自己的进程，也可以 运行在其他应用程序进程的上下文里。需要通过某一个 Activity 或者其他 Context 对象来调 用， Context.startService() 和 Context.bindService()。  如果在 Service 执行耗时的操作 需要启动一个新线程来执行。
Android Serv]]></description><category></category></item><item><title><![CDATA[说说 Activity，Intent，Service 是什么关系]]></title><link>https://blog.youkuaiyun.com/d0099/article/details/51859859</link><guid>https://blog.youkuaiyun.com/d0099/article/details/51859859</guid><author>d0099</author><pubDate>Fri, 08 Jul 2016 12:04:38 +0800</pubDate><description><![CDATA[一个 Activity 通常是一个单独的屏幕，
每一个 Activity 都被实现为一个单独的类，
这些类都 是从 Activity 基类中继承来的，
Activity 类会显示由视图控件组成的用户接口，
并对视图控 件的事件做出响应。 
Intent 的调用是用来进行架构屏幕之间的切换的。
Intent 是描述应用想要做什么。
Intent 数 据结构中两个最重要的部分是动作和动作]]></description><category></category></item><item><title><![CDATA[两个 Activity 之间跳转时必然会执行的是哪几个方法]]></title><link>https://blog.youkuaiyun.com/d0099/article/details/51859858</link><guid>https://blog.youkuaiyun.com/d0099/article/details/51859858</guid><author>d0099</author><pubDate>Fri, 08 Jul 2016 12:03:56 +0800</pubDate><description><![CDATA[onCrante() //在 Activity 生命周期开始时调用 
onRestoreInstanceState()//用来恢复 UI 状态
onReStart()//当 Activity 重新启动时调用
onStart()//Activity 对用户即将可见时调用 
onResume()//当 Activity 与用户交互时，绘制面 
onSaveInstanceState()//a]]></description><category></category></item><item><title><![CDATA[描述 Intent 和 Intent Filter]]></title><link>https://blog.youkuaiyun.com/d0099/article/details/51859848</link><guid>https://blog.youkuaiyun.com/d0099/article/details/51859848</guid><author>d0099</author><pubDate>Fri, 08 Jul 2016 12:02:28 +0800</pubDate><description><![CDATA[Intent 在 Android 中被翻译为"意图"，熟语来讲就是目的，他们是三种应用程序基本组件 —activity，service 和 broadcast receiver 之间互相激活的手段。
在调用 Intent 名称时使用 ComponentName 也就是类的全名时为显示调用。这种方式一般用于应用程序的内部调用， 因为你不一定会知道别人写的类的全名。
我们来看看隐式 Intent ]]></description><category></category></item><item><title><![CDATA[Service 有哪些启动方法，有什么区别，怎样停用 Service？]]></title><link>https://blog.youkuaiyun.com/d0099/article/details/51859824</link><guid>https://blog.youkuaiyun.com/d0099/article/details/51859824</guid><author>d0099</author><pubDate>Fri, 08 Jul 2016 11:58:45 +0800</pubDate><description><![CDATA[两种启动 Service 的方式 Context.startService() 和 Context.bindService()。 区别 为 
Context.startService()：Service 会经历 onCreate -> onStart（如果 Service 还没有运行， 则android先调用onCreate()然后调用onStart()；如果Service已经运行，则只调用on]]></description><category></category></item><item><title><![CDATA[StringBuffer和StringBuilder的区别？]]></title><link>https://blog.youkuaiyun.com/d0099/article/details/51817722</link><guid>https://blog.youkuaiyun.com/d0099/article/details/51817722</guid><author>d0099</author><pubDate>Sun, 03 Jul 2016 23:22:24 +0800</pubDate><description><![CDATA[1.  在执行速度方面的比较：StringBuilder >  StringBuffer 2.  StringBuffer与StringBuilder，他们是字符串变量，是可改变的对象，每当我们用它们对字符串做操作时，实际上是在一个对象上操作的，不像String一样创建一些对象进行操作，所以速度就快了。3.  StringBuilder：线程非安全的StringBuffer：线程安全的    当我]]></description><category></category></item><item><title><![CDATA[内存泄露]]></title><link>https://blog.youkuaiyun.com/d0099/article/details/51817716</link><guid>https://blog.youkuaiyun.com/d0099/article/details/51817716</guid><author>d0099</author><pubDate>Sun, 03 Jul 2016 23:21:24 +0800</pubDate><description><![CDATA[内存泄漏解释
　　简单的说就是申请了一块内存空间，使用完毕后没有释放掉。它的一般表现方式是程序运行时间越长，占用内存越多，最终用尽全部内存，整个系统崩溃。由程序申请的一块内存，且没有任何一个指针指向它，那么这块内存就泄露了。
泄漏的分类
以发生的方式来分类，内存泄漏可以分为4类：
(1). 常发性内存泄漏。
　　发生内存泄漏的代码会被多次执行到，每次被执行的时候都会导致一块内存泄漏。
]]></description><category></category></item><item><title><![CDATA[图片适配   压缩比例  (纯代码)]]></title><link>https://blog.youkuaiyun.com/d0099/article/details/51815697</link><guid>https://blog.youkuaiyun.com/d0099/article/details/51815697</guid><author>d0099</author><pubDate>Sun, 03 Jul 2016 16:29:57 +0800</pubDate><description><![CDATA[public class BitmapUtils {
    public static Bitmap decodeSampledBitmapFromResource(String  filePath,
            int reqWidth, int reqHeight) {


        //加载图片的边界信息(只读取图片的高度，宽度，不读取具体字节)
      ]]></description><category></category></item><item><title><![CDATA[Android常见异常]]></title><link>https://blog.youkuaiyun.com/d0099/article/details/51815691</link><guid>https://blog.youkuaiyun.com/d0099/article/details/51815691</guid><author>d0099</author><pubDate>Sun, 03 Jul 2016 16:28:47 +0800</pubDate><description><![CDATA[1. 异常机制
1.1 异常机制是指当程序出现错误后，程序如何处理。具体来说，异常机制提供了程序退出的安全通道。当出现错误后，程序执行的流程发生改变，程序的控制权转移到异常处理器。
1.2 传统的处理异常的办法是，函数返回一个特殊的结果来表示出现异常（通常这个特殊结果是大家约定俗称的），调用该函数的程序负责检查并分析函数返回的结果。这样做有如下的弊端：例如函数返回-1代表出现异常，但是如果函数]]></description><category></category></item><item><title><![CDATA[登陆注册如何实现]]></title><link>https://blog.youkuaiyun.com/d0099/article/details/51759343</link><guid>https://blog.youkuaiyun.com/d0099/article/details/51759343</guid><author>d0099</author><pubDate>Sat, 25 Jun 2016 17:39:58 +0800</pubDate><description><![CDATA[登陆注册如何实现
1.首先页面对输入的数据进行数据格式校验
2.点击登陆按钮触发登陆事件
3.数据被传到后台数据库
4.如果数据库没有  提示：请前往注册页面进行注册
5.在注册页面输入数据，点击注册
6.数据保存到数据库
7.提示注册成功跳转登陆界面登陆
8.数据校验格式正确点击登陆与数据库匹配，匹配成功登陆成功]]></description><category></category></item><item><title><![CDATA[如果后台的 Activity由于某原因被系统回收了，如何在被系统回收之前保存当前状态？]]></title><link>https://blog.youkuaiyun.com/d0099/article/details/51759337</link><guid>https://blog.youkuaiyun.com/d0099/article/details/51759337</guid><author>d0099</author><pubDate>Sat, 25 Jun 2016 17:39:12 +0800</pubDate><description><![CDATA[如果后台的 Activit由于某原因被系统回收了，如何在被系统回收之前保存当前状态？
onSaveInstanceState() 当你的程序中某一个Activity A 在运行时，主动或被动地运行另一个新的 Activity B，
这个时候A 会执行 onSaveInstanceState()。B 完成以后又会来找A，这个时候就有两种情况：
一是A 被回收，二是 A没有被回收，被回收的 A就]]></description><category></category></item><item><title><![CDATA[如何退出 Activity，如何安全退出已调多个Activity的 的 Application？]]></title><link>https://blog.youkuaiyun.com/d0099/article/details/51759331</link><guid>https://blog.youkuaiyun.com/d0099/article/details/51759331</guid><author>d0099</author><pubDate>Sat, 25 Jun 2016 17:38:17 +0800</pubDate><description><![CDATA[对于单一Activity的应用来说，直接finish();


我们在项目开发的时候可能会遇到安全退出应用的场景，如何能够安全退出多个Activity？
1.抛异常退出：
该方法通过抛异常，使程序Force Close.
    验证可以，但是需要解决的问题是如何使程序结束掉而不弹出ForceClose的窗口。
2.记录打开的Activity
每打开一个Activity就记录下来，]]></description><category></category></item><item><title><![CDATA[android常见异常总结]]></title><link>https://blog.youkuaiyun.com/d0099/article/details/51737793</link><guid>https://blog.youkuaiyun.com/d0099/article/details/51737793</guid><author>d0099</author><pubDate>Wed, 22 Jun 2016 23:17:40 +0800</pubDate><description><![CDATA[1. 异常机制
1.1 异常机制是指当程序出现错误后，程序如何处理。具体来说，异常机制提供了程序退出的安全通道。当出现错误后，程序执行的流程发生改变，程序的控制权转移到异常处理器。
1.2 传统的处理异常的办法是，函数返回一个特殊的结果来表示出现异常（通常这个特殊结果是大家约定俗称的），调用该函数的程序负责检查并分析函数返回的结果。这样做有如下的弊端：例如函数返回-1代表出现异常，但是如果函数]]></description><category></category></item><item><title><![CDATA[TCP和UDP Socket]]></title><link>https://blog.youkuaiyun.com/d0099/article/details/51736684</link><guid>https://blog.youkuaiyun.com/d0099/article/details/51736684</guid><author>d0099</author><pubDate>Wed, 22 Jun 2016 20:05:31 +0800</pubDate><description><![CDATA[UDP
将数据及源和目的封装成数据包中，不需要建立连接
每个数据报的大小在限制64k内
因无连接，是不可靠协议
不需要建立连接，速度快


TCP
建立连接，形成传输数据的通道
在连接中进行大数据量传输
通过三次握手完成连接，是可靠协议
必须建立连接，效率会降低


Socket
Java网络编程在很大的程度上就是套接字（Socket）编程，套接字是让用户与网络通信的]]></description><category></category></item><item><title><![CDATA[color]]></title><link>https://blog.youkuaiyun.com/d0099/article/details/51736208</link><guid>https://blog.youkuaiyun.com/d0099/article/details/51736208</guid><author>d0099</author><pubDate>Wed, 22 Jun 2016 18:08:11 +0800</pubDate><description><![CDATA[#FFFFFF  
#FFFFF0  
#FFFFE0  
#FFFF00  
#FFFAFA  
#FFFAF0  
#FFFACD  
#FFF8DC  
#FFF5EE  
#FFF0F5  
#FFEFD5  
#FFEBCD  
#FFE4E1  
#FFE4C4  
#FFE4B5  
#FFDEAD  
#FFDAB9  
#FFD700  
#F]]></description><category></category></item><item><title><![CDATA[MVC]]></title><link>https://blog.youkuaiyun.com/d0099/article/details/51735261</link><guid>https://blog.youkuaiyun.com/d0099/article/details/51735261</guid><author>d0099</author><pubDate>Wed, 22 Jun 2016 16:27:36 +0800</pubDate><description><![CDATA[M:model模型层
    DAO:数据库访问对象
    BIZ:业务逻辑处理
    ENTITY:封装实现数据
V:view 视图层 UI(界面)
            直接和用户进行交互的android项目中的布局页面
            自定义view
C:Contoler 控制器(Activity)
   在开发中使用mvc开发模式能够使代码分工协作，各司其职。]]></description><category></category></item><item><title><![CDATA[https传输]]></title><link>https://blog.youkuaiyun.com/d0099/article/details/51694142</link><guid>https://blog.youkuaiyun.com/d0099/article/details/51694142</guid><author>d0099</author><pubDate>Thu, 16 Jun 2016 19:24:12 +0800</pubDate><description><![CDATA[一个HTTPS请求实际上包含了两次HTTP传输，可以细分为8步。


客户端向服务器发起HTTPS请求，连接到服务器的443端口。

服务器端有一个密钥对，即公钥和私钥，是用来进行非对称加密使用的，服务器端保存着私钥，不能将其泄露，公钥可以发送给任何人。

服务器将自己的公钥发送给客户端。

客户端收到服务器端的公钥之后，会对公钥进行检查，验证其合法性，如果发现发现公钥有问题，那]]></description><category></category></item><item><title><![CDATA[密码学基础]]></title><link>https://blog.youkuaiyun.com/d0099/article/details/51694061</link><guid>https://blog.youkuaiyun.com/d0099/article/details/51694061</guid><author>d0099</author><pubDate>Thu, 16 Jun 2016 19:02:42 +0800</pubDate><description><![CDATA[在正式讲解HTTPS协议之前，我们首先要知道一些密码学的知识。
明文： 明文指的是未被加密过的原始数据。
密文：明文被某种加密算法加密之后，会变成密文，从而确保原始数据的安全。密文也可以被解密，得到原始的明文。
密钥：密钥是一种参数，它是在明文转换为密文或将密文转换为明文的算法中输入的参数。密钥分为对称密钥与非对称密钥，分别应用在对称加密和非对称加密上。
对称加密：对称加密又叫做私钥加密，]]></description><category></category></item></channel></rss>