星期四, 2月 09, 2017

修改Express監聽的port number

Express預設監聽的port number是3000。如果需要更改port number,請到bin/www修改。
var port = normalizePort(process.env.PORT || '3000');
 修改後重新啟動Express。

星期三, 6月 29, 2016

有效率地顯示Bitmap(一)

為什麼Android app開發人員需要注意Bitmap的使用?


開發過Android app的工程師多半懂如何有效率地加載Bitmap,以維持使用者介面的響應和避免過度使用應用程式的記憶體。如果不關心Bitmap的加載,Bitmap將快速地消耗應用程式可用的記憶體,並導致應用程式因為
java.lang.OutOfMemoryError: bitmap size exceeds VM budget.
的例外而崩潰。

以下幾個原因造成應用程式加載Bitmap的工作更為複雜。

  • 行動手機通常有限制系統資源。對於單一應用程式Android裝置最少只需16MB的可用記憶體,應用程式應該優化使在最小記憶體的限制下能運行。不過,許多裝置都配置較高的限制。

  • Bitmap占用許多記憶體,特別是富含圖片的功能如相簿。舉例來說,Galaxy Nexus上的相機拍的相片高達5290x1936象素。如果Bitmap配置是使用ARGB_8888,加載一張相片到記憶體大約需要19M的記憶體(5290x1936x4 bytes),瞬間就超過一些裝置的應用程式記憶體限制。

  • 應用程式的使用者介面往往需要一次加載許多的Bitmap,元件如ListView、GridView和ViewPager通常在螢幕上一次都包含許多Bitmap,並有更多超出螢幕以外的Bitmap準備顯示。


既然我們常常使用Bitmap,而Bitmap又容易消耗應用程式可用的記憶體,接下來的相關文章將介紹如何有效率地加載Bitmap物件,使應用程式能順利加載Bitmap並運行。





星期三, 3月 02, 2016

簡介透過GCM達成推播功能 (二)

如何取得Sender ID?


進入Google developers console並登入帳號。
如果此帳戶有已建立的專案,登入後會看到已建立的專案的資訊。
如果此帳戶無建立任何專案,登入後會看到建立專案的資訊。

建立專案
專案名稱欄位那填入專案名稱,此名稱由開發人員自訂。


取得Sender ID
專案建立完成後,便可以在首頁->資訊主頁上找到兩個專案ID,一個ID是由英文字母和數字組成;另一個由數字組成。純數字組成的專案ID就是Sender ID





如何取得API Key?


進入Google developers console並登入帳號。

建立憑證
由左側選單中API管理員進入憑證頁面。
點選建立憑證選擇API金鑰。接著選擇伺服器API金鑰。



填入名稱和伺服器IP位址,建立金鑰。


建立完成後,此金鑰為API Key




啟用Google API
在首頁->資訊主頁上找到使用Google API進入。


選擇欲使用之Google API


啟用Google Cloud Messaging。





其他方法

另外從configure your API project也可以取得Sender ID和API Key。



星期二, 3月 01, 2016

簡介透過GCM達成推播功能 (一)

簡介透過GCM達成推播功能 (一)


透過GCM程式開發人員能從伺服器發送資料到應用程式上。以下簡介GCM


架構

整體架構由三個部件組成。
1.      Google GCM connection server
2.      App server
3.      Client App



證書

GCM中使用的IDsToken是用來確保各方已經認證,如此訊息便能傳送到正確的地方。

1.      Sender ID – 不會重複的數值。在Google Developer Console中配置API專案時取得。註冊時使用,GCM用來辨識App server已被允許傳送訊息到Client app
2.      API Key – API Key儲存在App server,讓已認證的App server存取Google服務。在HTTP中,API Key被包含在POST請求的標頭中。
3.      Application ID – Client app用來註冊已便能接收到訊息。它是平台獨立的,在Android平台上利用package name作為Application ID
4.      Registration Token – GCM針對Client app產生的ID,允許Client app接收訊息。另外特別需要注意的是Registration Token必須被保密。



GCM的作用?

Google Cloud Messaging(GCM)是處理應用程式伺服器(App Server)與手機應用程式(Client App)間的訊息之傳送、路由與排隊的服務。





如何透過GCM實現推播?



1.      Android裝置向GCM傳送Sender IDAppilcation ID進行註冊。
2.      註冊成功。GCMAndroid裝置回傳Registration Token
3.      Android裝置接收到Registration Token,向伺服器傳送Token
4.      伺服器將Registration Token存入資料庫,待往後使用。

a.      當需要進行推播時,伺服器向GCM傳送訊息與Registration Token
b.      GCM利用Registration TokenAndroid裝置傳遞訊息。

星期五, 10月 30, 2015

Bitmap的壓縮

Bitmap在Activity間傳送時,進行壓縮。

ByteArrayOutputStream stream = new ByteArrayOutputStream();
bmp.compress(Bitmap.CompressFormat.PNG, 100, stream);
byte[] bytes = stream.toByteArray();

星期四, 10月 01, 2015

利用指令將本地端專案加入GitHub

利用指令將本地端專案加入GitHub

1.在本地專案目錄下,開啟Git Bash,輸入git init指令,建立此專案的本地端數據庫。

2.建立完本地數據庫後,輸入git add .指令,將所有修改過的或新增的檔案add到stage狀態。

3.輸入git commit -m 'first commit'指令,commit所有已經stage的檔案。

4.輸入git remote add origin remote repository url指令,提示本地端數據庫將會被push的位置。

5.輸入git push origin master指令,將專案push到GitHub。

星期五, 9月 25, 2015

在OneDrive雲端空間建立Git遠端數據庫

在OneDrive雲端空間建立Git遠端數據庫


1.在OneDrive目錄下新增新資料夾,命名為TestGit

2.進到TestGit點擊右鍵,開啟Git Bash

3.在Git Bash中輸入命令,git init --bare

4.執行指令後,TestGit內會建立一些資料如hook、info、object等(建立遠端數據庫)

5.在除了OneDrive目錄以外的目錄下點擊右鍵,開啟Git Bash

6.在Git Bash中輸入指令,git clone file///c/Users/user/OneDrive/TestGit

7.執行指令後,建立TestGit目錄(建立本地端數據庫)

8.完成以上步驟就可以進行push、pull等等將專案資料進行版本管理



除了OneDrive也可以選擇其他雲端空間如GoogleDrive、Dropbox,將遠端數據庫建立在雲端空間。


建立TestGit目錄(本地端數據庫)後,就可以將專案建立在TestGit目錄下,利用git完成版本控制。