andorid大致分爲:Linux內核層,系統運行庫層,應用框架層,應用層。
Linux內核層爲硬件提供底層驅動
系統運行庫層爲android提供主要特性支持如數據庫支持等,這層還有Android運行時庫,另外還有虛擬機也在這層。
應用框架層提供了構建應用程序用到的各種API。
andorid四大組件:Activity,Service,Broadcast Receiver,Content Provider。
關於目錄
.gradle和.idea是AS自動生成的文件無需關心。
app是代碼資源
build是編譯自動生成的文件
gradle包含gradle wrapper的配置文件
build.gradle是項目全局的gradle構建腳本,通常不需要更改
gradle.properties是全局gradle配置文件,這裏配置將影響項目所有gradle編譯
gradlew和gradle.bat是在命令行執行gradle命令的,前者linux和mac,後者windows
xxx.iml是所有IntelliJ IDEA項目都會生成的一個文件,標識識IntelliJ IDEA的項目
local.properties指定本機中的Android SDK的路徑。通常自動生成
settings.gradle指定項目中所有引入的模塊
在app目錄下
build編譯自動生成的文件
libs項目中使用了第三方jar報,在這個目錄下
androidTest是編寫測試用例的
java是java代碼
res是項目的圖片佈局字符串等
AndroidMainfest.xml是項目配置文件,四大組件在此註冊
test編寫Unit Test測試用例
app.iml IDE自動生成
build.gradle是app模塊gradle的構建腳本,這個文件指定很多項目構建相關配置
proguard-rules.pro指定項目代碼混淆規則
關於代碼
android講究邏輯和視圖分離。通常佈局文件寫界面,活動中引入。
關於項目中的資源
res中,drawable開頭的用來放圖片。mipmap開頭放圖標,values開頭的文件放字符串,樣式等。layout文件夾放佈局文件。
一個字符串在代碼中通過R.string.hello_world可以獲得該字符串的引用,在XML中通過@string/hello_world獲得該字符串引用。
string部分可替換,drawable是圖片,mipmap是圖標。layout是佈局文件等。
關於build.gradle文件
Android Studio採用Gradle來構建項目
閉包套閉包,最裏面repositories是表示是一個代碼託管倉庫jcenter,在這配置後項目就可以引用jcenter上開源項目,dependencies閉包用classpath聲明Gradle插件
然後比如app目錄下build.gradle文件
第一行是應用了一個插件,可以是應用程序或者苦模塊,這裏是應用程序,區別在於跟其他平臺一樣,應用程序直接運行,庫依賴於別的程序模塊運行。
android閉包裏分別是 制定項目編譯器版本,指定項目構建工具版本,接着defaultConfig閉包,對項目細節配置,按行分別是報名,最低兼容android版本,最高目標版本。接着buildTypes閉包指定生成安卓文件配置,通常兩個子閉包分佈debug和release。
release閉包裏,minifyEnable是指定是否對項目混淆,proguardFIles指定混淆規則文件,二三行分別proguard-android.txt是Android SDK目錄下對所有項目通用混淆規則和第三行proguard-rules.pro當前根目錄下的規則,當前目錄特有規則。
接着dependencies閉包,指定當前項目依賴關係,一般AS項目三種依賴方式:本地,遠程,庫,第一行compile fileTree是本地依賴,表示libs目錄下所有.jar後綴添加到當前項目構建路徑中,第二行compile是遠程依賴,組成是域名:不同庫名稱:版本號,如果還有庫依賴是compile project(':庫模塊')。
Log工具
android日誌類工具是Log。級別從低到高
Log.v()用於瑣碎,意義最新日誌,級別verbose(adj. 冗長的;囉嗦的)
Log.d()用於調試信息,級別debug
Log.i()用於打印重要數據,對應級別info
Log.w()用於打印警告,級別warn
Log.e()用於錯誤信息。級別error
用法就是Log.x("類名(一部傳入當前類名就好)","msg具體內容")