随笔分类 -  Android

摘要:在本系列文章的第一篇《Android多线程分析之一:使用Thread异步下载图像》中,曾演示了如何使用 Thread 来完成异步任务。Android 为了简化在 UI 线程中完成异步任务(毕竟 UI 线程是 app 最重要的线程),实现了一个名为 AysncTask 的模板类。使用 AysncTask 能够在异步任务进行的同时,将任务进度状态反馈给 UI 线程(如让 UI 线程更新进度条)。正是由于它与 UI 线程紧密相关,使用的时候要就有一些限制,AysncTask 必须在 UI 线程中创建,并在 UI 线程中启动(通过调用其 execute() 方法);此外,AysncTask 设计的目的是用于一些耗时较短的任务,如果是耗时较长的任务不推荐使用 AysncTask。 阅读全文
posted @ 2014-07-19 14:00 飘飘白云 阅读(1651) 评论(0) 推荐(2) 编辑
摘要:在前面两篇文章《Android多线程分析之二:Thread的实现》,《Android多线程分析之三:Handler,Looper的实现》中分别介绍了 Thread 的创建,运行,销毁的过程以及 Thread与 Handler,Looper 之间的关联:Thread 在其 run() 方法中创建和运行消息处理循环 Looper,而 Looper::loop() 方法不断地从 MessageQueue 中获取消息,并由 Handler 分发处理该消息。接下来就来介绍 MessageQueue 的运作机制,MessageQueue。 阅读全文
posted @ 2014-07-14 17:15 飘飘白云 阅读(3588) 评论(1) 推荐(4) 编辑
摘要:在前文《Android多线程分析之二:Thread的实现》中已经详细分析了Android Thread 是如何创建,运行以及销毁的,其重点是对相应 native 方法进行分析,今天我将聚焦于 Android Framework 层多线程相关的类:Handler, Looper, MessageQueue, Message 以及它们与Thread 之间的关系。可以用一个不太妥当的比喻来形容它们之间的关联:如果把 Thread 比作生产车间,那么 Looper 就是放在这车间里的生产线,这条生产线源源不断地从 MessageQueue 中获取材料 Messsage,并分发处理 Message (由于Message 通常是完备的,所以 Looper 大多数情况下只是调度让 Message 的 Handler 去处理 Message)。正是因为消息需要在 Looper 中处理,而 Looper 又需运行在 Thread 中,所以不能随随便便在非 UI 线程中进行 UI 操作。 UI 操作通常会通过投递消息来实现,只有往正确的 Looper 投递消息才能得到处理,对于 UI 来说,这个 Loop 阅读全文
posted @ 2014-07-12 09:44 飘飘白云 阅读(2361) 评论(0) 推荐(0) 编辑
摘要:在前文《Android多线程分析之一:使用Thread异步下载图像》中演示了如何使用 Thread 处理异步事务。示例中这个 Java Thread 类都是位于 Framework 层的类,它自身是通过 JNI 转调 dalvik 里面的 Thread 相关方法实现的。因此要分析 Androd 中的线程,就需要分析这两层中的与线程相关的代码,这就是本文要探讨的主题。本文将把 Framework 层中的 Java Thread 称为 Android 线程/Thread,而把 dalvik 中的 Thread 成为 dalvik 线程/Thread。 阅读全文
posted @ 2014-07-10 17:44 飘飘白云 阅读(4445) 评论(0) 推荐(2) 编辑
摘要:打算整理一下对 Android Framework 中多线程相关知识的理解,主要集中在 Framework 层的 Thread, Handler, Looper, MessageQueue, Message, AysncTask,当然不可避免地要涉及到 native 方法,因此也会分析 dalvik 中和线程以及消息处理相关的代码:如 dalvik 中的 C++ Thread 类以及 MessageQueue 类。本文将从一个使用 Thread 的简单 应用入手,引入 Thread 这个话题,接下来的几篇文章会依次介绍前面提到的那些主题。 阅读全文
posted @ 2014-07-09 21:05 飘飘白云 阅读(3029) 评论(2) 推荐(2) 编辑
摘要:Ubuntu下安装 jdk6 阅读全文
posted @ 2013-06-17 15:05 飘飘白云 阅读(3122) 评论(0) 推荐(0) 编辑
摘要:有关手机屏幕的几个概念整理自:iiapk 的文章原文链接:http://iiapk.com/?tag=dipScreen size:屏幕尺寸,指具体的屏幕物理长度,以屏幕对角线的长度作为标识。平时我们所说的 3”屏,7”屏就是指这个尺寸;Resolution:屏幕分辨率,指屏幕上总共的物理像素点。虽然以 800 X 600 或 480 X 320 的形式出现。注意:在 Android 中,它并不是指具体的屏幕宽高比例。分辨率和屏幕大小没有任何联系,分辨率只是描述点的而已,所以相同分辨率下,屏幕越小,越清晰。Density:密度,表示每英寸有多少个显示点。density 是以分辨率为基础,即指在 阅读全文
posted @ 2011-03-23 09:12 飘飘白云 阅读(371) 评论(0) 推荐(0) 编辑
摘要:在上一篇文章《Android 上实现水波特效》中对水波波幅的计算是针对每一个像素的,效率比较低,尤其是在手机上运行,相当缓慢。我们可以利用线性插值进行优化,这样可以将计算减少一半(MeshSize 为 2)或减少四分之三(MeshSize 为 4),效率得以大大提升,即使是在水机上也能较为流畅地运行。 在下面的代码中,为了充分使用移位运算替代乘除法,MeshSize 必须为 2 的整次幂,MeshShift 就是其幂数,表示计算时的移位位数。 阅读全文
posted @ 2010-09-28 11:53 飘飘白云 阅读(924) 评论(0) 推荐(0) 编辑
摘要:本文水波算法部分整理自 GameRes 上的资料,原作者 Imagic。我只是在学习 Android 的过程中,想到这个特效,然后就在Android 上实现出来,并在源算法的基础上添加了雨滴滴落特效,以及划过水面时的涟漪特效。 该程序在模拟器和真机上运行速度都较慢,需要进一步优化或使用 JNI 实现,如果你想到好的优化算法,请联系我:kesalin@gmail.com。 阅读全文
posted @ 2010-09-01 13:30 飘飘白云 阅读(1523) 评论(0) 推荐(1) 编辑

本博客遵循 Creative Commons License “署名-非商业用途-保持一致”创作共用协议。 与我联系
点击右上角即可分享
微信分享提示