2011年8月17日 星期三

2011-08-17 UCampus 總整理

非常感謝陳老師讓我進來執行行動服務的專案,原本自己的打算是在三個月內可以看到整個系統執行的雛形,年底可以上線做完整的測試,不過似乎學校方面的變動速度大過於預期,經過許多考量,我還是決定離開這個位置,讓現任組長找尋更適合人選以支援原本的校務系統,所以本篇應該是我在此留下的最後一篇文章,內容主要是說明現在整個系統的概貌,以及當初的設計概念,以方便未來如果有人需要這部分的程式時,可以較為清楚的方式去尋找,甚至同意我的理念的話還可以繼續下去。 目前在我的電腦裡面存在著最主要的三個專案,以及其他零碎測試用的小專案,主要的三個專案分別是 UCampus, UCampusMap, mediaFlickr。 UCampus : 為最主要的專案,也就是整個校園應用的主體,原本規畫是包含著各個功能的連結,並提供建構需求的工具,目前包含著四個 Package 分別為 UCampus, UCampusFun, UCampusMap, UCampusNews。 UCampus :程式主要的進入點及各部分功能的連結。 UCampusFun : 目前僅包含提供連結至 AP Server 及要求資料的功能類別。 UCampusMap : 這個 Package目前和 UCampusMap 專案架構基本上一樣,不過已經把連結資料庫及 AP Server 的部分,改寫到 UCampusFun 這個 Package。 UCampusNews : 包含新聞發佈的相關類別。  UCampusMap : 地圖開發都是放在此處,可參考2011-07-27 UCampusMap 功能畫面 mediaFlickr : 對於社交活動中的 Flickr 放置在這個部分,基礎的開發方式可以參考搜尋Flickr上相關照片。 這些源碼都已經同步至本機上的 SVN Server。 而程式中所使用的圖片,都存放在本機上我的圖片裡面,並依照功能分類,地圖上有用...

2011年8月16日 星期二

Mobile Service 資料分類及資料庫存放位置

Mobile Service 是利用 Drupal 所開發出來的平台,Mobile Service 提供後台讓各單位人員可以註冊以及登入至系統發佈新聞等訊息,並且將這些訊息在前台顯示出來,除此之外也提供了校園單位簡介地理位置等資訊。 既然平台是利用 Drupal 所開發,所以要拉取資料庫的資料前,必須先來看一下各個資料存放於哪些資料表中。基本上與之前介紹的位置相似,可參考關於Drupal新增content時的資料表變動、Map 功能用到的 Drupal 資料 此兩篇介紹。 首先來看一下我對於 Mobile Service 所作的資料分類,目前的資料分類是依照新聞發佈、行事曆 以及部分地圖功能所做規劃。( 這裡為什麼說是部分的地圖功能,原因在於這部分只是存放發佈訊息及活動的位置,完整的地圖功能將包含了各類型單位、公車資訊等 )。 Type Field 功能說明 building (建築物) name 建物名稱 Floor 建物樓層 introduction 建物簡介 latitude 緯度 longitude 精度 units (單位或院所) atBuilding 所在建物 name 單位名稱 atFloor 所在樓層 introduction 單位簡介 number 單位室碼 phone 單位電話 fax 單位傳真 web 單位網址 type 單位類型(學術、行政) hasGroup 是否有組別 group (組別或系所) atBuilding ...

Map 功能用到的 Drupal 資料

Map 功能是最先開發的部分,所以資料庫的部分是沿用一開始明宗與漢卿他們所建立的生活資訊平台,目前此平台的資料表共有121個,但實際上在拉需求的資料時,會使用到的資料表並不多,而且位置有固定的模式,這個部分請參考 關於Drupal新增content時的資料表變動 node_revisions : nid : 應該是 node id ,值通常與 vid 相同,經過一段時間觀察,大部分所需擷取的資料都可以使用 nid 當成唯一鍵。(此部分為觀察結果後的判斷,並沒有細看 drupal 的原碼) uid :此部分為 Drupal 的使用者 id ,如果需要使用者資料與 uid 的關聯,可以參考 users 資料表,至於身份的部分可以參考 users_roles 以及 role 此兩個資料表;users_roles 負責 uid 與 rid 的對應,role 資料表可查詢到 rid 所對應到的使用者權限身份;而實際上每個使用者權限身份可以執行的動作則位於 permission 資料表。 title : 每個 PO 文的標題。因為整個系統的開發過程與一般先規畫資料庫再寫 AP 這樣的過程稍微不同。雖然在規畫時同樣需要定義出需求哪些資料,但是這邊所規畫出來的資料,未來會放在資料庫的哪個位置或是如何命名則是由 drupal 所決定;這裡所規畫出來的資料就是直接呈現於畫面上的資料。或許這樣解釋不是很清楚,這邊舉個例子,假設在平台上顯示了【系所 : 資訊工程學系】,那這個資訊工程學系的字串資料就是存在於 title 這個欄位,而資訊工程學系的詳細介紹就會存放在 body 欄位。 node : type : 此處標示著每個發佈的文章是屬於哪種類型,類型可以是建築物、單位、餐廳等,而這些類型必須在規劃資料時盡量的分類清楚,因為 drupal 上的這些類型並無法向規劃資料庫一樣直接給它們關聯,所以一不小心可能會照成大量的資料重覆存在於資料庫中,或是需要利用非常大量的...

2011年8月9日 星期二

debug - 自訂 ArrayAdapter 的 View

今天在編寫 news 部分的功能,因為需要在標題列後方加入一些圖片用來顯示是否有多媒體檔,這部分打算使用自己設計的 view,而負責存取資料的部分則是繼承原本的 ArrayAdapter ,製作一個新的 newsAdapter 類別,並且覆寫 getview() 這個方法。 在創建 inflater 物件後的初始一直有問題。getLayoutInflater()這個方法一直是未定義的,找到的解決方法為 : ((Activity)mContext).getLayoutInflater();...

2011年8月2日 星期二

不同 Package 間的 activity 切換

今天將 Map 功能移入 UCampus 主程式時一直無法正常執行,UCampus 是應用的入口和 Map 為不同的 Package,功能是當我進入應用時,UCampus 會顯示一些按鈕,接著按下 Map 功能的按鈕後將會起始 Map 功能。 不同 Package 間 activity 切換,與相同 Package 中的做法是大同小異的,但是要注意的是 ,在 AndroidManifest 裡 android name 必須填寫完整 package 名稱,同樣的 intent.setClass 也必須將呼叫的 class 完整名稱寫出。 UCampus.java intent.setClass(UCampus.this,nchu.UCampusMap.UCampusMap.class); AndroidManifest.xml <activity android:name="nchu.UCampusMap.UCampusMap"></activity&...

Pages 71234 »
Twitter Delicious Facebook Digg Stumbleupon Favorites More

 
Powered by Blogger