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的消息传递和组件/应用解耦,下面的基础都是Binder IPC。在这一点上,Android实际上是光荣的传承了BeOS和Palm OS 6(悲催的OS6…)未能发扬光大的一部分。文中提到的Dianne Hackborn即为前BeOS和PalmSource员工,Android的核心架构人员之一。Content Provider这一部分基本上也是她实现的。是的,如果你找到她的个人主页,你会发现这是一位爱好SM的女性工程师。
MVC(Content Provider, Activity, Layout, Adapters)这个比较基础,也不算Android特有的。
Content Provider对数据访问的抽象也是比较有意思的一块。理想情况下,content provider可以让客户端用URI以语义化的方式访问数据(URI本身即表示数据层次结构和查询条件),而下面数据库表的结构可以任意变动,不影响客户端代码。当然实做的时候content provider还是会被各种复杂的where子句暴露出SQL的实现细节……
至于Android的权限管理,其实比较简单,主要是利用现成的Linux安全模型,进程之间相互隔离。API级别的权限管理和JVM类似。
更多相关文章
- android每日一问【2011-09-19】
- android 如何使用Parcelable接口
- android 签名
- 运行时权限解析以及申请的实现(可完美解决java.lang.SecurityExce
- Android实现页面悬浮显示
- Android(安卓)APK应用安装原理(1)-解析AndroidManifest原理-Pack
- Android应用开发提高系列(4)——Android动态加载(上)——加载未安装A
- Android的nodpi,xhdpi,hdpi,mdpi,ldpi
- 浅谈Java中Collections.sort对List排序的两种方法