Android 架构设计的思想与原则是什么?

理解好Intent,就可以理解Android哲学(“所有应用生来平等”)的一部分。举个简单的例子,iOS里面应用要集成SNS如 facebook/twitter/sina weibo等,都需要应用自己实现(iOS5也只是集成twitter一家);Android上只需要广播一个share内容的intent。从理解 Intent如何工作开始,你就在慢慢理解Activity Manager, Package Manager, services这些Android的重要组件是如何工作的。

另外Binder是Android架构里非常核心的一块。Android基于Intent的消息传递和组件/应用解耦,下面的基础都是BinderIPC。在这一点上,Android实际上是光荣的传承了BeOS和PalmOS6(悲催的OS6…)未能发扬光大的一部分。文中提到的DianneHackborn即为前BeOS和PalmSource员工,Android的核心架构人员之一。ContentProvider这一部分基本上也是她实现的。是的,如果你找到她的个人主页,你会发现这是一位爱好SM的女性工程师。

MVC(ContentProvider,Activity,Layout,Adapters)这个比较基础,也不算Android特有的。

ContentProvider对数据访问的抽象也是比较有意思的一块。理想情况下,contentprovider可以让客户端用URI以语义化的方式访问数据(URI本身即表示数据层次结构和查询条件),而下面数据库表的结构可以任意变动,不影响客户端代码。当然实做的时候contentprovider还是会被各种复杂的where子句暴露出SQL的实现细节……

至于Android的权限管理,其实比较简单,主要是利用现成的Linux安全模型,进程之间相互隔离。API级别的权限管理和JVM类似。

相关推荐