Android 的一点总结
Android的框架从底向上可以分为linux Kernel(linux内核层)、系统运行库层、应用框架层和应用层。其中系统运行库层包括C/C++编写的库函数和一个Android 运行时即Dalvik虚拟机,在Dalvik虚拟机上只能执行.dex的可执行文件,其中Dalvik虚拟机是基于寄存器的,而且一个应用,一个虚拟机实例,一个进程。应用框架层包含了Google发布的核心应用时所使用的API框架,开发人员可以使用这些框架来开发自己的应用。而应用层则是指开发人员自己编写的程序。
Android的程序可以有SDK程序和NDK程序吧!或者可以分为前台程序、后台服务和widget组件,具体我也不知道怎么分。所谓的NDK程序就是利用ndk-build在Android程序中引用由C/C++代码编写的库函数。
Android的四大组件指的是Activity、Service、Broadcast Receiver、Content Provider。Broadcast Receiver可以接收一种或若干种Intent作为触发事件,当发生这样事件的时候,系统会负责唤醒或传递消息到该Broadcast Receiver,任其处置。比如,监听来电、邮件、短信之类的,都隶属于这种模式。其模式可以归结为:启动应用 -> 监听事件 -> 发生时进行处理。Content Provider屏蔽了内部数据的存储细节,向外提供了上述统一的接口模型,这样的抽象层次,大大简化了上层应用的书写,也对数据的整合提供了更方便的途径。
AIDL (Android Interface Definition Language) ,一种接口定义的语言,服务的RPC接口,可以用AIDL来描述。为了使其他的应用程序也可以访问本应用程序提供的服务,Android系统采用了远程过程调用(Remote Procedure Call,RPC)方式来实现。与很多其他的基于RPC的解决方案一样,Android使用一种接口定义语言(Interface Definition Language,IDL)来公开服务的接口。我们知道4个Android应用程序组件中的3个(Activity、Broadcast和Content Provider)都可以进行跨进程访问,另外一个Android应用程序组件Service同样可以。因此,可以将这种可以跨进程访问的服务称为AIDL(Android Interface Definition Language)服务。
Android SDK提供的菜单有如下几种:
1. 选项菜单:最常规的菜单,android中把它叫做option menu
2. 子菜单:android中点击子菜单将弹出悬浮窗口显示子菜单项。子菜单不支持嵌套,即子菜单中不能再包括其他子菜单。
3. 上下文菜单:android中长按视图控件后出现的菜单,windows点击右键弹出的菜单即上下文菜单
4. 图标菜单:这个比较简单,就是带icon的菜单项,需要注意的是子菜单项、上下文菜单项、扩展菜单项均无法显示图标。
5. 选择菜单(alternative menu):用的比较少,以后单独介绍,本文先跳过(其实是我还没弄明白啦o(≧v≦)o~~)
6. 扩展菜单:选项菜单最多只能显示6个菜单项,超过6个时,第6个菜单项会被系统替换为一个叫“更多”的子菜单,原来显示不下的菜单项都作为“更多”菜单的子菜单项。
PS:发现总是考完试的时候才真正认识到自己学的有多么水……