罗朝辉(飘飘白云)

关注嵌入式操作系统,移动平台,图形开发。-->加微博 ^_^

  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  85 随笔 :: 0 文章 :: 169 评论 :: 0 Trackbacks

移动开发

移动应用相关
     摘要: 在本系列文章的第一篇《Android多线程分析之一:使用Thread异步下载图像》中,曾演示了如何使用 Thread 来完成异步任务。Android 为了简化在 UI 线程中完成异步任务(毕竟 UI 线程是 app 最重要的线程),实现了一个名为 AysncTask 的模板类。使用 AysncTask 能够在异步任务进行的同时,将任务进度状态反馈给 UI 线程(如让 UI 线程更新进度条)。正是由于它与 UI 线程紧密相关,使用的时候要就有一些限制,AysncTask 必须在 UI 线程中创建,并在 UI 线程中启动(通过调用其 execute() 方法);此外,AysncTask 设计的目的是用于一些耗时较短的任务,如果是耗时较长的任务不推荐使用 AysncTask。

可以用简化记忆 “三参数,四步骤” 来学习 AysncTask。 即带有三个模板参数 ,四个处理步骤:onPreExecute,doInBackground,onProgressUpdate,onPostExecute。  阅读全文
posted @ 2014-07-19 14:45 罗朝辉 阅读(1355) | 评论 (1)  编辑

     摘要: 在前面两篇文章《Android多线程分析之二:Thread的实现》,《Android多线程分析之三:Handler,Looper的实现》中分别介绍了 Thread 的创建,运行,销毁的过程以及 Thread与 Handler,Looper 之间的关联:Thread 在其 run() 方法中创建和运行消息处理循环 Looper,而 Looper::loop() 方法不断地从 MessageQueue 中获取消息,并由 Handler 分发处理该消息。接下来就来介绍 MessageQueue 的运作机制,MessageQueue。  阅读全文
posted @ 2014-07-14 17:15 罗朝辉 阅读(1545) | 评论 (0)  编辑

     摘要: 在前文《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 11:00 罗朝辉 阅读(2498) | 评论 (0)  编辑

     摘要: 在前文《Android多线程分析之一:使用Thread异步下载图像》中演示了如何使用 Thread 处理异步事务。示例中这个 Java Thread 类都是位于 Framework 层的类,它自身是通过 JNI 转调 dalvik 里面的 Thread 相关方法实现的。因此要分析 Androd 中的线程,就需要分析这两层中的与线程相关的代码,这就是本文要探讨的主题。本文将把 Framework 层中的 Java Thread 称为 Android 线程/Thread,而把 dalvik 中的 Thread 成为 dalvik 线程/Thread。   阅读全文
posted @ 2014-07-11 10:29 罗朝辉 阅读(5977) | 评论 (1)  编辑

     摘要: 打算整理一下对 Android Framework 中多线程相关知识的理解,主要集中在 Framework 层的 Thread, Handler, Looper, MessageQueue, Message, AysncTask,当然不可避免地要涉及到 native 方法,因此也会分析 dalvik 中和线程以及消息处理相关的代码:如 dalvik 中的 C++ Thread 类以及 MessageQueue 类。本文将从一个使用 Thread 的简单 应用入手,引入 Thread 这个话题,接下来的几篇文章会依次介绍前面提到的那些主题。  阅读全文
posted @ 2014-07-10 09:22 罗朝辉 阅读(1414) | 评论 (0)  编辑

     摘要: iOS 游戏开发教程资源,来自 http://www.raywenderlich.com  阅读全文
posted @ 2012-11-10 22:45 罗朝辉 阅读(871) | 评论 (0)  编辑

     摘要: 在前文中总结到“ObjC 为每个类的定义生成两个 objc_class ,一个即普通的 class,另一个即 metaclass。我们可以在运行期创建这两个 objc_class 数据结构,然后使用 objc_addClass 动态地创建新的类定义。”今天我们来如何在运行时动态创建类。下面这个函数就是应用前面讲到的Class,MetaClass的概念,在运行时动态创建一个类。  阅读全文
posted @ 2012-01-30 14:05 罗朝辉 阅读(4351) | 评论 (2)  编辑

     摘要: 在前文深入浅出Cocoa之消息中,我简要介绍了ObjC 中消息的基本情况,包括SEL查找,缓存以及消息转发等。在本文中,我要介绍一个很有趣的技术,Method swizzling,通过这个手法,我们可以动态修改方法的实现,从而达到修改类行为的目的。当然,还有其他办法(如 ClassPosing,Category)也可以达到这个目的。ClassPosing 是针对类级别的,是重量级的手法,Category 也差不多,比较重量级,此外 Category 还无法避免下面的递归死循环(如果你的代码出现了如下形式的递归调用,应该考虑一下你的设计,而不是使用在这里介绍的 Method Swizzling 手法,:))。  阅读全文
posted @ 2012-01-05 17:02 罗朝辉 阅读(2288) | 评论 (4)  编辑

     摘要: Three20 是 facebook 开源的一款功能齐全又强大的库,覆盖 UI,network,JSON/XML解析等。其 github 仓库在这里:https://github.com/facebook/three20 ,这个页面也有如何在工程中添加 three20 库的介绍,不过在 Lion 系统下以及 xcode 4.2 下有些许不同,英文好的同学可以参看原文。现整理如下:  阅读全文
posted @ 2011-12-31 17:45 罗朝辉 阅读(2543) | 评论 (0)  编辑

     摘要: NSWorkspace 为应用程序提供如下服务:
1)打开,操作文件/设备,获取文件/设备信息
2)跟踪文件,设备以及数据库的变动
3)设置或获取文件的 Finder 信息
4)启动应用程序。  阅读全文
posted @ 2011-09-05 16:04 罗朝辉 阅读(2770) | 评论 (0)  编辑

     摘要: Core data 是 Cocoa 中处理数据,绑定数据的关键特性,其重要性不言而喻,但也比较复杂。Core Data 相关的类比较多,初学者往往不太容易弄懂。计划用三个教程来讲解这一部分:
框架详解:讲解 Core data 框架,运作过程,设计的类;
Core data应用程序示例:通过生成一个使用 Core data 的应用程序来讲解如何 在 XCode 4 中使用 Core data。
手动创建Core data示例:不利用框架自动生成代码,完全自己编写所有的 Core data 相关代码的命令行应用程序来深入讲解 Core data的使用。  阅读全文
posted @ 2011-09-01 14:14 罗朝辉 阅读(5600) | 评论 (0)  编辑

     摘要: block 是 Apple 在 GCC 4.2 中扩充的新语法特性,其目的是支持多核并行编程。我们可以将 dispatch_queue 与 block 结合起来使用,方便进行多线程编程。  阅读全文
posted @ 2011-08-26 13:23 罗朝辉 阅读(11891) | 评论 (5)  编辑

     摘要: 本文详细讲述了Object-C 中消息的里里外外,涉及类结构class, SEL, IMP,消息的动态绑定,消息转发等。  阅读全文
posted @ 2011-08-15 20:20 罗朝辉 阅读(7679) | 评论 (1)  编辑

     摘要: 有关手机屏幕的几个概念:Screen size, Resolution, Density, dip, dpi, pixel, 色阶。
  阅读全文
posted @ 2011-03-22 16:53 罗朝辉 阅读(536) | 评论 (0)  编辑

     摘要: Objective-C 入门知识

编程工作做久了,最初的新鲜感难免会消磨殆尽。幸好总是会有新的技术闪耀登场,重燃编辑人员的兴趣,Mac OS X 就饱含这样神奇的技术。

---Mark Dalrymple & Scott Knaster  阅读全文
posted @ 2011-03-20 20:48 罗朝辉 阅读(3667) | 评论 (0)  编辑

Full 移动开发 Archive