《Android第一行代码》first reading 一

站在巨人的肩上

Android系统架构

见图1:

《Android第一行代码》first reading 一_第1张图片
了解.jpg

图片来源
在这里只对Android系统架构进行初步了解,后续研究则需要找时间了。。。。

架构四层:

  • Linux内核层:为硬件提供底层驱动
  • 系统运行库层:提供主要的特性支持、Android运行时库
  • 应用框架层:构建应用程序时所使用的各种API
  • 应用层:这就是你手机上的各种应用的所在地了

Android项目结构

1. 项目结构粗略

先上图2.1.1:

《Android第一行代码》first reading 一_第2张图片
外层项目结构.png

在此我只记录我自己认为需要记录的,如希望更详细的内容请购买郭大的书或自己进行研究。( 00~ 不要认为我在推销)

app 项目的主要内容,开发基本都在这里
gitignore 用来将指定的目录或文件排除在版本控制之外
build.gradle 项目全局的gradle构建脚本
settings.gradle 指定项目中所有引入的模块(拓展项目时可用)

图2.1.2:


《Android第一行代码》first reading 一_第3张图片
app项目结构.png
libs 第三方jar包
java 放置所有JAVA代码
res 放置资源
AndroidManifest.xml 整个Android项目的配置文件
build.gradle app模块的构建脚本
proguard-rule.pro 指定代码混淆规则

2. 项目结构部分详解

res详解

图2.2.1:

《Android第一行代码》first reading 一_第4张图片
res结构.png

drawable 放图片
mipmap 放图标
values 放字符串、样式、颜色等配置
layout 放布局文件
-hdpi、-mdpi、-xhdpi、-xxxhdpi 为你的图片资源提供不同分辨率的版本(最好为drawable自己定义-hdpi等文件)
引用:

  • java中 R.XX.XX
  • xml中 @XX/XX

build.gradle详解

- build(project)
buildscript {
    repositories {
        jcenter()//代码托管仓库
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.2.+'//classpath声明了一个Gradle插件
    }
}allprojects {
    repositories {
        jcenter()//代码托管仓库
    }
}
- build(app)
//com.android.application表示这是一个应用模块
//com.android.library表示这是一个库模块
apply plugin: 'com.android.application'

android {
    compileSdkVersion 24//指定项目的编译版本(Android7.0 SDK)
    buildToolsVersion "24.0.2"//项目构建工具
    defaultConfig {
        applicationId "XX.XX.XX"//项目包名
        minSdkVersion 15//项目最低兼容的android系统版本
        targetSdkVersion 24
        versionCode 1//项目版本号
        versionName "1.0"//版本名
    }
    buildTypes {//buildTypes包用于指定生成安装文件的相关配置
        release {//用于指定正式文件相关配置
            minifyEnabled false//指定是否对代码进行混淆
            proguardFiles getDefaultProguardFile('proguard android.txt'), 'proguard-rules.pro'
        }
    }
}
dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])//本地依赖声明
    compile 'com.android.support:appcompat-v7:24.2.1'//远程依赖声明
     testCompile 'junit:junit:4.12'
}

Log日志工具

刚从web接触android,确实有些不习惯。比如这里的日志工具,当然还有部分原因估计是我的web也很菜。(00~)
在学校里,我使用的是eclipse,日志输出习惯使用syso。现在想来这个方法真不算强大。在Android中显然Log是比system强的。

  • Log.v() 对应级别verbose
  • Log.d() 对应级别debug
  • Log.i() 对应级别info
  • Log.w() 对应级别warn
  • Log.e() 对应级别error

当然在逛时,我还发现了一个让我感兴趣的日志工具kotlin。
记录下发现的文章
日后抽时间进行研究

当然郭大的书中还有部分十分有用的小技巧,在这我就不赘述了。
日后我会单独将这些小技巧拎出来记录。

这里仅仅是我记录的部分笔记,以备回顾记忆
如有侵权请联系我,我将进行修改和删除

你可能感兴趣的:(《Android第一行代码》first reading 一)