首頁 Android
Android
22Mar
資料儲存之二:SQLite
Mobile / Android / Eddy Chang 列印 填寫電子郵件
週二, 22 三月 2011 00:00
(11 位用戶參與評分, 當前平均得到 4.55 顆星星)

SQLite是個輕量、完整的關聯資料庫系統。在許多手機作業系統中都可以看到它的應用(iPhone也是…)

要使用SQLite要先具備的知識其實滿多的,因為在Android中,SQLite算是ContentProvider中一份子。

ContentProvider:提供了發佈和取用資料的介面,透過簡單的URI(統一資源標識符,Uniform Resource Identifier)模型,使用「content://」結構。

ContentValues:用來插入新列在資料表中,每個Content Values物件表示資料表一列的欄位和數值對應

Cursor:Cursor是游標的意思,在Android中進行查詢會回傳Cursor物件,Cursor是對應到資料的指標。Cursor提供了可管理的方法,可以在查詢結果集合中的資料列中移動:

  • moveToFirst:移動cursor到查詢結果的第一列
  • moveToNext:移動cursor到下一列
  • moveToPrevious:移動cursor到上一列
  • getCount:回傳結果集合中的列數
  • getColumnIndexOrThrow:回傳特定欄位名稱的索引值(如果沒有這個名稱的欄位會丟出例外)
  • getColumnName:回傳特定欄位索引的名稱
  • getColumnNames:回傳目前cursor所有欄位的名稱字串陣列
  • moveToPosition:移動cursor到特定列
  • getPosition:回傳目前cursor的位置

在你應用程式使用的SQLite資料庫是不能讓其他應用程式讀取的,除非建立一個ContentProvider,不過這又是另一個議題了。話說回來,讓別的應用程式讀取你的資料庫,我想機會應該很少吧。該作的手機上的資料庫,Google都作完了(聯絡人之類的)。

Tags: android | Android研究室

 
18Mar
4套SQLite免費的管理工具
Mobile / Android / Eddy Chang 列印 填寫電子郵件
週五, 18 三月 2011 20:15
(3 位用戶參與評分, 當前平均得到 4.67 顆星星)

今天花了點時間整理在網路上找到的Sqlite的管理工具,有些太久沒在更新的要收錢的商業軟體(或免費的閹割版本)或是不支援UTF-8編碼的,就不加到這名單中了。

名稱:SQLite Database Browser
網站http://sqlitebrowser.sourceforge.net/
分類:桌面程式(支援Win/Mac/Linux)
介紹:用Qt開發的Sqlite 小程式,功能相當簡單,但對於一般的資料庫建立和測試的確是夠用了。
截圖
sqlite_tool1  

 
14Mar
資料儲存之一:Shared Preference
Mobile / Android / Eddy Chang 列印 填寫電子郵件
週一, 14 三月 2011 16:52

在Android的資料儲存方法說明頁面,共有以下5種儲存的方法:

  • Shared Preferences(分享式喜好設定):儲存私有的簡單資料在鍵-值配對
  • Internal Storage:儲存私有的資料在裝置的記憶體(手機中)
  • External Storage:儲存公開資料在外部的儲存空間(如SD卡)
  • SQLite Databases:儲存結構化的資料在私有的資料庫
  • Network Connection:儲存資料在網路上的網路伺服器中

這裡要研究的是第1種Shared Preferences。Preferences是使用SharedPreferences類進行儲存簡單的資料,可以包含以下的5種資料型態:booleans, floats, ints, longs, 和strings。

Tags: android | Android研究室

 
12Mar
第三天:Bonfire
Mobile / Android / Eddy Chang 列印 填寫電子郵件
週六, 12 三月 2011 17:43
(3 位用戶參與評分, 當前平均得到 4.33 顆星星)

Bonfire這個範例是討論到Android中的動畫部份,實際的執行樣子如下:

 
07Mar
ListView之二:改寫ArrayAdapter的getView
Mobile / Android / Eddy Chang 列印 填寫電子郵件
週一, 07 三月 2011 21:02
(8 位用戶參與評分, 當前平均得到 4.75 顆星星)

在上次的「ListView與Adapter之一」中,有說到ArrayAdapter並不適用於自訂(Custom)ListView的場合,所以改用SimpleAdapter。但後來在網路上找到另幾則範例和教學,事實上如果透過改寫(Override)ArrayAdapter中的getView方法也是可以達成自訂ListView的目的。

先看一下getView方法的定義(在介面Adapter中):
getView(int position, View convertView, ViewGroup parent)
Get a View that displays the data at the specified position in the data set.
getView回傳的是一個View物件,回傳的是每一列的要顯示資料的樣子。position指的是引入Adapter的資料數組的位置,convertView指的是轉換過的樣子,parent指的是每個項目視圖上層包含的容器(Container)。有興趣研究可以開啟ArrayAdapter的原始碼來看(事實上它用了另一個方法接在裡面,叫createViewFromResource,看名稱就知這個方法在作什麼的)
附件:
下載此檔案 (ListDemo.rar)ListDemo.rar[原始檔(ListDemo8是配合這個文章的)]154 Kb

Tags: android | Android研究室

 
06Mar
不同的Activity切換
Mobile / Android / Eddy Chang 列印 填寫電子郵件
週日, 06 三月 2011 16:10
(4 位用戶參與評分, 當前平均得到 4.50 顆星星)
除了要新增兩個Activity之外,記得在AndroidManifest.xml也要加入新增的Activity2,像下圖這樣:

Tags: android | Android研究室

 
05Mar
ListView之一:Adapter介紹與使用
Mobile / Android / Eddy Chang 列印 填寫電子郵件
週六, 05 三月 2011 02:30
(16 位用戶參與評分, 當前平均得到 4.69 顆星星)

ListView是在Android很常見的一種視圖,ListView不論在電話簿中還是觀看大量的列表資料,都是會用得到。

ListView的使用需要搭配Adapter,Adapter是用來連接資料和ListView的,Adapter除了會用到ListView中,另外會用到還有Spinner(類似下拉選單)的這個元件中。在Google IO 2009的其中一張投影片中,可以很清楚的看到其中的關係圖:
從這張圖就可以看到Adapter基本上會分成Cursor類和ArrayList類的。Cursor和資料庫或目前電話中的資料有關,例如要抓出目前電話簿中的聯絡人資料,用的就是Cursor的Adapter,而自己在程式中建立的陣列資料,用的就會是ArrayList類的Adapter。

Tags: android | Android研究室

 
02Mar
受夠超慢的Android模擬器嗎?加速方法
Mobile / Android / Eddy Chang 列印 填寫電子郵件
週三, 02 三月 2011 15:03
(5 位用戶參與評分, 當前平均得到 4.80 顆星星)
自從Android的平板電腦版本3.0,代號Honeycomb(蜂窩)出現後,Android模擬器又更慢了一些,據說2.3就比2.0慢很多。每次按下執行後,就可以去泡杯咖啡或上廁所了…當你回到坐位上還不見得已經執行完成…未免也太慢了一些,事實上如果你的電腦配備並不是單核心的老電腦,調整一些設定值就可以加速模擬器的執行。

當然在Linux上的Eclipse和模擬器都是跑得飛快(以同樣的硬體規格比較Windows作業系統),不過一般的開發者可能不見得熟悉使用Linux來開發,下面介紹的方式可以在Windows和Linux上使用。

加速模擬器首先是要給他更多的記憶體,設計給ARM平板電腦的模擬器在PC上跑,本來跑得就慢了,預設的記憶體也只有256MB。狂餵它吃記憶體(就像狂餵60歲老伯威而剛一樣…?),絕對可以讓它威猛不少。請注意如果你的電腦上記憶體本身就不多(小於2GB),搞不好會有反效果出現,因為模擬器現在就要餵它1GB的記憶體了。
 
第 1 頁, 共 3 頁

最先前一個123下一個最後

關於我something about me

eddy

Eddy Chang

Joomla!台灣站長、資擘(股)軟體工程師

最新留言Latest Comment