Author Archives: 阿目

Eclipse 無法開啟

eclipse

 

剛剛開啟Eclipse 時發現,在開啟晝面上停止很久,無法開啟。

Du2lD

在網路上找了一陣子,發現是上一次非正常關閉令此發生。

在工作​​區workspace 目錄中,有一個.metadata目錄,裡面是工作區及各插件的信息,刪除此目錄,再重啟eclipse,

便可以正常啟動eclipse了,但原來工作區的配​​置和項目信息也都消失,直接顯示的是eclipse歡迎界面。

經google一下後,發現 Read the rest of this entry

廣告

Eclipse autocomplete/Intellisense

eclipse

 

用過XCode 寫Objective-C iOS Program, 和Visual Studio 寫C#

就會知道 Intellisense 功能有多強大 ,打首字便可開始提示,以及大小寫校正等。

而Eclipse 預設是沒有開啟此功能,對於不習慣按熱鍵的人來說實在是有點不方便。

想要開啟首字開始自動提示的功能的話,只要在 Windows -> Preferences -> Java -> Editor -> Content Assist

Screen Shot 2013-09-23 at 2.17.09 PM

  1. 勾選 “Enable auto-activation" 的選項
  2. Auto activation delay – 提示出現的延遲時間,建議可以設為 50 (本人習慣)
  3. Auto activation triggers for Java – IDE 遇到何種字元會自動啟動提示,
    預設只有 dot “.",請改為 .abcdefghijklmnopqrstuvwxyz(,
  4. Auto activation triggers for Javadoc 在註解區塊中遇到何種字元會啟動提示,預設是 @ 及 #
  5. 完成後 Apply -> OK

現在可以在 Ecplise 中使用如Xcode 及 Visual Studio 一樣的autocomplete 功能。

要留意的是Eclipse 用這個會比較慢一點。

Eclipse 換Theme,換Color

eclipse

對程式設計師來說很喜歡使用黑底白字的(PS.自己覺得顯得格外專業=P )

在eclipse 內開始時是預設使用白底的,

從前我會在http://eclipsecolorthemes.org/這裡下載回來,

再Import 入Eclipse 轉顏色。

今天介紹大家另一個方法。

只要裝一個叫 Eclipse Color Plugin就可以了
Eclipse > Help > Install New Software > add following URL
http://eclipse-color-theme.github.com/update

Screen Shot 2013-09-23 at 12.37.54 PM

 

安裝完成後在Preferences 內的 Appearance ->Color Theme 改一改即可 =) Amazing

Screen Shot 2013-09-23 at 12.45.07 PM

 

是不是很容易呢 =]

 

九月I.T.界發報會

九月I.T.界發報會 ,你準備好了?

20130819110609143

2/9 – 魅族MX3新機發報會,將會發報最新手機!重點係:黃章稱其「雖然比 MX2 大了一圈但手感很好,Flyme OS 3.0 非常棒,日常單手操作也很方便,省電和發熱都有很好地最佳化」。最後他也直言市場上「沒有比這個更好用的大螢幕手機」。

from : 魅族社區

Samsung-Galaxy-Note-III

4/9 – Samsung 發報NoteIII – 預計5.7″ 超大屏, Exynos 5 Octa-core processor, Mali 450 GPU with 8 cores. It will have 3 GB of RAM.

from : ThedoridArea

xqq20130822-4-1377105222.jpg.pagespeed.ic.MJYw9ffIFv

5/9 – 小米發報會 – 預計第三代小米手機,還有可能是小米電視?小米平板?

from : Engadget

xpegatron-iphone-5c.jpg.pagespeed.ic.VFXVNzxDjb

 

iphone_5c_shell_compared

10/9 :  「傳聞」Apple 發報會 – 相信是今年最多人等待的聚會。九月這個發報會相信只會iphone 5c 5s 和 iOS 7 正式推出,iPad 系列預計十月才會再有發報會。並預計九月尾出貨。

from : gsmarena

nokiawinrttablet_large_verge_medium_landscape

26/9 : 「傳聞」Nokia 發佈平板電腦?

from : theverge

 

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 。

Android Fragment 問題

Android 有一種新的開發模式是用Fragment, 但筆者我常常發現當用家按Home 鍵後,長時間後回來App就發會有null point Exception  問題。

這是因為os本身為你解放咗一些memory 問題。

解決方方是當使用者按Home 後,先保存Fragment 到Bundle 那裡去

以下是簡單的例子。

Fragment mContent;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (savedInstanceState != null)
             mContent = getSupportFragmentManager().getFragment(savedInstanceState, “mContent");
if (mContent == null)
              mContent = new Fragment();
}
@Override
public void onSaveInstanceState(Bundle o) {
super.onSaveInstanceState(o);
getSupportFragmentManager().putFragment(o, “mContent", mContent);
}
本文是記得筆者自已的解法方法,希望也幫到你吧。

Apple 真的擋不住攻擊嗎?

Apple 真的擋不住的攻擊嗎?

自Steve 離開人世後,Apple 被打得慘慘的。

  • 看看去年股價逹$702高位跌到現今的$470左右水平。
  • 往年人事大調動
  • 自家地圖問題
  • iPad Mini 被7寸平價Android 平板狂攻
  • 再來是4″ iPhone 5 擋不住五寸Android 電話

Tim Cook領軍後的新時代是否不能保得住招牌呢?為了頂一頂問題所在,先是把MAC系列砍價$200 增加NB 銷售數字 (這應該是前所未有的,上市只有四個月的機款作出減價。) ,再來是連續第三季發出現金股息。如何應付GOOGLE的Android系統,成了目前最大的挑戰。

ifc_mall_apple_steve_jobs

Read the rest of this entry

智能手機軟件市場大戰

app-store-3

就智能系統市場佔有率而言,安桌無疑是首位,其次是蘋果iOS系統,之後才到BB / WINDOWS PHONE。

當然談論系統上的程式數量,當然也是安桌市場完勝,主要原因是沒有檢查便可以快速上架了。

但論程式質素,無疑iOS 的系統,單單送批也要兩個星期才可以上架,可見蘋果公司是多重視用家的體驗。

另一個原因,很可能開發iOS程式比其他系統更容易,容易在於手機只是幾款,但是安桌則上萬款,開發iOS 得到一個保證。

還有的是整個生態系統更完善,更多人使用正版軟件,令開發者更有利可圖,更願意付出並做得更好。

下圖是在兩個市場上購買正版軟件的比例。可以看出整體表現也是iOS  完勝 Android。

Screen_Shot_2012-12-03_at_09.42.05

Relative value of app purchases from App Store and Google Play by month. App Store in January = 100. (Source: App Annie)

Read the rest of this entry

難度亞洲沒有人材了嗎?創意工業去了那裡?

Creative-2

為何我們常常聽到的科技創新公司,新科技產品都是在美國呢?這是我一直想問的問題?難度真的他們物以類聚?整體發展人材也比亞洲地區好?

RaspberryPi

Raspberry Pi (http://zh.wikipedia.org/wiki/%E6%A0%91%E8%8E%93%E6%B4%BE)

就RaspberryPi而言這是一塊信用卡大小的電腦板,包括了CPU,RAM,LAN等等。這是多麼簡單的玩意!

筆者相信在國內工程師隨時都能夠打造一塊比它更好的東西吧!

它所謂的CPU,在國內很早已經出現了如全志S8600, 近來更有A13, 這些平價高性能的CPU!全部都能運行1080P電影,GPU也有不錯的效果。為何呢?為何造不出呢? Read the rest of this entry

iWatch 火熱全城 ,蘋果下一代新產品?

iwatch2

iWatch 傳聞火熱整個IT界。

傳聞這款產品將能夠和 iPhone / iPad / Mac 等等搭配使用。配撘上低耗電的藍牙4.0技術令手表更耐用。

加上蘋果也已經在各系列產品加入藍牙無線技術,正好適合連接 iWatch。

相信以蘋果的技術班底,會造出一個新玩意出來,例如接收SMS,來電,控制相機,最重要是令Siri 更舉足輕重

它可以為你無需拿上電話就可以紀錄資料,控制手機上的東西。

筆者相信iWatch 不是一個很多功能集於一身的東西,因為這會令產品過於"重"。

還記得當年STEVE 將IPOD 定為聽歌的產品,他要用家在iTune 上定義選歌列表,而不是一般mp3機一樣在機上選取。我相信IVY 也會在iWatch 上作出類似的效果。

 

另外,hTC 近日也造了一個類似的物件給它的htc butterfly, 叫hTC mini 。看完後你會大叫天呀,會有誰拿兩部電話到街上呢?

另外,關於iWatch產品, 其實市面上已經有。例如Pebble  有興趣的朋友可以買一隻看看。

ref : http://www.theverge.com/2013/2/10/3973364/apple-rumored-to-be-developing-ios-based-smartwatch