摘要:
学习一样东西,关键要理解他的本质,理解了本质,再去看代码,就会有一览众山下的感觉\永远记得曾经的谢老师,现在任国家重点实验室的主任,在学习结束后说了一句话:一本书读完了,一门课学完了,只要记住了其中关机键的几点,就足够了,不要期望将所有的细节都记住。上面是我学习android的一些总结,可以说是学习了各位大牛的精华,再加上了自己对于OS, 框架以及app的理解 阅读全文
摘要:
经典游戏的关键算法angry birds: 物理学原理,抛物线/碰撞/粒子tom cat:语音处理植物大战僵尸:生存/销毁模型 阅读全文
摘要:
Game控制器game过程中,两个主要的工作:控制和显示控制主要实现动画中元素的移动,碰撞,变形等显示主要通过调用GL的API绘制图形,显示到屏幕控制的对象是动画元素,这些元素在有的是初始化时就创建好的,有的是动态创建的。 阅读全文
摘要:
Game通用框架两个重要的控制对象,一个界面负责交互,一个线程负责后台执行界面一般继承surfaceView比继承View好,界面实现一些输入事件的响应后台线程中的run方法中一个死循环,通过定时器定期的更新图形或者视频的显示 阅读全文
摘要:
Serviceservice分三个层次:rc(Linux)/native/androidservice归根到底是一些Thread,每一个service对应一个Thread,这些Thread都加入到一个Thread poolservice是一个闭合循环结构,不断的收到请求,然后处理请求,这和其他的service没有本质区别。 阅读全文
摘要:
三个部分:事件管理器/窗口管理器/GUI事件管理器负责收集系统消息,然后分发窗口管理器负责管理窗口的创建、销毁、绘制、活动窗口、焦点、窗口关系,控件、菜单GDI负责上下文设备管理、基本图元的绘制,图形的底层绘制的接口事件管理器和消息系统交互,消息系统从输入设备Touch Panel/Key Board处得到输入.每个Activity Thread都有一个消息队列,消息系统向消息队列中扔消息,Activity收消息并且进行处理。窗口由窗口管理器进行管理,客户端和管理器之间是C/S模式,这点有点类似于Linux的xWindow输入到输出的消息流。先是Linux的driver检测到输入,window 阅读全文
摘要:
IPCIPC,进程间通信,这是属于比较底层的东西,属于Linux底层的实现。四大核心组件都是工作在一定的进程或者线程的上下文之中,他们之间通信需要底层的IPC的支持。采用的是COBAR的架构,客户服务模型,中间插入代理。客户端一个proxy,服务端一个native的代理。客户端需要穿过这两个代理才能达到真正的服务。在服务管理器中有一个服务是管理其他的服务的,其id号为0。所有的服务性成列表,每一项包含了服务的名字和一个handler,handler可能是一个服务程序的入口函数的地址,当然,也可能是和一个入口函数的地址对应。请求一个服务的时候要经过两次和服务管理器进行交互,第一次传递参数0,表示 阅读全文
摘要:
Intent本质Intent是一种数据结构,十分的类似于很多应用中的message,直观的讲,有点类似于一封信。解决了三个问题,从哪里来,到哪里去,需要传递什么信息。有时候可能没有到哪里去的信息,这是一种隐式的方式,可能就向广播,不知道谁需要这个信息,需要的人,请接收。谁会接收?依据是mainifest.xml中的filter标签。fitler就是接收的过滤条件,只要满足条件,就会接收。Intent的用法,可以只简单的传递接收者,在这种情况下,可能不需要传递消息。一个例子就是经常看到的startActivity(Intent)的调用。给Activity service发一个请求,start一个 阅读全文
摘要:
Activity本质直观的视角是一个窗口管理的组件,类似于win下的From。一个窗口下有多个view或者view的组合,或者控件.一个应用有多个Activity,每个Activity管理一个窗口界面,这些界面的切换就是Activity的切换。例如,我们通过“返回”键可以回退到前一个窗口,其实即使切回到前一个 Activity。其中有一个在Mainifest.xml中标记为MAIN的,是app启动的第一个Activity.Activity的生命周期,官网上的有详细的描述,状态机模型。程序的视角从程序的角度看,是一个组件,这个组件不是自己启动,而是由别人来创建,并且调用其方法例如onCreate 阅读全文