<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[我想吃碗牛肉面]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Primer01</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Primer01]]></copyright><item><title><![CDATA[Android的多进程]]></title><link>https://blog.youkuaiyun.com/Primer01/article/details/81288102</link><guid>https://blog.youkuaiyun.com/Primer01/article/details/81288102</guid><author>Primer01</author><pubDate>Mon, 30 Jul 2018 16:58:56 +0800</pubDate><description><![CDATA[前言

上次面试被问到多进程的知识，回答不上来，真的感觉很羞耻。以下内容很多来自参考文章，侵删。

一、什么情况下要用到多进程

参考《Android多进程使用场景》，感谢。 
常驻后台任务应用：类似音乐类、跑步健身类、手机管家类等长时间需要在后台运行的应用。这些应用的特点就是，当用户切到别的应用，或者关掉手机屏幕的时候，应用本身的核心模块还在正常运行，提供服务。如果因为手机内存过低，或者是进程重...]]></description><category></category></item><item><title><![CDATA[Android的Handler]]></title><link>https://blog.youkuaiyun.com/Primer01/article/details/81019826</link><guid>https://blog.youkuaiyun.com/Primer01/article/details/81019826</guid><author>Primer01</author><pubDate>Thu, 12 Jul 2018 17:42:15 +0800</pubDate><description><![CDATA[背景

知其然要知其所以然，为什么会有Handler的出现？举个例子，假设我们在一个Thread中直接刷新某个TextView，并且每毫秒就刷新一次，那么TextView的绘制会疯掉，而且用户体验也不好。所以为了控制UI的刷新频率，Android规定非UI线程不能直接控制UI组件，只能通过Handler来处理。

概念解析

非UI线程计算出结果后，将结果封装到Message里，调用Handler...]]></description><category></category></item><item><title><![CDATA[What？HashMap的实现原理？]]></title><link>https://blog.youkuaiyun.com/Primer01/article/details/80908772</link><guid>https://blog.youkuaiyun.com/Primer01/article/details/80908772</guid><author>Primer01</author><pubDate>Wed, 11 Jul 2018 22:42:15 +0800</pubDate><description><![CDATA[参考文章：HashMap实现原理及源码分析

前段时间面试被问到HashMap的实现原理，完全懵逼，只知道它的存储的是键值对，下面好好理解一下。



什么是哈希表

看过《数据结构》的都知道，数据结构有很多种，如以下： 
数组： 采用一段连续的存储单位来存储数据。 
线性链表： 对中间元素来说，头结点存储上一个元素的引用，尾结点存储下一个元素的引用，中间存储数据。链表对于新增、删除的操作来说，只...]]></description><category></category></item><item><title><![CDATA[Android性能优化之内存优化]]></title><link>https://blog.youkuaiyun.com/Primer01/article/details/81001134</link><guid>https://blog.youkuaiyun.com/Primer01/article/details/81001134</guid><author>Primer01</author><pubDate>Wed, 11 Jul 2018 22:41:46 +0800</pubDate><description><![CDATA[背景

最近手上一个项目，类似于订单系统，通过Android Profiler工具观察发现，重复打开关闭订单详情，会导致内存占用不断攀升，最后会导致APP操作变慢，甚至内存溢出而崩溃，急需要找出原因。初步猜测是一些代码导致对象在堆中暂用内存单元无法被释放，造成内存泄露。网上查查，哪些容易忽略的情况会导致内存泄露。 
参考《Android内存优化——常见内存泄露及优化方案》 侵删

单例导致内存泄露...]]></description><category></category></item><item><title><![CDATA[Android性能优化之布局优化]]></title><link>https://blog.youkuaiyun.com/Primer01/article/details/80997182</link><guid>https://blog.youkuaiyun.com/Primer01/article/details/80997182</guid><author>Primer01</author><pubDate>Wed, 11 Jul 2018 11:03:03 +0800</pubDate><description><![CDATA[参考《Android性能优化之布局优化》 侵删

绘制的原理


Android需要把XML布局文件转换成GPU能够识别并绘制的对象。这个操作是在DisplayList的帮助下完成的。DisplayList持有所有将要交给GPU绘制到屏幕上的数据信息。
CPU负责把UI组件计算成Polygons，Texture纹理，然后交给GPU进行栅格化渲染。
GPU进行栅格化渲染。
硬件展示在屏幕上。


为...]]></description><category></category></item><item><title><![CDATA[HashMap的实现原理]]></title><link>https://blog.youkuaiyun.com/Primer01/article/details/80931015</link><guid>https://blog.youkuaiyun.com/Primer01/article/details/80931015</guid><author>Primer01</author><pubDate>Thu, 05 Jul 2018 18:00:12 +0800</pubDate><description><![CDATA[背景

标题中的几个关键字在许多文章都会看到，但是我们并不知道它们是什么意思，下来一起来学习一下。



哈希表

参考谈谈哈希表，感谢原作者，侵删。

举一个例子：我们在程序里，要用一个数据结构去表示全班40名学生的姓名、学号、电话、家庭住址，可以用个Student对象来表示每个学生，然后以数组的形式组织全部Student，这样组织数据没有问题。当要对这个数据进行频繁移动、增减的时候，我们可以链...]]></description><category></category></item><item><title><![CDATA[单向链表的java实现]]></title><link>https://blog.youkuaiyun.com/Primer01/article/details/80928926</link><guid>https://blog.youkuaiyun.com/Primer01/article/details/80928926</guid><author>Primer01</author><pubDate>Thu, 05 Jul 2018 16:19:10 +0800</pubDate><description><![CDATA[如果需要快速访问数据，很少或不插入和删除元素，就应该用数组，相反，如果需要经常插入和删除的就需要用链表了。

实例一

设计一个节点类，以String为数据的保存内容，手工把各节点串联起来，然后从根节点开始输出整条链表数据。

class Node{
     private String data;
     private Note next;    //表示保存下一个节点
     publ...]]></description><category></category></item><item><title><![CDATA[树]]></title><link>https://blog.youkuaiyun.com/Primer01/article/details/80928762</link><guid>https://blog.youkuaiyun.com/Primer01/article/details/80928762</guid><author>Primer01</author><pubDate>Thu, 05 Jul 2018 16:11:57 +0800</pubDate><description><![CDATA[背景

前面已经学习了线性结构和表结构，这些数据结构适用于一部分的数据组织，但是对于局域分支结构的数据，就需要另一种数据结构了—树。这种分支结构的数据与数据之间可能有上下级关系、可能有整体与部分的关系，如现实世界中的族谱、公司的组织结构、书的章节等。

树的定义是一个递归的定义，即树的定义中又用到了树的概念。

二叉树

它的特点是每个结点最多有两个子女，分别成为该结点的左子女和右子女。就是说，在...]]></description><category></category></item><item><title><![CDATA[栈和队列]]></title><link>https://blog.youkuaiyun.com/Primer01/article/details/80928428</link><guid>https://blog.youkuaiyun.com/Primer01/article/details/80928428</guid><author>Primer01</author><pubDate>Thu, 05 Jul 2018 15:56:49 +0800</pubDate><description><![CDATA[之前已经说过，数据结构是数据的一种组织形式，根据不同的需求就会出现不同的数据结构，栈和队列就是两种特殊的线性表数据结构，Android四大组件之一Activity的就是以栈的结构组织的。 


栈

其可定位为只允许在表的末端进行插入和删除的线性表，遵循后进先出的规则。在这个规则之下，基于数组的存储表示实现的栈成为顺序栈，基于链表的存储表示实现的栈成为链式栈。

顺序栈的实现在于使用了数组这个基本...]]></description><category></category></item><item><title><![CDATA[线性表]]></title><link>https://blog.youkuaiyun.com/Primer01/article/details/80927016</link><guid>https://blog.youkuaiyun.com/Primer01/article/details/80927016</guid><author>Primer01</author><pubDate>Thu, 05 Jul 2018 14:51:29 +0800</pubDate><description><![CDATA[背景

上一篇文章说过，数据的结构分为线性结构和非线性结构，而线性结构表示结构中所有数据元素都按某种次序排列在一个序列中。根据对线性结构中数据元素存取方法的不同，可分为直接存取结构、顺序存取结构和字典结构。

比如：数组、文件 
对于直接存取结构，可以直接存取某一指定项而不须先访问其前驱，就像数组、文件，可以根据下标直接存取某一数组元素，可以按记录号直接检索记录集合或文件中的某一记录。

比如：单...]]></description><category></category></item><item><title><![CDATA[数据结构基础]]></title><link>https://blog.youkuaiyun.com/Primer01/article/details/80926632</link><guid>https://blog.youkuaiyun.com/Primer01/article/details/80926632</guid><author>Primer01</author><pubDate>Thu, 05 Jul 2018 14:33:35 +0800</pubDate><description><![CDATA[一、定义与目的 
数据结构就是数据的组织形式，在应用中涉及各种各样的数据，为了存储它们，组织它们，需要讨论它们的归来及它们之间的关系，从而建立相应的数据结构，并以此实现要求的软件功能。

二、分类 
1. 线性结构：也成为线性表，在这种结构中所有数据元素都按某种次序排列在一个序列中。根据对线性结构中数据元素存取方法的不同，又可分为直接存取结构、顺序存取结构和字典结构。对于直接存取结构，可以直接存取...]]></description><category></category></item><item><title><![CDATA[Android，什么是MVP模式？]]></title><link>https://blog.youkuaiyun.com/Primer01/article/details/80883924</link><guid>https://blog.youkuaiyun.com/Primer01/article/details/80883924</guid><author>Primer01</author><pubDate>Mon, 02 Jul 2018 14:31:38 +0800</pubDate><description><![CDATA[梗概 
MVP模式是MVC模式在Android上的一种变体，在MVC模式中，Activity应该是属于View这一层，它既承担了View，同时也包含了一些Controller的东西在里面，这对于开发与维护来说不太友好，耦合度太高。把Activity的View和Controller抽离出来就变成了View和Presenter，这就是MVP模式。

先熟悉一下MVC模式 
M层：适合做一些业务逻辑处理...]]></description><category></category></item><item><title><![CDATA[不规范的服务端接口开发]]></title><link>https://blog.youkuaiyun.com/Primer01/article/details/76577277</link><guid>https://blog.youkuaiyun.com/Primer01/article/details/76577277</guid><author>Primer01</author><pubDate>Wed, 02 Aug 2017 14:49:06 +0800</pubDate><description><![CDATA[背景 
最近在做一个一体机的APP，跟某工程师做接口的对接，发现接口返回的数据极为混乱，虽说都是Json串，但是给客户端解析数据带来了极大的困难，希望能给做接口的看看这篇文章，引以为戒。

1.data数据返回不规范 
不规范：



&quot;data&quot;: [
          id: &quot;1&quot;
          name: “TCL电视&quot;
 ]

规范：



&quot;data&quot;: {
         ...]]></description><category></category></item><item><title><![CDATA[【经验】提高开发效率]]></title><link>https://blog.youkuaiyun.com/Primer01/article/details/54907327</link><guid>https://blog.youkuaiyun.com/Primer01/article/details/54907327</guid><author>Primer01</author><pubDate>Tue, 07 Feb 2017 10:49:43 +0800</pubDate><description><![CDATA[背景 
随着事情越来越多，我们必须提高我们的工作效率，才能有更多的时间去深入学习更多的知识。下面我将会把我在Android项目中运用到的一些提高开发效率的经验分享出来，如果你有更好的建议，恳请指导。]]></description><category></category></item><item><title><![CDATA[【工具】提高开发效率的一些]]></title><link>https://blog.youkuaiyun.com/Primer01/article/details/54907296</link><guid>https://blog.youkuaiyun.com/Primer01/article/details/54907296</guid><author>Primer01</author><pubDate>Tue, 07 Feb 2017 10:47:51 +0800</pubDate><description><![CDATA[此处记录一些能真正提高开发效率的工具。]]></description><category></category></item><item><title><![CDATA[2016 TOP 10 ANDROID LIBRARY]]></title><link>https://blog.youkuaiyun.com/Primer01/article/details/54587895</link><guid>https://blog.youkuaiyun.com/Primer01/article/details/54587895</guid><author>Primer01</author><pubDate>Tue, 17 Jan 2017 21:51:49 +0800</pubDate><description><![CDATA[原文地址：http://stormzhang.com/2017/01/16/top-10-android-library-of-2016/原文来自帅B张！关注他有一年多了，学习很多，也希望各位学习Android的朋友关注他，感谢他一年以来的指导，在此贴下他的公众号： RxJava
地址：https://github.com/ReactiveX/RxJava2016 年 Android 界最火的莫过于]]></description><category></category></item><item><title><![CDATA[使用SVN过程中遇到的奇葩问题]]></title><link>https://blog.youkuaiyun.com/Primer01/article/details/54583513</link><guid>https://blog.youkuaiyun.com/Primer01/article/details/54583513</guid><author>Primer01</author><pubDate>Tue, 17 Jan 2017 15:28:12 +0800</pubDate><description><![CDATA[背景 
这里为了记录在使用SVN时遇到的各种奇葩问题及解决；]]></description><category></category></item><item><title><![CDATA[常用的优秀开源项目]]></title><link>https://blog.youkuaiyun.com/Primer01/article/details/54288705</link><guid>https://blog.youkuaiyun.com/Primer01/article/details/54288705</guid><author>Primer01</author><pubDate>Mon, 09 Jan 2017 14:48:02 +0800</pubDate><description><![CDATA[背景 
这里会收集很多常用的开源项目，防止自己忘记，也给大家做个参考。咱不说使用方法，各位可以到去搜搜，一搜一大把。]]></description><category></category></item><item><title><![CDATA[Android ScrollView的各种适配]]></title><link>https://blog.youkuaiyun.com/Primer01/article/details/54094677</link><guid>https://blog.youkuaiyun.com/Primer01/article/details/54094677</guid><author>Primer01</author><pubDate>Thu, 05 Jan 2017 16:25:05 +0800</pubDate><description><![CDATA[背景 
这里是为了解决在ScrollView包裹下，出现的各种奇葩问题。]]></description><category></category></item><item><title><![CDATA[集成第三方组件--七鱼客服]]></title><link>https://blog.youkuaiyun.com/Primer01/article/details/53894750</link><guid>https://blog.youkuaiyun.com/Primer01/article/details/53894750</guid><author>Primer01</author><pubDate>Tue, 27 Dec 2016 13:28:40 +0800</pubDate><description><![CDATA[背景 
最近做商城APP，里面需要用到客服咨询的功能，马上到网上找看有什么支持的SDK，环信、融云、网易七鱼等等，翻看了这几家的SDK文档，发现还是网易的最为友好，而且客户端的UI最为美观舒服，所以就选定它了！老板说了，价格不用考虑。]]></description><category></category></item></channel></rss>