02 2012 档案

摘要:周末看《精通Android游戏开发》(Pro Android Games),里面讲到游戏的框架,其中一个重要的概念surfaceview,觉得不是很理解,于是花了一点时间研究了下,写下自己的心得。surface,这个单词的意思是浮在表面的,那么surfaceview就是浮在表面的view了。如果真的这样解释,估计有人要拍砖了。然而,话虽不能这么说,取这个名儿,多少还是有点关系的。surface是一个可见区域。我们在屏幕上看到的这些view,在屏幕上看到的就是画面,在内存中就是一块内存区。绘图的时候,就是显示的硬件如显卡将内存区的这块图形数据绘制到屏幕上。所以,从内存的角度去看这些东西,会比较好 阅读全文
posted @ 2012-02-29 19:21 爱心觉罗氏 阅读(19119) 评论(6) 推荐(9)
摘要:调试程序出现异常,用debug看到的是空指针异常。debug真的好用啊,没有它还真不行。但是哪里出现的空指针?通过断点跟踪,没有找到代码行。可能断点的地方设置不对。出现问题的时候,求助于网络是个很好的方法。看了很多帖子,觉得一个帖子比较符合我遇到的情况。这个帖子分析了应用crash的三种情况,其中一条“对象为空”和我的情况比较类似。为了排查那个对象为空,我采用了一种最笨的方法,就是隔离代码。具体来说,按照执行的次序,注释掉部分后执行的代码,保留前半部分的代码。因为代码不多,所以,这个方法适用,而且还比较有效。这样的“二分法”,使我很快的定位了问题出在什么地方。原来,是一个、调用findView 阅读全文
posted @ 2012-02-28 21:37 爱心觉罗氏 阅读(451) 评论(0) 推荐(1)
摘要:1 package Workshop.english.englishwords; 2 3 import android.app.Activity; 4 import android.content.Intent; 5 import android.os.Bundle; 6 import android.view.MotionEvent; 7 import android.view.View; 8 import android.view.View.OnTouchListener; 9 import android.widget.ImageView;10 11 public class Eng.. 阅读全文
posted @ 2012-02-28 21:36 爱心觉罗氏 阅读(449) 评论(0) 推荐(0)
摘要:先说一下,我的开发环境为Eclipse 3.7.1 + Android SDK + Android 1.5(API level3)Android最大的一个特点,就是用xml文件来配置,这个演习了Java的特点。所以,理解Android程序,同时需要理解xml文件。我们写程序,需要关注AndroidManifest.xml,和res/layout下的xml文件以及res/value下的xml文件。首先看AndroidManifest.xml,我的程序的AndroidManifest.xml如下: 1 <?xml version="1.0" encoding=" 阅读全文
posted @ 2012-02-28 20:45 爱心觉罗氏 阅读(2894) 评论(0) 推荐(1)
摘要:继续更新我的程序之前,不得不说一下,我的工具Evernote真的是个好东西。啥时候有空就写,电脑和手机可以自动同步。我一个朋友常说的一句话是:工欲善其事,必先利其器。我就是在他的介绍下开始使用Evernote的,以前都习惯用word,现在发现继续用word真的有点out了。有了Evernote,我充分利用了零散的时间,将自己的想法写下来。另外,还能将自己查到的资料方便的记下来。Evernote, good! 阅读全文
posted @ 2012-02-28 20:05 爱心觉罗氏 阅读(332) 评论(0) 推荐(0)
摘要:差不多每个介绍开发的人,都习惯于从hello world开始。不错,我也是hello world开始。SDK中带的sample就是我的开始。不过,严格的说,这不是我的第一个程序,因为压根就不是我写的。学习一门语言,或者一个框架,与其抱着书看,不如亲自操刀。当然,书也是要看的,但是我从来主张看书,第一遍先粗看,理解基本概念。然后,就该动手了。因为已经有了软件设计的能力,所以,我决定做一个软件,一个完整的软件。从需求分析开始,到设计,然后到实现到编码,测试。我相信,做了这个软件,我对于框架的学习,应该至少学到了一半。看书只能看别人的例子,碰不到问题。问题,虽然让人头疼,但是,它从来就是让人进步最快 阅读全文
posted @ 2012-02-27 10:16 爱心觉罗氏 阅读(472) 评论(1) 推荐(0)
摘要:学习一样东西,关键要理解他的本质,理解了本质,再去看代码,就会有一览众山下的感觉\永远记得曾经的谢老师,现在任国家重点实验室的主任,在学习结束后说了一句话:一本书读完了,一门课学完了,只要记住了其中关机键的几点,就足够了,不要期望将所有的细节都记住。上面是我学习android的一些总结,可以说是学习了各位大牛的精华,再加上了自己对于OS, 框架以及app的理解 阅读全文
posted @ 2012-02-26 12:22 爱心觉罗氏 阅读(204) 评论(0) 推荐(0)
摘要:经典游戏的关键算法angry birds: 物理学原理,抛物线/碰撞/粒子tom cat:语音处理植物大战僵尸:生存/销毁模型 阅读全文
posted @ 2012-02-26 12:14 爱心觉罗氏 阅读(259) 评论(1) 推荐(0)
摘要:Game控制器game过程中,两个主要的工作:控制和显示控制主要实现动画中元素的移动,碰撞,变形等显示主要通过调用GL的API绘制图形,显示到屏幕控制的对象是动画元素,这些元素在有的是初始化时就创建好的,有的是动态创建的。 阅读全文
posted @ 2012-02-26 12:12 爱心觉罗氏 阅读(182) 评论(0) 推荐(0)
摘要:Game通用框架两个重要的控制对象,一个界面负责交互,一个线程负责后台执行界面一般继承surfaceView比继承View好,界面实现一些输入事件的响应后台线程中的run方法中一个死循环,通过定时器定期的更新图形或者视频的显示 阅读全文
posted @ 2012-02-26 12:12 爱心觉罗氏 阅读(257) 评论(0) 推荐(1)
摘要:Serviceservice分三个层次:rc(Linux)/native/androidservice归根到底是一些Thread,每一个service对应一个Thread,这些Thread都加入到一个Thread poolservice是一个闭合循环结构,不断的收到请求,然后处理请求,这和其他的service没有本质区别。 阅读全文
posted @ 2012-02-26 12:09 爱心觉罗氏 阅读(158) 评论(0) 推荐(0)
摘要:三个部分:事件管理器/窗口管理器/GUI事件管理器负责收集系统消息,然后分发窗口管理器负责管理窗口的创建、销毁、绘制、活动窗口、焦点、窗口关系,控件、菜单GDI负责上下文设备管理、基本图元的绘制,图形的底层绘制的接口事件管理器和消息系统交互,消息系统从输入设备Touch Panel/Key Board处得到输入.每个Activity Thread都有一个消息队列,消息系统向消息队列中扔消息,Activity收消息并且进行处理。窗口由窗口管理器进行管理,客户端和管理器之间是C/S模式,这点有点类似于Linux的xWindow输入到输出的消息流。先是Linux的driver检测到输入,window 阅读全文
posted @ 2012-02-26 12:09 爱心觉罗氏 阅读(170) 评论(0) 推荐(0)
摘要:IPCIPC,进程间通信,这是属于比较底层的东西,属于Linux底层的实现。四大核心组件都是工作在一定的进程或者线程的上下文之中,他们之间通信需要底层的IPC的支持。采用的是COBAR的架构,客户服务模型,中间插入代理。客户端一个proxy,服务端一个native的代理。客户端需要穿过这两个代理才能达到真正的服务。在服务管理器中有一个服务是管理其他的服务的,其id号为0。所有的服务性成列表,每一项包含了服务的名字和一个handler,handler可能是一个服务程序的入口函数的地址,当然,也可能是和一个入口函数的地址对应。请求一个服务的时候要经过两次和服务管理器进行交互,第一次传递参数0,表示 阅读全文
posted @ 2012-02-26 12:08 爱心觉罗氏 阅读(231) 评论(0) 推荐(0)
摘要:Intent本质Intent是一种数据结构,十分的类似于很多应用中的message,直观的讲,有点类似于一封信。解决了三个问题,从哪里来,到哪里去,需要传递什么信息。有时候可能没有到哪里去的信息,这是一种隐式的方式,可能就向广播,不知道谁需要这个信息,需要的人,请接收。谁会接收?依据是mainifest.xml中的filter标签。fitler就是接收的过滤条件,只要满足条件,就会接收。Intent的用法,可以只简单的传递接收者,在这种情况下,可能不需要传递消息。一个例子就是经常看到的startActivity(Intent)的调用。给Activity service发一个请求,start一个 阅读全文
posted @ 2012-02-26 12:07 爱心觉罗氏 阅读(463) 评论(0) 推荐(1)
摘要:Activity本质直观的视角是一个窗口管理的组件,类似于win下的From。一个窗口下有多个view或者view的组合,或者控件.一个应用有多个Activity,每个Activity管理一个窗口界面,这些界面的切换就是Activity的切换。例如,我们通过“返回”键可以回退到前一个窗口,其实即使切回到前一个 Activity。其中有一个在Mainifest.xml中标记为MAIN的,是app启动的第一个Activity.Activity的生命周期,官网上的有详细的描述,状态机模型。程序的视角从程序的角度看,是一个组件,这个组件不是自己启动,而是由别人来创建,并且调用其方法例如onCreate 阅读全文
posted @ 2012-02-26 12:06 爱心觉罗氏 阅读(349) 评论(0) 推荐(0)