- 博客(20)
- 收藏
- 关注
原创 Handler机制的一些理解
// Handler允许你去发送/处理消息message和Runnable对象。每个handler对象对应一个// Thread和与这个Thread对应的MessageQueue。当你创建一个Handler的时候,它就和// Thread以及相对应的MessageQueue绑定在一起。从绑定成功的那一刻开始,Handler// 就可以向MessageQueue中发送消息和Runnable对象
2015-03-20 20:22:46
589
2
原创 You are attempting to build with an unsupported JDK.
Checking build tools versions...************************************************************You are attempting to build with an unsupported JDK.You use OpenJDK but only Sun/Oracle JDK is sup
2014-08-29 11:24:14
3265
原创 Android OOM(Out of memory) 内存泄露基本知识
最近又碰到了一个OOM的问题,这次还是好好学习总结下。简单来说Activity A onCreate()里, B b = new B(mContext); 在B的构造方法中,注册了一个相关的监听;结果在Activity A的onDestroy()并没有反注册这个监听,导致这个监听一直存在,而他持有mContext, 也就是Activity A,结果导致了从hprof中看,存在有7个Activi
2013-10-21 16:19:18
1245
原创 RILJ学习
今天重新看了下RIL,遇到问题去问老马的时候,他分享了一本android内核分析给我,这本书真是太牛了,写的好透彻,看了这书后才发现什么是看Code该有的态度。默默回忆下我之前看Code乱七八糟的套路,内心极端鄙视自己。 RILJ RIL.java相当于RIL的代理,起到消息转发的作用。RILJ一旦和RILD连接成功,就可以向RILD发送请求,RID接到请求后,再将消
2013-08-01 10:06:41
1774
1
原创 为什么单起一个service而不是直接在Activity里用thread或者asynctask来load图片那?
和朋友通电话,他问了我这么个问题,一时语塞...有太多显而易见的问题背后都有一段让你恍然大悟的知识留贴。明天答。
2013-07-10 22:52:37
807
原创 AIDL的一点理解
最近参与了一个项目,其中有用到两个APK间进行通信,最终采用的是AIDL,于是自己小研究了下,如有错误,请大家指正。1. 创建.aidl文件首先,创建.aidl文件。这个文件类似于声明文件,对于服务器端而言,就是声明你需要对外提供什么接口;对于客户端来说,声明了自己将要用到的接口。所以,不仅服务器端要创建.aidl文件,客户端同样需要。IEmilyService.ai
2013-07-10 22:19:46
1081
1
原创 java.lang.IllegalStateException: ViewStub must have a non-null ViewGroup viewParent
E/AndroidRuntime( 1908): FATAL EXCEPTION: mainE/AndroidRuntime( 1908): java.lang.IllegalStateException: ViewStub must have a non-null ViewGroup viewParentReason: ViewStub不能反复inflate,只能inflate一
2013-05-24 15:26:09
4258
原创 MMI SS USSD扫盲贴
MMI是Man-Machine-Interface的缩写。从功能上来看,有一些从拨号盘拨出去的字符串,它的实际作用不是建立一个通话而是为了完成某种服务,这个就是MMI;从格式上来看,每一个从拨号盘输入的字符串,如果包含有*或者#,都可以称之为MMI. MMI包括SS, USSD,Manufacturer defined MMI codes, SIM control codes等等。Ma
2013-05-22 18:29:36
3608
原创 Fragment & Fragment间的通信实现
Fragment是一个和Activity息息相关的控件。一个Fragment必须总是嵌在一个Activity里,Activity的生命周期会直接影响到它,比如当Activity Paused的时候,Fragment也是Paused. 但是当Activity resume的时候,Fragment可以独立的进行任何包括添加,删除等的操作。Fragment的生命周期和Activity十分类似,下面这
2013-05-20 16:44:24
817
原创 Eclipse 提示:The connection to adb is down, and a severe error has occured.
找到android SDK下platform-tools的路径分别输入以下内容。adb kill-serveradb start-server
2013-05-20 10:58:04
823
原创 CallerInfoAsyncQuery
留帖。今天看某段代码看得要死,CallerInfoAsyncQuery没看懂,继续看。栈内的listener是怎么被删除的?
2013-03-13 17:30:35
923
原创 设计模式的几个重要原则
里氏替换原则只要有父类出现的地方,子类也可以出现;即便替换为子类后,也不会出现任何错误或者异常。用户不需要去知道是父类还是子类。子类必须完全实现父类的方法。在具体使用的时候要注意考虑,子类是否能够完全实现父类的业务。如果不能,则建议断开父子关系,采用组合,依赖,聚集等方法。委托关系。子类可以有自己的个性。有子类出现的地方, 父类未必可以出现。覆盖或者实习父类方法时,输入参数可以被放大。子类
2013-03-11 15:20:48
740
原创 AppWidget
1.创建一个app widget需要AppWidgetProviderInfo object: 用于描述AppWidget的元数据,比如AppWidget的layout,更新频率,AppWidgetProvider等。AppWidgetProvider class implementation: 基于broadcaster event定义一些程序员可以和AppWidget交互的基本方法,当
2013-03-08 10:48:02
647
原创 Andrid基础知识复习之Activity Task/Back Stack
allowTaskReparenting1. 这个属性决定了一个activity是否能够从启动它的task移动到和它有affinity并且重新回到前台的task中.2. 如果activity这个属性没有被设置,则采用application 的属性,默认为false.3. 正常情况下,一个activity会在启动它的的task里完成它大部分的生命周期。我们可以利用这个属性,强制将其re-
2013-03-07 11:04:34
881
原创 AsyncTask
AsyncTask 一次只能执行一个任务,太耗时的操作不能用AsyncTask。AsyncTasks should ideally be used for short operations (a few seconds at the most.) 曾经在工作中遇到一个问题,一个程序里面创建了多个AsyncTask,其中两个一个是下载图片,另一个是录音。当录音开启时候,下载图片,图片一直无法下载
2013-03-07 10:24:55
808
转载 判断一个Activity是否在最前端
在manifest文件中声明权限ActivityManager am = (ActivityManager)getContext().getSystemService(Context.ACTIVITY_SERVICE);List taskInfo = am.getRunningTasks(1);ComponentName componentInfo = taskInfo.get(0
2012-08-20 15:21:42
1435
原创 Tool Bar 中图片真彩显示
这个是参考http://www.codeproject.com/KB/toolbars/truecolortoolbar.aspx中显示真彩工具条的方法.其基本思路是,引入TrueColorToolBar类.其相关代码在上面那个网址有相应的下载方式.工程中引入类后,如下操作: #define TOOLBAR_DRAW_BUTTON_WIDTH 24#include "TrueC
2010-01-29 09:26:00
713
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人