《第一行代码》读书笔记-第一章

2017-01-17 徐哲 更多博文 » 博客 » GitHub »

原文链接 http://tblxdezhu.github.io/android/2017/01/17/%E7%AC%AC%E4%B8%80%E8%A1%8C%E4%BB%A3%E7%A0%81-%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0-%E7%AC%AC%E4%B8%80%E7%AB%A0.html
注:以下为加速网络访问所做的原文缓存,经过重新格式化,可能存在格式方面的问题,或偶有遗漏信息,请以原文为准。


第一章

第一章

1.Android系统架构

~~Linux内核层->系统运行库层:底层驱动 系统运行库层->应用框架层:C/C++库,虚拟机 应用框架层->应用层: API~~

找了很久也没找到序列图的方法,都渲染不出来...忧伤...先划掉吧,后面再加上图

2.四大组件

四大组件 功能
活动(activity) 所有app的门面,所看到的东西都放在活动中
服务(service) 后台运行,即使退出应用,仍然可以继续运行
广播接收器(broadcast receiver) 允许APP接受各处广播信息或者发出广播信息
内容提供器(content provider) 提供APP之间共享数据

3.项目中资源

res目录:

  • 所有以mipmap开头的文件夹都是用来存放应用图标的(多个文件夹是为了存放不同分辨率的版本)
  • 所有以values开头的文件夹都是用来放字符串,样式,颜色等配置的
  • layout文件夹是用来放布局文件的

两种方式调用xml字符串引用

R.string.app_name
@string/app_name

4.详解build.gradle文件

Gradle是一个非常先进的项目构建工具

使用DSL来声明项目配置

其中,

  • 最外层build.gradle文件
    1. 声明jcenter()代码托管仓库
    2. classpath声明一个Gradle插件
  • app目录下build.gradle文件
    1. apply plugin 可以选择
      1. com.android.application 应用程序模块
      2. com.android.library 库模块
    2. compileSdkVersion 24表示使用Android7.0系统SDK
    3. buildToolsVersion用于指定项目构建工具的版本
    4. defaultConfig闭包:
      1. applicationId 项目包名
      2. minSdkVersion 指定项目最低兼容版本,15表示最低兼容Android4.0
      3. targetSdkVersion 表示在该目标版本上做过充分的测试
      4. versionCode 用于指定项目版本号
      5. versionName 用于制定项目版本名
    5. buildTypes闭包
      1. minifyEnabled 指定是否对项目代码使用混淆
        1. true 混淆
        2. false 不混淆
      2. proguardFiles 指定混淆时使用的规则文件
    6. dependencies闭包
      1. compile filetree 本地依赖声明

5.Log

  1. Log.v() 用于打印最为琐碎意义最小的日志信息。
  2. Log.d() 用于打印一些调试信息。
  3. Log.i() 用于打印一些比较重要的数据。
  4. Log.w() 用于打印一些警告信息。
  5. Log.e() 用于打印程序中的错误信息。
Log.d("类名","想要打印的具体内容");