<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[birdfly12345的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/birdfly12345</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; birdfly12345]]></copyright><item><title><![CDATA[正式和测试环境之间切换]]></title><link>https://blog.youkuaiyun.com/birdfly12345/article/details/83096837</link><guid>https://blog.youkuaiyun.com/birdfly12345/article/details/83096837</guid><author>birdfly12345</author><pubDate>Tue, 16 Oct 2018 20:21:39 +0800</pubDate><description><![CDATA[工具类如下:
package com.websocket.demo;

import android.content.Context;

import java.io.File;
import java.io.IOException;
import java.lang.ref.SoftReference;

/**
 * Author:chenp
 * Time : 2018/10/16
 * D...]]></description><category></category></item><item><title><![CDATA[Rxjava分析]]></title><link>https://blog.youkuaiyun.com/birdfly12345/article/details/80583282</link><guid>https://blog.youkuaiyun.com/birdfly12345/article/details/80583282</guid><author>birdfly12345</author><pubDate>Tue, 05 Jun 2018 16:29:15 +0800</pubDate><description><![CDATA[

1111]]></description><category></category></item><item><title><![CDATA[Activity启动流程分析]]></title><link>https://blog.youkuaiyun.com/birdfly12345/article/details/80583271</link><guid>https://blog.youkuaiyun.com/birdfly12345/article/details/80583271</guid><author>birdfly12345</author><pubDate>Tue, 05 Jun 2018 16:28:41 +0800</pubDate><description><![CDATA[

1111]]></description><category></category></item><item><title><![CDATA[Activity、View和Window之间的关系]]></title><link>https://blog.youkuaiyun.com/birdfly12345/article/details/80583245</link><guid>https://blog.youkuaiyun.com/birdfly12345/article/details/80583245</guid><author>birdfly12345</author><pubDate>Tue, 05 Jun 2018 16:27:42 +0800</pubDate><description><![CDATA[

111]]></description><category></category></item><item><title><![CDATA[Android网络知识点总结]]></title><link>https://blog.youkuaiyun.com/birdfly12345/article/details/80582869</link><guid>https://blog.youkuaiyun.com/birdfly12345/article/details/80582869</guid><author>birdfly12345</author><pubDate>Tue, 05 Jun 2018 16:09:07 +0800</pubDate><description><![CDATA[TCP协议中的三次握手和四次挥手(图解) http://blog.youkuaiyun.com/whuslei/article/details/6667471/

数据加密算法详解 
 https://mp.weixin.qq.com/s/-Jb-_PpbEN5HYpueUqtxzA 
对称加密方案学习 DES / 3DES / AES 
 https://mp.weixin.qq.com/s/wmBqL2P...]]></description><category></category></item><item><title><![CDATA[Okhttp源码分析]]></title><link>https://blog.youkuaiyun.com/birdfly12345/article/details/80582847</link><guid>https://blog.youkuaiyun.com/birdfly12345/article/details/80582847</guid><author>birdfly12345</author><pubDate>Tue, 05 Jun 2018 16:07:26 +0800</pubDate><description><![CDATA[一个简单的请求过程: 
 OkHttpClient client = new OkHttpClient(); 
                    Request request = new Request.Builder().url(“https://www.baidu.com/“).build(); 
                    Response response = clie...]]></description><category></category></item><item><title><![CDATA[Android源码设计模式解析与实战]]></title><link>https://blog.youkuaiyun.com/birdfly12345/article/details/80580953</link><guid>https://blog.youkuaiyun.com/birdfly12345/article/details/80580953</guid><author>birdfly12345</author><pubDate>Tue, 05 Jun 2018 14:32:19 +0800</pubDate><description><![CDATA[1.单一职责原则。    这个其实有很深的学问。什么样子的功能需要单独封装成一个类。  而且这个类还要适应拓展，拓展之后不至于太臃肿。 
//这个就需要很大的技巧。     就比如说，最近开发的 一键回家、电子狗功能的疲劳提醒，都是封装到一个类里面，外面只需要调用一个方法 
//但是自己的整体架构还不行。

2.开闭原则—-对拓展开发，对修改关闭。...]]></description><category></category></item><item><title><![CDATA[LayoutInflater源码分析与应用]]></title><link>https://blog.youkuaiyun.com/birdfly12345/article/details/80580938</link><guid>https://blog.youkuaiyun.com/birdfly12345/article/details/80580938</guid><author>birdfly12345</author><pubDate>Tue, 05 Jun 2018 14:31:20 +0800</pubDate><description><![CDATA[LayoutInflater源码分析与应用:http://www.jianshu.com/p/de7f651170be

1.LayoutInflater.from(mContext).inflate(R.layout.recyler_view_item, parent, false) 
这句话的意思是，指定一个parent，但是创建的布局，又不添加到parent中

这样LayoutParams...]]></description><category></category></item><item><title><![CDATA[Service中startActivity分析]]></title><link>https://blog.youkuaiyun.com/birdfly12345/article/details/80580866</link><guid>https://blog.youkuaiyun.com/birdfly12345/article/details/80580866</guid><author>birdfly12345</author><pubDate>Tue, 05 Jun 2018 14:26:18 +0800</pubDate><description><![CDATA[

111]]></description><category></category></item><item><title><![CDATA[工作总结知识点]]></title><link>https://blog.youkuaiyun.com/birdfly12345/article/details/80580272</link><guid>https://blog.youkuaiyun.com/birdfly12345/article/details/80580272</guid><author>birdfly12345</author><pubDate>Tue, 05 Jun 2018 13:49:18 +0800</pubDate><description><![CDATA[今天开发对讲功能，因为init调用了多次导致失败。但是对方一眼就看出是调用了多次init的原因。特此记录。

adb shell dumpsys activity services grep -nir “ImService”查看，调用多次的日志为:

C:\Users\Administrator&amp;amp;amp;amp;amp;amp;gt;adb shell dumpsys activity services grep -nir &amp;amp;amp;amp;amp;quot;I...]]></description><category></category></item><item><title><![CDATA[文章索引以及链接]]></title><link>https://blog.youkuaiyun.com/birdfly12345/article/details/80090031</link><guid>https://blog.youkuaiyun.com/birdfly12345/article/details/80090031</guid><author>birdfly12345</author><pubDate>Thu, 26 Apr 2018 10:16:56 +0800</pubDate><description><![CDATA[个人博客:



网络优秀链接

1.自动升级: 
http://blog.youkuaiyun.com/jj120522/article/details/7948554 
主要是本地版本号和服务版本号对比，然后弹框确定之后，下载APP然后进行安装。

2.每个Activity中加入引导界面 
http://www.cnblogs.com/Amandaliu/archive/2012/12/03/279965...]]></description><category></category></item><item><title><![CDATA[腾讯云视频加密]]></title><link>https://blog.youkuaiyun.com/birdfly12345/article/details/79628242</link><guid>https://blog.youkuaiyun.com/birdfly12345/article/details/79628242</guid><author>birdfly12345</author><pubDate>Tue, 20 Mar 2018 16:55:26 +0800</pubDate><description><![CDATA[采用腾讯云的视频加密服务，整个流程如下

1、通过腾讯云后台进行视频的上传，然后自动转码、加密，APP后台就可以获取到单个视频的播放地址、fileid 
2、APP获取到播放地址，里面包含filleid，然后再点击播放的时候，通过接口去获取token，然后和播放地址进行拼接，然后丢给播放器 
3、播放器回去根据播放地址去下载m3u8文件，其中m3u8文件中的EXT-X-KEY标签有一个地址，通过这...]]></description><category></category></item><item><title><![CDATA[Android软键盘弹出]]></title><link>https://blog.youkuaiyun.com/birdfly12345/article/details/71403568</link><guid>https://blog.youkuaiyun.com/birdfly12345/article/details/71403568</guid><author>birdfly12345</author><pubDate>Mon, 08 May 2017 10:10:25 +0800</pubDate><description><![CDATA[一、先看在沉浸式模式中，什么都不处理的。只是添加2个EditText    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="300dp"
        android:hint="请]]></description><category></category></item><item><title><![CDATA[Android运行时权限]]></title><link>https://blog.youkuaiyun.com/birdfly12345/article/details/71389837</link><guid>https://blog.youkuaiyun.com/birdfly12345/article/details/71389837</guid><author>birdfly12345</author><pubDate>Mon, 08 May 2017 00:52:04 +0800</pubDate><description><![CDATA[正确的书写方式，以拨打电话为例:首先在Manifest.xml中声明权限:<uses-permission android:name="android.permission.CALL_PHONE" />然后要在代码中判断有没有权限。    private void call() {//有权限，拨打电话
        try {
            Intent callIntent = new]]></description><category></category></item><item><title><![CDATA[Volley学习]]></title><link>https://blog.youkuaiyun.com/birdfly12345/article/details/70160461</link><guid>https://blog.youkuaiyun.com/birdfly12345/article/details/70160461</guid><author>birdfly12345</author><pubDate>Thu, 13 Apr 2017 17:52:39 +0800</pubDate><description><![CDATA[任何网络框架都是想通的，所以研究一个，其他的都类似。 请求网络有异常捕获以及超时处理。  本文主要是，Volley的超时设置以及异常回调流程。DefaultRetryPolicy类实现了RetryPolicy的接口，里面有2个变量。mCurrentTimeoutMs和mCurrentRetryCount，分别控制超时时间和异常之后重新retry的次数。一:超时时间Volley有2个类，一个是Http]]></description><category></category></item><item><title><![CDATA[APK反编译]]></title><link>https://blog.youkuaiyun.com/birdfly12345/article/details/52712094</link><guid>https://blog.youkuaiyun.com/birdfly12345/article/details/52712094</guid><author>birdfly12345</author><pubDate>Fri, 30 Sep 2016 16:15:31 +0800</pubDate><description><![CDATA[一.反编译代码 
1.解压dex2jar-0.0.9.15.zip文件，然后用cmd命令跳转到所在目录下面 
2.通过压缩软件解压缩APK文件，把解压之后的classes.dex文件发到dex2jar的文件夹下面 
3.通过cmd执行命令:dex2jar.bat classes.dex。   之后会生成一个classes_dex2jar.jar包(就是要这个包) 
4.通过jd-gui打开刚刚生成的]]></description><category></category></item><item><title><![CDATA[android keystore]]></title><link>https://blog.youkuaiyun.com/birdfly12345/article/details/52710120</link><guid>https://blog.youkuaiyun.com/birdfly12345/article/details/52710120</guid><author>birdfly12345</author><pubDate>Fri, 30 Sep 2016 11:17:43 +0800</pubDate><description><![CDATA[1.生成方式]]></description><category></category></item><item><title><![CDATA[butterknife绑定之后view依然为空]]></title><link>https://blog.youkuaiyun.com/birdfly12345/article/details/52536426</link><guid>https://blog.youkuaiyun.com/birdfly12345/article/details/52536426</guid><author>birdfly12345</author><pubDate>Wed, 14 Sep 2016 11:36:02 +0800</pubDate><description><![CDATA[要进行项目的设置，如下面截图所示]]></description><category></category></item><item><title><![CDATA[OkHttp3缓存没有生效]]></title><link>https://blog.youkuaiyun.com/birdfly12345/article/details/52515806</link><guid>https://blog.youkuaiyun.com/birdfly12345/article/details/52515806</guid><author>birdfly12345</author><pubDate>Mon, 12 Sep 2016 18:09:35 +0800</pubDate><description><![CDATA[今天在调用OkHttp3的代码时候，发现缓存写入不进去。调用代码如下:public void getPostHttp() {
        try {
            File sdcache = getExternalCacheDir();
            int cacheSize = 10 * 1024 * 1024;// 10M            OkHttpClien]]></description><category></category></item><item><title><![CDATA[android图片压缩]]></title><link>https://blog.youkuaiyun.com/birdfly12345/article/details/52442481</link><guid>https://blog.youkuaiyun.com/birdfly12345/article/details/52442481</guid><author>birdfly12345</author><pubDate>Mon, 05 Sep 2016 18:15:40 +0800</pubDate><description><![CDATA[上传到服务器上的图片，要求不能太大，而且要相对清晰。采用策略:
先图片尺寸压缩，宽满足小于 960 or 高小于1200
再按照大小进行压缩，小于60KB
具体代码:public static void scaleImageFile(String path) {
        File file = new File(path);
        File tmpFile = new File(p]]></description><category></category></item></channel></rss>