站在巨人的肩上
Android系統(tǒng)架構(gòu)
見(jiàn)圖1:
了解.jpg
圖片來(lái)源
在這里只對(duì)Android系統(tǒng)架構(gòu)進(jìn)行初步了解慎框,后續(xù)研究則需要找時(shí)間了期贫。摆出。闰渔。。
架構(gòu)四層:
- Linux內(nèi)核層:為硬件提供底層驅(qū)動(dòng)
- 系統(tǒng)運(yùn)行庫(kù)層:提供主要的特性支持姥卢、Android運(yùn)行時(shí)庫(kù)
- 應(yīng)用框架層:構(gòu)建應(yīng)用程序時(shí)所使用的各種API
- 應(yīng)用層:這就是你手機(jī)上的各種應(yīng)用的所在地了
Android項(xiàng)目結(jié)構(gòu)
1. 項(xiàng)目結(jié)構(gòu)粗略
先上圖2.1.1:
外層項(xiàng)目結(jié)構(gòu).png
在此我只記錄我自己認(rèn)為需要記錄的腋舌,如希望更詳細(xì)的內(nèi)容請(qǐng)購(gòu)買(mǎi)郭大的書(shū)或自己進(jìn)行研究。(00~ 不要認(rèn)為我在推銷(xiāo))
app 項(xiàng)目的主要內(nèi)容愉耙,開(kāi)發(fā)基本都在這里
gitignore 用來(lái)將指定的目錄或文件排除在版本控制之外
build.gradle 項(xiàng)目全局的gradle構(gòu)建腳本
settings.gradle 指定項(xiàng)目中所有引入的模塊(拓展項(xiàng)目時(shí)可用)
圖2.1.2:
app項(xiàng)目結(jié)構(gòu).png
libs 第三方j(luò)ar包
java 放置所有JAVA代碼
res 放置資源
AndroidManifest.xml 整個(gè)Android項(xiàng)目的配置文件
build.gradle app模塊的構(gòu)建腳本
proguard-rule.pro 指定代碼混淆規(guī)則
2. 項(xiàng)目結(jié)構(gòu)部分詳解
res詳解
圖2.2.1:
res結(jié)構(gòu).png
drawable 放圖片
mipmap 放圖標(biāo)
values 放字符串贮尉、樣式、顏色等配置
layout 放布局文件
-hdpi朴沿、-mdpi猜谚、-xhdpi、-xxxhdpi 為你的圖片資源提供不同分辨率的版本(最好為drawable自己定義-hdpi等文件)
引用:
- java中 R.XX.XX
- xml中 @XX/XX
build.gradle詳解
- build(project)
buildscript {
repositories {
jcenter()//代碼托管倉(cāng)庫(kù)
}
dependencies {
classpath 'com.android.tools.build:gradle:2.2.+'//classpath聲明了一個(gè)Gradle插件
}
}allprojects {
repositories {
jcenter()//代碼托管倉(cāng)庫(kù)
}
}
- build(app)
//com.android.application表示這是一個(gè)應(yīng)用模塊
//com.android.library表示這是一個(gè)庫(kù)模塊
apply plugin: 'com.android.application'
android {
compileSdkVersion 24//指定項(xiàng)目的編譯版本(Android7.0 SDK)
buildToolsVersion "24.0.2"http://項(xiàng)目構(gòu)建工具
defaultConfig {
applicationId "XX.XX.XX"http://項(xiàng)目包名
minSdkVersion 15//項(xiàng)目最低兼容的android系統(tǒng)版本
targetSdkVersion 24
versionCode 1//項(xiàng)目版本號(hào)
versionName "1.0"http://版本名
}
buildTypes {//buildTypes包用于指定生成安裝文件的相關(guān)配置
release {//用于指定正式文件相關(guān)配置
minifyEnabled false//指定是否對(duì)代碼進(jìn)行混淆
proguardFiles getDefaultProguardFile('proguard android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])//本地依賴(lài)聲明
compile 'com.android.support:appcompat-v7:24.2.1'//遠(yuǎn)程依賴(lài)聲明
testCompile 'junit:junit:4.12'
}
Log日志工具
剛從web接觸android赌渣,確實(shí)有些不習(xí)慣魏铅。比如這里的日志工具,當(dāng)然還有部分原因估計(jì)是我的web也很菜坚芜。(00~)
在學(xué)校里览芳,我使用的是eclipse,日志輸出習(xí)慣使用syso『枋現(xiàn)在想來(lái)這個(gè)方法真不算強(qiáng)大沧竟。在A(yíng)ndroid中顯然Log是比system強(qiáng)的铸敏。
- Log.v() 對(duì)應(yīng)級(jí)別verbose
- Log.d() 對(duì)應(yīng)級(jí)別debug
- Log.i() 對(duì)應(yīng)級(jí)別info
- Log.w() 對(duì)應(yīng)級(jí)別warn
- Log.e() 對(duì)應(yīng)級(jí)別error
當(dāng)然在逛簡(jiǎn)書(shū)時(shí),我還發(fā)現(xiàn)了一個(gè)讓我感興趣的日志工具kotlin悟泵。
記錄下發(fā)現(xiàn)的文章
日后抽時(shí)間進(jìn)行研究
當(dāng)然郭大的書(shū)中還有部分十分有用的小技巧杈笔,在這我就不贅述了。
日后我會(huì)單獨(dú)將這些小技巧拎出來(lái)記錄糕非。
這里僅僅是我記錄的部分筆記蒙具,以備回顧記憶
如有侵權(quán)請(qǐng)聯(lián)系我,我將進(jìn)行修改和刪除