<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[黑色的记忆 chester, come on]]></title><description><![CDATA[以塌实编码为荣 以心浮气躁为耻|以详细注释为荣 以注释残缺为耻|以勤于测试为荣 以懒于测试为耻|以简明文档为荣 以冗余文档为耻|以注重团队为荣 以孤傲自大为耻|以刻苦钻研为荣 以敷衍了事为耻|未完待 ]]></description><link>https://blog.youkuaiyun.com/chenshufei2</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; chenshufei2]]></copyright><item><title><![CDATA[android 由模块化到组件化(一)]]></title><link>https://blog.youkuaiyun.com/chenshufei2/article/details/77888453</link><guid>https://blog.youkuaiyun.com/chenshufei2/article/details/77888453</guid><author>chenshufei2</author><pubDate>Thu, 07 Sep 2017 23:56:40 +0800</pubDate><description><![CDATA[模块化和组件化

模块化

组件化不是个新概念,其在各行各业都一直备受重视.至于组件化什么时候在软件工程领域提出已经无从考究了,不过呢可以确认的是组件化最早应用于服务端开发,后来在该思想的指导下,前端开发和移动端开发也产生各自的开发方式.

在了解组件化之前,先来回顾下模块化的定义


Modular programming is a software design techni]]></description><category></category></item><item><title><![CDATA[开发一流Android SDK]]></title><link>https://blog.youkuaiyun.com/chenshufei2/article/details/77888443</link><guid>https://blog.youkuaiyun.com/chenshufei2/article/details/77888443</guid><author>chenshufei2</author><pubDate>Thu, 07 Sep 2017 23:54:52 +0800</pubDate><description><![CDATA[关于SDK的解释

什么是SDK

在开始正文之前,首先来聊聊SDK是个啥玩意.

SDK是Software Development Kit的缩写,译为”软件开发工具包”,通常是为辅助开发某类软件而编写的特定软件包,框架集合等,SDK一般包含相关文档,范例和工具.

SDK可以分为系统SDK和应用SDK.所谓的系统SDK是为特定的软件包,软件框架,硬件平台,操作系统等简历应用时所使]]></description><category></category></item><item><title><![CDATA[使用ValueAnimator自定义动态XY图表View]]></title><link>https://blog.youkuaiyun.com/chenshufei2/article/details/49490023</link><guid>https://blog.youkuaiyun.com/chenshufei2/article/details/49490023</guid><author>chenshufei2</author><pubDate>Thu, 29 Oct 2015 12:45:32 +0800</pubDate><description><![CDATA[使用ValueAnimator自定义动态XY图表View效果无废话，先上图： 
分析需求-1、x轴展示七天日期，y轴展示七天日期对应的值。 
-2、需要一个动画，顺序的每天的数据展示出来。 
-3、需要另一个动画，某一天的数据是从底部向上平衡到实际值。实现思路
使用drawLine画x轴与y轴的带箭头的线
使用drawLine画x轴与y轴的刻度线及刻度值
使用ValueAnimator产生个时间差依]]></description><category></category></item><item><title><![CDATA[Fragment Or DialogFragment Can not perform this action after onSaveInstanceState]]></title><link>https://blog.youkuaiyun.com/chenshufei2/article/details/48747149</link><guid>https://blog.youkuaiyun.com/chenshufei2/article/details/48747149</guid><author>chenshufei2</author><pubDate>Sat, 26 Sep 2015 01:44:12 +0800</pubDate><description><![CDATA[表现可会造成app崩溃掉，具体日志如下： 
异常如下：java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState
            at android.app.FragmentManagerImpl.checkStateLoss(FragmentManager.java:1323]]></description><category></category></item><item><title><![CDATA[Android App数据加密]]></title><link>https://blog.youkuaiyun.com/chenshufei2/article/details/48263823</link><guid>https://blog.youkuaiyun.com/chenshufei2/article/details/48263823</guid><author>chenshufei2</author><pubDate>Mon, 07 Sep 2015 12:01:22 +0800</pubDate><description><![CDATA[Android App数据加密一、App数据加密概述：App数据加密从哪些方面去考虑呢？以及为什么要加密呢？1.1、网络传输加密网络传输是不安全的，基于http 协议传输的内容是很容易被抓包提取数据。
1.2、跨进程intent 携带的数据加密跨进程的传递的intent的数据，也是不安全的。比如sendBroadcast广播，携带的数据都是不安全的。
1.3、SharedPreference加密Sh]]></description><category></category></item><item><title><![CDATA[Android Studio 在run时报的异常 Failed to run command  file not found FileNotFoundException]]></title><link>https://blog.youkuaiyun.com/chenshufei2/article/details/47869705</link><guid>https://blog.youkuaiyun.com/chenshufei2/article/details/47869705</guid><author>chenshufei2</author><pubDate>Sun, 23 Aug 2015 00:56:21 +0800</pubDate><description><![CDATA[Android Studio 在run时报的异常 Failed to run command  file not found FileNotFoundException在github上下载项目，导入后 有时不注意，在build完后，run时会报现个FileNotFoundException，会提示如下的错误：
  Error:Execution failed for task ‘:sample:de]]></description><category></category></item><item><title><![CDATA[ViewFlow增强onItemClick功能及ViewFlow AbsListView源码分析]]></title><link>https://blog.youkuaiyun.com/chenshufei2/article/details/47658683</link><guid>https://blog.youkuaiyun.com/chenshufei2/article/details/47658683</guid><author>chenshufei2</author><pubDate>Fri, 14 Aug 2015 11:10:53 +0800</pubDate><description><![CDATA[先看实现效果，上图： 



ViewFlow是一个很好用的，用于不确定item个数的水平滑动切换的开源项目。但是从github上下载的ViewFlow其实是不支持onItemClick功能的，touch事件中并没有处理click。 
那么如何去支持onItemClick功能呢？
一、在实现前，先带着三个问题:




序号

问题





1

Vie]]></description><category></category></item><item><title><![CDATA[Android 蓝牙低功耗Ble Gatt浅谈]]></title><link>https://blog.youkuaiyun.com/chenshufei2/article/details/47452781</link><guid>https://blog.youkuaiyun.com/chenshufei2/article/details/47452781</guid><author>chenshufei2</author><pubDate>Wed, 12 Aug 2015 22:22:34 +0800</pubDate><description><![CDATA[随着物联网的越来越火，使用蓝牙方式进行设备间的通信也越来越多。而传统蓝牙协议(蓝牙2.0)，由于其高功耗、连接速度慢及距离短等限制阻碍了蓝牙的推广应用。而12年推出来的蓝牙4.0 ble低功耗协议满足了物联网、医疗智能穿戴设备等方面的应用场景。 
       传统蓝牙与低功耗BLE的对比 
        
   基本上所有的Android设备都支持经典蓝牙配置文件，它适合更耗电的操作比如视频流。]]></description><category></category></item><item><title><![CDATA[Android 上滑显示底部导航，下滑显示标题bar]]></title><link>https://blog.youkuaiyun.com/chenshufei2/article/details/47317491</link><guid>https://blog.youkuaiyun.com/chenshufei2/article/details/47317491</guid><author>chenshufei2</author><pubDate>Thu, 06 Aug 2015 16:02:56 +0800</pubDate><description><![CDATA[本文简单介绍使用属性动画来实现上滑显示底部导航，下滑显示标题bar。先上图看效果，再分析：


可以看出这是个listview有标题和底部，有点像下拉刷新和上拉加载更多。只不过下拉或上拉一定时位置固定拉不动，且只在list的第一个item出现显示时，才平滑动画的让标题或底部显示或隐藏。
实现思路：
    1、整个布局有三个部分构成，上部由一个RelativeLayout放ImageVi]]></description><category></category></item><item><title><![CDATA[Android打包利器Gradle之三板斧]]></title><link>https://blog.youkuaiyun.com/chenshufei2/article/details/47186957</link><guid>https://blog.youkuaiyun.com/chenshufei2/article/details/47186957</guid><author>chenshufei2</author><pubDate>Sat, 01 Aug 2015 15:51:00 +0800</pubDate><description><![CDATA[当传统的手工打包方式遇上同一应用，多渠道/多包名及多种引导页/icon等等差异时，就变成了苦不堪言的纯体力活了。 但有了Gradle这一切不再是问题了，Gradle使得这一切变的so easy。
    本遍主要介绍eclipse中使用Gradle打包解决多渠道问题，其它的问题基本差不多。在eclipse中使用Gradle只需要以下三板斧：
第一斧、生成Gradle相应文件
1.1 选中相应]]></description><category></category></item><item><title><![CDATA[android-open-project  安卓开源项目汇总]]></title><link>https://blog.youkuaiyun.com/chenshufei2/article/details/44201729</link><guid>https://blog.youkuaiyun.com/chenshufei2/article/details/44201729</guid><author>chenshufei2</author><pubDate>Wed, 11 Mar 2015 17:25:38 +0800</pubDate><description><![CDATA[Android开源项目分类汇总

欢迎大家推荐好的Android开源项目，可直接Commit或在 收集&提交页 中告诉我，欢迎Star、Fork :)

微博：Trinea    主页：www.trinea.cn    邮箱：trinea.cn@gmail.com    QQ：717763774
分享：                

目前包括：

Android开源项目第一篇]]></description><category></category></item><item><title><![CDATA[android:installLocation简析]]></title><link>https://blog.youkuaiyun.com/chenshufei2/article/details/43971265</link><guid>https://blog.youkuaiyun.com/chenshufei2/article/details/43971265</guid><author>chenshufei2</author><pubDate>Fri, 27 Feb 2015 19:29:37 +0800</pubDate><description><![CDATA[在Froyo(android 2.2,API Level:8)中引入了android:installLocation.通过设置该属性可以使得开发者以及用户决定程序的安装位置.

android:installLocation隶属于AndroidManifest.XML中的manifest节点.如下所示:
xmlns:android="http://schemas.android.com/ap]]></description><category></category></item><item><title><![CDATA[Android  textview 同时改变字符串中部分字体的颜色与大小]]></title><link>https://blog.youkuaiyun.com/chenshufei2/article/details/43953991</link><guid>https://blog.youkuaiyun.com/chenshufei2/article/details/43953991</guid><author>chenshufei2</author><pubDate>Thu, 26 Feb 2015 16:19:40 +0800</pubDate><description><![CDATA[Android TextView 改变字体主要有两种方法：
 1、Html.fromHtml 获取一个用html格式表示的Spanned。
 2、另一种方式是直接构造使用一个Spanned。
若要同时改变字符串中部分字体的颜色与大小，采用第一种方式 html.fromHtml，用font标签来实现时，不幸的是Android中对font的属性只支持color与face，但不支持size。那么完]]></description><category></category></item><item><title><![CDATA[Android AVD在新建模拟器CPU/ABI选项无法选择-No system images installed for this target]]></title><link>https://blog.youkuaiyun.com/chenshufei2/article/details/43119203</link><guid>https://blog.youkuaiyun.com/chenshufei2/article/details/43119203</guid><author>chenshufei2</author><pubDate>Sun, 25 Jan 2015 20:58:50 +0800</pubDate><description><![CDATA[经上网查证，发现原因在于CPU/ABI选项无法选择，并显示“No system images installed for this target”，也就是没有适合的系统镜像，通过与安装好了的ADT-bundle中的AVD Manager创建模拟器的窗口情况对比，发现该下拉列表选项正好是SDK
 Manager安装包Android4.2.2（API 17）的一个组件“ARM EABI v7a Sy]]></description><category></category></item><item><title><![CDATA[android webview 缓存]]></title><link>https://blog.youkuaiyun.com/chenshufei2/article/details/43019627</link><guid>https://blog.youkuaiyun.com/chenshufei2/article/details/43019627</guid><author>chenshufei2</author><pubDate>Thu, 22 Jan 2015 18:12:23 +0800</pubDate><description><![CDATA[WebView的缓存可以分为页面缓存和数据缓存。

页面缓存是指加载一个网页时的html、JS、CSS等页面或者资源数据。这些缓存资源是由于浏览器的行为而产生，开发者只能通过配置HTTP响应头影响浏览器的行为才能间接地影响到这些缓存数据。

那么相关的缓存到的地址目录是：




请求的Url记录是保存在webviewCache.db里，而url的内容是保存在webviewCac]]></description><category></category></item><item><title><![CDATA[android启动过程再研]]></title><link>https://blog.youkuaiyun.com/chenshufei2/article/details/37829883</link><guid>https://blog.youkuaiyun.com/chenshufei2/article/details/37829883</guid><author>chenshufei2</author><pubDate>Tue, 15 Jul 2014 20:20:30 +0800</pubDate><description><![CDATA[android启动过程再研


 Android系统完整的启动过程，从系统层次角度可分为Linux系统层、Android系统服务层、Zygote进程模型三个阶段；从开机到启动Home Launcher完成具体的任务细节可分为七个步骤，下面就从具体的细节来解读Android系统完整的初始化过程。

一、启动BootLoader

        Android 系统是基于Linux操作]]></description><category></category></item><item><title><![CDATA[ListView Item中有button及CheckBox OnItemClick无响应]]></title><link>https://blog.youkuaiyun.com/chenshufei2/article/details/20469371</link><guid>https://blog.youkuaiyun.com/chenshufei2/article/details/20469371</guid><author>chenshufei2</author><pubDate>Tue, 04 Mar 2014 16:32:55 +0800</pubDate><description><![CDATA[ListView Item中有button及CheckBox时，会抢走焦点，而OnItemClick只有在ListView获取到焦点时，onItemClick方法才会被响应到。
那么可以在item布局中，将button及checkbox设置focusable=false，即可。
汗............，遗忘了，mark记下。]]></description><category></category></item><item><title><![CDATA[张小龙：APP产品经理必懂的30条原则]]></title><link>https://blog.youkuaiyun.com/chenshufei2/article/details/19611741</link><guid>https://blog.youkuaiyun.com/chenshufei2/article/details/19611741</guid><author>chenshufei2</author><pubDate>Fri, 21 Feb 2014 11:14:44 +0800</pubDate><description><![CDATA[没有web的移动互联网产品该怎么做?这对中国IT人来说是全新的课题。见证过各种APP摸爬滚打的真实案例之后，微信创始人张小龙在他的演讲中连出“狠招”，建议皆切中要害，警告则发人深省。基于对人性的丰富理解与对用户心理的分析，他提出需追求极简，保持笨拙，宁缺毋滥，做小做精——这一系列的观点与B座12楼一直提倡的理念不谋而合。PPT要点，条缕清晰，毫无赘余，适合深思。




手机是肢体的延伸]]></description><category></category></item><item><title><![CDATA[Android 设置飞行模式，判断是否是飞行模式]]></title><link>https://blog.youkuaiyun.com/chenshufei2/article/details/19611491</link><guid>https://blog.youkuaiyun.com/chenshufei2/article/details/19611491</guid><author>chenshufei2</author><pubDate>Fri, 21 Feb 2014 11:13:11 +0800</pubDate><description><![CDATA[飞行模式的好处在于：



1.可以让你拥有一个安静的休息时间


2.减少对身体的辐射


3.可以节省电量


4.不会关闭闹钟



所以设置飞行模式的功能，是很有用处的。
现分享如下：
代码中设置飞行模式所需权限：
 
	/**
	 * 设置手机飞行模式
	 * @param context
	 * @param enabling true:设置为]]></description><category></category></item><item><title><![CDATA[httpclient HttpResponse response = client.execute(post);报空指针问题]]></title><link>https://blog.youkuaiyun.com/chenshufei2/article/details/17240671</link><guid>https://blog.youkuaiyun.com/chenshufei2/article/details/17240671</guid><author>chenshufei2</author><pubDate>Tue, 10 Dec 2013 10:44:39 +0800</pubDate><description><![CDATA[HttpResponse response = client.execute(post);报空指针。
有点莫名奇妙的，client与post对话经过log与debug，都没有发现是null啊。，。。。


然后开始各种排错，常见的没加网络权限及网络访问没放在子线程中，都没有犯这样错啊。。。
最终注释掉post.setHeaders(headers);，又好了。。。(之前同一份代码在另一工]]></description><category></category></item></channel></rss>