摘要: 从动手写这本书,到正式出版,历经了两年多的时光。其间,由于工作压力,有一年的时间只字未添,有很多章节不断的易稿整理补充新的内容,在几多纠结后总算是能面世见人。两年多前,Android开发还是一个比较新鲜的领域,好书难觅,任何复杂一些的框架机制和实现模式,都需要摸爬滚打自行揣摩。于是决意要写一本书,把自己从事Android开发的一些经验总结,和对源码的学习了解,都整理出来。最早我给这本书的名字,与我博客上的一些文章同名,名曰『深入理解Android』,目标是把Android的一些核心机制的实现以及开发中常遇到的问题都剖析清楚,不仅能把底层实现说透了,更重要的是能够和实际开发关联的更为紧密。我不希
阅读全文 摘要: Activity间数据传输当对Android有一些了解后,不难发现,Android程序UI框架接近于Web页面的概念。每一个用于呈现页面的组件,Activity,都是彼此独立的,它们通过系统核心来调度整合,彼此之间的通过Intent机制来串联。每一种架构都会有其利弊,Android当然也不能超然脱俗。由于Activity之间的松耦合关系,使得其复用能力特别的出色,Mash-Up方式可以有效的提高开...
阅读全文 摘要: 资源文件作为一枚coder,做界面,很多时候都是一场梦魇。很多时候,我们会感觉对于底层逻辑实现的很有把握性,哪怕需求一直在变,也可以通过不断的重构一直跟进,一切尽在掌握。但遭遇界面,往往就不再如此,它的好坏总是和审美、体验之类的词汇扯在一起,在凤姐芙蓉出没的年头,谈审美成为一件恐怖的事情。你可能会被要求不停的改代码,就为了移动一个像素,调整一枚按钮,琐碎而无聊。为了改变这样的状况,挽救coder们...
阅读全文 摘要: 界面构造UI界面,对于每个应用而言,是它与用户进行交互的门脸。好的门脸,不只是是要亮丽可人,最好还能秀色可餐过目不忘,甚至还应该有涵养有气质,彬彬有理温柔耐心。对于开发者来说,锻造这样的面容,不但需要高超的技艺,也需要有称手的工具和对得起党的料子。俗话说,朽木不可雕也,芙蓉不是一日炼成的,不是什么平台都能叫特能书。有套好用的UI框架,对于开发者而言,真有如沙漠中的甘露,而要是撞见了杯具的UI套件,...
阅读全文 摘要: 任务、进程和线程关于Android中的组件和应用,之前涉及,大都是静态的概念。而当一个应用运行起来,就难免会需要关心进程、线程这样的概念。在Android中,组件的动态运行,有一个最与众不同的概念,就是Task,翻译成任务,应该还是比较顺理成章的。Task的介入,最主要的作用,是将组件之间的连接,从进程概念的细节中剥离出来,可以以一种不同模型的东西进行配置,在很多时候,能够简化上层开发人员的理解难...
阅读全文 摘要: Intent解析基于组件的架构体系,除了有定义良好的组件,如何把这些组件组装在一起,也是一门艺术。在Android中,Intent(貌似通常译作:意图...),就是连接各组件的桥梁。前段时间看同事们做Symbian平台的网易掌上邮(真的是做的用心,NB的一米,热情欢迎所有163邮箱的S60v3用户,猛点击之...),有个功能是为邮件添加附件,比如你想要通过邮件发送一副图片泡mm,可能需要有个很直观...
阅读全文 摘要: Android组件横看成岭侧成峰,远近高低各不同。 -- 《题西林壁》组件(Component),在谈及所谓架构和重用的时候,是一个重要的事情。很多时候都会说基于组件的软件架构,指的是期望把程序做乐高似的,有一堆接口标准封装完整的组件放在哪里,想用的时候取上几个一搭配,整个程序就构建完成了。在开篇的时候就在说,Android是一个为组件化而搭建的平台,它引入所谓Mash-Up的概念,这使得你在应用...
阅读全文 摘要: Android架构和特征千呼万唤始出来,犹抱琵琶半遮。 -- 《琵琶行》虽贵为富二代,但Android要是没任何可圈点的地方,开不过70迈,在玲琅满目的手机平台竞争中,充其量也就做几个俯卧撑打一桶酱油,然后被落的远远的。说到底,出来混,靠的还是技术。架构从SDK文档中,偷来一幅Android平台的架构图,如上。在整个架构最底层红彤彤的部分,是Linux Kernel在移动平台的一个移植,它隐藏了硬...
阅读全文 摘要: 序携来百侣曾游,忆往昔峥嵘岁月稠。 -- 《沁园春·长沙》对于Android,我也算是老人了,所谓,有文有真想。正由于这段玩票经历,使得我在毕业后,鬼使神差的成为移动平台的一名码工,再次有机会放肆的拥抱Android。2010开年,手上突然有了一把闲散时间,有机会进一步总结和学习Android。于是想再一次为Android写一系列的东西,这些东西来自于一些开发经验,对源码的学习和对And...
阅读全文 摘要: Android挑战赛第一轮前50的作品公布出来了,除了有4个暂时希望保密,其他46的介绍都已放出。虽然我大大的名落孙山之后,但不妨碍翻看这些作品,尝试思考一些手机应用的问题,尽情期盼下明天。这些作品,是由上百位领域专家,经过一套还算复杂的流程评选出来的。我想,从中不仅仅可以看到Android的发展方向,也可以看到手机应用的一个发展趋势。如果你想在Android这块地盘上分一碗羹,或者,期望在手机应...
阅读全文 摘要: 2月14日情人节,一向善于挑日子的Google在其Android官方Blog上公布了新版AndroidSDK发布的消息(根据网站上的日期,SDK应该是2月12日就更新了,看来Google的公关做得确实很不勤劳...)。这次发布的SDK版本号为M5,理论上这应该会是第一轮比赛初赛前最后一个版本了,在此前,为了大家更好适应新的SDK,Google将第一轮比赛初赛的结束日期顺延了将近一个半月,这意味着此...
阅读全文 摘要: 有了framework后,我们不用面对赤裸裸的OS API,做一些重复而繁杂的事情。但天下没有免费的午餐,我们还是需要学会高效正确的使用不同的framework,很多处理某一特定问题的手法在不同的framework中,用起来都会有所不同的。在Android中,下层是Linux的核,但上层的java做的framework把这一切封装的密不透风。以消息处理为例,在MFC中,我们可以用PreTransl...
阅读全文 摘要: Android做到现在。开始感觉到Android确实还是太年轻。系统本身好不够成熟,相关文档更是少的可怜。在Android的旅途中到处是暗坑陷阱,掉进去摔得半死,还只能靠自己琢磨着爬出来。想在大部分工作集中在了定义一套ContentProvider以及上层的显示控件上。一个ContentProvider向外提供的接口十分有限,但就是这几个东西你要表征出正确(标准就是和系统ContentProvid...
阅读全文 摘要: Android的界面显示同样也是基于控件的。通常是用View(包括ViewGroup)控件配上XML的样式来做的。具体细节不想说了,可以参考Samples里的ApiDemos/View,和View的Doc,以及Implementing aUI这篇Doc。其他还有很多,感觉算是SDK讲述的最多的内容。从控件的使用上,和网页的设计类似,尽量用parent_width之类的抽象长度,用Theme来做风格...
阅读全文 摘要: 今天爬到wikipedia上看了下Android这个词相关的故事。呵呵。很有意思。基本就是一个常出现在科幻小说中的具有人的能力的小机器人。Google取这个名字应该是希望安装了Android的手机像一个活生生的人一样成为你必不可少的一个帮手。不过这个名MS不是Google取得。而是2005收购Android平台前身的时候直接带来的。So。。有钱还是真无敌。。。。
阅读全文 摘要: 在前面写Android的ContentProvider时候,可以看到那是基于观察者模式的一个消息传递方法。每一个Cursor、ContentResolver做为一个小的注册中心,相关观察者可以在这个中心注册,更新消息由注册中心分发给各个观察者。而在MFC或Winform中,都会形成一个消息网,让消息在网中流动,被各节点使用、吃掉或者在出口死掉。相比之下,我个人觉得基于Intent的Android核...
阅读全文 摘要: Android的数据(包括files,database等...)都是属于应用程序自身,其他程序无法直接进行操作。因此,为了使其他程序能够操作数据,在Android中,可以通过做成ContentProvider提供数据操作的接口。其实对本应用而言,也可以将底层数据封装成ContentProvider,这样可以有效的屏蔽底层操作的细节,并且是程序保持良好的扩展性和开放性。ContentProvider...
阅读全文