<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[thankYouLikeMe的博客]]></title><description><![CDATA[勤学如春起之苗，不见其增，日有所长；辍学如磨刀之石，不见其损，日有所亏。]]></description><link>https://blog.youkuaiyun.com/thankYouLikeMe</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; thankYouLikeMe]]></copyright><item><title><![CDATA[Android复习笔记（8）-文件存储之数据库存储]]></title><link>https://blog.youkuaiyun.com/thankYouLikeMe/article/details/84791354</link><guid>https://blog.youkuaiyun.com/thankYouLikeMe/article/details/84791354</guid><author>thankYouLikeMe</author><pubDate>Wed, 05 Dec 2018 16:52:27 +0800</pubDate><description><![CDATA[无论是文件存储还是sp存储，都只是只能保存些简单的数据或者是键值对，如果需要保存大量复杂的关系型数据时，就会发现上面的方式不再适用，这个时候就需要使用我们Android自带的SQLite数据库了。
Android内置的数据库SQLite是一款轻量级的关系型数据库，它占用的资源很少，只需要几百KB的内存就足够，它不仅支持标准的SQL语法，还遵循数据库的ACID事务。
Android提供了SQLite...]]></description><category></category></item><item><title><![CDATA[Android复习笔记（7）-数据存储之文件存储]]></title><link>https://blog.youkuaiyun.com/thankYouLikeMe/article/details/84777684</link><guid>https://blog.youkuaiyun.com/thankYouLikeMe/article/details/84777684</guid><author>thankYouLikeMe</author><pubDate>Tue, 04 Dec 2018 15:20:48 +0800</pubDate><description><![CDATA[Android中的文件存储，不会对文件进行任何的格式化操作，所有数据都是原封不动的保存到文件中，因而比较适合存储一些简单的文本数据或二进制数据。

...]]></description><category></category></item><item><title><![CDATA[Android复习笔记（6）-数据存储的几种方式之sharedPreference存储]]></title><link>https://blog.youkuaiyun.com/thankYouLikeMe/article/details/84768520</link><guid>https://blog.youkuaiyun.com/thankYouLikeMe/article/details/84768520</guid><author>thankYouLikeMe</author><pubDate>Mon, 03 Dec 2018 15:44:06 +0800</pubDate><description><![CDATA[Android中的数据存储，可以总结为五类，包括sharedPreference存储、文件存储、数据库存储、网络存储、contentProvider存储，此外我们还可以把数据保存到sd卡中。
我们先说sharedPreference存储，简称sp存储，sp存储是采用键值对的方式，我们存储的时候要提供一个对应的键，这样取数据的时候就可以通过键名得到对应的值，sp存储支持多种数据格式的存储，且存储的格...]]></description><category></category></item><item><title><![CDATA[Android复习笔记（5）-broadcastReceiver]]></title><link>https://blog.youkuaiyun.com/thankYouLikeMe/article/details/84665321</link><guid>https://blog.youkuaiyun.com/thankYouLikeMe/article/details/84665321</guid><author>thankYouLikeMe</author><pubDate>Fri, 30 Nov 2018 18:05:50 +0800</pubDate><description><![CDATA[Android中的broadcastReceiver就是Android的广播，Android系统内置了很多系统广播，我们可以在应用程序中通过监听这些广播来得到系统的各种信息，包括电池的电量变化、网络变化、时间或者时区变化等信息，通过监听广播，当这些系统内置硬件发生变化后，我们可以更新我们的界面将变化展示出来。
Android的广播分为两种，一种是无序的广播，就是一个人发送，大家都能接收，不分前后，...]]></description><category></category></item><item><title><![CDATA[Android复习笔记（4）-fragment]]></title><link>https://blog.youkuaiyun.com/thankYouLikeMe/article/details/84637242</link><guid>https://blog.youkuaiyun.com/thankYouLikeMe/article/details/84637242</guid><author>thankYouLikeMe</author><pubDate>Thu, 29 Nov 2018 17:56:38 +0800</pubDate><description><![CDATA[1. 静态添加fragment
Android中的fragment类似于activity，但是依附于fragment，拥有自己的布局，通过新建fragment类继承fragment，然后实现oncreateView方法，来加载fragment内的布局，oncreateview方法接受三个参数，第一个参数是layoutinflater对象，我们通过调用layoutinflater的inflate方法...]]></description><category></category></item><item><title><![CDATA[Android复习笔记（3）-activity的启动模式]]></title><link>https://blog.youkuaiyun.com/thankYouLikeMe/article/details/84587272</link><guid>https://blog.youkuaiyun.com/thankYouLikeMe/article/details/84587272</guid><author>thankYouLikeMe</author><pubDate>Wed, 28 Nov 2018 16:58:11 +0800</pubDate><description><![CDATA[activity的启动模式一共为4种，分别是standard，singletop，singletask，singleInstance，我们可以在配置文件中通过给activity标签指定android:launchMode属性来选择启动模式。
1. standard
standard是活动默认的启动模式，在不进行显式指定的情况下，所有活动都会自动使用这种启动模式，我们知道Android是使用返回栈来...]]></description><category></category></item><item><title><![CDATA[Android复习笔记（2）-intent]]></title><link>https://blog.youkuaiyun.com/thankYouLikeMe/article/details/84585258</link><guid>https://blog.youkuaiyun.com/thankYouLikeMe/article/details/84585258</guid><author>thankYouLikeMe</author><pubDate>Wed, 28 Nov 2018 15:37:58 +0800</pubDate><description><![CDATA[Android中的intent，分为显式intent和隐式intent，使用intent，可以实现我们activity之间的跳转，以及组件之间的交流，我们先说显式intent。
intent有多个构造函数的重载，其中一个是intent（Context packageContext，Class&amp;lt;?&amp;gt;cls）。这个构造函数接受两个参数，第一个参数要求提供一个启动活动的上下文，一般为本act...]]></description><category></category></item><item><title><![CDATA[Android复习笔记（1）-Android系统架构]]></title><link>https://blog.youkuaiyun.com/thankYouLikeMe/article/details/84572552</link><guid>https://blog.youkuaiyun.com/thankYouLikeMe/article/details/84572552</guid><author>thankYouLikeMe</author><pubDate>Tue, 27 Nov 2018 20:04:49 +0800</pubDate><description><![CDATA[我们一般把Android的架构分为四层：
一、applications，这是最上层，一般我们的应用都是这一层，包括一些系统自带的联系人、短信等或者我们从应用商店下载的游戏应用都属于这一层；
二、application framework,这是应用程序的框架层，这一层包含了我们的一些manager，比如activity manager，window manager, content provider...]]></description><category></category></item><item><title><![CDATA[Android开发之dagger2简单理解]]></title><link>https://blog.youkuaiyun.com/thankYouLikeMe/article/details/79742329</link><guid>https://blog.youkuaiyun.com/thankYouLikeMe/article/details/79742329</guid><author>thankYouLikeMe</author><pubDate>Thu, 29 Mar 2018 15:29:08 +0800</pubDate><description><![CDATA[理解简述Android开发技术层出不穷。站在别人肩膀上看风景，的确省了不少事。前一段时间为了锻炼下自己的能力，就从鸿洋大神微信公众号的推送里面，下了个完整的项目，想试着自己跟着写一下，也算是追随下主流的脚步吧，这里给下下载的链接点击打开链接，作品的简介：微阅是一款使用 MVP + Retrofit2 + Rxjava + dagger2 等框架开发的阅读软件。包括新闻、视频、煎蛋三个模块，项目的大...]]></description><category></category></item><item><title><![CDATA[android开发之recycleView的adapter理解]]></title><link>https://blog.youkuaiyun.com/thankYouLikeMe/article/details/79413317</link><guid>https://blog.youkuaiyun.com/thankYouLikeMe/article/details/79413317</guid><author>thankYouLikeMe</author><pubDate>Thu, 01 Mar 2018 16:34:36 +0800</pubDate><description><![CDATA[之前很长时间都是使用的listview，然后自己写适配器，主要都是继承自BaseAdapter。大致的思路呢，就是我们传入数据源以及上下文对象，然后我们在自定义适配器文件中实现了构造方法，然后将传入的上下文对象（context）以及数据源初始化，下一步就是实现了我们继承自BaseAdapter的四个抽象方法：1.getCount,返回的对象是数据源的大小；2.getItem，返回的是每一项数据（d...]]></description><category></category></item><item><title><![CDATA[android学习-多文件下载以及断点续传]]></title><link>https://blog.youkuaiyun.com/thankYouLikeMe/article/details/78955007</link><guid>https://blog.youkuaiyun.com/thankYouLikeMe/article/details/78955007</guid><author>thankYouLikeMe</author><pubDate>Tue, 02 Jan 2018 21:43:58 +0800</pubDate><description><![CDATA[首先先感谢丰神，本文源于他的这篇微博http://blog.youkuaiyun.com/cfy137000/article/details/54838608，思路很棒，然后自己跟着代码撸了一遍，然后为了加深理解就上传到博客上来。 
首先说下主要都到了什么开发技术吧，网络请求是使用okhttp,然后涉及多线程的部分是使用rxjava，之前自己只是简单的看了一下rxjava，然后实际运用了下，感觉熟悉了很多；然后]]></description><category></category></item><item><title><![CDATA[异步处理任务工具类（AsyncTask）实现多张图片的下载（已知url）]]></title><link>https://blog.youkuaiyun.com/thankYouLikeMe/article/details/52564533</link><guid>https://blog.youkuaiyun.com/thankYouLikeMe/article/details/52564533</guid><author>thankYouLikeMe</author><pubDate>Sat, 17 Sep 2016 19:14:07 +0800</pubDate><description><![CDATA[异步加载任务机制是为了处理多个对象同时对主线程操作而出现的，作用和handler是相似的，在后台进行操作之后，可以更改UI。但他的实现方式比handler容易许多。
AsycTask中通过四个方法实现功能：onPreExecute();在执行具体操作之前执行，可以进行一些操作的初始化；onPostExecute();更新操作完成之后执行；doInBackground；具体的逻辑操作，不会修改UI，将]]></description><category></category></item><item><title><![CDATA[Android中的activity启动模式初见]]></title><link>https://blog.youkuaiyun.com/thankYouLikeMe/article/details/52530390</link><guid>https://blog.youkuaiyun.com/thankYouLikeMe/article/details/52530390</guid><author>thankYouLikeMe</author><pubDate>Tue, 13 Sep 2016 22:41:38 +0800</pubDate><description><![CDATA[acitivity的启动方式是在andeoidmenifast.xml文件中设置，在每个activity的name属性后面敲回车，然后选择启动方式：lanuchMode; 
里面是有四个属性：standard，singleTop,singleTask,singleInstance; 
如果不做更改的话就是默认的是standard。 
1，standard：我们使用的最经常的，我的理解就是，最简单的，]]></description><category></category></item><item><title><![CDATA[Android基础之初探activity（页面跳转，数据传输）]]></title><link>https://blog.youkuaiyun.com/thankYouLikeMe/article/details/52476181</link><guid>https://blog.youkuaiyun.com/thankYouLikeMe/article/details/52476181</guid><author>thankYouLikeMe</author><pubDate>Thu, 08 Sep 2016 23:01:12 +0800</pubDate><description><![CDATA[1，Android的页面跳转通过不同的activity之间的跳转实现： 
简单阶段：两个页面的跳转，主要是使用intent对象； 
设置在按钮点击事件里面，当按钮发生点击事件时，页面跳转//实例化意图对象
①Intent intent=new Intent();
                ②intent.setClass(MainActivity.this,MainActivity02.cla]]></description><category></category></item><item><title><![CDATA[关于threadLocal的使用]]></title><link>https://blog.youkuaiyun.com/thankYouLikeMe/article/details/52263440</link><guid>https://blog.youkuaiyun.com/thankYouLikeMe/article/details/52263440</guid><author>thankYouLikeMe</author><pubDate>Sat, 20 Aug 2016 20:43:20 +0800</pubDate><description><![CDATA[threadLocal主要是为我们创建一个资源副本， 
protected Object initialValue()
  返回该线程局部变量的初始值，该方法是一个protected的方法，显然是为了让子类覆盖而设计的。这个方法是一个延迟调用方法，在线程第1次调用get()或set(Object)时才执行，并且仅执行1次。ThreadLocal中的缺省实现直接返回一个null。
值得一提的是，在JD]]></description><category></category></item><item><title><![CDATA[警匪追击案例-思路整理]]></title><link>https://blog.youkuaiyun.com/thankYouLikeMe/article/details/52263272</link><guid>https://blog.youkuaiyun.com/thankYouLikeMe/article/details/52263272</guid><author>thankYouLikeMe</author><pubDate>Sat, 20 Aug 2016 20:06:28 +0800</pubDate><description><![CDATA[使用内容：多线程，java的继承案例： 
劫匪抢劫了银行，警察发现，然后，劫匪随后抢走了运钞车，而警察手边有三种车，警察会随机骑一辆车进行追击； 
车的车速分别为： 
运钞车：120，摩托车：50，公交车:100,跑车：180， 
在追击过程中，运钞车会发生爆胎事件，如果爆胎，车速会降到40； 
问：警察会不会追上劫匪思路清理： 
1，使用继承，建立警车父类：包含车速和车的种类两种属性；然后摩托车，]]></description><category></category></item><item><title><![CDATA[匿名内部类实现多线程销售多种类型的票]]></title><link>https://blog.youkuaiyun.com/thankYouLikeMe/article/details/52263159</link><guid>https://blog.youkuaiyun.com/thankYouLikeMe/article/details/52263159</guid><author>thankYouLikeMe</author><pubDate>Sat, 20 Aug 2016 19:36:14 +0800</pubDate><description><![CDATA[多线程中，经常操作的是使用多个线程对同一对象进行处理，比如多个线程对100张票进行销售，当然，为了防止出现多个线程同时操作最后一张票，要对run()方法里面的逻辑进行加锁操作； 
而今天整的程序是使用匿名内部类来实现同时对不同的票进行处理操作。就好像我们去买票时，有的人买的是学生票，有的人买的是成人票，等多种类型；在我们的例子中，暂且使用成人票和学生票两种票类首先是一个售票线程：SellTicket]]></description><category></category></item><item><title><![CDATA[多线程之公牛的生产与宰杀（消费者与生产者）]]></title><link>https://blog.youkuaiyun.com/thankYouLikeMe/article/details/52225220</link><guid>https://blog.youkuaiyun.com/thankYouLikeMe/article/details/52225220</guid><author>thankYouLikeMe</author><pubDate>Tue, 16 Aug 2016 21:25:48 +0800</pubDate><description><![CDATA[多线程中的生产者与消费者的问题，重点是统一资源的使用，涉及线程同步。课堂练习习题之牛的培养和宰杀来代替生产和消费。 
首先定义的是一个牛（ox）类，包括牛的年龄和体重；其次，是牛的培养工厂(oxPen)，在工厂中，分别存储成牛和牛犊，使用集合，因为牛犊和成牛的数量是动态变化，牛犊的初始化变量是100只。然后是培养方法和宰杀方法 
培养方法：当牛犊的集合大于0时代表有牛犊可以培养，此时，就移除一只牛犊]]></description><category></category></item><item><title><![CDATA[使用集合编程实现任意输入长度的全排列]]></title><link>https://blog.youkuaiyun.com/thankYouLikeMe/article/details/52176092</link><guid>https://blog.youkuaiyun.com/thankYouLikeMe/article/details/52176092</guid><author>thankYouLikeMe</author><pubDate>Wed, 10 Aug 2016 20:45:15 +0800</pubDate><description><![CDATA[数学中的排列组合，在本例中，是以1-4为例，不包括重复，输出所有的可能的排列
正文：
第一步：将数据存入集合中：
public static void init(Listori,int length){
for(int i=1;i
ori.add(i);
}
第二步：
方法中，包含三个参数：数据源，每次保留下来的数据，以及集合的长度
利用递归，从前往后，依次取出每一个数的全排列：]]></description><category></category></item><item><title><![CDATA[简陋自写intList--双色球实例]]></title><link>https://blog.youkuaiyun.com/thankYouLikeMe/article/details/52074734</link><guid>https://blog.youkuaiyun.com/thankYouLikeMe/article/details/52074734</guid><author>thankYouLikeMe</author><pubDate>Sat, 30 Jul 2016 20:17:22 +0800</pubDate><description><![CDATA[数组在存储数据时，不得不说是很舒服的，无论是查找，还是排序，因为下标 的问题，可以迅速的定位到相关的数据。 
但是，非常不满意的是，数组的长度在我们开辟之后，就不能更改，也就是说，我们如果往一个数组中扔数据，会发生覆盖现象。同理，如果删去数组中的元素，数组中会出现0，而不是我们认为的会消失，然而，我们还没有学习集合，所以，在老师的带领下，我们就完成了一个简陋的集合。并且实现了双色球的选择。]]></description><category></category></item></channel></rss>