1.1 Android系统架构
Android 大致可以分为四层架构,五块区域
- Linux 内核层
Android 系统是基于 Linux 2.6 内核的,这一层为 Android 设备的各种硬件提供了底层的驱动,如显示驱动、音频驱动、照相机驱动、蓝牙驱动、Wi-Fi 驱动、电源管理等。 - 系统运行库层
通过一些 C/C++库来为 Android 系统提供了主要的特性支持。如 Webkit 库提供了浏览器内核的支持等。同样在这一层还有 Android 运行时库,它主要提供了一些核心库能够允许开发者使用 Java 语言来编写 Android 应用。另外 Android 运行时库中还包含了 Dalvik 虚拟机,它使得每一个 Android 应用都能运行在独立的进程当中,并且拥有一个自己的 Dalvik 虚拟机实例。 - 应用框架层
主要提供了构建应用程序时可能用到的各种 API,Android 自带的一些核心应用就是使用这些API完成的,开发者也可以通过使用这些API来构建自己的应用程序 - 应用层 所有安装在手机上的应用程序都是属于这一层的
1.2 详细项目资源
project目录下:
build.gradle文件
- 外层中
repositories 的闭包中都声明了jcenter() 这行配置,jcenter是一个代码托管仓库,很多Android开源项目都会选择将代码托管到jcenter上,声明了这行配置之后,可以在项目中引用任何jcenter上的开源项目了。
dependencies 闭包中使用classpath 声明了一个Gradle插件,指定用它来进行android项目开发 3.5.2是插件版本号classpath 'com.android.tools.build:gradle:3.5.2'
- app中的
res目录中所有以drawable开头的文件夹都是用来放图片的, 所有以mipmap开头的文件夹都是用来放应用图标的, 所有以values开头的文件夹都是用来放字符串、 样式、 颜色等配置的, layout文件夹是用来放布局文件的。res/values/strings.xml
文件中定义应用程序名的字符串,使用两种方式来引用
在代码中通过R.string.app_name
可以获得该字符串的引用。
在XML中通过@string/app_name
可以获得该字符串的引用
string 部分是可以替换的, 如果是引用的图片资源就可以替换成drawable
1.3 使用android的日志工具Log
输入logd,然后按下Tab键,就会自动补全一条完整的打印语句。在onCreate()方法的外面输入logt,然后按下Tab键,这时就会以当前的类名作为值自动生成一个TAG常量。
Logcat中的过滤器:
Show only selected application表示只显示当前选中程序的日志, Firebase是谷歌提供的一个分析工具,No Filter相当于没有过滤器,会把所有的日志都显示出来。Edit Filter Configuration用来自定义过滤器
Logcat中的日志级别控制:
低级别的日志信息是不会被显示出来的
也可以通过过滤器输入关键字快速定位