第一章 Android 基礎(chǔ)
Android 系統(tǒng)框架
- Linux 內(nèi)核層 <br />
基于 Linux 2.6內(nèi)核友浸,這層為 Android 設(shè)備的硬件提供驅(qū)動(dòng)梢杭。 - 系統(tǒng)運(yùn)行庫(kù)層 <br />
- 通過(guò)一些 C/C++ 庫(kù)為 Android 提供主要特性支持(數(shù)據(jù)庫(kù) SQLite 庫(kù)、3D 繪圖 OpenGL|ES庫(kù)栏账、瀏覽器內(nèi)核 Webkit 庫(kù))
- Android 運(yùn)行時(shí)庫(kù)帖族,提供核心庫(kù)(JAVA 語(yǔ)言環(huán)境、Dalvik 虛擬機(jī))
- 應(yīng)用框架層 <br />
提供構(gòu)建時(shí)用到的各種 API - 應(yīng)用層 <br />
手機(jī)上的應(yīng)用程序
Android 中的四大組件
- 活動(dòng) Activity
- 服務(wù) Service
- 廣播接收器 Broadcast Receiver
- 內(nèi)容提供器 Content Provider
Android 項(xiàng)目目錄分析
- src 存放源碼
- gen 自動(dòng)生成挡爵,有個(gè) R.java 文件(添加資源會(huì)生成相應(yīng)資源 id)
- assets 存放隨程序打包的文件
- bin 里面是編譯時(shí)自動(dòng)產(chǎn)生的文件竖般,apk 文件就在其中
- libs 第三方 jar 包
- res 存放項(xiàng)目中使用到的圖片、布局茶鹃、字符串資源涣雕。有很多子目錄(drawable 放圖片、layout 放布局闭翩、values 放字符串)
- AndroidManifest.xml Android 項(xiàng)目配置文件
- project.properties 指定編譯所用 SDK 版本
一個(gè)簡(jiǎn)單項(xiàng)目如何運(yùn)行的
- 在 AndroidManifest.xml 中為活動(dòng)注冊(cè) <br />
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
這個(gè)代碼說(shuō)明程序運(yùn)行首先啟動(dòng)的活動(dòng)挣郭。
- 繼承 Activity,Activity是系統(tǒng)提供的一個(gè)活動(dòng)基類(lèi)
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
重寫(xiě) onCreate 方法疗韵,活動(dòng)創(chuàng)建時(shí)必定被執(zhí)行
安卓設(shè)計(jì)講究邏輯視圖分離兑障,布局定義在 res/layout 下,通過(guò) onCreate() 方法中調(diào)用 setContentView() 方法引入布局蕉汪。字符串定義在 res/values/strings.xml 里流译,然后可在代碼和布局中引用。 <br />
兩種引用方式:
- 在代碼中通過(guò)
R.string.hello_world
獲得該字符串引用 - 在 XML 中通過(guò)
@string/hello_world
獲得該字符串引用
日志工具
- Log.v() 對(duì)應(yīng)級(jí)別 verbose
- Log.d() 對(duì)應(yīng)級(jí)別 debug
- Log.i() 對(duì)應(yīng)級(jí)別 info
- Log.w() 對(duì)應(yīng)級(jí)別 warn
- Log.e() 對(duì)應(yīng)級(jí)別 error
級(jí)別:error->warn->info->debug->verbose
用法:Log.d("參數(shù) tag,一般傳入當(dāng)前類(lèi)名","參數(shù) msg,想打印的消息")