<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/ctt2009</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; ctt2009]]></copyright><item><title><![CDATA[Handler机制的一些理解]]></title><link>https://blog.youkuaiyun.com/ctt2009/article/details/44496733</link><guid>https://blog.youkuaiyun.com/ctt2009/article/details/44496733</guid><author>ctt2009</author><pubDate>Fri, 20 Mar 2015 20:22:46 +0800</pubDate><description><![CDATA[// Handler允许你去发送/处理消息message和Runnable对象。每个handler对象对应一个
// Thread和与这个Thread对应的MessageQueue。当你创建一个Handler的时候，它就和
// Thread以及相对应的MessageQueue绑定在一起。从绑定成功的那一刻开始，Handler
// 就可以向MessageQueue中发送消息和Runnable对象]]></description><category></category></item><item><title><![CDATA[第三方程序调用Android Telephony 接口机制]]></title><link>https://blog.youkuaiyun.com/ctt2009/article/details/23262613</link><guid>https://blog.youkuaiyun.com/ctt2009/article/details/23262613</guid><author>ctt2009</author><pubDate>Fri, 09 Jan 2015 16:03:35 +0800</pubDate><description><![CDATA[最近由于一个新项目的缘故]]></description><category></category></item><item><title><![CDATA[You are attempting to build with an unsupported JDK.]]></title><link>https://blog.youkuaiyun.com/ctt2009/article/details/38920371</link><guid>https://blog.youkuaiyun.com/ctt2009/article/details/38920371</guid><author>ctt2009</author><pubDate>Fri, 29 Aug 2014 11:24:14 +0800</pubDate><description><![CDATA[Checking build tools versions...
************************************************************
You are attempting to build with an unsupported JDK.


You use OpenJDK but only Sun/Oracle JDK is sup]]></description><category></category></item><item><title><![CDATA[Android OOM(Out of memory) 内存泄露基本知识]]></title><link>https://blog.youkuaiyun.com/ctt2009/article/details/12710135</link><guid>https://blog.youkuaiyun.com/ctt2009/article/details/12710135</guid><author>ctt2009</author><pubDate>Mon, 21 Oct 2013 16:19:18 +0800</pubDate><description><![CDATA[最近又碰到了一个OOM的问题，这次还是好好学习总结下。
简单来说Activity A onCreate()里， B b = new B(mContext); 在B的构造方法中，注册了一个相关的监听；结果在Activity A的onDestroy()并没有反注册这个监听，导致这个监听一直存在，而他持有mContext， 也就是Activity A，结果导致了从hprof中看，存在有7个Activi]]></description><category></category></item><item><title><![CDATA[RILJ学习]]></title><link>https://blog.youkuaiyun.com/ctt2009/article/details/9668271</link><guid>https://blog.youkuaiyun.com/ctt2009/article/details/9668271</guid><author>ctt2009</author><pubDate>Thu, 01 Aug 2013 10:06:41 +0800</pubDate><description><![CDATA[今天重新看了下RIL，遇到问题去问老马的时候，他分享了一本android内核分析给我，这本书真是太牛了，写的好透彻，看了这书后才发现什么是看Code该有的态度。默默回忆下我之前看Code乱七八糟的套路，内心极端鄙视自己。
 
RILJ
 

 

RIL.java相当于RIL的代理，起到消息转发的作用。RILJ一旦和RILD连接成功，就可以向RILD发送请求，RID接到请求后，再将消]]></description><category></category></item><item><title><![CDATA[UML]]></title><link>https://blog.youkuaiyun.com/ctt2009/article/details/9617235</link><guid>https://blog.youkuaiyun.com/ctt2009/article/details/9617235</guid><author>ctt2009</author><pubDate>Mon, 29 Jul 2013 15:51:31 +0800</pubDate><description><![CDATA[http://www.open-open.com/lib/view/open1328059700311.html]]></description><category></category></item><item><title><![CDATA[为什么单起一个service而不是直接在Activity里用thread或者asynctask来load图片那？]]></title><link>https://blog.youkuaiyun.com/ctt2009/article/details/9295617</link><guid>https://blog.youkuaiyun.com/ctt2009/article/details/9295617</guid><author>ctt2009</author><pubDate>Wed, 10 Jul 2013 22:52:37 +0800</pubDate><description><![CDATA[和朋友通电话，他问了我这么个问题，一时语塞...
有太多显而易见的问题背后都有一段让你恍然大悟的知识


留贴。
明天答。]]></description><category></category></item><item><title><![CDATA[AIDL的一点理解]]></title><link>https://blog.youkuaiyun.com/ctt2009/article/details/9179745</link><guid>https://blog.youkuaiyun.com/ctt2009/article/details/9179745</guid><author>ctt2009</author><pubDate>Wed, 10 Jul 2013 22:19:46 +0800</pubDate><description><![CDATA[最近参与了一个项目，其中有用到两个APK间进行通信，最终采用的是AIDL，于是自己小研究了下，如有错误，请大家指正。


1.  创建.aidl文件
首先，创建.aidl文件。这个文件类似于声明文件，对于服务器端而言，就是声明你需要对外提供什么接口；对于客户端来说，声明了自己将要用到的接口。所以，不仅服务器端要创建.aidl文件，客户端同样需要。


IEmilyService.ai]]></description><category></category></item><item><title><![CDATA[java.lang.IllegalStateException: ViewStub must have a non-null ViewGroup viewParent]]></title><link>https://blog.youkuaiyun.com/ctt2009/article/details/8970222</link><guid>https://blog.youkuaiyun.com/ctt2009/article/details/8970222</guid><author>ctt2009</author><pubDate>Fri, 24 May 2013 15:26:09 +0800</pubDate><description><![CDATA[E/AndroidRuntime( 1908): FATAL EXCEPTION: main
E/AndroidRuntime( 1908): java.lang.IllegalStateException: ViewStub must have a non-null ViewGroup viewParent


Reason: ViewStub不能反复inflate,只能inflate一]]></description><category></category></item><item><title><![CDATA[MMI SS USSD扫盲贴]]></title><link>https://blog.youkuaiyun.com/ctt2009/article/details/8961437</link><guid>https://blog.youkuaiyun.com/ctt2009/article/details/8961437</guid><author>ctt2009</author><pubDate>Wed, 22 May 2013 18:29:36 +0800</pubDate><description><![CDATA[MMI是Man-Machine-Interface的缩写。从功能上来看，有一些从拨号盘拨出去的字符串，它的实际作用不是建立一个通话而是为了完成某种服务，这个就是MMI；从格式上来看，每一个从拨号盘输入的字符串，如果包含有*或者#，都可以称之为MMI.
 
MMI包括SS, USSD,Manufacturer defined MMI codes, SIM control codes等等。
Ma]]></description><category></category></item><item><title><![CDATA[Fragment & Fragment间的通信实现]]></title><link>https://blog.youkuaiyun.com/ctt2009/article/details/8950900</link><guid>https://blog.youkuaiyun.com/ctt2009/article/details/8950900</guid><author>ctt2009</author><pubDate>Mon, 20 May 2013 16:44:24 +0800</pubDate><description><![CDATA[Fragment是一个和Activity息息相关的控件。一个Fragment必须总是嵌在一个Activity里，Activity的生命周期会直接影响到它，比如当Activity Paused的时候，Fragment也是Paused. 但是当Activity resume的时候，Fragment可以独立的进行任何包括添加，删除等的操作。
Fragment的生命周期和Activity十分类似，下面这]]></description><category></category></item><item><title><![CDATA[Eclipse 提示：The connection to adb is down, and a severe error has occured.]]></title><link>https://blog.youkuaiyun.com/ctt2009/article/details/8949397</link><guid>https://blog.youkuaiyun.com/ctt2009/article/details/8949397</guid><author>ctt2009</author><pubDate>Mon, 20 May 2013 10:58:04 +0800</pubDate><description><![CDATA[找到android SDK下platform-tools的路径分别输入以下内容。
adb kill-server
adb start-server]]></description><category></category></item><item><title><![CDATA[正则表达式]]></title><link>https://blog.youkuaiyun.com/ctt2009/article/details/8807199</link><guid>https://blog.youkuaiyun.com/ctt2009/article/details/8807199</guid><author>ctt2009</author><pubDate>Tue, 16 Apr 2013 09:40:53 +0800</pubDate><description><![CDATA[http://www.jb51.net/tools/zhengze.html]]></description><category></category></item><item><title><![CDATA[CallerInfoAsyncQuery]]></title><link>https://blog.youkuaiyun.com/ctt2009/article/details/8669514</link><guid>https://blog.youkuaiyun.com/ctt2009/article/details/8669514</guid><author>ctt2009</author><pubDate>Wed, 13 Mar 2013 17:30:35 +0800</pubDate><description><![CDATA[留帖。
今天看某段代码看得要死，CallerInfoAsyncQuery没看懂，继续看。
栈内的listener是怎么被删除的？]]></description><category></category></item><item><title><![CDATA[设计模式的几个重要原则]]></title><link>https://blog.youkuaiyun.com/ctt2009/article/details/8659337</link><guid>https://blog.youkuaiyun.com/ctt2009/article/details/8659337</guid><author>ctt2009</author><pubDate>Mon, 11 Mar 2013 15:20:48 +0800</pubDate><description><![CDATA[里氏替换原则只要有父类出现的地方，子类也可以出现；即便替换为子类后，也不会出现任何错误或者异常。用户不需要去知道是父类还是子类。

子类必须完全实现父类的方法。在具体使用的时候要注意考虑，子类是否能够完全实现父类的业务。如果不能，则建议断开父子关系，采用组合，依赖，聚集等方法。委托关系。子类可以有自己的个性。有子类出现的地方， 父类未必可以出现。覆盖或者实习父类方法时，输入参数可以被放大。子类]]></description><category></category></item><item><title><![CDATA[AppWidget]]></title><link>https://blog.youkuaiyun.com/ctt2009/article/details/8649310</link><guid>https://blog.youkuaiyun.com/ctt2009/article/details/8649310</guid><author>ctt2009</author><pubDate>Fri, 08 Mar 2013 10:48:02 +0800</pubDate><description><![CDATA[1.创建一个app widget需要
AppWidgetProviderInfo object: 用于描述AppWidget的元数据，比如AppWidget的layout，更新频率，AppWidgetProvider等。
AppWidgetProvider class implementation： 基于broadcaster event定义一些程序员可以和AppWidget交互的基本方法，当]]></description><category></category></item><item><title><![CDATA[Andrid基础知识复习之Activity Task/Back Stack]]></title><link>https://blog.youkuaiyun.com/ctt2009/article/details/8645581</link><guid>https://blog.youkuaiyun.com/ctt2009/article/details/8645581</guid><author>ctt2009</author><pubDate>Thu, 07 Mar 2013 11:04:34 +0800</pubDate><description><![CDATA[allowTaskReparenting
1. 这个属性决定了一个activity是否能够从启动它的task移动到和它有affinity并且重新回到前台的task中.
2. 如果activity这个属性没有被设置，则采用application 的属性，默认为false.
3. 正常情况下，一个activity会在启动它的的task里完成它大部分的生命周期。我们可以利用这个属性，强制将其re-]]></description><category></category></item><item><title><![CDATA[AsyncTask]]></title><link>https://blog.youkuaiyun.com/ctt2009/article/details/8645294</link><guid>https://blog.youkuaiyun.com/ctt2009/article/details/8645294</guid><author>ctt2009</author><pubDate>Thu, 07 Mar 2013 10:24:55 +0800</pubDate><description><![CDATA[AsyncTask 一次只能执行一个任务，太耗时的操作不能用AsyncTask。AsyncTasks should ideally be used for short operations (a few seconds at the most.) 
曾经在工作中遇到一个问题，一个程序里面创建了多个AsyncTask，其中两个一个是下载图片，另一个是录音。当录音开启时候，下载图片，图片一直无法下载]]></description><category></category></item><item><title><![CDATA[判断一个Activity是否在最前端]]></title><link>https://blog.youkuaiyun.com/ctt2009/article/details/7886727</link><guid>https://blog.youkuaiyun.com/ctt2009/article/details/7886727</guid><author>ctt2009</author><pubDate>Mon, 20 Aug 2012 15:21:42 +0800</pubDate><description><![CDATA[在manifest文件中声明权限

ActivityManager am = (ActivityManager)getContext().getSystemService(Context.ACTIVITY_SERVICE);
List taskInfo = am.getRunningTasks(1);
ComponentName componentInfo = taskInfo.get(0]]></description><category></category></item><item><title><![CDATA[Tool Bar 中图片真彩显示]]></title><link>https://blog.youkuaiyun.com/ctt2009/article/details/5267965</link><guid>https://blog.youkuaiyun.com/ctt2009/article/details/5267965</guid><author>ctt2009</author><pubDate>Fri, 29 Jan 2010 09:26:00 +0800</pubDate><description><![CDATA[这个是参考http://www.codeproject.com/KB/toolbars/truecolortoolbar.aspx中显示真彩工具条的方法.
其基本思路是,引入TrueColorToolBar类.其相关代码在上面那个网址有相应的下载方式.
工程中引入类后,如下操作:
 
#define TOOLBAR_DRAW_BUTTON_WIDTH 24
#include "TrueC]]></description><category></category></item></channel></rss>