<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[HelloLollipop的博客]]></title><description><![CDATA[Android开发/数码爱好者/互联网个人主观性分析]]></description><link>https://blog.youkuaiyun.com/HelloLollipop</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; HelloLollipop]]></copyright><item><title><![CDATA[Android开发需要了解的网络编程基础]]></title><link>https://blog.youkuaiyun.com/HelloLollipop/article/details/80745726</link><guid>https://blog.youkuaiyun.com/HelloLollipop/article/details/80745726</guid><author>HelloLollipop</author><pubDate>Wed, 20 Jun 2018 14:33:21 +0800</pubDate><description><![CDATA[一、概述

网络通信需要通过协议来完成，目前所使用的网络通信协议主要由两种模型体现。


因特网模型【五层】 
应用层 → 运输层 → 网络层 → 链路层 → 物理层
OSI/ISO模型【开放式系统互联 七层】 
应用层 → 表示层 → 会话层 → 运输层 → 网络层 → 链路层 → 物理层
简化五层 → TCP/IP模型【最常见 四层】 
应用层 → 运输层 → 网络层 → 网络接口层


二、...]]></description><category></category></item><item><title><![CDATA[高效管理你的Android项目 - Android项目架构分享]]></title><link>https://blog.youkuaiyun.com/HelloLollipop/article/details/79817487</link><guid>https://blog.youkuaiyun.com/HelloLollipop/article/details/79817487</guid><author>HelloLollipop</author><pubDate>Wed, 04 Apr 2018 15:25:06 +0800</pubDate><description><![CDATA[很久都没有写文章了。前段时间的项目紧急，忙完以后闲了一段时间，终于有空写写文章了。这篇文章主要是关于我整理项目结构的一些心得和分享，如果浏览者有更好的建议欢迎评论留言。]]></description><category></category></item><item><title><![CDATA[android资料集合整理]]></title><link>https://blog.youkuaiyun.com/HelloLollipop/article/details/78809233</link><guid>https://blog.youkuaiyun.com/HelloLollipop/article/details/78809233</guid><author>HelloLollipop</author><pubDate>Fri, 15 Dec 2017 09:09:03 +0800</pubDate><description><![CDATA[自定义ViewAndroid 从 0 开始自定义控件Android 从 0 开始自定义控件之 View 基础知识与概念（一）Android 从 0 开始自定义控件之 View 的滑动（二）Android 从 0 开始自定义控件之 View 的弹性滑动（三）android 从 0 开始自定义控件之 View 的滑动冲突详解（四）Android 从 0 开始自定义控件之 ViewRoot 与 Decor]]></description><category></category></item><item><title><![CDATA[首次启动APP的新功能指引蒙板的使用]]></title><link>https://blog.youkuaiyun.com/HelloLollipop/article/details/78809165</link><guid>https://blog.youkuaiyun.com/HelloLollipop/article/details/78809165</guid><author>HelloLollipop</author><pubDate>Fri, 15 Dec 2017 08:58:11 +0800</pubDate><description><![CDATA[一般来说很多APP在第一次安装启动后都会有个新手引导的过程，不过每家采用的方式不同。最近做到这块内容我就不再造轮子【其实是自己造不出来…】找到一个比较美观的新手引导层框架。
  TourGuide介绍
一个关于新手引导层的框架，界面较为美观，自定义属性也比较好。 
TourGuide框架
  使用
在build.gradle导入框架
repositories {
    mavenCentral()]]></description><category></category></item><item><title><![CDATA[判断系统是否安装某APP - 以高德地图为例]]></title><link>https://blog.youkuaiyun.com/HelloLollipop/article/details/78809163</link><guid>https://blog.youkuaiyun.com/HelloLollipop/article/details/78809163</guid><author>HelloLollipop</author><pubDate>Fri, 15 Dec 2017 08:57:25 +0800</pubDate><description><![CDATA[前言
近日在整合系统项目的时候有个小功能，就是跳转到百度地图或者高德地图。这块以后应该会有不少用到的地方，于是自己做了一些整理。闲话不说直接上代码。
  代码
因为只是一个小功能，所以代码量很少。工具类文件
public class SystemUtils {    private static SystemUtils systemUtils;    public static SystemUtil]]></description><category></category></item><item><title><![CDATA[安卓中如何给按钮添加点击音效]]></title><link>https://blog.youkuaiyun.com/HelloLollipop/article/details/78809157</link><guid>https://blog.youkuaiyun.com/HelloLollipop/article/details/78809157</guid><author>HelloLollipop</author><pubDate>Fri, 15 Dec 2017 08:55:51 +0800</pubDate><description><![CDATA[前言
有很多制作精良的APP都自带点击音效，那么如何简单的来实现这一效果，这里需要使用到的一个概念叫做SoundPool，这个类主要用于播放一些比较小的音频文件，因为比较方便，通常用在游戏里比较多。
  代码
闲话不多说，我们现在需要做一个功能，就是点击某一按钮的时候同时播放音效出来。首先准备好你的音频文件，然后，在你的rec下面简历一个文件夹命名为raw，放入音频文件，如图所示：然后布局文件只有一]]></description><category></category></item><item><title><![CDATA[安卓中带进度显示的图片上传]]></title><link>https://blog.youkuaiyun.com/HelloLollipop/article/details/78809152</link><guid>https://blog.youkuaiyun.com/HelloLollipop/article/details/78809152</guid><author>HelloLollipop</author><pubDate>Fri, 15 Dec 2017 08:55:18 +0800</pubDate><description><![CDATA[接上一篇：安卓选择图片上传功能 
在这篇文章的基础上继续打造带进度的图片上传功能。过程蛮复杂，在本文中将贴出大量代码。嫌字多不看的出门左转。另外在上一篇文章中问我要demo的同学们，待后期我上传github后贴出地址。
  前言 
在查阅了大量资料以后，现在首先对于上传文件主要有两种方式。 
- 把文件转换成字符串通过json格式上传【参考xutils3的post联网请求方式】 
- 直接封装成一个]]></description><category></category></item><item><title><![CDATA[安卓选择图片上传功能 - 支持多选拍照预览等]]></title><link>https://blog.youkuaiyun.com/HelloLollipop/article/details/78809147</link><guid>https://blog.youkuaiyun.com/HelloLollipop/article/details/78809147</guid><author>HelloLollipop</author><pubDate>Fri, 15 Dec 2017 08:54:39 +0800</pubDate><description><![CDATA[前言
在网上找了很多第三方的相册拍照框架，都不尽人意，最后终于找到了一个比较好的框架，并且集成到了自己的demo中，花了两天的时间吧感觉挺值的。老规矩不说废话，直接上代码。感谢某开源库的作者：Alum以及本文的案例地址：Demo_ChooseImg
  思路
 
先看目录，我尽可能的在自己力所能及的范围内，用最简单的方式和代码来实现。这里最重要的玩意儿是那个适配器。最下面的那个popupwindow]]></description><category></category></item><item><title><![CDATA[MVP入门Demo - 登陆逻辑]]></title><link>https://blog.youkuaiyun.com/HelloLollipop/article/details/78809142</link><guid>https://blog.youkuaiyun.com/HelloLollipop/article/details/78809142</guid><author>HelloLollipop</author><pubDate>Fri, 15 Dec 2017 08:53:59 +0800</pubDate><description><![CDATA[前言
本文适合MVP初学者，这东西可以说你一天不写就手生。初学的时候肯定要多多写写，用不同的场景模拟以下MVP的实现逻辑。如果看不懂的话就从我的MVC笔记→MVP笔记先过一遍，我不能保证一定能看懂，但是个人觉得多写写，只要逻辑思维不错的话入门还是比较快的。
  逻辑
用户输入用户名和密码点击登陆，然后按钮显示登录中，并针对各种情况作出提示。登陆成功则跳转到下一页面。老规矩先看分包：逻辑层次不明白的我]]></description><category></category></item><item><title><![CDATA[ListView与带EditText的item冲突问题]]></title><link>https://blog.youkuaiyun.com/HelloLollipop/article/details/78809138</link><guid>https://blog.youkuaiyun.com/HelloLollipop/article/details/78809138</guid><author>HelloLollipop</author><pubDate>Fri, 15 Dec 2017 08:53:14 +0800</pubDate><description><![CDATA[注意：在复用情况下冲突问题无法解决
网上所有的可能性与实现方式我都实验了一边，亲测当动态添加带有EditText的item时，如果使用了复用的方式，无论怎么处理ListView与EditText始终存在冲突。最后我的解决方式只有采用不复用的方式来处理，但滑动存在卡顿需要寻找其他实现方式，这里只是我比较蠢的一种解决方案。
  问题
出现的问题主要是，焦点与数据状态保存问题。
  分析
大家都知道，Li]]></description><category></category></item><item><title><![CDATA[从零开始学MVP架构 - 由更浅到浅]]></title><link>https://blog.youkuaiyun.com/HelloLollipop/article/details/78804980</link><guid>https://blog.youkuaiyun.com/HelloLollipop/article/details/78804980</guid><author>HelloLollipop</author><pubDate>Thu, 14 Dec 2017 17:15:18 +0800</pubDate><description><![CDATA[前言
首先如果你是一个半年以内的安卓初学者，如果你对逻辑思维的感受不够强烈的话，我不建议你立马接触MVP设计模式。为什么呢？因为我自己就是这波人里面的…尴尬个三秒钟，跳过。这种东西具体是什么呢？身边其实有很多类似的例子，如果非要举个例子，我个人感觉跟盖房子有那么一丢丢类似，但又不完全类似。以一个大型公司为例，它会分很多的部门，然后每个部门具有一定的职能，但其实很多公司的部门架构都是具有一定的相似性的]]></description><category></category></item><item><title><![CDATA[Android MVC 架构DEMO实例]]></title><link>https://blog.youkuaiyun.com/HelloLollipop/article/details/78804972</link><guid>https://blog.youkuaiyun.com/HelloLollipop/article/details/78804972</guid><author>HelloLollipop</author><pubDate>Thu, 14 Dec 2017 17:14:33 +0800</pubDate><description><![CDATA[前言
首先我要说明的是：我知道MVP已经成为主流，但是鉴于本人的思维还没能理解，打算先从标准MVC入手，然后转入MVP模式。过程其实还是很有趣的，最重要的事情是理解思想。
  思想
MVC其实是【model、view、controller】这三个词的简称，就算是把这几个直接翻译过来也不是很好理解。从view说起，view就是你眼睛看到的，手指摸到的那些东西，因为是一些可视化的东西所以起了这么个名字。]]></description><category></category></item><item><title><![CDATA[greenDao的基本使用]]></title><link>https://blog.youkuaiyun.com/HelloLollipop/article/details/78804960</link><guid>https://blog.youkuaiyun.com/HelloLollipop/article/details/78804960</guid><author>HelloLollipop</author><pubDate>Thu, 14 Dec 2017 17:13:50 +0800</pubDate><description><![CDATA[关于数据操作相关的库有不少，之前有写过用谷歌官方的一些工具类对数据库进行操作的demo，工程中需要使用greenDao来对数据库进行操作，因此写了个简单的demo，以及自己的一些理解。
  前言
Android中的数据库使用的是Sqlite，至于这个玩意到底什么，不需要详细分析。你只需要知道，这是一种简单小巧轻量级的数据库类型，便于对一些简单的数据进行管理即可。这里不对谷歌官方操作的相关代码进行演示]]></description><category></category></item><item><title><![CDATA[TabLayout/ViewPager/Fragment结合使用]]></title><link>https://blog.youkuaiyun.com/HelloLollipop/article/details/78804938</link><guid>https://blog.youkuaiyun.com/HelloLollipop/article/details/78804938</guid><author>HelloLollipop</author><pubDate>Thu, 14 Dec 2017 17:12:46 +0800</pubDate><description><![CDATA[前言
之前是写过这块的教程，但是没有写完。因为中途各种原因耽搁了，现在重新开一篇文章写写关于TabLayout的相关内容
  基本使用
这里不在赘述，关于基本使用实际上在项目开发中并不能经常见到。实际上，TabLayout的常见使用场景主要又两类： 
-  TabLayout + ViewPager 
-  TabLayout  + ViewPager + Fragment比较而言，第二种场景使用的]]></description><category></category></item><item><title><![CDATA[超简单方式教你打造原生侧滑菜单]]></title><link>https://blog.youkuaiyun.com/HelloLollipop/article/details/78804923</link><guid>https://blog.youkuaiyun.com/HelloLollipop/article/details/78804923</guid><author>HelloLollipop</author><pubDate>Thu, 14 Dec 2017 17:11:56 +0800</pubDate><description><![CDATA[然后你点击菜单可以更改图标，例如点击happy，首页就会变一个笑脸，这个实现的过程超级简单
  第一步：你需要使用ToolBar与DrawableLayout两个比较新的控件
首先要写三个xml布局文件，我这里的布局文件是使用了include标签嵌入的，代码如下 
- headbar_toolbar.xml<?xml version="1.0" encoding="utf-8"?>
<android]]></description><category></category></item><item><title><![CDATA[TabLayout的使用]]></title><link>https://blog.youkuaiyun.com/HelloLollipop/article/details/78804909</link><guid>https://blog.youkuaiyun.com/HelloLollipop/article/details/78804909</guid><author>HelloLollipop</author><pubDate>Thu, 14 Dec 2017 17:11:09 +0800</pubDate><description><![CDATA[到处找关于TabLayout的学习资料，有效的资料很少，可能是因为自身是新控件的原因吧，所以就自己花点时间多学下。这个控件一般不会单独存在，基本上所有的使用都要结合Fragment与ViewPager这两个控件来使用，我想我们还是由浅入深从最基本的显示入手。1 - TabLayout的最简单使用 
第一步导包：File→Project Structure…→找到你的Module→denpendenc]]></description><category></category></item><item><title><![CDATA[视频播放框架 - Vitamio的使用]]></title><link>https://blog.youkuaiyun.com/HelloLollipop/article/details/78804883</link><guid>https://blog.youkuaiyun.com/HelloLollipop/article/details/78804883</guid><author>HelloLollipop</author><pubDate>Thu, 14 Dec 2017 17:09:48 +0800</pubDate><description><![CDATA[前言：Vitamio的中文名称为维他蜜，是一款Android 平台上的全能多媒体开发框架。能够流畅播放720P甚至1080P高清MKV，FLV，MP4，MOV，TS，RMVB等常见格式的视频，还可以在 Android 上支持 MMS, RTSP, RTMP, HLS(m3u8) 等常见的多种视频流媒体协议，包括点播与直播新手入门使用步骤：1.导包 
去上面的新手入门网址中下载官方的Demo包，约60]]></description><category></category></item><item><title><![CDATA[Fragment详细学习解析 - 更新完毕]]></title><link>https://blog.youkuaiyun.com/HelloLollipop/article/details/78804861</link><guid>https://blog.youkuaiyun.com/HelloLollipop/article/details/78804861</guid><author>HelloLollipop</author><pubDate>Thu, 14 Dec 2017 17:08:43 +0800</pubDate><description><![CDATA[本文目录： 
- 什么是Fragment 
- Fragment的生命周期 
- Fragment的使用方式 
- 什么是Fragment的回退栈？【重要】 
- Fragment与Activity之间的通信【难点】 
- Fragment与Activity通信的优化【超难点】 
- 如何处理运行时配置发生变化【以屏幕翻转为例】 
- 使用Arguments来创建Fragment【上班族的程序员看过]]></description><category></category></item><item><title><![CDATA[Android Studio配置SVN详解]]></title><link>https://blog.youkuaiyun.com/HelloLollipop/article/details/78804843</link><guid>https://blog.youkuaiyun.com/HelloLollipop/article/details/78804843</guid><author>HelloLollipop</author><pubDate>Thu, 14 Dec 2017 17:07:02 +0800</pubDate><description><![CDATA[【基于64位windows操作系统适用于win7/win10，win8与xp未测试】SVN：版本控制软件，是用来对编程项目管理的一个工具，这里不再赘述这里就详细的把利用Android Studio配置SVN的步骤以及问题详细说明一下：前言：SVN是一种版本控制软件，分为服务端和客户端，简单来说，服务端的作用就是存储项目，它提供了存放项目代码的功能以及仓库。客户端是程序员用来提交到服务端所使用的软件工]]></description><category></category></item><item><title><![CDATA[网络数据读取框架 - OkHttp的使用]]></title><link>https://blog.youkuaiyun.com/HelloLollipop/article/details/78804787</link><guid>https://blog.youkuaiyun.com/HelloLollipop/article/details/78804787</guid><author>HelloLollipop</author><pubDate>Thu, 14 Dec 2017 17:03:20 +0800</pubDate><description><![CDATA[OkHttp框架介绍与用法
作用 
OkHttp主要用于对String这类的数据进行网络读取的操作，文件的上传，但在图片的缓存处理上不够好，需要手动设置缓存区
使用【以Android Studio为例】
一、添加OkHttp框架 
Android Studio中File→Project Structure→找到对应的Module项目→Denpendencies→点击加号→Library Depend]]></description><category></category></item></channel></rss>