1.1 google生态系统:底层最快的C语言保证效率,上层使用Java简单、快速的进行开发——android系统;
1.2 android的系统架构:
1.2.1 Linux 层
最底层最核心的部分:硬件驱动、进程管理、安全系统等;(以后也许我进Google了会认真仔细的研究这个层)
1.2.2 Dalvik和ART(可以等同于Linux层)
Dalvik-一整套android运行环境虚拟级,采用运行时编译,每个APP都会分配虚拟机来保证互不干扰,保持独立;
5.0以后,ART代替Dalvik,采用安装时编译,其他功能一样,变得更加快捷;
1.2.3 Framework层( 我最熟悉的层面就是这一层了)
暂时不配图了
1.2.4 Standard libraries 标准库层
无图
1.2.5 Application
无图。。。
1.3 Android APP 组件架构
1.3.1 四大组件:Activity,BroadcastReciever,ContentProvider和Service,组成App的最基本元素;
他们是互相协调工作,简单的说,Activity作为人机交互的第一界面,负责向用户展示信息和处理结果,而其他三个组件就是为了展示用户所见到的功能和界面而生的,
第一:最简单粗暴的方式—通过资源获取;
第二:通过ContentProvider来获取其他应用的信息;
第三:通过Service从后台计算、下载、处理的结果;
第四:通过BroadCastReciever获取到的广播;
Intent—四大组件信息传递的载体(比较熟悉·) —通信、传递信息、交换数据;
1.3.2 应用运行上下文对象Context
Android 系统的上下文对象,Activity、Application、Service都继承与Context;
所以在创建以上三个对象,即Context的实现类时会创建Context;
所以在Activity中可以直接用this获取Context对象,而在匿名内部类中必须用XXXXXActivity.this才可以获得当前Activity的Context对象;
getApplicationContext()方法获取整个App的Context,这个是整个应用的Context对象,与某个组件的上下文引用是有区别的;
1.4 Android 系统源代码目录
源码暂不做分析(希望某位大神看到后可以指点迷津,谢谢)