安卓開發(fā)
用戶ID:每個(gè)應(yīng)用擁有系統(tǒng)為其分配的唯一的用戶ID
進(jìn)程:每個(gè)應(yīng)用運(yùn)行在屬于它的進(jìn)程中
組件:實(shí)現(xiàn)應(yīng)用的各種功能
Intent:消息對(duì)象纠亚,用來傳遞數(shù)據(jù)或者請(qǐng)求執(zhí)行其他組件提供的動(dòng)作
Intent使用場(chǎng)景
啟動(dòng)activity活動(dòng)頁(yè)
startActivity()
startActivityForResult():返回結(jié)果昵骤,用onActivityResult()回調(diào)函數(shù)處理結(jié)果
啟動(dòng)service后臺(tái)服務(wù)
startService()
啟動(dòng)broadcast
兩種類型的Intent
顯式intents圆恤,指定要啟動(dòng)組件的名字逃片,啟動(dòng)的組件屬于相同應(yīng)用
隱式intents指蚜,指定要執(zhí)行的動(dòng)作啦撮,啟動(dòng)的組件屬于不同的應(yīng)用
構(gòu)造Intent
Componect name:組件名字
Action:動(dòng)作和動(dòng)作類型常量
Data:數(shù)據(jù)污呼,Uri對(duì)象和數(shù)據(jù)的MIME類型歧胁,數(shù)據(jù)的類型取決于所要執(zhí)行的動(dòng)作
Category:分類
Extras:附加
Flags:標(biāo)記
Activity:屏幕上的窗口
Activity的操作
創(chuàng)建Activity
創(chuàng)建Activity的子類并實(shí)現(xiàn)回調(diào)函數(shù)
創(chuàng)建用戶界面:在onCreate()中使用setContentView()設(shè)置布局
布局管理器ViewGroup
控件View
在清單文件中聲明acivity和intent filter
啟動(dòng)Activity
startActivity()
startActivityForResult()
關(guān)閉Activity
Activity的finish()方法
finishActivity()函數(shù)
Activity的生命周期
三種狀態(tài)
Resumed狀態(tài):處于屏幕頂層獲得用戶焦點(diǎn)
Paused狀態(tài):被其它窗口遮擋镶骗,部分仍可見,仍存活于內(nèi)存
Stopped狀態(tài):被其它窗口遮擋骡和,完全不可見慰于,仍存活于內(nèi)存
六個(gè)回調(diào)函數(shù)
onCreate()
onStart()
onResume()
onPause()
onStop()
onDestroy()
三個(gè)內(nèi)循環(huán)
整個(gè)生命期:在onCreate()和onDestroy()之間东囚,用于資源的申請(qǐng)和釋放
可視生命期:在onStart()和onStop()之間,用于維護(hù)資源
前臺(tái)生命期:在onResume()和onPause()之間
Activity狀態(tài)的保存
onSaveInstanceState():銷毀前調(diào)用寫入要保存的狀態(tài)
onRestoreInstanceState():創(chuàng)建時(shí)讀入已保存的狀態(tài)份帐,重寫時(shí)要先調(diào)用父類的該函數(shù)
或用onCreate()讀入已保存的狀態(tài)
清單文件:有關(guān)應(yīng)用的信息废境,系統(tǒng)運(yùn)行應(yīng)用前會(huì)讀取清單文件里的信息
元素:大多數(shù)元素對(duì)應(yīng)Java對(duì)象
<manifest>:必須
<application>:必須
屬性:屬性名都以android:開頭
聲明類名:表示定義一個(gè)子類巴元,啟動(dòng)組件時(shí)創(chuàng)建該子類的實(shí)例,無類名則創(chuàng)建的是基類的實(shí)例
<service android:name="com.example.project.SecretService" . . . >
<service android:name=".SecretService" . . . >:元素<manifest>須指定package屬性
多值:一個(gè)屬性對(duì)應(yīng)一個(gè)值修己,指定多個(gè)值時(shí)元素也要重復(fù)
引用值
@[package:]type/name:值來自資源
?[package:]type/name:值來自主題
字符串值:使用\\轉(zhuǎn)義字符睬愤,\\n表示換行
資源:每個(gè)資源有一個(gè)唯一的資源ID
好處
資源與代碼相分離
不同配置選擇不同資源
資源的提供
資源文件夾:res/
資源的類型:res/下的子目錄
animator/
anim/
color/
drawable/
mipmap/
layout/
menu/
raw/
values/
xml/
默認(rèn)資源與可選資源
資源別名
資源的訪問:通過引用資源ID來使用資源
R類:記錄了資源文件夾下所有資源的資源ID
資源ID:包括資源類型(作為R的子類)和資源名
兩種引用方式
在代碼中:[<package_name>.]R.<resource_type>.<resource_name>
R.string.hello厢岂,其中string是資源類型咪笑,hello是資源名
通過資源ID取回資源:getResources().getText(R.string.main_title)
在XML中:@[<package_name>:]<resource_type>/<resource_name>
@string/hello
引用主題的屬性資源:?[<package_name>:][<resource_type>/]<resource_name>
設(shè)備要求
系統(tǒng)權(quán)限