Posts

Showing posts from May, 2009

[Android] Content Providers (Arrange)

Using Content Providers 使用 android.provider package的物件 使用URI: Querying for Data 查詢資料 content://contacts/people/ 這種寫法,會列出所有資料 content://contacts/people/23 這種寫法,只會回傳ID=23這筆資料 Modifying Data 修改資料 呼叫ContentResolver.update() Adding a Record 增加資料 呼叫ContentResolver.insert() 若要儲存檔案,要呼叫ContentResolver().openOutputStream()。 Deleting a Record 刪除資料 呼叫ContentResolver.delete() 刪除多筆記錄時,呼叫ContentResolver.delete()裡的android.provider.Contacts.People.CONTENT_URI Creating Content Providers 繼承ContentProvider 定義一個public static final Uri 命名為CONTENT_URI。這個字串要以content://為標準,你的content provider才可以運作。 使用content providers儲存資料或使用SQLite資料庫儲存資料。 Android的Provider,SQLiteOpenHelper的CLASS會幫助你建立和管理資料庫。 如果你要顯示如bitmap檔案,應該使用content:// URI的語法。EX:content://media/internal/images or content://media/external/images 如果你要管理一個新的資料型態,你必須先定義一個android.ContentProvider.getType(url),新的MIME型態。 修改自: http://www.singing.idv.tw/myblog/sing522/?p=88

[Android] Application Fundamentals - Component Lifecycles

Image
Activity lifecycle onCreate()用來做程式的初使化動作,onDestory()把onCreate()時所要來的資料做釋放的動作。 onPause()時把需要保存的資料在此時保存,onResume()把保存的資料拿回來使用。 上圖裏有三個主要迴路 entire lifetime: 一個Activity的entire lifetime是由onCreate(Bundle)開始,一直到onDestroy()結束。 visible lifetime: 一個Activity的visible lifetime則是指在onStart()到onStop()之間,算是"可視生命時期",在這段時間內,使用者可以在螢幕上看見Activity。 foreground lifetime: 一個foreground lifetime則是指onResume()到onPause()之間,在這個時期的Activity是在所有的Activity的前面,並且直接跟使用者進行互動。 Service lifecycle Broadcast receiver lifecycle Processes and lifecycles

[Android] Application Fundamentals - Application Components

Android的application通常由以下四個元素所組成,但並不是絕對需要。 Activity Intent Receiver Service Content Provider 當我們確定哪些元素後,我們就需要在AndroidManifest.xml中登記這些構造塊的清單。這個配置文件用於定義應用程序的組件、組件的功能及必要條件等。 以下,我們對四種元素的說明: Activity Activity是一個虛擬的UI(User Interface),並且繼承於Activity這個class。一個activity可以啟動新的activity,原來的activity會pause,系統會將它放進history stack,也可以移除,而新產生的activity可以傳直給原來的activity。 Service 沒有UI的程式,activity使用Context.startService()將service啟動,再使用Context.bindService()來跟service做連結,之後則使用service開放出來的介面做溝通。 Broadcast receivers 想發送一個廣播事件可以使用BroadcastReceiver class,broadcast receiver沒有UI,使用NotificationManager來通知使用者,通知的方法有閃背光、震動、聲音等等。它通常會顯示在status bar。 Content Provider 應用程式可以分享資料給其它的應用程式,並且將它們的資料保存到檔案、SQLite database,甚至是其它機制。而ContentResolver這個物件可以與任何的content provider溝通。 Activating components: intents 一個特別的類別intent,當content provider被ContentResolver觸發時,activities、service、與broadcast receivers會被非同步的訊息觸發,而這個觸發稱為intent。Intent負責傳遞資料。分為以下三種類型: Activity啟動是用intent傳遞Context.startActivity() or Activity.startActivityForResult()。 Service啟動是用int...

[Android] Content Providers

Content Providers的概要 1.在應用程式裡,存取物件。 2.Content providersu有公開的資料型態,如: audio, video, images, personal contact information,等等。 3.若要公開使用資料,可以製造一個content provider,或增加資料到已存在的content provider。 Content provider basics 讀取Content provider: ContentResolver cr = getContentResolver(); URIs 每一個content provider都有一個公開的URI,而開頭為"content://"。 以people的電話號碼與照片舉例: android.provider.Contacts.Phones.CONTENT_URI android.provider.Contacts.Photos.CONTENT_URI Querying a content provider Query a content provider需要三個元素: 1.URI 2.檔案名 3.檔案型態 若要Query,可以使用ContentResolver.query() or Activity.managedQuery()。 Modifying data in a provider 1.Adding records 使用ContentResolver.insert() 2.Add new values 3.Batch updateing record 使用ContentResolver.upodate() 4.Deleting a record 使用ContentResolver.update() Creating a content provider 若要建立content provider必須: 1.使用SQLiteOpenHelper物件創立database,使用SQLiteDatabase去管理它。 2.用ContentProvider物件去存取資料。 3.宣告在AndroidManifestr.xml。 Content URI summary http://developer.android.com/guide/topics...

[Android] I'm an Android developer

Android官方下載桌布的地方: http://www.android.com/media/goodies.html

[Android] emulator

當建立好一個AVD(Android Virtual Device)之後,可以使用emulator指令來開啟 開啟名為testavd的AVD ./emulator -avd testavd 開啟名為testavd的AVD,插入名為sd.img的SD Card ./emulator -avd testavd -sdcard sd.img

[Android] Create AVD

Android 1.5 必須手動開啟Android Virtual Devices 先進入此目錄 android-sdk-linux_x86-1.5_r1/tools$ 打入 ./android list target 可看到Android可用的資訊 id:1 Name: Android 1.1 Type: platform API level: 2 Skins: HVGA (default), HVGA-L, HVGA-P, QVGA-L, QVGA-P id:2 Name: Android 1.5 Type: platform API level: 3 Skins: HVGA (default), HVGA-L, HVGA-P, QVGA-L, QVGA-P id:3 Name: Google APIs Type: add-on Vendor: Google Inc. Description: Android + Google APIs Based on Android 1.5 (API level 3) Libraries: * com.google.android.maps (maps.jar) API for Google Maps Skins: HVGA (default), HVGA-L, QVGA-P, HVGA-P, QVGA-L 詳細指令範例 http://developer.android.com/guide/developing/tools/avd.html ./android create avd -n testavd -t 2 意思是create一個avd,名子叫testavd,2是版本1.5(1是版本1.1) 而custom hardware profile選no 這樣Eclipse Android專案上就可以看到此AVD 若要在Eclipse開發專案,請參考 http://www.590103.idv.tw/blog/archives/307 http://www.590103.idv.tw/blog/archives/330 原文參考 http://howtoforge.com/installing-google-android-sdk1.0-on-ubuntu8.04-desktop

[Android] Installing the Android SDK on Ubuntu

Download Android 1.5 SDK http://developer.android.com/sdk/1.5_r1/index.html 安裝JDK 系統->管理->Synaptic套件管理程式 QuickSearch打上sun 搜尋完選擇安裝sun-java6-jdk 設定SDK路徑 export PATH=${PATH}: /tools or 更新我們的 Eclipse preferences 對應到 Android SDK 目錄,選擇 Window -> Preferences,然後選址定的路徑 Eclipse套件 在Eclipse(3.4.2)中,選擇help->Software Update...按Available software 在Eclipse other version,選擇Windows -> Preference -> Install/Update -> Available Software Add site... 打上 http://dl-ssl.google.com/android/eclipse/ 按OK 按Istall... 按Next 按Finish 如果要用Android 1.5還必須Create ADK,請參考 http://jaysoftwarenote.blogspot.com/2009/05/android-installing-android-sdk-on-linux_06.htm l Windows版可參考 http://code.google.com/p/androidbmi/wiki/InstallAndroid

[Virtual] 讓Windows與「VirtualBox裡的Ubuntu系統」共用「分享資料夾」

出自重灌狂人 http://briian.com/?p=6241