近些日子,买了一本安卓进阶的书。大概翻了一下目录,发现还是很实用的。入门基础,进阶教程,实战案例都有。
今天是2017年2月16日,翻看第一章,了解安卓的生态体系和系统架构,在这里作一下读书笔记:
1、Android系统,底层通过最快的C语言保证效率,上层使用简单的java进行快速开发,开源的方式让其快速发展,众多开发者社区的活跃,让其可以进行无限可能的系统定制化。听说Google是Android的干爹,有个干爹真是好。
2、Android是一个移动操作系统,解剖一下就是,四层架构:从表层到底层分别是:应用层,应用框架层,系统运行层,linux内核层。关于linux内核层,打开我们的手机setting,找到“关于手机“,能看到一项,内核版本,就是这个手机上用的linux内核版本。
3、关于dalvik虚拟机:dalvik包含了一整套Android运行环境虚拟机,简单地说,就是每一个app都会在一个dalvik中运行,保证彼此独立,映射到linux环境下,就是一个app对应一个进程,它会有一个进程编号,换句话说,一个dalvik虚拟机中运行一个app。dalvik 的特点是,运行时编译??好吧,这个好像不重要。
但是安卓版本进入5.0以后,ART就取代了Dalvik,ART采用安装时编译,运行时就不编译了。这个了解就行了。
4、NDK也能开发app?java sdk能开发app这个我理解,但是NDK不是用来写JNI的么?现在androidSDK最新的好像到了7.0;
(插播一句Android.mk文件,它在有jni文件夹的androidStudio项目中可以看到,如图,在这里是用来编译C++代码的。下边的图是部分文件内容。
)
5、android四大组件:activity,service,contentProvider,broadCastReceiver,中文名,分别是,活动,服务,内容提供者,广播接收者。
activity,人机交互的界面,这个描述不错,负责向用户展示信息,而信息的来源,可以是通过其他3个组件,比如service从后台下载来的,计算来的,处理之后的结果,通过broadcastReceiver接收的广播信息,或者是内容提供者contentProvider获取的其他应用的信息。
intent,android的信使,这个描述有意思,信息传递的载体。在四大组件之间传递数据,当然也可以是从一个activity到另一个activity。
四大组件分工合作,通过intent互相关联。
context,上下文。
Activity,Service,Application都是继承了Context的,好吧, 实际上是继承了Context的子类的子类,反正,祖宗就是Context,而在Activity创建好的时候,上下文context就创建好了。Application和Service的情况也是类似,它们自身创建好了,上下文contex也就创建好了。
如果要获取整个应用的上下文context对象,确实是有个方法,就是调用getApplicationContext(),但是这个方法是ContextWrapper类特有的,也就是说, 想在一个普通类里来获取application的context对象,必须借助ContextWrapper(或者它的子类,Activity和Service都是它的子类),这个就说到这里,(以前遇到过这种问题,需要context,但是没办法得到activity)。
5、Android系统的文件目录:有时候需要进入 文件目录去找,或者去改一些东西,但是暂时就不需要了,
在这记录一下基本的linux命令: cd,ll,chmod,su,cat等,需要的时候再去查;
==================================
记录一下本书提供的一些好资源:
慕课网视频教程:http://www.imooc.com/
Android官网的API指导教程:https://developer.android.com/guide/index.html
Android官网的API训练教程: https://developer.android.com/training/index.html