Android簡介
Android系統架構
- Linux內核層
- 系統運行庫層
- 應用框架層
- 應用層
Linux內核層
Andorid系統是基於Linux內核的,這一層爲Android設備的各種硬件提供了底層的驅動,如顯示驅動、照相機驅動、WI-FI驅動等。
系統運行庫層
該層通過一些C/C++庫來爲Android系統提供主要的特性支持。如SQLite庫提供了數據庫的支持,Webkit庫提供了瀏覽器內核的支持等。
這一層還有Android運行時庫,主要提供一些核心庫,能夠允許開發者使用java語言來編寫Android應用。另外,Android運行時庫中還包含了Dalvik虛擬機(5.0系統之後改爲ART運行環境),它使得每一個Android應用都能運行在獨立的進程中,並且擁有一個自己的虛擬機實例。
應用框架層
該層主要提供了構建應用程序時可能用到的各種API,Android自帶的一些核心應用就是使用這些API完成的。
應用層
所有安裝在手機上的應用程序都是屬於這一層的,比如遊戲,自帶程序,自己開發的程序等。
Android發佈的版本
版本號 | 系統代號 | API |
---|---|---|
2.2 | Froyo | 8 |
2.3.3 - 2.3.7 | Gingerbread | 10 |
4.0.3 - 4.0.4 | Ice Cream Sandwich | 15 |
4.1.x, 4.2.x, 4.3 | Jelly Bean | 16, 17, 18 |
4.4 | KitKat | 19 |
5.0, 5.1 | Lollipop | 21, 22 |
6.0 | Marshmallow | 23 |
7.0 | Nougat | 24 |
Android應用開發特色
- 四大組件
- 活動,服務,廣播接收器和內容提供器。其中活動是所有Android應用程序的門面,凡是在應用中看到的東西,都是放在活動中。服務則是無法看到它,但它會一直在後臺默默地運行,即使用戶退出了應用,服務仍然是可以繼續運行的。廣播接收器允許應用接收來自各處的廣播消息,當然也可向外發出廣播信息。內容提供器則爲應用程序之間共享數據提供了可能。
- 豐富的系統控件
- Android爲我們提供了豐富的系統控件,輕鬆寫出漂亮的界面,也可以定製屬於自己的控件。
- SQLite數據庫
- Android系統自帶了一種輕量級、運算速度極快的嵌入式關係型數據庫。支持標準SQL語法,也可以通過封裝好的API進行操作,使得存儲和讀取數據更加方便。
- 強大的多媒體和地理位置定位
- 音樂、視屏、錄音、拍照、鬧鈴等等,都可以用代碼進行控制;LBS領域
代碼塊
AndroidManifest.xml代碼:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.helloworld">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".HelloWorldActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
HelloWorldActivity代碼:
package com.example.helloworld;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
public class HelloWorldActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_hello_world);
Log.d("data", "onCreate execute");
}
}
hello_world_layout.xml代碼:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_hello_world"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.helloworld.HelloWorldActivity">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!" />
</RelativeLayout>