﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-罗朝辉（飘飘白云）-随笔分类-移动开发</title><link>http://www.cppblog.com/kesalin/category/11127.html</link><description>关注嵌入式操作系统，移动平台，图形开发。&lt;a href="http://weibo.com/kesalin/" target="_top"&gt;--&gt;加微博 ^_^&lt;/a&gt;</description><language>zh-cn</language><lastBuildDate>Sat, 19 Jul 2014 11:47:06 GMT</lastBuildDate><pubDate>Sat, 19 Jul 2014 11:47:06 GMT</pubDate><ttl>60</ttl><item><title>Android多线程分析之五：使用AsyncTask异步下载图像</title><link>http://www.cppblog.com/kesalin/archive/2014/07/19/android_asynctask.html</link><dc:creator>罗朝辉</dc:creator><author>罗朝辉</author><pubDate>Sat, 19 Jul 2014 06:45:00 GMT</pubDate><guid>http://www.cppblog.com/kesalin/archive/2014/07/19/android_asynctask.html</guid><wfw:comment>http://www.cppblog.com/kesalin/comments/207719.html</wfw:comment><comments>http://www.cppblog.com/kesalin/archive/2014/07/19/android_asynctask.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/kesalin/comments/commentRss/207719.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/kesalin/services/trackbacks/207719.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 在本系列文章的第一篇《Android多线程分析之一：使用Thread异步下载图像》中，曾演示了如何使用 Thread 来完成异步任务。Android 为了简化在 UI 线程中完成异步任务（毕竟 UI 线程是 app 最重要的线程），实现了一个名为 AysncTask 的模板类。使用 AysncTask 能够在异步任务进行的同时，将任务进度状态反馈给 UI 线程（如让 UI 线程更新进度条）。正是由于它与 UI 线程紧密相关，使用的时候要就有一些限制，AysncTask 必须在 UI 线程中创建，并在 UI 线程中启动（通过调用其 execute() 方法）；此外，AysncTask 设计的目的是用于一些耗时较短的任务，如果是耗时较长的任务不推荐使用 AysncTask。<br><br>可以用简化记忆 “三参数，四步骤” 来学习 AysncTask。 即带有三个模板参数 <Params, Progress, Result>，四个处理步骤：onPreExecute，doInBackground，onProgressUpdate，onPostExecute。&nbsp;&nbsp;<a href='http://www.cppblog.com/kesalin/archive/2014/07/19/android_asynctask.html'>阅读全文</a><img src ="http://www.cppblog.com/kesalin/aggbug/207719.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/kesalin/" target="_blank">罗朝辉</a> 2014-07-19 14:45 <a href="http://www.cppblog.com/kesalin/archive/2014/07/19/android_asynctask.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Android多线程分析之四：MessageQueue的实现</title><link>http://www.cppblog.com/kesalin/archive/2014/07/14/android_messagequeue.html</link><dc:creator>罗朝辉</dc:creator><author>罗朝辉</author><pubDate>Mon, 14 Jul 2014 09:15:00 GMT</pubDate><guid>http://www.cppblog.com/kesalin/archive/2014/07/14/android_messagequeue.html</guid><wfw:comment>http://www.cppblog.com/kesalin/comments/207645.html</wfw:comment><comments>http://www.cppblog.com/kesalin/archive/2014/07/14/android_messagequeue.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/kesalin/comments/commentRss/207645.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/kesalin/services/trackbacks/207645.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 在前面两篇文章《Android多线程分析之二：Thread的实现》，《Android多线程分析之三：Handler，Looper的实现》中分别介绍了 Thread 的创建，运行，销毁的过程以及 Thread与 Handler，Looper 之间的关联：Thread 在其 run() 方法中创建和运行消息处理循环 Looper，而 Looper::loop() 方法不断地从 MessageQueue 中获取消息，并由 Handler 分发处理该消息。接下来就来介绍 MessageQueue 的运作机制，MessageQueue。&nbsp;&nbsp;<a href='http://www.cppblog.com/kesalin/archive/2014/07/14/android_messagequeue.html'>阅读全文</a><img src ="http://www.cppblog.com/kesalin/aggbug/207645.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/kesalin/" target="_blank">罗朝辉</a> 2014-07-14 17:15 <a href="http://www.cppblog.com/kesalin/archive/2014/07/14/android_messagequeue.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Android多线程分析之三：Handler，Looper的实现</title><link>http://www.cppblog.com/kesalin/archive/2014/07/12/android_handler_looper.html</link><dc:creator>罗朝辉</dc:creator><author>罗朝辉</author><pubDate>Sat, 12 Jul 2014 03:00:00 GMT</pubDate><guid>http://www.cppblog.com/kesalin/archive/2014/07/12/android_handler_looper.html</guid><wfw:comment>http://www.cppblog.com/kesalin/comments/207625.html</wfw:comment><comments>http://www.cppblog.com/kesalin/archive/2014/07/12/android_handler_looper.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/kesalin/comments/commentRss/207625.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/kesalin/services/trackbacks/207625.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 在前文《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&nbsp;&nbsp;<a href='http://www.cppblog.com/kesalin/archive/2014/07/12/android_handler_looper.html'>阅读全文</a><img src ="http://www.cppblog.com/kesalin/aggbug/207625.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/kesalin/" target="_blank">罗朝辉</a> 2014-07-12 11:00 <a href="http://www.cppblog.com/kesalin/archive/2014/07/12/android_handler_looper.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Android多线程分析之二：Thread的实现</title><link>http://www.cppblog.com/kesalin/archive/2014/07/11/android_thread_impl.html</link><dc:creator>罗朝辉</dc:creator><author>罗朝辉</author><pubDate>Fri, 11 Jul 2014 02:29:00 GMT</pubDate><guid>http://www.cppblog.com/kesalin/archive/2014/07/11/android_thread_impl.html</guid><wfw:comment>http://www.cppblog.com/kesalin/comments/207610.html</wfw:comment><comments>http://www.cppblog.com/kesalin/archive/2014/07/11/android_thread_impl.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/kesalin/comments/commentRss/207610.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/kesalin/services/trackbacks/207610.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 在前文《Android多线程分析之一：使用Thread异步下载图像》中演示了如何使用 Thread 处理异步事务。示例中这个 Java Thread 类都是位于 Framework 层的类，它自身是通过 JNI 转调 dalvik 里面的 Thread 相关方法实现的。因此要分析 Androd 中的线程，就需要分析这两层中的与线程相关的代码，这就是本文要探讨的主题。本文将把 Framework 层中的 Java Thread 称为 Android 线程/Thread，而把 dalvik 中的  Thread 成为 dalvik 线程/Thread。 &nbsp;&nbsp;<a href='http://www.cppblog.com/kesalin/archive/2014/07/11/android_thread_impl.html'>阅读全文</a><img src ="http://www.cppblog.com/kesalin/aggbug/207610.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/kesalin/" target="_blank">罗朝辉</a> 2014-07-11 10:29 <a href="http://www.cppblog.com/kesalin/archive/2014/07/11/android_thread_impl.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Android多线程分析之一：使用Thread异步下载图像</title><link>http://www.cppblog.com/kesalin/archive/2014/07/10/android_thread_demo.html</link><dc:creator>罗朝辉</dc:creator><author>罗朝辉</author><pubDate>Thu, 10 Jul 2014 01:22:00 GMT</pubDate><guid>http://www.cppblog.com/kesalin/archive/2014/07/10/android_thread_demo.html</guid><wfw:comment>http://www.cppblog.com/kesalin/comments/207598.html</wfw:comment><comments>http://www.cppblog.com/kesalin/archive/2014/07/10/android_thread_demo.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/kesalin/comments/commentRss/207598.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/kesalin/services/trackbacks/207598.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 打算整理一下对 Android Framework 中多线程相关知识的理解，主要集中在 Framework 层的 Thread, Handler, Looper, MessageQueue, Message, AysncTask，当然不可避免地要涉及到 native 方法，因此也会分析 dalvik 中和线程以及消息处理相关的代码：如 dalvik 中的 C++ Thread 类以及 MessageQueue 类。本文将从一个使用 Thread 的简单 应用入手，引入 Thread 这个话题，接下来的几篇文章会依次介绍前面提到的那些主题。&nbsp;&nbsp;<a href='http://www.cppblog.com/kesalin/archive/2014/07/10/android_thread_demo.html'>阅读全文</a><img src ="http://www.cppblog.com/kesalin/aggbug/207598.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/kesalin/" target="_blank">罗朝辉</a> 2014-07-10 09:22 <a href="http://www.cppblog.com/kesalin/archive/2014/07/10/android_thread_demo.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>iOS 游戏开发教程资源</title><link>http://www.cppblog.com/kesalin/archive/2012/11/10/ios_game_dev_resource.html</link><dc:creator>罗朝辉</dc:creator><author>罗朝辉</author><pubDate>Sat, 10 Nov 2012 14:45:00 GMT</pubDate><guid>http://www.cppblog.com/kesalin/archive/2012/11/10/ios_game_dev_resource.html</guid><wfw:comment>http://www.cppblog.com/kesalin/comments/195031.html</wfw:comment><comments>http://www.cppblog.com/kesalin/archive/2012/11/10/ios_game_dev_resource.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/kesalin/comments/commentRss/195031.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/kesalin/services/trackbacks/195031.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: iOS 游戏开发教程资源，来自 http://www.raywenderlich.com&nbsp;&nbsp;<a href='http://www.cppblog.com/kesalin/archive/2012/11/10/ios_game_dev_resource.html'>阅读全文</a><img src ="http://www.cppblog.com/kesalin/aggbug/195031.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/kesalin/" target="_blank">罗朝辉</a> 2012-11-10 22:45 <a href="http://www.cppblog.com/kesalin/archive/2012/11/10/ios_game_dev_resource.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[Cocoa]深入浅出Cocoa 之动态创建类</title><link>http://www.cppblog.com/kesalin/archive/2012/01/30/objc_create_class.html</link><dc:creator>罗朝辉</dc:creator><author>罗朝辉</author><pubDate>Mon, 30 Jan 2012 06:05:00 GMT</pubDate><guid>http://www.cppblog.com/kesalin/archive/2012/01/30/objc_create_class.html</guid><wfw:comment>http://www.cppblog.com/kesalin/comments/164679.html</wfw:comment><comments>http://www.cppblog.com/kesalin/archive/2012/01/30/objc_create_class.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/kesalin/comments/commentRss/164679.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/kesalin/services/trackbacks/164679.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 在前文中总结到“ObjC 为每个类的定义生成两个 objc_class ，一个即普通的 class，另一个即 metaclass。我们可以在运行期创建这两个 objc_class 数据结构，然后使用 objc_addClass 动态地创建新的类定义。”今天我们来如何在运行时动态创建类。下面这个函数就是应用前面讲到的Class，MetaClass的概念，在运行时动态创建一个类。&nbsp;&nbsp;<a href='http://www.cppblog.com/kesalin/archive/2012/01/30/objc_create_class.html'>阅读全文</a><img src ="http://www.cppblog.com/kesalin/aggbug/164679.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/kesalin/" target="_blank">罗朝辉</a> 2012-01-30 14:05 <a href="http://www.cppblog.com/kesalin/archive/2012/01/30/objc_create_class.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[Cocoa]深入浅出Cocoa之 Method Swizzling</title><link>http://www.cppblog.com/kesalin/archive/2012/01/05/method_swizzling.html</link><dc:creator>罗朝辉</dc:creator><author>罗朝辉</author><pubDate>Thu, 05 Jan 2012 09:02:00 GMT</pubDate><guid>http://www.cppblog.com/kesalin/archive/2012/01/05/method_swizzling.html</guid><wfw:comment>http://www.cppblog.com/kesalin/comments/163636.html</wfw:comment><comments>http://www.cppblog.com/kesalin/archive/2012/01/05/method_swizzling.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.cppblog.com/kesalin/comments/commentRss/163636.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/kesalin/services/trackbacks/163636.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 在前文深入浅出Cocoa之消息中，我简要介绍了ObjC 中消息的基本情况，包括SEL查找，缓存以及消息转发等。在本文中，我要介绍一个很有趣的技术，Method swizzling，通过这个手法，我们可以动态修改方法的实现，从而达到修改类行为的目的。当然，还有其他办法（如 ClassPosing，Category）也可以达到这个目的。ClassPosing 是针对类级别的，是重量级的手法，Category 也差不多，比较重量级，此外 Category 还无法避免下面的递归死循环（如果你的代码出现了如下形式的递归调用，应该考虑一下你的设计，而不是使用在这里介绍的 Method Swizzling 手法，：））。&nbsp;&nbsp;<a href='http://www.cppblog.com/kesalin/archive/2012/01/05/method_swizzling.html'>阅读全文</a><img src ="http://www.cppblog.com/kesalin/aggbug/163636.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/kesalin/" target="_blank">罗朝辉</a> 2012-01-05 17:02 <a href="http://www.cppblog.com/kesalin/archive/2012/01/05/method_swizzling.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[Cocoa]在工程中使用 Three20 库：下拉刷新 tableview</title><link>http://www.cppblog.com/kesalin/archive/2011/12/31/three20.html</link><dc:creator>罗朝辉</dc:creator><author>罗朝辉</author><pubDate>Sat, 31 Dec 2011 09:45:00 GMT</pubDate><guid>http://www.cppblog.com/kesalin/archive/2011/12/31/three20.html</guid><wfw:comment>http://www.cppblog.com/kesalin/comments/163284.html</wfw:comment><comments>http://www.cppblog.com/kesalin/archive/2011/12/31/three20.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/kesalin/comments/commentRss/163284.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/kesalin/services/trackbacks/163284.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Three20 是 facebook 开源的一款功能齐全又强大的库，覆盖 UI，network，JSON/XML解析等。其 github 仓库在这里：https://github.com/facebook/three20 ，这个页面也有如何在工程中添加 three20 库的介绍，不过在 Lion 系统下以及 xcode 4.2 下有些许不同，英文好的同学可以参看原文。现整理如下：&nbsp;&nbsp;<a href='http://www.cppblog.com/kesalin/archive/2011/12/31/three20.html'>阅读全文</a><img src ="http://www.cppblog.com/kesalin/aggbug/163284.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/kesalin/" target="_blank">罗朝辉</a> 2011-12-31 17:45 <a href="http://www.cppblog.com/kesalin/archive/2011/12/31/three20.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[Cocoa] NSWorkspace 使用示例</title><link>http://www.cppblog.com/kesalin/archive/2011/09/05/cocoa_nsworkspace.html</link><dc:creator>罗朝辉</dc:creator><author>罗朝辉</author><pubDate>Mon, 05 Sep 2011 08:04:00 GMT</pubDate><guid>http://www.cppblog.com/kesalin/archive/2011/09/05/cocoa_nsworkspace.html</guid><wfw:comment>http://www.cppblog.com/kesalin/comments/155133.html</wfw:comment><comments>http://www.cppblog.com/kesalin/archive/2011/09/05/cocoa_nsworkspace.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/kesalin/comments/commentRss/155133.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/kesalin/services/trackbacks/155133.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: NSWorkspace 为应用程序提供如下服务：<br>1）打开，操作文件/设备，获取文件/设备信息<br>2）跟踪文件，设备以及数据库的变动<br>3）设置或获取文件的 Finder 信息<br>4）启动应用程序。&nbsp;&nbsp;<a href='http://www.cppblog.com/kesalin/archive/2011/09/05/cocoa_nsworkspace.html'>阅读全文</a><img src ="http://www.cppblog.com/kesalin/aggbug/155133.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/kesalin/" target="_blank">罗朝辉</a> 2011-09-05 16:04 <a href="http://www.cppblog.com/kesalin/archive/2011/09/05/cocoa_nsworkspace.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[Cocoa]深入浅出 Cocoa 之 Core Data（1） - 框架详解</title><link>http://www.cppblog.com/kesalin/archive/2011/09/01/cocoa_core_data.html</link><dc:creator>罗朝辉</dc:creator><author>罗朝辉</author><pubDate>Thu, 01 Sep 2011 06:14:00 GMT</pubDate><guid>http://www.cppblog.com/kesalin/archive/2011/09/01/cocoa_core_data.html</guid><wfw:comment>http://www.cppblog.com/kesalin/comments/154868.html</wfw:comment><comments>http://www.cppblog.com/kesalin/archive/2011/09/01/cocoa_core_data.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/kesalin/comments/commentRss/154868.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/kesalin/services/trackbacks/154868.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Core data 是 Cocoa 中处理数据，绑定数据的关键特性，其重要性不言而喻，但也比较复杂。Core Data 相关的类比较多，初学者往往不太容易弄懂。计划用三个教程来讲解这一部分：<br>框架详解：讲解  Core data 框架，运作过程，设计的类；<br>Core data应用程序示例：通过生成一个使用 Core data 的应用程序来讲解如何 在  XCode 4 中使用 Core data。<br>手动创建Core data示例：不利用框架自动生成代码，完全自己编写所有的 Core data 相关代码的命令行应用程序来深入讲解 Core data的使用。&nbsp;&nbsp;<a href='http://www.cppblog.com/kesalin/archive/2011/09/01/cocoa_core_data.html'>阅读全文</a><img src ="http://www.cppblog.com/kesalin/aggbug/154868.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/kesalin/" target="_blank">罗朝辉</a> 2011-09-01 14:14 <a href="http://www.cppblog.com/kesalin/archive/2011/09/01/cocoa_core_data.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[Cocoa]深入浅出Cocoa多线程编程之 block 与 dispatch quene</title><link>http://www.cppblog.com/kesalin/archive/2011/08/26/dispatch_queue_block.html</link><dc:creator>罗朝辉</dc:creator><author>罗朝辉</author><pubDate>Fri, 26 Aug 2011 05:23:00 GMT</pubDate><guid>http://www.cppblog.com/kesalin/archive/2011/08/26/dispatch_queue_block.html</guid><wfw:comment>http://www.cppblog.com/kesalin/comments/154411.html</wfw:comment><comments>http://www.cppblog.com/kesalin/archive/2011/08/26/dispatch_queue_block.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://www.cppblog.com/kesalin/comments/commentRss/154411.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/kesalin/services/trackbacks/154411.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: block 是 Apple 在 GCC 4.2 中扩充的新语法特性，其目的是支持多核并行编程。我们可以将 dispatch_queue 与 block 结合起来使用，方便进行多线程编程。&nbsp;&nbsp;<a href='http://www.cppblog.com/kesalin/archive/2011/08/26/dispatch_queue_block.html'>阅读全文</a><img src ="http://www.cppblog.com/kesalin/aggbug/154411.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/kesalin/" target="_blank">罗朝辉</a> 2011-08-26 13:23 <a href="http://www.cppblog.com/kesalin/archive/2011/08/26/dispatch_queue_block.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>深入浅出ObjC之消息 </title><link>http://www.cppblog.com/kesalin/archive/2011/08/15/objc_message.html</link><dc:creator>罗朝辉</dc:creator><author>罗朝辉</author><pubDate>Mon, 15 Aug 2011 12:20:00 GMT</pubDate><guid>http://www.cppblog.com/kesalin/archive/2011/08/15/objc_message.html</guid><wfw:comment>http://www.cppblog.com/kesalin/comments/153467.html</wfw:comment><comments>http://www.cppblog.com/kesalin/archive/2011/08/15/objc_message.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/kesalin/comments/commentRss/153467.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/kesalin/services/trackbacks/153467.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 本文详细讲述了Object-C 中消息的里里外外，涉及类结构class, SEL, IMP，消息的动态绑定，消息转发等。&nbsp;&nbsp;<a href='http://www.cppblog.com/kesalin/archive/2011/08/15/objc_message.html'>阅读全文</a><img src ="http://www.cppblog.com/kesalin/aggbug/153467.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/kesalin/" target="_blank">罗朝辉</a> 2011-08-15 20:20 <a href="http://www.cppblog.com/kesalin/archive/2011/08/15/objc_message.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>有关手机屏幕的几个概念</title><link>http://www.cppblog.com/kesalin/archive/2011/03/22/screen_terms.html</link><dc:creator>罗朝辉</dc:creator><author>罗朝辉</author><pubDate>Tue, 22 Mar 2011 08:53:00 GMT</pubDate><guid>http://www.cppblog.com/kesalin/archive/2011/03/22/screen_terms.html</guid><wfw:comment>http://www.cppblog.com/kesalin/comments/142489.html</wfw:comment><comments>http://www.cppblog.com/kesalin/archive/2011/03/22/screen_terms.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/kesalin/comments/commentRss/142489.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/kesalin/services/trackbacks/142489.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 有关手机屏幕的几个概念：Screen size, Resolution, Density, dip, dpi, pixel, 色阶。<br>&nbsp;&nbsp;<a href='http://www.cppblog.com/kesalin/archive/2011/03/22/screen_terms.html'>阅读全文</a><img src ="http://www.cppblog.com/kesalin/aggbug/142489.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/kesalin/" target="_blank">罗朝辉</a> 2011-03-22 16:53 <a href="http://www.cppblog.com/kesalin/archive/2011/03/22/screen_terms.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>【Apple】Objective-C 入门知识</title><link>http://www.cppblog.com/kesalin/archive/2011/03/20/Objective_C.html</link><dc:creator>罗朝辉</dc:creator><author>罗朝辉</author><pubDate>Sun, 20 Mar 2011 12:48:00 GMT</pubDate><guid>http://www.cppblog.com/kesalin/archive/2011/03/20/Objective_C.html</guid><wfw:comment>http://www.cppblog.com/kesalin/comments/142306.html</wfw:comment><comments>http://www.cppblog.com/kesalin/archive/2011/03/20/Objective_C.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/kesalin/comments/commentRss/142306.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/kesalin/services/trackbacks/142306.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Objective-C 入门知识<br><br>编程工作做久了，最初的新鲜感难免会消磨殆尽。幸好总是会有新的技术闪耀登场，重燃编辑人员的兴趣，Mac OS X 就饱含这样神奇的技术。 <br><br>                                   ---Mark Dalrymple & Scott Knaster&nbsp;&nbsp;<a href='http://www.cppblog.com/kesalin/archive/2011/03/20/Objective_C.html'>阅读全文</a><img src ="http://www.cppblog.com/kesalin/aggbug/142306.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/kesalin/" target="_blank">罗朝辉</a> 2011-03-20 20:48 <a href="http://www.cppblog.com/kesalin/archive/2011/03/20/Objective_C.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>【Apple】XCode 3.2 常用快捷键</title><link>http://www.cppblog.com/kesalin/archive/2011/03/19/xcode_shortcuts.html</link><dc:creator>罗朝辉</dc:creator><author>罗朝辉</author><pubDate>Sat, 19 Mar 2011 13:24:00 GMT</pubDate><guid>http://www.cppblog.com/kesalin/archive/2011/03/19/xcode_shortcuts.html</guid><wfw:comment>http://www.cppblog.com/kesalin/comments/142235.html</wfw:comment><comments>http://www.cppblog.com/kesalin/archive/2011/03/19/xcode_shortcuts.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/kesalin/comments/commentRss/142235.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/kesalin/services/trackbacks/142235.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: XCode 3.2 常用快捷键&nbsp;&nbsp;<a href='http://www.cppblog.com/kesalin/archive/2011/03/19/xcode_shortcuts.html'>阅读全文</a><img src ="http://www.cppblog.com/kesalin/aggbug/142235.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/kesalin/" target="_blank">罗朝辉</a> 2011-03-19 21:24 <a href="http://www.cppblog.com/kesalin/archive/2011/03/19/xcode_shortcuts.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[Cocoa]Objective-C 与 C++ 的异同</title><link>http://www.cppblog.com/kesalin/archive/2010/12/26/compare_objective_c_and_c_plus_plus.html</link><dc:creator>罗朝辉</dc:creator><author>罗朝辉</author><pubDate>Sun, 26 Dec 2010 04:30:00 GMT</pubDate><guid>http://www.cppblog.com/kesalin/archive/2010/12/26/compare_objective_c_and_c_plus_plus.html</guid><wfw:comment>http://www.cppblog.com/kesalin/comments/137494.html</wfw:comment><comments>http://www.cppblog.com/kesalin/archive/2010/12/26/compare_objective_c_and_c_plus_plus.html#Feedback</comments><slash:comments>7</slash:comments><wfw:commentRss>http://www.cppblog.com/kesalin/comments/commentRss/137494.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/kesalin/services/trackbacks/137494.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Objective C 与 C++ 两者最大的相同便是: 都是从 C 演化而来的面向对象语言, 两者都兼容标准 C 语言; 两者最大的不同便是: Objective C 提供了运行期动态绑定机制, 而 C++ 是编译时静态绑定, 并通过嵌入类(多重继承)和虚函数(虚表)来模拟实现. Objective C 在语言层次上支持动态消息转发, 其函数调用语法为 [object function], 而且C++ 为 object->function(). 两者的语义也有不同, 在 Objective C 里是说发送消息到一个对象上, 至于这个对象能不能处理消息(也就是说实现了这个函数与否)以及是处理还是转发消息都不会 crash, 而在 C++ 里是说对象进行了某个操作,如果对象没有这个操作的话,要么编译会报错(静态绑定),要么程序会 crash 掉的(动态绑定).<br>&nbsp;&nbsp;<a href='http://www.cppblog.com/kesalin/archive/2010/12/26/compare_objective_c_and_c_plus_plus.html'>阅读全文</a><img src ="http://www.cppblog.com/kesalin/aggbug/137494.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/kesalin/" target="_blank">罗朝辉</a> 2010-12-26 12:30 <a href="http://www.cppblog.com/kesalin/archive/2010/12/26/compare_objective_c_and_c_plus_plus.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>【Android】Android 上实现水波特效二--优化</title><link>http://www.cppblog.com/kesalin/archive/2010/09/28/ripple_opt.html</link><dc:creator>罗朝辉</dc:creator><author>罗朝辉</author><pubDate>Tue, 28 Sep 2010 03:49:00 GMT</pubDate><guid>http://www.cppblog.com/kesalin/archive/2010/09/28/ripple_opt.html</guid><wfw:comment>http://www.cppblog.com/kesalin/comments/127962.html</wfw:comment><comments>http://www.cppblog.com/kesalin/archive/2010/09/28/ripple_opt.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/kesalin/comments/commentRss/127962.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/kesalin/services/trackbacks/127962.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要:     在上一篇文章《Android 上实现水波特效》中对水波波幅的计算是针对每一个像素的，效率比较低，尤其是在手机上运行，相当缓慢。我们可以利用线性插值进行优化，这样可以将计算减少一半（MeshSize 为 2）或减少四分之三（MeshSize 为 4），效率得以大大提升，即使是在手机上也能较为流畅地运行。<br>&nbsp;&nbsp;<a href='http://www.cppblog.com/kesalin/archive/2010/09/28/ripple_opt.html'>阅读全文</a><img src ="http://www.cppblog.com/kesalin/aggbug/127962.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/kesalin/" target="_blank">罗朝辉</a> 2010-09-28 11:49 <a href="http://www.cppblog.com/kesalin/archive/2010/09/28/ripple_opt.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>【Android】Android 上实现水波特效</title><link>http://www.cppblog.com/kesalin/archive/2010/09/01/android_ripple.html</link><dc:creator>罗朝辉</dc:creator><author>罗朝辉</author><pubDate>Wed, 01 Sep 2010 05:19:00 GMT</pubDate><guid>http://www.cppblog.com/kesalin/archive/2010/09/01/android_ripple.html</guid><wfw:comment>http://www.cppblog.com/kesalin/comments/125518.html</wfw:comment><comments>http://www.cppblog.com/kesalin/archive/2010/09/01/android_ripple.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/kesalin/comments/commentRss/125518.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/kesalin/services/trackbacks/125518.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 本文中的水波特效算法部分整理自 GameRes 上的资料，原作者 Imagic。我只是在学习 Android 的过程中，想到这个特效，然后就在Android 上实现出来，并在源算法的基础上添加了雨滴滴落特效，以及划过水面时的涟漪特效。 该程序在模拟器和真机上运行速度都较慢，需要进一步优化或使用 JNI 实现，如果你想到好的优化算法，请联系我：kesalin@gmail.com。&nbsp;&nbsp;<a href='http://www.cppblog.com/kesalin/archive/2010/09/01/android_ripple.html'>阅读全文</a><img src ="http://www.cppblog.com/kesalin/aggbug/125518.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/kesalin/" target="_blank">罗朝辉</a> 2010-09-01 13:19 <a href="http://www.cppblog.com/kesalin/archive/2010/09/01/android_ripple.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Symbian开发入门教程</title><link>http://www.cppblog.com/kesalin/archive/2009/07/09/89615.html</link><dc:creator>罗朝辉</dc:creator><author>罗朝辉</author><pubDate>Thu, 09 Jul 2009 03:31:00 GMT</pubDate><guid>http://www.cppblog.com/kesalin/archive/2009/07/09/89615.html</guid><wfw:comment>http://www.cppblog.com/kesalin/comments/89615.html</wfw:comment><comments>http://www.cppblog.com/kesalin/archive/2009/07/09/89615.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/kesalin/comments/commentRss/89615.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/kesalin/services/trackbacks/89615.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Symbian开发入门教程: 环境配置，项目设置，图片资源，中文字符串处理等等&nbsp;&nbsp;<a href='http://www.cppblog.com/kesalin/archive/2009/07/09/89615.html'>阅读全文</a><img src ="http://www.cppblog.com/kesalin/aggbug/89615.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/kesalin/" target="_blank">罗朝辉</a> 2009-07-09 11:31 <a href="http://www.cppblog.com/kesalin/archive/2009/07/09/89615.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>