android系統(tǒng)架構(gòu)
Linux內(nèi)核層
為android提供了各種底層的驅(qū)動,如顯示驅(qū)動,音頻驅(qū)動,照相機驅(qū)動,藍牙驅(qū)動,Wi-Fi驅(qū)動,電源管理等。系統(tǒng)運行庫
通過一些c/c++庫,為android系統(tǒng)提供主要特性支持。如SQLite提供數(shù)據(jù)庫支持,OpenGL/ES提供3d繪圖,webkit提供瀏覽器內(nèi)核的支持。 <br /> 提供一些核心庫,允許開發(fā)者使用java來編寫android應用;還包含Dalvik虛擬機,讓每一個android應用運行在獨立的進程中。應用框架層
構(gòu)建應用程序是可能用到的各種API,android開發(fā)者可以使用這些API構(gòu)建自己的應用程序。應用層
安裝在手機上的應用程序?qū)儆谶@一層。
android應用開發(fā)特色
- 四大組件 activity , services , broadcast receiver , content provider
- 豐富的系統(tǒng)組件
- SQLite數(shù)據(jù)庫
- 強大的多媒體 如音樂,視頻,拍照,錄音,鬧鈴等
- 地理位置定位
開發(fā)環(huán)境搭建
- jdk 是java語言的軟件開發(fā)工具包
- android sdk Google提供的android開發(fā)工具包,使用android相關的API
- android studio
建工程-分析android程序項目包的結(jié)構(gòu)
build.gradle文件的理解
最外層build.gradle文件:
jcenter() :代碼托管倉庫,android很多開源項目會選擇將代碼托管到 jcenter上,聲明該配置,可以輕松引用各種 jcenter上的開源項目。
classpath 'com.android.tools.build:gradle:2.1.3' :gradle并不是為android開發(fā)的,java,c++等項目也可以用gradle來構(gòu)建,故需要聲明這個插件。app目錄下的build.gradle理解:
minifyEnabled false :true 混淆,false不混淆
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' : 混淆的規(guī)則文件,proguard-android.txt是android sdk目錄下的所有項目通用混淆規(guī)則; proguard-rules.pro,當前項目根目錄下,編寫特有的混淆規(guī)則。