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