Android知识点(一)系统架构

1.1 Android系统架构

Android 大致可以分为四层架构,五块区域

  1. Linux 内核层
    Android 系统是基于 Linux 2.6 内核的,这一层为 Android 设备的各种硬件提供了底层的驱动,如显示驱动、音频驱动、照相机驱动、蓝牙驱动、Wi-Fi 驱动、电源管理等。
  2. 系统运行库层
    通过一些 C/C++库来为 Android 系统提供了主要的特性支持。如 Webkit 库提供了浏览器内核的支持等。同样在这一层还有 Android 运行时库,它主要提供了一些核心库能够允许开发者使用 Java 语言来编写 Android 应用。另外 Android 运行时库中还包含了 Dalvik 虚拟机,它使得每一个 Android 应用都能运行在独立的进程当中,并且拥有一个自己的 Dalvik 虚拟机实例。
  3. 应用框架层
    主要提供了构建应用程序时可能用到的各种 API,Android 自带的一些核心应用就是使用这些API完成的,开发者也可以通过使用这些API来构建自己的应用程序
  4. 应用层 所有安装在手机上的应用程序都是属于这一层的

1.2 详细项目资源

res目录中所有以drawable开头的文件夹都是用来放图片的, 所有以mipmap开头的文件夹都是用来放应用图标的, 所有以values开头的文件夹都是用来放字符串、 样式、 颜色等配置的, layout文件夹是用来放布局文件的。
res/values/strings.xml文件中定义应用程序名的字符串,使用两种方式来引用
在代码中通过R.string.app_name 可以获得该字符串的引用。
在XML中通过@string/app_name 可以获得该字符串的引用
string 部分是可以替换的, 如果是引用的图片资源就可以替换成drawable

build.gradle文件

  1. 外层中
    repositories 的闭包中都声明了jcenter() 这行配置,jcenter是一个代码托管仓库,很多Android开源项目都会选择将代码托管到jcenter上,声明了这行配置之后,可以在项目中引用任何jcenter上的开源项目了。
    dependencies 闭包中使用classpath 声明了一个Gradle插件,指定用它来进行android项目开发 3.5.2是插件版本号classpath 'com.android.tools.build:gradle:3.5.2'

  2. app中的
    Android知识点(一)系统架构
    Android知识点(一)系统架构

1.3 使用android的日志工具Log

Android知识点(一)系统架构
Android知识点(一)系统架构
输入logd,然后按下Tab键,就会自动补全一条完整的打印语句。在onCreate()方法的外面输入logt,然后按下Tab键,这时就会以当前的类名作为值自动生成一个TAG常量。
Logcat中的过滤器:
Show only selected application表示只显示当前选中程序的日志, Firebase是谷歌提供的一个分析工具,No Filter相当于没有过滤器,会把所有的日志都显示出来。Edit Filter Configuration用来自定义过滤器
Logcat中的日志级别控制:
低级别的日志信息是不会被显示出来的
也可以通过过滤器输入关键字快速定位