網誌文章封存

Volley: Google 自家制 Android Network Library – ImageLoader

上回: Google I/O 2013 (1) – Volley: Google 自家制 Android Network Library

初試試Google 的Volley Library , 發現是比從前簡單了一點兒,由於沒有任何的Document,只有上網找找人家的案例再從錯誤中學習一下。今次講一講ImageLoader ,從前但部份也是用github上某個大大的Library 吧,今次試試使用volley實作。

首先,Volley 已經有很完善的Http Request 的流程,也有一推Caching Helper。

要做一個類ImageLoader Library ,Volley內已經有以下元件:

  • ImageLoader ( com.android.volley.toolbox.ImageLoader)
  • RequestQueue
  • ImageCache

實戰過程中,沒有像Youtube Google 神使用得那麼簡單。Youtube 內有BitmapLruCache,但是原來它的tool內沒有包括在內,需要用家親自處理。ImageLoader 內需要的是一個RequestQueue 處理Request ,及一個ImageCache。

/**

* Constructs a new ImageLoader.

* @param queue The RequestQueue to use for making image requests.

* @param imageCache The cache to use as an L1 cache.

*/

public ImageLoader(RequestQueue queue, ImageCache imageCache) {

mRequestQueue = queue;

mCache = imageCache;

}

本人做了一個類BitmapLruCache的Class

/***

* Helper Class for Volley ImageLoader Bitmap ImageCache, since it need LruCache

* Memory Cache Class

* @author 阿目

*

*/

class VolleyBitmapLruCache extends LruCache<String, Bitmap> implements ImageCache {

public static int getDefaultLruCacheSize() {

final int maxMemory = (int) (Runtime.getRuntime().maxMemory() / 1024);

final int cacheSize = maxMemory / 8;

return cacheSize;

}

public VolleyBitmapLruCache(Context context) {

this(context , getDefaultLruCacheSize());

}

public VolleyBitmapLruCache(Context context , int sizeInKiloBytes) {

super(sizeInKiloBytes);

}

@Override

protected int sizeOf(String key, Bitmap value) {

return value.getRowBytes() * value.getHeight() / 1024;

}

@Override

public Bitmap getBitmap(String url) {

return get(url);

}

@Override

public void putBitmap(String url, Bitmap bitmap) {

put(url, bitmap);

}

}

另外為了方便自己使用整個流程,也起了一個Class 為VolleyImageLoaderHelper,如下:

/***

* VolleyImageLoaderHelper  Class for Volley ImageLoader

* Memory Cache Class

* @author 阿目

*

*/

public class VolleyImageLoaderHelper {

// ImageLoader From Volley

private static ImageLoader sImageLoader;

/**

*

* @return Volley ImageLoader

*/

public static ImageLoader get() {

return sImageLoader;

}

public static void initImageLoader(Context context) {

if (sImageLoader != null) {

return;

}

sImageLoader = new ImageLoader(

Volley.newRequestQueue(context), // Volley Request

new VolleyBitmapLruCache(context) // Volley BitmapLruCacheHepler

);

}

}

第一次使用時,在e.g. MainActivity 下啟動VolleyImageLoaderHelper

VolleyImageLoaderHelper.initImageLoader(getApplicationContext());  // init VolleyImageLoaderHelper

VolleyImageLoaderHelper.get().get(url, new ImageListener() {

@Override

public void onErrorResponse(VolleyError error) {

img.setImageResource(R.drawable.ic_launcher);

}

@Override

public void onResponse(final ImageContainer response, boolean isImmediate) {

// response.getBitmap();   // 這個就是最後得來的Bitmap

}

}

這使得成個流程也非常簡單。

以下是 上面的簡單例子:github.com/extralam/VolleyImageHelper

*有沒有發現像流了一點東西呢?其實這個實作不是完全品,這個helper 是沒有做fileCache ,在Volley 內有DiskBasedCache可以幫助你完成這工作。

除此以外,Volley Library 已經有一個NetworkImageView 的widget 幫手處理Image 。

勁up IT (12) - 雲.崩

這兩天IT 界大事令人想到"雲計算"真的那麼好嗎?

  • Windows Azure 停電影響歐洲
  • Google Talk 服務暫停 (here)
  • Twitter 服務暫停 (here)

還有,記得早前Amazon 停電影響很多用戶,其重量級客戶包括Netflix , instagram等等。

雲計算可以節省財政開支,提高生產力和更廣泛的靈活性,伴隨著互聯網存取數據和應用程序的一種手段是非常有吸引力的。

許多Web服務是雲計算的例子,如Flickr和Dropbox的存儲和備份,如谷歌Docs和salesforce.com服務。

但是,試想想,

  • 如果閣下將所有照片放到雲上,
  • 如果閣下將所有文件放到雲上,
  • 如果閣下將所有電影放到雲上

沒有了雲,你什麼也沒有了。

兩者取得一個平衡點,雲計算及本地服務還是需要有一定比例。

勁up IT (8) Yahoo! & Marissa Mayer

係咪靚先?係係係 xd

話說今日Yahoo! 今日換了CEO,呢位CEO勁啦,係前Google副總裁 Marissa Mayer,又靚女又勁。

點勁?話說十三年前已經加入Google , Google 很多程序也是出自其手e.g Gmail, Google 首頁等

咁究竟Yahoo!今次執到竇定係執到草呢?

首先佢係勁人,一上任就令Yahoo 的股價一度飆漲 3.7 %。

但是,我認為佢未必會成功。點解?

1)  Yahoo 已經唔算得上係一間IT公司,佢現在係一間Marketing 公司

2) 上題一様,Yahoo!其技術含量已經好低,e.g search engine 已經係Microsoft, (日本係google)

3)  一個軟體技術的專才,做ceo可以嗎?

佢一上任就講(係PR寫定佢講冇人知啦)

“Yahoo’s products will continue to enhance our partnerships with advertisers, technology and media companies, while inspiring and delighting our users", Mayer emphasizes. “There is a lot to do and I can’t wait to get started“.

可能佢心目中有想法吧。

但都係個句~祝君好 =P

 

勁up IT (2) Nokia

其實我一路都想講下Nokia。Nokia 歷史長,我細細個就想有部佢出gei 電話。型呀ma,威呀ma。就正如現在d 後生細仔追iphone一様道理。

呢幾兩年佢就真係慘不忍睹,佢的股價跌到好似pccw咁~一文不值。聽者傷心,聞者哭lol。

佢究竟輸係邊到呢?輸咗改變得太慢,iphone一出其實都唔係大敗原因, Read the rest of this entry

[轉載]Nexus 7 係一部 iPad 殺手?

Google 於今年的 I/O 2012 發布其自家出品平板電腦 Nexus 7 配備新一代系統 Android 4.1 Jelly Bean。有人說這是一部真正的 iPad Killer,原因在於強勁的配置及迷人的價格。

  1. 新一代 Tegra3 四機心平板,
  2. 新系統 Android 4.1 Jelly Bean
  3. Wifi, bluetooth and NFC
  4. 超過 4000mah 電量,可以使用超過九小時,
  5. 全視角超高解像度 IPS 屏1280*800,
  6. 內置 8gb 或16gb ,跟 iPad一様不能插卡用作擴充之用。
  7. 最重要是價格只是 US$199 (約HK$1600港幣)

網上多處報導指出此機成本逹US$184,但是 Google  以一個漂亮的價錢希望它能帶領自己的平板電腦創造一個更強更大的生態圈。(我想它也是參考 kindle fire 價格作為藍本)

筆者不認為這一部 nexus 7 能打敗任何 ipad 的路線,無論屏的寸數,價格也不是和蘋果作對比。筆者認為

Google 的理念不是從蘋果ipad手中搶更多更多的市場佔有率,而是將整個市場擴大,由100%變成200%或更多更多,讓原本不打算購買的用家也考慮一下平板電腦。Google 要的就是創造一個新的藍海。

當然這一種價格會令其他代工處於不良的影響。

例如 Amazon 便處於一個難堪的局面,要知道 kindle fire (只是雙核心) 也是一様的價格,當然 Amazon 應該會有新的方向,傳聞會推出新的四款平板電腦,見此處

三種國內平板電腦常用CPU http://mp3.zol.com.cn/304/3049111.html

另外會處於一種難堪的局面相信會是國內平板電腦生產商。要知道 Nexus 7 這種配備也是約HK$1600左右。國內差不多價格的平板電腦也只是使用雙核處理器,像 TI 德州4430處理器,瑞芯微 Rockchips RK3066制程 或 晶晨aml8726-mx。這幾種配備的國內平板也是剛剛發報,筆者試過三者的平板也有不錯的效果。問題就來了,它們的位置應該是怎様呢?應該降到HK$1000以下嗎?

當然,Google 這一種配置,這一種價格,最終會令整個硬件質量提升,從而令用戶有更好的使用體驗。價格也會令更多人容易接受,令它們更願意購買試一試使用平板的感覺。(至少我老豆都問我 Google 出個個平板好似好平wo~)所以這是一種 win-win 的局面。並不存在所謂的 iPad Killer ,Google 目標只是放在更長遠的利益上。

Source : http://dukeland.hk/2012/07/09/nexus7-is-ipad-killer/

百度瀏覽器正式推出

百度線上網路技術(北京)有限公司,簡稱百度。全球第二大搜尋引擎,國內第一大搜尋引擎。

百度的成功不但在於跟國家政策的配合 ,還有為國內的服務度身定造。e.g 免費下載 MP3

  • 百度Hi – 百度Hi是一款集文字消息、音視頻通話、文件傳輸等功能的即時通訊軟件。
  • 百度電腦管家 – 千餘款熱門軟件、一鍵雲安裝、智能升級監控、極速下載。
  • 百度輸入法 – 基於百度的搜索技術,最強大的中文輸入引擎。
  • 百度工具欄 – 免費的瀏覽器工具欄,強大的劃詞懸浮搜索,搜索框內嵌風云榜,熱門關鍵字隨時掌握。
  • 千千靜聽 – 簡單好用的音樂軟件,百萬歌曲一點即聽。集音效調節、格式轉換、桌面歌詞等功能。

2011.7.19正式推出百度瀏覽器1.2 beta版。外觀介面簡潔,而且極易上手。(因為真係好似……某某品牌) Read the rest of this entry

Google 推新的短網址服務

在2009年,google 推出其短網址網站 goo.gl

今天,它們再推出一個全新的短網址服務 g.co

這個更短的網址令大家更容易分享及記住。

前者goo.gl會繼續為大家服務。

這會幫助你嗎?

What Do You Love?你愛什麼?

What Do You Love?你愛什麼?

在這個網站,打上你愛的東西。

Google 會幫你找上相關的資料,轉看下面影片。

如果相關技術再提升的話,可真不得了。

全新的Android Market安桌市場

Google 已經宣布,將會推出全新的Android Market (安桌市場) 在 Android手機上。

隨著整體重新設計,新的Android Market 將增加書籍和電影標籤。

更新的市場可用於手機運行 Android2.2及以上,並會推出在未來幾週內。

(會增加電影和書籍,只限美國)

文章來自: 9to5google

 

 

Google+Facebook

你覺得又要開google+ ,又要開Facebook 好麻煩?

不緊要!國外又有神人造了一個Google chrome plugin了。

Google+Facebook:http://crossrider.com/install/519-google-facebook

安裝完個plugin 後,Google+會多了一個icon 就是Facebook Icon 了。

這樣你就可以看到你的wall了!(神呀!!!)