Android
飘飘白云
用简单的方式把事情做到极致。
展开
-
Android 上实现水波特效
本文水波算法部分整理自 GameRes 上的资料,原作者 Imagic。我只是在学习 Android 的过程中,想到这个特效,然后就在Android 上实现出来,并在源算法的基础上添加了雨滴滴落特效,以及划过水面时的涟漪特效。 该程序在模拟器和真机上运行速度都较慢,需要进一步优化或使用 JNI 实现,如果你想到好的优化算法,请联系我:kesalin@gmail.com。原创 2010-09-01 13:30:00 · 9258 阅读 · 7 评论 -
Android5 Zygote 与 SystemServer 启动流程分析
Android5.0.1 的启动流程与之前的版本相比变化并不大,OK,变化虽然还是有:SystemServer 启动过程的 init1(), init2()没有了,但主干流程依然不变:Linux 内核加载完毕之后,首先启动 init 进程,然后解析 init.rc,并根据其内容由 init 进程装载 Android 文件系统、创建系统目录、初始化属性系统、启动一些守护进程,其中最重要的守护进程就是 Zygote 进程原创 2016-02-25 10:42:40 · 15325 阅读 · 1 评论 -
Android多线程分析之二:Thread的实现
在前文《Android多线程分析之一:使用Thread异步下载图像》中演示了如何使用 Thread 处理异步事务。示例中这个 Java Thread 类都是位于 Framework 层的类,它自身是通过 JNI 转调 dalvik 里面的 Thread 相关方法实现的。因此要分析 Androd 中的线程,就需要分析这两层中的与线程相关的代码,这就是本文要探讨的主题。本文将把 Framework 层中的 Java Thread 称为 Android 线程/Thread,而把 dalvik 中的 Thread原创 2014-07-10 17:34:21 · 24795 阅读 · 4 评论 -
Android多线程分析之三:Handler,Looper的实现
在前文《Android多线程分析之二:Thread的实现》中已经详细分析了Android Thread 是如何创建,运行以及销毁的,其重点是对相应 native 方法进行分析,今天我将聚焦于 Android Framework 层多线程相关的类:Handler, Looper, MessageQueue, Message 以及它们与Thread 之间的关系。可以用一个不太妥当的比喻来形容它们之间的关联:如果把 Thread 比作生产车间,那么 Looper 就是放在这车间里的生产线,这条生产线源源不断地从原创 2014-07-12 10:04:07 · 25748 阅读 · 6 评论 -
Android多线程分析之一:使用Thread异步下载图像
打算整理一下对 Android Framework 中多线程相关知识的理解,主要集中在 Framework 层的 Thread, Handler, Looper, MessageQueue, Message, AysncTask,当然不可避免地要涉及到 native 方法,因此也会分析 dalvik 中和线程以及消息处理相关的代码:如 dalvik 中的 C++ Thread 类以及 MessageQueue 类。本文将从一个使用 Thread 的简单 应用入手,引入 Thread 这个话题,接下来的几篇文原创 2014-07-09 20:48:53 · 18493 阅读 · 0 评论 -
Android多线程分析之五:使用AsyncTask异步下载图像
在本系列文章的第一篇《Android多线程分析之一:使用Thread异步下载图像》中,曾演示了如何使用 Thread 来完成异步任务。Android 为了简化在 UI 线程中完成异步任务(毕竟 UI 线程是 app 最重要的线程),实现了一个名为 AysncTask 的模板类。使用 AysncTask 能够在异步任务进行的同时,将任务进度状态反馈给 UI 线程(如让 UI 线程更新进度条)。正是由于它与 UI 线程紧密相关,使用的时候要就有一些限制,AysncTask 必须在 UI 线程中创建,并在 UI原创 2014-07-19 15:10:07 · 14807 阅读 · 1 评论 -
Android多线程分析之四:MessageQueue的实现
在前面两篇文章《Android多线程分析之二:Thread的实现》,《Android多线程分析之三:Handler,Looper的实现》中分别介绍了 Thread 的创建,运行,销毁的过程以及 Thread与 Handler,Looper 之间的关联:Thread 在其 run() 方法中创建和运行消息处理循环 Looper,而 Looper::loop() 方法不断地从 MessageQueue 中获取消息,并由 Handler 分发处理该消息。接下来就来介绍 MessageQueue 的运作机制,Mes原创 2014-07-14 17:31:10 · 40771 阅读 · 9 评论 -
有关手机屏幕的几个概念
摘要: 有关手机屏幕的几个概念:Screen size, Resolution, Density, dip, dpi, pixel, 色阶。原创 2011-03-23 09:12:00 · 2888 阅读 · 0 评论 -
Android 上实现水波特效二--优化
在上一篇文章《Android 上实现水波特效》中对水波波幅的计算是针对每一个像素的,效率比较低,尤其是在手机上运行,相当缓慢。我们可以利用线性插值进行优化,这样可以将计算减少一半(MeshSize 为 2)或减少四分之三(MeshSize 为 4),效率得以大大提升,即使是在水机上也能较为流畅地运行。原创 2010-09-28 11:53:00 · 2995 阅读 · 2 评论 -
Android4.4之后休眠状态下Alarm不准时的问题
Android4.4及之后休眠状态下Alarm不准时的问题为了减轻功耗,延长电池使用时间,Android 4.4及之后的版本采用非精准闹钟机制,以及休眠状态下的wakeup类型的alarm不会实时唤醒设备,而会等到机器被物理唤醒时才触发alarm。Android 6.0提供了新的api:setExactAndAllowWhileIdle()部分解决这个问题,但依然不能在休眠状态下精准唤醒。关于ala原创 2017-04-17 15:21:43 · 15719 阅读 · 0 评论