根据Dev Guide的说话,Android的application模型是比较独立的.即是1app1线程1用户1JVM.做个比喻就是每个app都是一个单用户的独立JVM中运行.
这样,在设计上,是把每个应用独立开来的.资源不共享,独立存在.
在Dev Guide中还提到一个android的特点,app之间可以使用双方开放出来的程序逻辑.这听起来是个很奇妙的东西.一般来说,我们会将这种重用性称为组件.像各个编程语言里常用到的控件.这种重用性的基础是接口的开放性.而android声称能够使用任何应用的任何开放逻辑,那么,也就意味着android有一个非常优雅的程序框架,使得不管程序所用的组件实现什么功能,都拥有一个一致的对外接口,不然不能说能使用任何程序的任何开放逻辑.
对于这个模型,android首先先颠覆了一般程序员的逻辑.即,消除了main函数的存在.也就是通常意义的函数入口.某种程度上说,是有函数入口的,只不过被隐藏了.更多时候,我们或许应该称这个入口为loader,而android的程序是loader调用的程序逻辑,或许也可以称为动态组件式的编程模型.
android在这种程序框架下,定义了4种类型的组件:
1.Activities
2.Services
3.Broadcast receivers
4.Content providers
acititvies或许可以称之为event,他是一个用户导向型的组件.也就是说,它的程序逻辑是以用户角度来定义的.对应于UML,也许可以用用例来称呼它.acititvies完成的是一个用户产生一个需求,然后通过activity去完成它.比如通过滚动条下拉一页,发送一条信息,或者切换一个屏幕等.对于用户来说,这是一个操作.
对应于activity背后的操作,是其前端的交互部分.一个用户操作必然存在着交互区域.android中,这个区域称为view.android将屏幕做一个root view或者正式地说content view.而view则是在这个content view里划分出来的一块矩形区域.这个划分或称可以使递归的,也就是说,你可以在一个矩形内再划分矩形.
从这一点也可以看出,android其实是很重视用户交互.它不像传统的UI设计,将事件的相应绑定到一定的控件范围内,而是将整个响应区域开放.如何响应,响应些什么,完全由程序员决定.
service则更接近于传统意义上的后台进程.它可以看错是对activity的一种补充.在不要求或者不需要用户参与的程序功能逻辑上,就由service完成.
broadcast receivers是基于前面那个独立编程模型的一个补充.android将每个application隔离开来,举个例子来说,就是每个application是一个工厂里的一个车间,它们之间一般无法知道车间之外的事情.于是,为了能够让车间内能够对外部的一些变化作出响应,就有了broadcast receivers.这是一个类似于进程间通讯的概念.也是借鉴与网络里的广播模型吧.google的网络作风--世界是独立而又相互联系的.一个监听器样的存在.
content provider也许可以称为剪切板或者是一个逻辑上的文本共享区吧.
前三种组件是由传统的消息驱动模型的,而content provider则更像是文件系统.
只是在android中消息装在了以intent为名的信封里.
顺便一提的是context,这个无论在何种编程环境里都会存在的东西.当然,它的意义也基本相同.
如同进程的寄存器状态,它代表的就是当前application的所有东西的容器.
2009-07-03
Android入门笔记(1)
订阅:
博文评论 (Atom)
牛来餐馆
看了欢迎来龙餐馆. 总的来说,作为一个院线电影,成品多少是有点不太匹配的. 看起来更多像是一部网络大电影. 尤其涉及到一些大场面特效的时候,可以看得出服化道的降本增效. 剧本层面有一些比较有意思或者说闪光点. 就是试图用一个餐馆或者厨师来串起一个比较宏大的叙事题材. 这个可以说是...
-
从未对雪有过什么幻想. 于是,当这雪终究下下来了,也没什么特别的兴奋. 只是,由于是南方人,也就姑且好奇了一番. 望了望着属于别处的风景. 也许是因为昨晚下过雨,也或许是本来就会如此. 冰混着点积水,倒是怀念起阳光灿烂的日子了. 面对着这未知的...
-
最近写一个AgentCLI原型玩具的时候,发现一些比较有意思的点. 因为主要是照着DeepSeek API来写的. 所以基本上也可以说是OpenAI Chat Completion API的一些点. 不过,可能有些是DeepSeek特有的. 一个是请求的stop list. 大致...
-
去看了长安的荔枝. 前半段还可以,尤其像荔枝林里不知道是笑还是哭的几个镜头表演算是相当出色了. 结合人物背景的那种对目标的绝望与对当下人际环境的希望的交叉矛盾心理. 后半段就有些过滤潦草了. 如果说整片是对于一骑红尘妃子笑,无人知是荔枝来的解构的话. 带入民生潦倒涂炭这点是没问题...
没有评论:
发表评论