Thursday, January 31, 2013

繼續使用map view (Google Maps Android v2)

開始使用Google Maps for Android v2之前,得先處理好下列兩件事情


  1. 下載google play service lib
    google play service已經整合在android sdk當中,透過Android SDK Manager可以看到相關的套件下載如下圖所描述

    完成下載後,將可以在{ANDROID_SDK_HOME}/extra/google/libproject/ 的目錄底下找到google-play-services_lib的project,以eclipse為例,以"Import Existing Android Code Into workspace",作為lib project來使用
  2. 持有並使用google map v2 api key
    ※由於Google Maps v2與Google Maps v1完全是不相同的系統,因此過去在v1所申請,並使用於MapView的api key並不適用於v2的系統
    申請google map v2 api key之前,需要準備SHA-1簽章,請參照前一篇文章開始使用map view (Google Maps Android v1)的方式來製作。
    準備好SHA-1的簽章後,接下來就是建立API Project,透過網頁瀏覽Google APIs console,並建立專屬服務的API專案(如果不曾建立過API專案的話..)。建立專案之後,瀏覽所提供的API服務當中可以找到Google Maps Android API v2

    將它打開(過程中會出現服務使用條款,如果要繼續使用的話當然要同意....不然呢...還能不同意嗎???)。最後,到左側的選單中,找尋"API Access"的選項,點選進入後,可以看到在各種服務管道中需要使用的api key(包含瀏覽器, android,javascript...etc.)找到"Create new Android key"後輸入方才所取得的SHA-1簽章,而格式為"{SHA-1};{your.packagename}"就會產生專屬於你服務的API Key了
再來在我們的專案中將前述所取得的API KEY以及相關的應用程式權限如下







  1.  加入API KEY@meta-data
  2. 加入所需要的權限
  3. 加上硬體加速的描述 

最後,可以直接引用google play service所提供的MapFragment就大功告成了





















※參考資料

  1. Google Maps Android API v2 @Google Developer
  2. Google Play Service @Android Developer

Thursday, January 24, 2013

Google Analytics for Android

功能說明

  1. 透過google analytics可得知使用應用程式的使用者數目
  2. 使用者的地區資料(全世界國碼分析)
  3. 觀察特定的功能使用率
  4. 用來記錄錯誤(crash/exception)
  5. 記錄應用程式內的交易(in-application purchase / transaction)
  6. 以及其他面相的記錄方式
下載及安裝
※日前(2013/1/22)所提供的版本為2.0beta4
※既然是給android所使用的服務,在使用之前當然要先準備好Android的SDK
  1. 下載完成後,將上述的zip解壓縮,並將內容的libGoogleAnalyticsV2.jar準備於build path最為lib來使用
  2. 建立所要追蹤的特性,並取得Tracking ID
接下來修訂android應用程式當中所細節
  1. 修訂AndroidManifest.xml
    為了確保tracking機制能正常的運作,需要加入下述兩項權限給應用程式
  2. 加入Easy Tracker的方法

    在使用Easy Tracker之前需要設定所需要的context給Tracker如上圖所描述
    接下來就可以繼續使用相關的方法(如下圖所述)
  3. 建立應用程式專屬的analytics.xml檔案
    在res/values的目錄底下建立一個xml檔案命名為analytics.xml如下圖(包含TrackingID、以及是否記錄Activity的啟動、是否記錄相關的exception

    接下來,為lint增加設定,以免產生檢查錯誤
完成上述的步驟,就可以開始觀察使用者-應用程式間的記錄,
還有更多的進階設定如下:
  • Advanced Configuration – Learn more about advanced configuration options, including using multiple trackers.
  • Measuring Campaigns – Learn how to implement campaign measurement to understand which channels and campaigns are driving app installs.
  • Measuring Events – Learn how to measure user engagement with interactive content like buttons, videos, and other media using Events.
  • Measuring In-App Payments – Learn how to measure in-app payments and transactions.
  • User timings – Learn how to measure user timings in your app to measure load times, engagement with media, and more.
Google Analytics 報表介面一覽
※參考資料




















Tuesday, January 22, 2013

WebStorage@HTML5

簡單來說幾個概念是
  1. Web Storage是種可讓本地端的瀏覽器儲存資料的技術
  2. 同cookie一樣, 是以key-pair的方式呈現資料
  3. 不同於cookie僅有4K的限制,web storage的容量可達5M(視瀏覽器廠商實作而定)
  4. web storage的資料並不會夾帶於http-header當中,因此較不會影響頻寬的使用
  5. web storage以兩種方式呈現; localStorage以及sessionStorage,分別表示其生命週期
  6. 不同網域的storage是分開的,無法交換來使用(即同源策略; 也就是說,只有源自相同網站的網頁才能共享同一塊 local storage。

如何使用web storage
由於localStorage以及sessionStorage都是繼承自Storage物件,因此儲存資料的方式可使用setItem的方法如下
  • window.localStorage.setItem("MyKeyName","MyDataValue");
  • localStorage.setItem("MyKeyName","MyDataValue");
  • localStorage["MyKeyName"]="MyDataValue";
  • localStorage.MyKeyName="MyDataValue";
※上述的設定方式皆相同。
相對的,取得所儲存資料的方式當然就是使用getItem
  • var value1 = window.localStorage.getItem("MyKeyName");
  • var value2 = localStorage.getItem("MyKeyName");
  • var value3 = localStorage.MyKeyName;
當然也提供了移除的方法
  • window.localStorage.removeItem("MyKeyName");
  • localStorage.removeItem("MyKeyName");
最後,clear方法則是可移除storage當中所有的物件資料

※參考資料
  1. HTML5 Web Storage@Huan-Lin學習筆記
  2. Web Storage使用經驗@石頭閒語
  3. HTML5 Web Storage@W3C School
  4. Web Storage@W3C
  5. Web Storage@Wiki
  6. Introduction of WebStorage@MSDN
  7. Web Storage Security