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 详细项目资源

project目录下:

android系统架构 详解 android系统架构由几部分组成_应用程序


android系统架构 详解 android系统架构由几部分组成_Android_02


android系统架构 详解 android系统架构由几部分组成_字符串_03

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中的
  3. android系统架构 详解 android系统架构由几部分组成_Android_04


  4. android系统架构 详解 android系统架构由几部分组成_android系统架构 详解_05

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

1.3 使用android的日志工具Log

android系统架构 详解 android系统架构由几部分组成_Android_06


android系统架构 详解 android系统架构由几部分组成_字符串_07


输入logd,然后按下Tab键,就会自动补全一条完整的打印语句。在onCreate()方法的外面输入logt,然后按下Tab键,这时就会以当前的类名作为值自动生成一个TAG常量。

Logcat中的过滤器:

Show only selected application表示只显示当前选中程序的日志, Firebase是谷歌提供的一个分析工具,No Filter相当于没有过滤器,会把所有的日志都显示出来。Edit Filter Configuration用来自定义过滤器

Logcat中的日志级别控制:

低级别的日志信息是不会被显示出来的

也可以通过过滤器输入关键字快速定位