站在巨人的肩上
Android系统架构
见图1:
图片来源
在这里只对Android系统架构进行初步了解,后续研究则需要找时间了。。。。
架构四层:
- Linux内核层:为硬件提供底层驱动
- 系统运行库层:提供主要的特性支持、Android运行时库
- 应用框架层:构建应用程序时所使用的各种API
- 应用层:这就是你手机上的各种应用的所在地了
Android项目结构
1. 项目结构粗略
先上图2.1.1:
在此我只记录我自己认为需要记录的,如希望更详细的内容请购买郭大的书或自己进行研究。(00~ 不要认为我在推销)
app 项目的主要内容,开发基本都在这里
gitignore 用来将指定的目录或文件排除在版本控制之外
build.gradle 项目全局的gradle构建脚本
settings.gradle 指定项目中所有引入的模块(拓展项目时可用)
图2.1.2:
app项目结构.png
libs 第三方jar包
java 放置所有JAVA代码
res 放置资源
AndroidManifest.xml 整个Android项目的配置文件
build.gradle app模块的构建脚本
proguard-rule.pro 指定代码混淆规则
2. 项目结构部分详解
res详解
图2.2.1:
res结构.pngdrawable 放图片
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。
记录下发现的文章
日后抽时间进行研究
当然郭大的书中还有部分十分有用的小技巧,在这我就不赘述了。
日后我会单独将这些小技巧拎出来记录。
这里仅仅是我记录的部分笔记,以备回顾记忆
如有侵权请联系我,我将进行修改和删除
网友评论