1.Android的系統架構
1,Linux核心層
這一層為Android裝置的各種硬體提供了底層驅動,如顯示驅動,相機驅動,藍牙驅動,WiFi驅動等
2.系統運作庫層
這一層主要通過 c/c++庫來為Android系統提供主要的特新支援,如SQLLite提供了資料庫的支援, OpenGl|ES庫提供了3D繪圖的支援, 這一層還有Android運作時庫,提供了一些核心庫,能夠允許開發者使用java來開發Android應用。 還包含了Dalvik虛拟機
3.應用架構層
這一層主要提供了建構應用程式時可能用到的各種API, 開發者可以使用這些API完成程式的建構
4.應用層
所有安裝在手機上的應用程式都是屬于這一層
2.Android開發特色
1.四大元件
Activity Service Broadcast Receiver Content Provider( 内容提供器,為應用程式之間共享資料提供了可能 )
2.豐富的系統控件
3.SQLLite 資料庫 (不僅支援标準的SQL文法,還可以通過Android封裝好的API進行操作)
4.多媒體
5.定位系統
工具簡介 :
JDK java語言的軟體開發包 包含了java的運作環境,工具集合,基礎類庫等内容
Android SDK 是谷歌提供的Android開發工具包,在開發Android程式時引入,來使用相關的API
3.建立新的項目與建立虛拟裝置
4.将項目切換到project目錄(分析目錄)
1 .gradle和.idea
放的是Android自動生成的一些檔案,我們無需關心,也沒有必要去修改這些檔案
2. app
項目中的代碼,資源等内容幾乎都是放在這個目錄下面,開發工作也主要集中在這個目錄
3.build
無需過多的關心, 主要包含了一些編譯時自動生成的檔案
4.gradle
包含了gradle wrapper的配置檔案
5. .gitignore
這個檔案主要是用來将指定的目錄或檔案排除在版本控制之外的
6. build.gradle
這是全局的gradle建構腳本
7.gradle.properties
這個檔案是全局的gradle配置檔案,會影響到項目中所有的gradle編譯腳本
8.gradlew和gradlew.bat
分别是用來在指令行執行gradle指令的, gradlew是用來在Linux或者Mac上使用 gradlew.bat是用來在Windows上執行的
9.local.properties
這個檔案用來指定本機中SDK路徑,通常都是自動生成的不需要修改
10.settings.gradle
用來指定項目中所有引入的子產品。由于HelloWord項目中隻有一個app子產品,是以檔案中也就隻引入了app這一個子產品
APP目錄的分析
1.build
和外層的build類似,包含了一些在編譯時自動生成的檔案
2.libs
如果項目使用了第三方jar包,就需要把這些jar包都放在libs目錄下
3.AndroidTest
用來編寫AndroidTest測試用例的,可以對項目進行一些自動化測試。
4.java
放置我們所有java代碼的地方
//所有活動都必須是Activity或者它的子類
public class HelloWorldActivity extends Activity{
@override
protected void onCreate( Bundle savedInstanceState ){
super.onCreate( savedInstanceState );
//給目前的活動引入了一個hello_world_layout的布局 Android設計講究邏輯與視圖分離
setContentView( R.layout.hello_world_layout ); //引入了 res/layout/hellow_world_layout的布局
}
}
5.res
項目所使用到的所有圖檔圖示(drawable目錄),布局(layout目錄),字元串(values目錄)資源等
引用資源的方式 1.在代碼中 R.string.hello_world 2.在XML中通過@string/hello_world
6.AndroidManifest.xml
這個是整個Android項目的配置檔案,在程式中定義的四大元件都需要在這個檔案裡注冊
<activity android:name = ".HelloWorldActivity">
<intent-filter> //Android項目的主活動 啟動的首頁面
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
7.test
用來編寫Unit Test 測試用例的,是項目自動化測試的另一種方式
8. .gitignore
這個檔案用于将app子產品内指定的目錄或則檔案排除在版本控制之外
9. app.ini
Intellij IDEA 自動生成的檔案
10 build.gradle
這是APP子產品的gradle建構腳本,
第一行一般有com.android.application 表示這是一個應用程式子產品 com.android.library 表示這是一個庫子產品
dependencies閉包可以指定目前項目所有的依賴關系
5.日志工具的使用
Log.v() Log.d() Log.i() Log.w() Log.e()
logt 的使用
自定義logcat的過濾器