
1. Android系統(tǒng)架構(gòu)
四層架構(gòu): Linux內(nèi)核層、系統(tǒng)運行庫層、應(yīng)用框架層、應(yīng)用層。
如圖所示:

1.1 Linux內(nèi)核層
Android系統(tǒng)是基于Linux內(nèi)核的,這層為Android設(shè)備的各種硬件提供了底層驅(qū)動,如顯示驅(qū)動、音頻驅(qū)動、照相機驅(qū)動、藍牙驅(qū)動、Wi-Fi驅(qū)動、電源管理等
1.2 系統(tǒng)運行庫層
這一層通過一層C/C++庫來為Android系統(tǒng)提供了主要的特性支持。如SQLite庫(數(shù)據(jù)支持)等
同樣在這一層還有Android運行時庫,主要提供了一些核心庫,能允許開發(fā)者使用Java語言來編寫Android應(yīng)用。
另外,Android運行時庫還包含了Dalvik虛擬機(5.0系統(tǒng)之后改為ART運行環(huán)境)
1.3 應(yīng)用框架層
這一層主要提供了構(gòu)建應(yīng)用程序時可能用到的各種API
1.4 應(yīng)用層
所有安裝在手機上的應(yīng)用程序都是屬于這一層,包括你自己開發(fā)的程序
2. Android四大組件
活動(Activity)、服務(wù)(Service)、廣播接收器(Broadcast Receiver)、內(nèi)容提供器(Content Provider)
3. Android Studio中的build.gradle文件解析
先看下app目錄下的build.gradle文件:
在這主要分析buildTypes閉包:
buildTypes閉包中用于指定生成安裝文件的相關(guān)配置,一般有兩個子閉包:debug(可忽略不寫)、release
release閉包中:
1. minifyEnabled 用于指定是否對項目的代碼進行混淆,true表示混淆,false表示不混淆
2. proguardFiles 用于指定混淆時使用的規(guī)則文件:第一個 proguard-android.txt 是在Android SDK目錄下的,里面是所有項目通用的混淆規(guī)則;第二個 proguard-rules.pro 是在當(dāng)前項目的根目錄下的,里面可以編寫當(dāng)前項目特有的混淆規(guī)則。
4. Android Studio中的一些快捷鍵
運行程序:Shift+F10
打印 debug 級別的日志:輸入logd后按下 Tab 鍵
打印 info 級別的日志:輸入logi后按下 Tab 鍵
打印 warn 級別的日志:輸入logw后按下 Tab 鍵 ? ?... 以此類推
生成 TAG 常量:在 onCreate()方法的外面輸入logt后按下 Tab 鍵