搭建Android平臺(tái)注意事項(xiàng)
GOOGLE開(kāi)發(fā)出來(lái)的開(kāi)放手機(jī)聯(lián)盟的成立和 Android 的推出是對(duì)現(xiàn)狀的重大改變,在帶來(lái)初步效益之前,這個(gè)系統(tǒng)是個(gè)很強(qiáng)大而且還是費(fèi)用很好的一個(gè)Android平臺(tái),為了讓這些Android平臺(tái)運(yùn)行的更好。
類似于win32程序里的WinMain函數(shù),Android自然也有它的程序入口點(diǎn)。它通過(guò)在AndroidManifest.xml文件中配置來(lái)指明,可以看到名為NotesList的activity節(jié)點(diǎn)下有這樣一個(gè)intent-filter,其action為android.intent.action.MAIN,
Android平臺(tái)指定為 android.intent.category.LAUNCHER,這就指明了這個(gè)activity是作為入口activity,系統(tǒng)查找到它后,就會(huì)創(chuàng)建這個(gè)Android平臺(tái)實(shí)例來(lái)運(yùn)行,若未發(fā)現(xiàn)就不啟動(dòng)(你可以把MAIN改名字試試)。然后調(diào)用managedQuery函數(shù)查詢出所有的日志信息.
這里第一個(gè)參數(shù)就是上面設(shè)置的”contentcom.google.provider.NotePad/notes”這個(gè)URI,即notes數(shù)據(jù)表。PROJECTION 字段指明了結(jié)果中所需要的字段,Notes.DEFAULT_SORT_ORDER 指明了結(jié)果的排序規(guī)則。
實(shí)際上managedQuery并沒(méi)有直接去查詢數(shù)據(jù)庫(kù),而是通過(guò)Content Provider來(lái)完成實(shí)際的數(shù)據(jù)庫(kù)操作,這樣就實(shí)現(xiàn)了邏輯層和數(shù)據(jù)庫(kù)層的分離。查詢出日志列表后,構(gòu)造一個(gè)CursorAdapter,并將其作為L(zhǎng)ist View的數(shù)據(jù)源.
從而在界面上顯示出日志列表??梢钥吹?,第二個(gè)參數(shù)是R.layout.noteslist_item,打開(kāi)對(duì)應(yīng)的noteslist_item.xml文件。那么,上面這句startActivity(new Intent(Intent.ACTION_EDIT, uri))執(zhí)行后會(huì)發(fā)生什么事情呢?這時(shí)候Android系統(tǒng)就跳出來(lái)接管了。
它會(huì)根據(jù)intent中的信息找到對(duì)應(yīng)的activity,在這里找到的是NoteEditor這個(gè)activity,然后創(chuàng)建這個(gè)activity的實(shí)例并運(yùn)行。那么,Android又是如何找到NoteEditor這個(gè)對(duì)應(yīng)的activity的呢?這就是intent發(fā)揮作用的時(shí)刻了。
- <intent-filter android:label="@string/resolve_edit">
- <action android:name="android.intent.action.VIEW" />
- <action android:name="android.intent.action.EDIT" />
- <action android:name="com.android.notepad.action.EDIT_NOTE" />
- <category android:name="android.intent.category.DEFAULT" />
- <data android:mimeType="vnd.android.cursor.item/vnd.google.note" />
- </intent-filter>
在命令行中使用”adb shell”命令進(jìn)入系統(tǒng)中,然后”cd app”進(jìn)入應(yīng)用程序所在目錄,”rm XXX”就可以刪除你指定的apk,從而去掉其在系統(tǒng)頂層界面占據(jù)的圖標(biāo)。若兩次”cd data”則可以進(jìn)入應(yīng)用程序使用的數(shù)據(jù)目錄。
你的數(shù)據(jù)可以保存在這里,例如Android平臺(tái)就是把其數(shù)據(jù)庫(kù)放在它的databases目錄下,名為note_pad.db.第一次啟動(dòng)模擬器會(huì)比較慢,但以后就別關(guān)閉模擬器了,修改代碼,調(diào)試都不需要再次啟動(dòng)的,直接修改后run或debug
【編輯推薦】