<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Two212250511的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Two212250511</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Two212250511]]></copyright><item><title><![CDATA[Flutter状态管理学习手册(三)——Bloc]]></title><link>https://blog.youkuaiyun.com/Two212250511/article/details/89762294</link><guid>https://blog.youkuaiyun.com/Two212250511/article/details/89762294</guid><author>Two212250511</author><pubDate>Thu, 02 May 2019 16:12:47 +0800</pubDate><description><![CDATA[一、Bloc 介绍

Bloc 的名字比较新颖，这个状态管理框架的目的是将 UI 层和业务逻辑进行分离。Bloc 的复杂度处于 ScopedModel 和 Redux 之间，相较于 ScopedModel，Bloc 拥有分明的架构处于业务逻辑，相较于 Redux，Bloc 着重于业务逻辑的分解，使得整个框架对于开发来讲简单实用。

二、Bloc 的层次结构

Bloc 分为三层：

Data La...]]></description><category></category></item><item><title><![CDATA[Flutter状态管理学习手册(二)——Redux]]></title><link>https://blog.youkuaiyun.com/Two212250511/article/details/89022513</link><guid>https://blog.youkuaiyun.com/Two212250511/article/details/89022513</guid><author>Two212250511</author><pubDate>Thu, 04 Apr 2019 14:49:50 +0800</pubDate><description><![CDATA[上一篇讲到了一个简单的状态管理架构——ScopedModel, 当然，这种简单的架构会用在商业项目中的概率比较小，本篇则讲述另一个架构： Redux ，一个优雅且实用的状态管理框架。本篇 Demo 地址：https://github.com/windinwork/flutter_redux_app


一、Redux 的准备工作

Redux 的概念源于 React，对于不是从事前端工作或者...]]></description><category></category></item><item><title><![CDATA[Flutter状态管理学习手册(一)——ScopedModel]]></title><link>https://blog.youkuaiyun.com/Two212250511/article/details/88972591</link><guid>https://blog.youkuaiyun.com/Two212250511/article/details/88972591</guid><author>Two212250511</author><pubDate>Tue, 02 Apr 2019 15:12:40 +0800</pubDate><description><![CDATA[一、ScopedModel简介

ScopedModel属于入门级别的状态管理框架，它的思想比较简单，参考官方文档便可以很容易理解其中构架。

在Flutter中Lifting state up(状态提升)是十分必要的，状态提升可以理解为把组件之间相互共享的状态提取出来放在一个较高层级中管理的一种思想。ScopedModel提供了对于这种状态管理的便利。

二、ScopedModel中的三个概念
...]]></description><category></category></item><item><title><![CDATA[使用Gradle编写蒲公英自动上传安装包和更新说明脚本]]></title><link>https://blog.youkuaiyun.com/Two212250511/article/details/84372697</link><guid>https://blog.youkuaiyun.com/Two212250511/article/details/84372697</guid><author>Two212250511</author><pubDate>Fri, 23 Nov 2018 09:50:44 +0800</pubDate><description><![CDATA[
Github: github.com/windinwork/…


平时测试中发包的时候，笔者在打完包就直接拖到蒲公英上让它上传就完事了。不过前两天的会议上，测试小姐姐提出要在蒲公英上写明这次的测试包修改了什么内容。

笔者一想到上传完包还要一个个打字说明在这个包我修改了什么，立即强烈拒绝！但是测试小姐姐再三要求，碍于这确实是个好提议和会上坐着的老大，只好勉为其难地答应发包时写上改动内容T_T。...]]></description><category></category></item><item><title><![CDATA[美团多渠道打包工具Walle源码解析]]></title><link>https://blog.youkuaiyun.com/Two212250511/article/details/83934028</link><guid>https://blog.youkuaiyun.com/Two212250511/article/details/83934028</guid><author>Two212250511</author><pubDate>Sat, 10 Nov 2018 22:34:41 +0800</pubDate><description><![CDATA[
笔者现在在负责一个新的Android项目，前期功能不太复杂，安装包的体积小，渠道要求也较少，所以打渠道包使用Android Studio自带的打包方法。原生方法打渠道包大约八分钟左右就搞定了，顺便可以悠闲地享受一下这种打包方式的乐趣。但是，随着重的功能的加入和渠道的增加，原生方法打渠道包就显示有点慢了，所以集成了美团的多渠道打包工具Walle，顺便看了一下里面的实现原理。


一、概述

这一次...]]></description><category></category></item><item><title><![CDATA[子弹短信没有附近的人？教你子弹短信开启附近锤友]]></title><link>https://blog.youkuaiyun.com/Two212250511/article/details/82215270</link><guid>https://blog.youkuaiyun.com/Two212250511/article/details/82215270</guid><author>Two212250511</author><pubDate>Thu, 30 Aug 2018 07:45:03 +0800</pubDate><description><![CDATA[ 

转载请标明出处https://blog.youkuaiyun.com/Two212250511/article/details/82215270


子弹短信这款软件现在十分流行，新颖的界面友好的交互吸引了大量的新用户。但是，听说子弹短信还有“发现锤友”这一好玩的功能，但是很多小伙伴们没发现有这个功能，今天小编带你用另类的方法让附近锤友这个功能显示出来。


一、为什么没有发现锤友功能

目前发现锤友的...]]></description><category></category></item><item><title><![CDATA[非侵入式无权限应用内悬浮窗的实现]]></title><link>https://blog.youkuaiyun.com/Two212250511/article/details/81623521</link><guid>https://blog.youkuaiyun.com/Two212250511/article/details/81623521</guid><author>Two212250511</author><pubDate>Mon, 13 Aug 2018 08:11:20 +0800</pubDate><description><![CDATA[前言


一般的悬浮窗实现方式，需要申请权限，并还是要对部分机型进行适配才能正常显示。那么这里，我们换一种思路，实现一个不一样的悬浮窗。


一、应用内悬浮窗实现思路

通常的悬浮窗是通过WindowManager直接添加的，在不同的Android系统上需要做不同的适配，在Android6.0以上的机型上，还需要引导用户跳转到设置界面手动开启悬浮窗权限。虽然这样实现悬浮窗有完整的解决方案，但是开启...]]></description><category></category></item><item><title><![CDATA[JockeyJS——优秀的WebView与JS交互开源库使用和解析]]></title><link>https://blog.youkuaiyun.com/Two212250511/article/details/80954769</link><guid>https://blog.youkuaiyun.com/Two212250511/article/details/80954769</guid><author>Two212250511</author><pubDate>Sat, 07 Jul 2018 21:10:00 +0800</pubDate><description><![CDATA[前言在Android上，对于JS交互，往往是通过系统原生提供的@JavascriptInterface这种方式进行交互的，而本人在项目的应该也是使用这种方式。最近听朋友提到一个库——JockeyJS，封装了JS交互逻辑，通过少量的接口让开发者只需要关注Java和JS之间的方法调用。我对它避开@JavascriptInterface的实现比较感兴趣，后来发现JockeyJS有于Java和JS之间的方...]]></description><category></category></item><item><title><![CDATA[关于安桌开发drawable下分置不同分辨率的图片资源]]></title><link>https://blog.youkuaiyun.com/Two212250511/article/details/52096392</link><guid>https://blog.youkuaiyun.com/Two212250511/article/details/52096392</guid><author>Two212250511</author><pubDate>Tue, 02 Aug 2016 17:48:15 +0800</pubDate><description><![CDATA[这几天对GitHub上开源的一个ViewPager控件感兴趣，自己试图写一个相同功能的Viewpager控件，在模拟器上运行发现页面切换的速度GitHub上的控件比自己写的明显流畅得多，对此疑惑。在多次比较功能代码无所发现后，考虑到是不是从那个开源项目中拷贝过来的资源文件问题。为什么省功夫，我把本来放在drawable-xhdpi文件夹下的图片资源直接复制到drawable下，当我将资源文件重新移]]></description><category></category></item><item><title><![CDATA[Java变量初始化顺序总结]]></title><link>https://blog.youkuaiyun.com/Two212250511/article/details/50995535</link><guid>https://blog.youkuaiyun.com/Two212250511/article/details/50995535</guid><author>Two212250511</author><pubDate>Mon, 28 Mar 2016 09:36:27 +0800</pubDate><description><![CDATA[1、静态成员变量
2、父类中是抽象实现方法
3、普通成员变量]]></description><category></category></item><item><title><![CDATA[(转）关于百度地图和高德地图，关于地图坐标系]]></title><link>https://blog.youkuaiyun.com/Two212250511/article/details/50995487</link><guid>https://blog.youkuaiyun.com/Two212250511/article/details/50995487</guid><author>Two212250511</author><pubDate>Mon, 28 Mar 2016 09:29:05 +0800</pubDate><description><![CDATA[原文作者： 深白Andy 
原文地址： http://my.eoe.cn/gueryue/archive/15390.html 

众所周知地球是一个不规则椭圆体，GIS中的坐标系定义由基准面和地图投影两组参数确定，而基准面的定义则由特定椭球体及其对应的转换参数确定。 基准面是利用特定椭球体对特定地区地球表面的逼近，因此每个国家或地区均有各自的基准面。基准面是在椭球体基础上建立的，椭球体可以]]></description><category></category></item><item><title><![CDATA[设计模式用例]]></title><link>https://blog.youkuaiyun.com/Two212250511/article/details/50593128</link><guid>https://blog.youkuaiyun.com/Two212250511/article/details/50593128</guid><author>Two212250511</author><pubDate>Wed, 27 Jan 2016 11:44:51 +0800</pubDate><description><![CDATA[场景：多个应用有不同的多版本百度SDK，为封装一层通用的业务库，对其进行业务封装时进行统一的接口封闭，将不同版本的具体应用实现封装在接口的具体实现类中。
可用Factory模式获取不同的具体实现类]]></description><category></category></item><item><title><![CDATA[java类的成员初始化顺序和初始化块知识]]></title><link>https://blog.youkuaiyun.com/Two212250511/article/details/50580180</link><guid>https://blog.youkuaiyun.com/Two212250511/article/details/50580180</guid><author>Two212250511</author><pubDate>Mon, 25 Jan 2016 14:58:31 +0800</pubDate><description><![CDATA[属性、方法、构造方法和自由块都是类中的成员，在创建类的对象时，类中各成员的执行顺序：
1.父类静态成员和静态初始化快，按在代码中出现的顺序依次执行。
2.子类静态成员和静态初始化块，按在代码中出现的顺序依次执行。
3. 父类的实例成员和实例初始化块，按在代码中出现的顺序依次执行。
4.执行父类的构造方法。
5.子类实例成员和实例初始化块，按在代码中出现的顺序依次执行。
6.执行子类的构]]></description><category></category></item><item><title><![CDATA[开源控件库]]></title><link>https://blog.youkuaiyun.com/Two212250511/article/details/50580034</link><guid>https://blog.youkuaiyun.com/Two212250511/article/details/50580034</guid><author>Two212250511</author><pubDate>Mon, 25 Jan 2016 14:43:00 +0800</pubDate><description><![CDATA[pengjianbo/GalleryFinal
Android自定义相册，实现了拍照、图片选择（单选/多选）、 裁剪（单/多裁剪）、旋转、ImageLoader无绑定任由开发者选
 择、功能可配置、主题样式可配置。GalleryFinal为你定制相册。]]></description><category></category></item><item><title><![CDATA[Android RecyclerView 使用完全解析 体验艺术般的控件]]></title><link>https://blog.youkuaiyun.com/Two212250511/article/details/50569021</link><guid>https://blog.youkuaiyun.com/Two212250511/article/details/50569021</guid><author>Two212250511</author><pubDate>Sat, 23 Jan 2016 11:08:55 +0800</pubDate><description><![CDATA[Android RecyclerView 使用完全解析 体验艺术般的控件


标签： Recyclerviewpager瀑布流
2015-04-16 09:07 123513人阅读 评论(158) 收藏 举报



 分类：

【Android 5.x】（7） 



版权声明：本文为博主原创文章，未经博主允许不得转载。




目录(?)[+]


]]></description><category></category></item><item><title><![CDATA[Handler消息处理机制]]></title><link>https://blog.youkuaiyun.com/Two212250511/article/details/50568969</link><guid>https://blog.youkuaiyun.com/Two212250511/article/details/50568969</guid><author>Two212250511</author><pubDate>Sat, 23 Jan 2016 10:55:52 +0800</pubDate><description><![CDATA[Android消息处理机制(Handler、Looper、MessageQueue与Message)




Android是消息驱动的，实现消息驱动有几个要素：

消息的表示：Message消息队列：MessageQueue消息循环，用于循环取出消息进行处理：Looper消息处理，消息循环从消息队列中取出消息后要对消息进行处理：Handler

平时我们最常使用的就是Messa]]></description><category></category></item><item><title><![CDATA[Android ANR]]></title><link>https://blog.youkuaiyun.com/Two212250511/article/details/50564968</link><guid>https://blog.youkuaiyun.com/Two212250511/article/details/50564968</guid><author>Two212250511</author><pubDate>Fri, 22 Jan 2016 23:14:09 +0800</pubDate><description><![CDATA[ANR: Application not responding。在Android里，应用程序的响应性是由Activity Manager和WindowManager系统服务监视的 。当它监测到以下情况中的一个时，Android就会针对特定的应用程序显示ANR：
1.在5秒内没有响应输入的事件（例如，按键按下，屏幕触摸）
2.BroadcastReceiver在10秒内没有执行完毕


]]></description><category></category></item><item><title><![CDATA[Activity生命周期详解]]></title><link>https://blog.youkuaiyun.com/Two212250511/article/details/50564912</link><guid>https://blog.youkuaiyun.com/Two212250511/article/details/50564912</guid><author>Two212250511</author><pubDate>Fri, 22 Jan 2016 22:52:55 +0800</pubDate><description><![CDATA[子曰：溫故而知新，可以為師矣。《論語》

学习技术也一样，对于技术文档或者经典的技术书籍来说，指望看一遍就完全掌握，那基本不大可能，所以我们需要经常回过头再仔细研读几遍，以领悟到作者的思想精髓。

近来回顾了一下关于Activity的生命周期，参看了相关书籍和官方文档，也有了不小的收获，对于以前的认知有了很大程度上的改善，在这里和大家分享一下。

熟悉javaEE的朋友们都了解serv]]></description><category></category></item><item><title><![CDATA[关于4.X系统使用安卓5.0Material风格AlertDialog全屏问题]]></title><link>https://blog.youkuaiyun.com/Two212250511/article/details/50411523</link><guid>https://blog.youkuaiyun.com/Two212250511/article/details/50411523</guid><author>Two212250511</author><pubDate>Sun, 27 Dec 2015 10:36:42 +0800</pubDate><description><![CDATA[鉴于安卓5.0以上采用的Material风格的AlertDialog对话框相比安卓5.0以下的对话框美观很多，我在开发中统一使用该风格的AlertDialog，为兼容Android4.X的系统，需要android.support.v7兼容包。
一开始我所写的代码是：android.support.v7.app.AlertDialog.Builder builder = new AlertDial]]></description><category></category></item><item><title><![CDATA[守护Android的Service后台服务]]></title><link>https://blog.youkuaiyun.com/Two212250511/article/details/50359671</link><guid>https://blog.youkuaiyun.com/Two212250511/article/details/50359671</guid><author>Two212250511</author><pubDate>Sat, 19 Dec 2015 21:15:13 +0800</pubDate><description><![CDATA[在应用开发中，我们难免会遇到要使Android应用的后台进程能够长期存活运行的需求，但由于安卓的特性和国内ROM定制厂商强力的一键清理功能，使得Android应用在切到后台一段时间后，就会被系统清理掉。下面整理出本人在Android开发中学习到的Service进程守护方法：
1、提高Service优先级
这是一种尊重Android原生系统设定的做法，通过Android系统本身提供的API和参数]]></description><category></category></item></channel></rss>