Monday, October 14, 2013

Gradle簡介(for Android)

Gradle, Gradle 是什麼? 簡單來說, Gradle是種包含ant以及maven概念,並且以groovy的DSL取代傳統XML的來做為設定專案的自動化工具
  • 先針對Android的部分做個簡介
    • 在開始為你的專案導入gradle之前, 必須先準備專案的骨幹(也就是建立一個基本的android 專案), 可以透過命令列指令或者透過你的IDE(如eclipse來完成這項工作),其中命令列的方式如下
      android create project --target 1 --path ./MyGradleAndroidApp --activity MyGradleAndroidActivity --package my.android.gradle.package
    • 接下來在android專案的根目錄下建立build.gradle檔案,用來描述該專案的相關設定
      buildscript {
        repositories {
         mavenCentral()
       }
      dependencies {
        classpath 'org.gradle.api.plugins:gradle-android-plugin:1.2.1'
       }
      }
      apply plugin: 'android'
        repositories {
         mavenCentral()
       }
    • 設定專案的source set
      為了讓android專案不會因為其他工具的需求(如ant),而產生問題,最好自行指定source code的位置
      sourceSets {
       main {
        java {
         srcDir 'src'
        }
       }
      }
  • 設定android sdk位置
    如果第一步驟的android專案,是由eclipse所建立的,那麼,還需要額外進行設定android sdk的動作, 在android專案的根目錄找到local.properties(若找不到,請建立一個新的檔案), 並在其中加入
    sdk.dir=/path/to/android/sdk
    (當然說的是我們安裝android sdk的位置)
    到這邊大概就能說有個初步的概念了

Tuesday, September 3, 2013

Memory Analyzer (MAT)


Tuesday, May 14, 2013

About the AdMobs


  1. 申請加入AdMobs
    打開瀏覽器進入 AdMobs 就可以看到下面的畫面

    畫面上就說明了可以用兩種方法來登入, 新建一個AdMobs的帳號, 或者直接以google的帳號來登入。這次以google帳號進行登入,

    輸入密碼,後跳轉到手機號碼驗證的部分

    完成這些程序後,就可以看到AdMobs的首頁
  2. 新增網站/應用程式
    點選首頁中的"新增網站/應用程式"如下

    接下來可以看到可以新增的種類

    這次選擇"Android應用程式",跟著出現需要填寫的資料表單

    填寫完成後就可以佈署廣告來試試看嚕


參考資料

Tuesday, March 12, 2013

Web Workers@HTML5

通常在執行一般的網頁語言,在完整的敘述被讀取完成,並執行完之前,網頁通常都會處於暫停的情況,且無法繼續被執行, 而web workers 則是自html5之後被發表的新的API允許javascript在不影響前景效能的情況下在背景運行的一種新的功能


如何使用Web Workers


最簡單的使用方法就是宣告一個,


  • var worker = new Worker('worker.js');
然後透過 postMessage的方法來呼叫它
  • worker.postMessage();



※ 參考資料


  1. Web Workers@W3C
  2. THE BASICS OF WEB WORKERS@Html5Rocks
  3. Web Works@W3C School
  4. [HTML5試試看-27] 多工 - WebWorkers

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