代码改变世界

Android4.0 Launcher 源码分析系列(二)

2012-02-16 10:33 by tang768168, 785 阅读, 0 推荐, 收藏, 编辑
摘要:上一节我们研究了Launcher的整体结构,这一节我们看看整个Laucher的入口点,同时Laucher在加载了它的布局文件Laucher.xml时都干了些什么。我们在源代码中可以找到LauncherApplication, 它继承了Application类,当整个Launcher启动时,它就是整个程序的入口。我们先来看它们在AndroidManifest.xml中是怎么配置的。 <application android:name="com.android.launcher2.LauncherApplication" android:label="@stri 阅读全文

Android4.0 Launcher 源码分析系列(一)

2012-02-16 10:32 by tang768168, 1914 阅读, 0 推荐, 收藏, 编辑
摘要:从今天起傻蛋打算做一个系列文章,对最新的Android4.0 系统中的Launcher,也就是Android4.0原生的桌面程序,进行一个深入浅出的分析,从而引领Android系统的编程爱好者对Launcher的设计思想,实现方式来做一个研究,从而能够通过这个实例最掌握到目前世界领先的设计方法,同时在程序中加入我们的一些新的实现。众所周知,对一些优秀源代码的分析,是提高编程水平的一条便捷的方式,希望本系列文章能够给大家带来一定的启发,同时欢迎大家和我一起讨论,我的微博是:http://weibo.com/zuiniuwang/ 先从整体上对Launcher布局作一个分析,让我们通过查看L... 阅读全文

Android的消息机制(4)

2011-12-30 11:50 by tang768168, 181 阅读, 0 推荐, 收藏, 编辑
摘要:上面的文章我们演示了如何把一个Message由子线程发送给主线程,但是如何将一个Message从主线程发送给子线程呢?子线程在默认的情况下是没有Looper的,也就没有可能操作子线程的消息队列。我们通过查API文档可以看到:Class used to run a message loop for a thread. Threads by default do not have a message loop associated with them; to create one, call prepare() in the thread that is to run the loop, and 阅读全文

Android的消息机制(3)

2011-12-30 11:46 by tang768168, 165 阅读, 0 推荐, 收藏, 编辑
摘要:当然我们也可以隐式的指定Looper ,代码如下:123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112/** * MessageQueue2.java * com.test * * Functio 阅读全文

Android的消息机制(2)

2011-12-30 11:45 by tang768168, 176 阅读, 0 推荐, 收藏, 编辑
摘要:上一节中,是主线程自己发了一个消息到自己的Message Queue中,并把消息从队列中提取出来。那么如何由别的线程发送消息给主线程的Message Queue中呢? 直接看代码~~12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510 阅读全文

Android的消息机制(1)

2011-12-30 11:31 by tang768168, 216 阅读, 0 推荐, 收藏, 编辑
摘要:在Android主线程启动时,就会执行Looper对象的消息圈(Message Loop)去监视该线程中的消息队列(Message Queue),当Message Queue中有消息,主线程就会取出此消息,然后处理之。注意:此Looper对象和消息队列对象都是此线程专属的,各只有一个,自己线程的Looper 只监视自己线程的MQ,而Handler对象可以有多个。但是我们自己生成的子线程并不会自动建立Looper对象,但是可以创建Looper对象以及一个Message Queue数据结构。123456789101112131415161718192021222324252627282930313 阅读全文

Android线程 Handler Message Queue AsyncTask详细介绍

2011-12-14 17:39 by tang768168, 555 阅读, 1 推荐, 收藏, 编辑
摘要:android线程 Handler Message Queue AsyncTask线程模型 线程交互 + 修改Button样式 示例 最终easy整合版 首先原谅我把文章的标题写的这么长。其实我还嫌弃它短了因为 写不下去了所以我就不写了。因为我实在不知道该怎么定义这篇文章的标题或许应该叫 “乱谈”比较合适。 这样可能还体现了 大道至简的 精髓 呵呵。 希望和我一样正在学习android的新手可以通过这篇文章熟悉android线程的交互,以及使用方法。以便将来更好的在自己的程序中运用。也希望大家 保持学习android的积极性,一起努力、交流、成长,因为文章比较长 大家可以分几次阅读。... 阅读全文

View编程(7): 自定义View_03

2011-12-14 16:41 by tang768168, 229 阅读, 0 推荐, 收藏, 编辑
摘要:根据android的api demo中提供的例子,自己尝试写一个自定义View,算是做个复习。这篇博客是建立在View编程(5): 自定义View_01_ApiDemo源码研究、View编程(6): 自定义View_02_ApiDemo源码研究基础之上。以上两篇博客是对某些知识点的原理性分析,该篇也算是一个小结,没有什么原理可说。好嘞,废话到此为止。1. 自定义ViewMyView.java源码packagemark.zhang;importandroid.content.Context;importandroid.graphics.Canvas;importandroid.graphics. 阅读全文

View编程(6): 自定义View_02_ApiDemo源码研究

2011-12-14 16:38 by tang768168, 279 阅读, 0 推荐, 收藏, 编辑
摘要:阅读这篇博客之前,假设你已经研究了View编程(5): 自定义View_01_ApiDemo源码研究提供的实例。当时,很奇怪为什么会出现这样的log:(在手机上测试结果,不是在模拟器上。)D/mark(2924):onMeasure()isinvoked!D/mark(2924):onMeasure()isinvoked!D/mark(2924):onMeasure()isinvoked!D/mark(2924):onMeasure()isinvoked!D/mark(2924):onMeasure()isinvoked!D/mark(2924):onMeasure()isinvoked!D/ 阅读全文

2011 最佳的 Linux 发行版

2011-12-14 16:12 by tang768168, 262 阅读, 0 推荐, 收藏, 编辑
摘要:一直很喜欢ubuntu,但是还有其它linux发行版也很不错。看看2011年最佳的 Linux 发行版吧!以下来自:http://www.oschina.net/news/20533/the-2011-top-7-best-linux-distributions-for-you?from=201108141. 最佳的 Linux 桌面发行版 —— Fedora Linux在过去几年一直都是 Ubuntu 和其衍生版本占据 Linux 桌面的头把交椅,但自从 Ubuntu 11.04 发布之后饱受诟病以及 Fedora 15 的发布,使得 Fedora 在今年拔得头筹。2. 最适合笔记本的 Li 阅读全文