<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[cruelder的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/cruelder</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; cruelder]]></copyright><item><title><![CDATA[SVG（SVG概述、SVG图片使用、SVG动画使用实例]]></title><link>https://blog.youkuaiyun.com/cruelder/article/details/83443704</link><guid>https://blog.youkuaiyun.com/cruelder/article/details/83443704</guid><author>cruelder</author><pubDate>Sat, 27 Oct 2018 10:04:24 +0800</pubDate><description><![CDATA[1、SVG概述

SVG（Scalable Vector Graphics） : 可缩放矢量图形,使用 XML 格式定义图像。

优势：

SVG是矢量图形文件，无限放大不失真。

可以用CSS样式来自由定义图标颜色，比如颜色/尺寸等效果。

所有的SVG可以全部在一个文件中，节省HTTP请求 。

使用SMIL、CSS或者是javascript可以制作充满灵性的交互动画和滤镜效果。

由于SVG...]]></description><category></category></item><item><title><![CDATA[SDK 25 monkeyrunner 无法使用问题]]></title><link>https://blog.youkuaiyun.com/cruelder/article/details/83382326</link><guid>https://blog.youkuaiyun.com/cruelder/article/details/83382326</guid><author>cruelder</author><pubDate>Sat, 27 Oct 2018 10:00:51 +0800</pubDate><description><![CDATA[SWT folder '..\framework\x86_64' does not exist.
Please set ANDROID_SWT to point to the folder containing swt.jar for your platform.
/tools/bin/monkeyrunner.bat 执行报错无法使用:
原因为bat脚本有两处错误
一 old:
if exist...]]></description><category></category></item><item><title><![CDATA[Android drawable和mipmap到底怎么用？]]></title><link>https://blog.youkuaiyun.com/cruelder/article/details/83382352</link><guid>https://blog.youkuaiyun.com/cruelder/article/details/83382352</guid><author>cruelder</author><pubDate>Sat, 27 Oct 2018 10:00:40 +0800</pubDate><description><![CDATA[Android引入了mipmap drawables，为设计启动器图标提供了更多的灵活性。Mipmap首次在Android Jelly Beans 4.3中引入。如果您正在为不同密度构建不同版本的应用程序，则应该了解mipmap资源目录。这与正常的可绘制文件夹资源完全相同，只是它在创建不同目标应用时不参与密度剥离而资源优化。

我们把我们的mipmap可绘制放在res /文件夹下的mipmap /...]]></description><category></category></item><item><title><![CDATA[android屏幕适配布局和字体]]></title><link>https://blog.youkuaiyun.com/cruelder/article/details/83382417</link><guid>https://blog.youkuaiyun.com/cruelder/article/details/83382417</guid><author>cruelder</author><pubDate>Sat, 27 Oct 2018 10:00:28 +0800</pubDate><description><![CDATA[屏幕适配的这个问题到现在对于每个android开发人员来说，可能都是小菜一碟了，可三年前不这样，五花八门，简直八仙过海，各显神通。

首先，由于android 的碎片化结构，我们目前知道的市面上仅针对手机或者平板的屏幕有以下几种：

480x800 ,720x1280,1080x1920,1440x2560

以及800x1280,1200x1920,2650x1800,2650x1600.......]]></description><category></category></item><item><title><![CDATA[Glide 第一次只加载显示 placeholder 的解决]]></title><link>https://blog.youkuaiyun.com/cruelder/article/details/83382440</link><guid>https://blog.youkuaiyun.com/cruelder/article/details/83382440</guid><author>cruelder</author><pubDate>Sat, 27 Oct 2018 10:00:01 +0800</pubDate><description><![CDATA[问题

在使用 Glide 的过程中，出现图片加载的时候，在第一次加载的时候，就只会显示 placeholder 的图片。

具体场景

在评论中显示用户的头像，我使用得是第三方的CircleImageView，之后也替换成SDK提供的内置的CircleImageView，发现都是有这个问题的。

解决

最终，我使用了最初的 ImageView，而圆形的问题使用 Glide BitmapTran...]]></description><category></category></item><item><title><![CDATA[android 实现只运行白名单应用]]></title><link>https://blog.youkuaiyun.com/cruelder/article/details/83382469</link><guid>https://blog.youkuaiyun.com/cruelder/article/details/83382469</guid><author>cruelder</author><pubDate>Sat, 27 Oct 2018 09:59:34 +0800</pubDate><description><![CDATA[项目需求，要求本公司自己的外发设备必须只能用指定授权的白名单的应用。一开始，我是有抵触的，认为是黑科技。没办法，工作还是要认真做的。责任所在。于是，先确认思路。

想到了几个方案：

1、首先，想到的是，fullscreen activity+通过事件拦截，即，activity中的点击事件。

2、广播+服务，广播Intent.ACTION_CLOSE_SYSTEM_DIALOGS 可以监听到Ho...]]></description><category></category></item><item><title><![CDATA[Asynctask踩坑]]></title><link>https://blog.youkuaiyun.com/cruelder/article/details/83382508</link><guid>https://blog.youkuaiyun.com/cruelder/article/details/83382508</guid><author>cruelder</author><pubDate>Sat, 27 Oct 2018 09:59:21 +0800</pubDate><description><![CDATA[原文地址：http://blog.youkuaiyun.com/zj510/article/details/51622597

AsyncTask作为一个优秀的封装，很多人都在用，可是我估计很多人并不清楚多个AsyncTask对象到底是串行执行的，还是并行执行的，如果是并行的，那么最多同时执行几个异步任务呢？

源码面前无秘密，我们看一下源代码就知道了。

这里以Android-23为例。

 

AyncT...]]></description><category></category></item><item><title><![CDATA[Android studio 生成签名问题]]></title><link>https://blog.youkuaiyun.com/cruelder/article/details/83382617</link><guid>https://blog.youkuaiyun.com/cruelder/article/details/83382617</guid><author>cruelder</author><pubDate>Sat, 27 Oct 2018 09:58:54 +0800</pubDate><description><![CDATA[问题现象：发布一个签名之后的应用。在模拟器和android 7.0真机运行没有问题，但是在android 5.0、5.1上面就是一直报错：

 



image.png

没错，就是INSTALL_FAILED_UPDATE_INCOMPATIBLE ,不兼容！！！

问题定位：
INSTALL_FAILED_UPDATE_INCOMPATIBLE 问题无非以下几个方面定位：
1、SDK的使用版...]]></description><category></category></item><item><title><![CDATA[android 扫描枪的坑]]></title><link>https://blog.youkuaiyun.com/cruelder/article/details/83382634</link><guid>https://blog.youkuaiyun.com/cruelder/article/details/83382634</guid><author>cruelder</author><pubDate>Sat, 27 Oct 2018 09:58:27 +0800</pubDate><description><![CDATA[扫描枪蓝牙连接或者断开的时候，会导致当前所在的activity  onDestroy -&amp;gt; onCreate

即activity被销毁又重建，类似屏幕旋转导致activity重建

解决办法： 在xml中配置：android:configChanges=&quot;orientation|keyboard|keyboardHidden&quot;

然后在activity中重写onConfigurationC...]]></description><category></category></item><item><title><![CDATA[Android createWindowSurface failed EGL_BAD_ALLOC 引起Crash的解决方案]]></title><link>https://blog.youkuaiyun.com/cruelder/article/details/83382545</link><guid>https://blog.youkuaiyun.com/cruelder/article/details/83382545</guid><author>cruelder</author><pubDate>Fri, 26 Oct 2018 09:49:55 +0800</pubDate><description><![CDATA[这是报错日志：java.lang.RuntimeException: createWindowSurface failed EGL_BAD_ALLOC

at android.view.HardwareRenderer$GlRenderer.createSurface(HardwareRenderer.java:1406)

at android.view.HardwareRenderer$GlR...]]></description><category></category></item><item><title><![CDATA[android用okhttp的坑之java.io.IOException: unexpected end of stream on okhttp3.Address@178de5cc]]></title><link>https://blog.youkuaiyun.com/cruelder/article/details/83382382</link><guid>https://blog.youkuaiyun.com/cruelder/article/details/83382382</guid><author>cruelder</author><pubDate>Fri, 26 Oct 2018 09:49:32 +0800</pubDate><description><![CDATA[在使用Okhttp的过程中频繁的发起Http请求时偶尔会看到如下的错误

ERROR [IOException]-[120]

java.io.IOException: unexpected end of stream on okhttp3.Address@178de5cc

at okhttp3.internal.http.Http1xStream.readResponse(Http1xStre...]]></description><category></category></item><item><title><![CDATA[手写RecyclerView万能适配器]]></title><link>https://blog.youkuaiyun.com/cruelder/article/details/83382768</link><guid>https://blog.youkuaiyun.com/cruelder/article/details/83382768</guid><author>cruelder</author><pubDate>Fri, 26 Oct 2018 09:49:16 +0800</pubDate><description><![CDATA[适配器，大家都知道，不多说，直接上代码：

package com.cn.happiness.mvplib.baseadpter;

import android.content.Context;

import android.support.v7.widget.RecyclerView;

import android.view.LayoutInflater;

import android....]]></description><category></category></item><item><title><![CDATA[Volley源码介绍最全的一篇]]></title><link>https://blog.youkuaiyun.com/cruelder/article/details/83382710</link><guid>https://blog.youkuaiyun.com/cruelder/article/details/83382710</guid><author>cruelder</author><pubDate>Fri, 26 Oct 2018 09:48:52 +0800</pubDate><description><![CDATA[1. 功能介绍

1.1. Volley

Volley 是 Google 推出的 Android 异步网络请求框架和图片加载框架。在 Google I/O 2013 大会上发布。

名字由来：a burst or emission of many things or a large amount at once

发布演讲时候的配图



从名字由来和配图中无数急促的火箭可以看出 Volley ...]]></description><category></category></item><item><title><![CDATA[手写Fragment万能通信框架]]></title><link>https://blog.youkuaiyun.com/cruelder/article/details/83382793</link><guid>https://blog.youkuaiyun.com/cruelder/article/details/83382793</guid><author>cruelder</author><pubDate>Fri, 26 Oct 2018 09:47:52 +0800</pubDate><description><![CDATA[android自3.0之后引入fragment之后，在开发项目的应用中，非常广泛，尤其是大项目。fragment相对activity，最大的好处就是轻，可以减少性能消耗，可扩展性也大大的增强。然后，它毕竟是依附于activity，那么，就不得不于activity互相通信。接下来，我简单的列举一下常用fragment通信的方式以及优势和缺点。

1、handler

优点：可以使用，代码简单。

缺...]]></description><category></category></item><item><title><![CDATA[Picasso 、Glide、Fresco图片加载框架比较]]></title><link>https://blog.youkuaiyun.com/cruelder/article/details/83382817</link><guid>https://blog.youkuaiyun.com/cruelder/article/details/83382817</guid><author>cruelder</author><pubDate>Fri, 26 Oct 2018 09:47:09 +0800</pubDate><description><![CDATA[Picasso   

发布时间:2013年5月

是否支持gif:false

是否支持webPtrue:ture

加载速度:中

开发者 ：Square主导

max java heap：6.8MB

max native heap：18.2MB

缓存：无”本地缓存，不是说没有本地缓存，而是 Picasso 自己没有实现，交给了 Square 的另外一个网络库 okhttp 去实现，这样的...]]></description><category></category></item><item><title><![CDATA[SVG向前兼容问题]]></title><link>https://blog.youkuaiyun.com/cruelder/article/details/83382860</link><guid>https://blog.youkuaiyun.com/cruelder/article/details/83382860</guid><author>cruelder</author><pubDate>Fri, 26 Oct 2018 09:46:53 +0800</pubDate><description><![CDATA[android 5.0 提供了很多特性，矢量动画就是其中之一，但是对于5.0之前的版本需要做兼容，否则会crash。

首先，需要在gradle 中加上：

compile'com.android.support:support-vector-drawable:25.0.1'

defaultConfig

{ vectorDrawables.useSupportLibrary=true}

Ac...]]></description><category></category></item><item><title><![CDATA[浅谈 Android 中的热修复、插件化、模块化开发的区别]]></title><link>https://blog.youkuaiyun.com/cruelder/article/details/83382292</link><guid>https://blog.youkuaiyun.com/cruelder/article/details/83382292</guid><author>cruelder</author><pubDate>Fri, 26 Oct 2018 09:46:42 +0800</pubDate><description><![CDATA[随着移动应用（app）业务的扩展，原来传统的开发模式渐渐的无法满足现实需求，因此暴露出诸多问题，如65535问题、anroid stduio编译过慢的问题、应用修复成本过高等等..
在2015年，终于爆发一场热修复的技术革命，各大公司分别推出解决方案：以阿里的andfix、腾讯的tinker、360的droidplugin为代表纷纷入场，当然，他们的出发点都是针对自己旗下的产品而设计，因此，也是各...]]></description><category></category></item><item><title><![CDATA[vue,angular,react数据双向绑定原理分析]]></title><link>https://blog.youkuaiyun.com/cruelder/article/details/83382206</link><guid>https://blog.youkuaiyun.com/cruelder/article/details/83382206</guid><author>cruelder</author><pubDate>Fri, 26 Oct 2018 09:46:02 +0800</pubDate><description><![CDATA[数据双向绑定的定义
当我们在前端开发中采用MVVM的模式时，M - model，指的是模型，也就是数据，V - view，指的是视图，也就是页面展现的部分。通常，我们需要编写代码，将从服务器获取的数据进行“渲染”，展现到视图上。每当数据有变更时，我们会再次进行渲染，从而更新视图，使得视图与数据保持一致。
AngularJS:
采用“脏值检测”的方式，数据发生变更后，对于所有的数据和视图的绑定关系进...]]></description><category></category></item><item><title><![CDATA[Bitmap的优化策略]]></title><link>https://blog.youkuaiyun.com/cruelder/article/details/83382930</link><guid>https://blog.youkuaiyun.com/cruelder/article/details/83382930</guid><author>cruelder</author><pubDate>Fri, 26 Oct 2018 09:45:30 +0800</pubDate><description><![CDATA[思路： 

1、BitmapConfig的配置 

2、使用decodeFile、decodeResource、decodeStream进行解析Bitmap时，配置inDensity和inTargetDensity，两者应该相等,值可以等于屏幕像素密度*0.75f 

3、使用inJustDecodeBounds预判断Bitmap的大小及使用inSampleSize进行压缩 

4、对Densit...]]></description><category></category></item><item><title><![CDATA[HTTP2.0特性]]></title><link>https://blog.youkuaiyun.com/cruelder/article/details/83382174</link><guid>https://blog.youkuaiyun.com/cruelder/article/details/83382174</guid><author>cruelder</author><pubDate>Thu, 25 Oct 2018 16:44:33 +0800</pubDate><description><![CDATA[一、多路复用的单一长连接

1.单一长连接

在HTTP/2中，客户端向某个域名的服务器请求页面的过程中，只会创建一条TCP连接，即使这页面可能包含上百个资源。  单一的连接应该是HTTP2的主要优势，单一的连接能减少TCP握手带来的时延 。HTTP2中用一条单一的长连接，避免了创建多个TCP连接带来的网络开销，提高了吞吐量。

2.多路复用

HTTP2虽然只有一条TCP连接，但是在逻辑上分成了...]]></description><category></category></item></channel></rss>