<?xml version="1.0" encoding="UTF-8"  standalone="yes" ?>
<rss version="2.0">
	<channel>
		<title>社群: 艾鍗學院 Blog - 文件區(Android 專欄)</title>
		<description>台灣數位學習數位教學平台 RSS feed provider</description>
		<language>zh-tw</language>
		<link>http://lms.xms.com.tw/board.php?courseID=143&amp;f=doclist&amp;folderID=1492</link>
	<item>
		<title>Android 抓小三的APP</title>
		<link>http://lms.xms.com.tw/board.php?courseID=143&amp;f=doc&amp;cid=9167</link>
		<description>&amp;nbsp;http://www.mobile-spy.com/index.html
&amp;nbsp;這是這間軟體公司的網站.點live demo可以進去展示機的平台.
&amp;nbsp;基本上就是你只要在對方的手機上偷裝這隻APP,然後這個APP就會自動LOG你手機上所有的資料
&amp;nbsp;到他們的web server上,接著你就可以用web 
頁面去掌握這手機的所有資訊.
&amp;nbsp;我覺得他收集的資料強大到不可思議. 
連你上過什麼網站,收了那些簡訊,傳了幾封IM訊息,收發那些mail到過那些地方,看過那些影片,行事歷有那些行程…. 
全被log抓到server上去了.&amp;nbsp;
更強大的是他還有提供可以用web遠端連到手機的畫面去, 
直接在遠端觀看對方正在操作手機的畫面.
live panel真的是很變態. 右邊是手機的位置所在. 左邊就是用戶目前的手機畫面,可以在web上偷看對方正在操作的手機畫面&amp;nbsp;包含他正在傳簡訊,或是在寫mail都看的到.
&amp;nbsp;
這應該快要是病毒等級的軟體了.&amp;nbsp; Iphone 與android都有出.&amp;nbsp;&amp;nbsp; 這才是抓小三的最強版&amp;gt;&amp;lt;
     </description>
		<pubDate>Wed, 26 Sep 2012 22:48:33 +0800</pubDate>
	</item>
	<item>
		<title>什麼是Android軟體的設計風格?</title>
		<link>http://lms.xms.com.tw/board.php?courseID=143&amp;f=doc&amp;cid=8022</link>
		<description>&amp;nbsp;
什麼是Android軟體的設計風格?
&amp;nbsp;(作著: 艾鍗學院)
Android其實沒有很硬性的規定Android的軟體外觀與功能上的限制。Android官方有一個提供參考的UI教學指引，但是大部分都是著重在小圖示、桌面小工具或是選單的項目。
自從Android平台成立到現在已經累積了上百種不同軟體的UI設計想法，漸漸地也就變成了大家習慣的統一UI設計，有些UI的樣式因此被收錄在Android開發工具的函式庫當中。很快的，Android的使用者會越來越希望Android統一的風格介面，並且某些操作與互動的方式將會被整合成為「Android 經驗」。
&amp;nbsp;
Ice Cream Sandwich
最近發表的Android 4.0版本附帶了許多的使用者經驗也將會改善這個平台。這些改變當然會影響日後Android程式如何的運作與外觀樣式上的改變。我們當然希望軟體能夠快速地演變為ICS的介面，但事實上有將近200.000.000台的Android裝置版本是2.1~2.3。&amp;lt;!--[if !supportLineBreakNewLine]--&amp;gt;&amp;lt;!--[endif]--&amp;gt;
&amp;nbsp;
App直立式螢幕呈現(App Landing Screen)
告示板的介面設計使用在許多的程式當中。如果你的應用程式不是只有單一的功能，那麼這樣子的設計將會是一個很好的開始。
&amp;nbsp;

&amp;nbsp;
告示板的設計對於Android使用者來說一定不陌生。假如正確的使用，一定會讓每個使用者感覺像是回到程式的主畫面選單。
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;
一般的應用程式畫面(General Application Screen)
實際的activity畫面具有許多不同的型式，只有少數是使用者已經知道的常見樣式，並且符合他們所預期的設計。常見的螢幕上方動作列(action bar)也很容易讓使用者獲取這個程式的使用概念。
最左上角區域放置該程式的圖示或是回到程式首頁的圖示。點選該區域的圖示應該能夠讓使用者回到程式最初始的畫面。值得注意的是新的動作列(action bar)不是讓使用者回到程式的主畫面，而是使用者回到程式的上一層架構。&amp;nbsp;
動作列的中間區域顯示目前畫面的標題、品牌的顏色或是目前在這個程式裡面所選到的顏色。
螢幕上方右邊的區域顯示的是目前螢幕操作中最重要的動作。在這個部分所指的動作應該只與螢幕上目前執行的畫面內容相關的動作。一般而言，搜尋功能不包含在這個動作列所探討的部份。

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;
&amp;nbsp;

&amp;nbsp;
列表畫面List Screen
列表是Android介面設計中最常見的一個元件之一，而且對於資料的呈現也相當的有幫助，尤其是不知道有多少筆資料要顯示的時候。
&amp;nbsp;
列表以向下捲動的方式呈現，列表內的項目應該要相對的縮小，好讓列表的內容能夠具有好的呈現畫面。但另一方面來說，每一個列表裡面的小空間內填入過多資訊，則會干擾使用者讓他們難以選擇他們要的項目。
&amp;nbsp;
一般來說，一套規範Android的列表如何運作是件好事，對於使用者而言，如果你的列表元件遵循一些相似的方法，使用者的學習曲線將會變的更簡單一些。
&amp;nbsp;
在列表上的動作列(Action Bar on List Screens)&amp;lt;!--[if !supportLineBreakNewLine]--&amp;gt;&amp;lt;!--[endif]--&amp;gt;
列表畫面上也能夠使用動作列讓整份列表執行動作列上所對應的動作。請注意，在列表畫面的動作列上的動作，使用者在一項列表中所能操作的不應該只有一個動作。
&amp;nbsp;
選單項目與核選方格(List Items &amp;amp; Checkboxes) 
&amp;nbsp;
每一條列表的項目通常都自己就包含了文字與圖片的元素。而每一條的列表項目也很常看到具有用來選取一項或多項的核選方格。
&amp;nbsp;
將核取方格放置在最左邊具有下列的好處：.
1.我們很習慣的看到核取方格是在左邊讓我們選取，在網頁、電腦桌面以及手機畫面。
2.將核取方格放置在項目的邊緣讓我們在建立較大的觸控區域，讓使用者區分出是點觸這個項目或是選取這個項目。
3.圖像元素在每個列表項目的左邊提供了很容易查覺的線索，讓使用者很容易的在整份列表中看到每個項目的結尾與另一個項目的開始。
&amp;nbsp;
輔助項目控制(Secondary Item Control)
&amp;nbsp;
有些項目可能會需要比單純只有選取(核取方塊)或是執行(點擊)來得更多的互動操作。最常見的案例是列表中的項目具有標記星號或是加入書籤的功能操作。最自然的輔助項目控制放置區域是在項目的最右邊，如果放置在其他的位置，都會讓點選區域發生問題。
&amp;nbsp;

&amp;nbsp;
Aldiko 與 Google Mail是使用輔助項目控制很好的例子。Aldiko在操作目錄的圖示出現的時候，在右側放置了具有選取功能的核取方格，如此可能會讓使用者感覺介面設計的不平衡。
&amp;nbsp;&amp;nbsp;
&amp;nbsp;
未知長度列表(Never Ending List)
許多列表的資料來自於網路連線所得到的內容。在這種情形之下，讀取的過程將會佔用時間等待，而且列表的資料被導入的速度也沒辦法比使用者捲動畫面還要快速。所以在這種案例裡面，使用者捲動列表到最後一列時，軟體應該要自動的截取更多的資料呈現在列表裡。包含了一些有關於讀取中的動畫，像是進度指示就是一個不錯的方式。以及與使用者正在操作的動作有關連的動畫。
&amp;nbsp;

&amp;nbsp;
Android Market 跟Twitter在列表捲動到最後一列時，都會自動讀取更多的資料進來。
&amp;nbsp;&amp;nbsp;
&amp;nbsp;
單行動作-長按 –快按(Single Row Actions - Long Press - Quick Actions)
&amp;nbsp;
提供使用者在單行項目直接進行動作操作而不用進入到該項目的方法。
&amp;nbsp;
雖然電話與平板都沒有滑鼠右鍵的選項(事實上他們也沒有左鍵)，但是觸控螢幕訂定的右鍵方法已經發展出來了。長按住一個項目可以表示使用者想要進行一項動作的操作。
&amp;nbsp;
還有一種專為列表項目設計稱為快速動作選單(quick actions)的介面設計模式。雖然使用原本的圖形化方式已經漸漸消失了，但是其概念是相同的。一個快速動作選單選單的列表通常都只有三到五個選項。無論快速動作選單如何的呈現，還是有幾個重要的地方需要留意：&amp;lt;!--[if !supportLineBreakNewLine]--&amp;gt;&amp;lt;!--[endif]--&amp;gt;
別覆蓋到了被選取的列表項目，尤其是使用者操作的是刪除的行為時，使用者會更放心的執行，因為他們能夠看到所有的項目。
只顯示出簡單的動作，凡是需要大量的互動行為，在同一的項目操作會比在快速動作選單中操作來的好。
&amp;nbsp;

&amp;nbsp;
Aldiko、 Astro檔案總管 以及 Google+在他們的快速動作選單都使用了不同的外觀樣式。但是都是使用長按螢幕中的某個項目呼叫出來的。
&amp;nbsp;
Aldiko 跟 Astro就是良好設計的例子，但是Google+則是不顧這個原則，而是使用彈出式選單遮蔽了要執行動作的目標項目。希望在將來能釋出修正的版本。
&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;
多重選項動作(Multi-item Actions)
如果列表項目中具有能夠讓使用者選擇多個項目的核取方格。被選取到的項目，表示使用者想要對於他所選取的所有項目都做出相對應的動作。
&amp;nbsp;
一個常見的方式是當使用者勾選了列表中的項目，在畫面上就會增加一個能夠對於這個項目進行動作操作的按鈕面板。增加一個更加順暢而且更美觀的滑動動畫面介面，而這個面板應該要能夠在點選了最後一個選項或是動作被執行之後就自動消失在畫面中。
&amp;nbsp;

&amp;nbsp;
Aldiko 跟 Gmail對於多項選取的動作做的很不錯。這兩個軟體都具有良好的按鈕滑出動畫。Aldiko還在按鈕上加上了項目選取數，讓使用者了解自己選取了多少個項目。這是很棒的新增功能，但不是在所有的案例中都能看到。
&amp;nbsp;&amp;nbsp;
&amp;nbsp;
分頁(Tabs)
許多的軟體都有在同一個表單頁面中使用分頁標籤或是協助使用者瀏覽不同的頁面。Android 3.0與 4.0的版本對於分頁有一點小改變。作者的意見是覺得這些改變我們都要試著去帶到我們的開發的軟體當中而不管是軟體將會在哪個版本上執行。
關於ICS分頁的改變是一項新的瀏覽方式的改變，如果你開發的軟體有分頁，使用者將會希望能夠用手指刷過去就切換瀏覽的頁面。
&amp;nbsp;

&amp;nbsp;
Android Market跟Google+就是使用刷動手勢的做分頁切換瀏覽很好的例子。
&amp;nbsp;&amp;nbsp;
&amp;nbsp;
總結 (Conclusion)
Android是一套成熟而且能夠快速進入生硬的手機系統的平台。儘管沒有官方的指導守則能夠更深層的提出優良程式應該具有什麼的外觀樣式，讓我們了解該做那些部分讓我們的程式更加的完善。但是軟體已經開始具有一致性的外觀以及帶給使用者全面性的感覺，而使用者也預期一定是具有互動的介面。
&amp;nbsp;
參考資料：http://www.androiduipatterns.com/2011/12/how-should-android-apps-look-like_16.html </description>
		<pubDate>Sat, 25 Feb 2012 16:53:53 +0800</pubDate>
	</item>
	<item>
		<title>Android照相軟體推薦</title>
		<link>http://lms.xms.com.tw/board.php?courseID=143&amp;f=doc&amp;cid=8021</link>
		<description>
Android照相軟體推薦
&amp;nbsp; (作著: 艾鍗學院)
根據Flickr在2011年6月的統計，iPhone 4是Flickr.com上傳照片量的第一名，其他二至四名都是單眼相機所拍攝的照片。甚至才上市不久的iPhone 4s，在Flikr最近的照相手機照片上傳數量統計中，迅速的竄升到第二名，而在照相手機照片上傳數量統計的前五名當中，清一色都是iPhone系列機種，唯一非蘋機也只有HTC EVO 4G一台而已。
&amp;lt;!--[endif]--&amp;gt;
&amp;nbsp;
究竟為何iPhone會有如此高的照片上傳量呢?除了iPhone4與iPhone4s在拍照的畫質強化之外，打開App Store的照相與攝影的軟體分類，由系統熱門推薦的部分居然就高達了120個，當然不外乎是以拍照後製效果的軟體佔最大部分。這也說明了，有好用的特效軟體，加上3G網路即時上傳會讓使用者更喜歡用手機拍照，因為這是具有高畫質的單眼相機所無法達到的即時分享功能。&amp;nbsp;
而Android的使用者也不用感到挫折，因為照相後製軟體的數量雖然不及iPhone，但是越來越多的軟體都是同時在Android與iPhone平台上架。而且功能類似的軟體也越來越多，效果也都大致上能夠達到，而且甚至還是免費的軟體。以下推薦五款還不錯的照相後製軟體：
&amp;nbsp;
&amp;lt;!--[if !supportLists]--&amp;gt;1.Pudding Camera
售價：免費
下載：https://market.android.com/details?id=com.kth.PuddingCamera
&amp;lt;!--[endif]--&amp;gt;
&amp;nbsp;
Pudding Camera是一套操作介面很簡單易懂的照相軟體，在拍照的主畫面上面，可以直接設定閃光燈開啟、自拍模式、觸摸螢幕拍攝，以及程式設定的四個小圖示。左方則是有一個隨時會收起來的曝光值輪盤，使用撥動的方向可以改變裡面的數值。而左下角有一個相機的圖示就是這套軟體最主要的功能：相機拍攝效果設定。
&amp;lt;!--[endif]--&amp;gt;
&amp;nbsp;
進入到相機設定頁會發現操作上也非常簡單易懂，左邊區塊就是不同的相機效果，可以選擇四連拍、四格分格照片、周圍散景、魚眼效果…等不同的相機。在選定其中一部相機之後，下方就是選擇不同的濾鏡膠卷，大致上有基本、黑白、鮮豔、復古棕、復古藍…等多種不同的效果。不論是選相機或是選膠卷都會即時的顯示在右上角的預覽圖，是相當人性化的設計。
&amp;lt;!--[endif]--&amp;gt;

 



&amp;lt;!--[if !supportLists]--&amp;gt;2.美人相機
售價：免費
下載：https://market.android.com/details?id=my.beautyCamera
&amp;nbsp;

&amp;nbsp;
這款相機軟體最大的特色就是具有目前許多數位相機都有內建的美肌修圖模式。程式的介面也相當的簡單，中間下方的大按鈕是拍照，而拍照的方式可以設定為定時器拍攝或是手動拍攝。右下方的齒輪小圖示是設定按鈕，可以選擇手動拍攝或是1秒、2秒、10秒定時拍攝、顯示格線與進入相片資料夾。左下角的圖示則是可以切換為前鏡頭拍照、四格LOMO以及拼圖效果。
&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;lt;!--[endif]--&amp;gt;
拍攝完照片後，可以直接存檔或是選擇進入美化效果的頁面，而在美化效果裡面有美肌、美白、細節、色調等參數進行細部微調，也可以再為這張照片加入幾個不同的相框，全部都選擇好了之後，按下保存與分享就完成照片的後製存檔了。
&amp;nbsp;
&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;lt;!--[endif]--&amp;gt;

&amp;nbsp;
&amp;lt;!--[if !supportLists]--&amp;gt;3.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;!--[endif]--&amp;gt;Pixlr-o-matic
售價：免費
下載：https://market.android.com/details?id=pixlr.OMatic
&amp;lt;!--[endif]--&amp;gt;
&amp;nbsp;
這一款軟體在iPhone與Android兩個平台上都有，最大的特色在於能夠使用這套軟體拍攝或是讀取出原本就存在手機中的照片，再以很簡單的方式套用色板濾鏡、光源效果，以及加上邊框，最後還能夠分享照片。
程式開啟的時候，在主畫面上你可以選擇要拍照或是讀取手機中的照片，以拍照為例，按下相機的圖示會啟動手機中的相鏡軟體，如果您有裝多套相機軟體時，建議選擇系統內建的相機才會在拍完照片之後，自動回到Pixlr-o-matic裡面繼續進行照片的編輯。
&amp;nbsp;
&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;lt;!--[endif]--&amp;gt;
&amp;nbsp;&amp;nbsp;
拍完照片後，在編輯畫面的下方有一條「上一步、膠卷、光源、邊框、存檔」的圖示。按下膠卷的圖示，可以套用不同的色調濾鏡；光源圖示則可以加上不同的光斑特效；按下邊框圖示可以套用不同的相片邊框。由於套用各種不同的特效都具有即時預覽的功能，所以使用者可以隨時預覽想要呈現的感覺。最後再按下存檔的圖示進入存檔與分享的頁面。存檔與分享的頁面按下存檔圖示就能立即儲存在手機記憶卡中，若是選擇分享的圖示就能夠分享到facebook、gmail…等軟體。
&amp;nbsp;
&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;


&amp;lt;!--[if !supportLists]--&amp;gt;4.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;!--[endif]--&amp;gt;Color Touch Effects
售價：免費
下載：
https://market.android.com/details?id=com.appspot.swisscodemonkeys.paintfx
&amp;lt;!--[endif]--&amp;gt;
&amp;nbsp;
Color Touch Effects也是一套影像後製軟體，比較特別的是可以把其他的顏色都取代成另外的色調濾鏡，還能保留部分原始的色彩。簡單的說，就如同Color Touch Effects的軟體說明圖一樣，只有保留眼球的部分是彩色的，其他的部分都變成灰階。
&amp;nbsp;
程式開啟的時候和其他影像特效大致上都相同，一樣是能夠選擇圖片來源從相機拍照或是從相簿中開啟照片編修。
&amp;nbsp;
&amp;nbsp;&amp;lt;!--[endif]--&amp;gt;

成功開啟了一張照片之後，在編輯頁上有三個分頁，分別是Caption(為圖片加上標題)、Effects(特效)、Paint(畫圖)，首先在Caption分頁，輸入文字後，就能立即把文字套用在照片上。
&amp;nbsp;
接下來點選Effects分頁，選擇一個想要套用的特效，假設選擇了黑白特效(mono)，會看到整張照片已經變成黑白灰階的樣式了。接下來點選Paint分頁，然後你會看到下方有兩隻名為Original(原始圖)與Effects畫筆。選擇Original畫筆在計程車的部分畫一畫，就會發現計程車被還原回原來的黃色了。
&amp;nbsp;
當然用手指畫的過程當中，有可能會畫錯區域，此時就可以使用Effects畫筆再把畫錯的部分再塗回具有黑白特效的樣子。如果你是個很要求完美的人，要求畫的很細緻，也可以按下size按鈕修改畫筆尺寸，或是在圖片上用兩指放大，再用Move按鈕移動到要修改的圖片位置。
&amp;lt;!--[if !vml]--&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
最後，圖片修改完成後，按下儲存圖片存檔，或是寄出圖片將圖片寄到信箱中或分享到facebook上。
&amp;lt;!--[endif]--&amp;gt;
&amp;nbsp;
&amp;nbsp;
&amp;lt;!--[if !supportLists]--&amp;gt;5.&amp;nbsp;&amp;lt;!--[endif]--&amp;gt;相格
售價：免費
下載：https://market.android.com/details?id=com.roidapp.photogrid
&amp;lt;!--[if !vml]--&amp;gt;&amp;lt;!--[endif]--&amp;gt;
&amp;nbsp;
相格是一套能夠將幾張照片合為一張格狀組合的相片軟體，但這套軟體只能從相簿中把相片讀入。能夠製作出單張具有邊框、九格相等大小、直式排列、橫式排列，以及混合大小不等的照片。
&amp;nbsp;
在主畫面選擇一種想要合成的照片樣式，以Multi(混合模式)的樣式為例，首先從你的相簿挑選出最多九張想要合為一張的來源照片。讀入照片後搖動手機就能夠調整相格的排列方式。
&amp;nbsp;
&amp;lt;!--[if !vml]--&amp;gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;
接下來點選上方的編輯，就能夠對每一格的照片加以細部編修，例如移動、放大、交換某張照片在格子內顯示的部分或是加上背景邊框。按下保存就將合成後的照片存在你的手機裡了。
&amp;nbsp;
&amp;lt;!--[if !vml]--&amp;gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;



&amp;lt;!--[endif]--&amp;gt;
 </description>
		<pubDate>Sat, 25 Feb 2012 15:49:34 +0800</pubDate>
	</item>
	<item>
		<title>從行動通訊跨界到各項裝置的變型金剛-Android裝置介紹</title>
		<link>http://lms.xms.com.tw/board.php?courseID=143&amp;f=doc&amp;cid=8020</link>
		<description>從行動通訊跨界到各項裝置的變型金剛-Android裝置介紹
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (作著: 艾鍗學院)
眾所皆知Android是2007年由Google所發展的行動通訊作業系統，Android的核心概念與Linux的概念類似，致力於發展出一套開放、公開原始碼，並且以Linux為架構，讓硬體廠商可以自由修改Android的程式碼變成自家裝置的作業系統。
2008年Google 在紐約發表了第一隻Android手機G1，由HTC製造並搭配美國電信商T-Mobile上市。雖然G1的知名度並不是很高，但是在Android的歷史上具有劃時代的意義，代表著開放手機聯盟(Open Handset Alliance，OHA)的行動通訊產品正式啟動。
&amp;lt;!--[endif]--&amp;gt;
第一隻Android手機:G1
&amp;nbsp;
手機鍵盤
電容式螢幕與電阻式螢幕最大的不同點在於前者透過手指腹(皮膚)接觸，後者透過壓力感應，所以大部分使用過電阻式螢幕的人都有使用指甲點選螢幕上的項目的經驗，但是電容式具有多點觸控的優點，於是後來的觸控螢幕手機幾乎都是使用電容式螢幕。第一次使用電容式觸控螢幕的人會發現很容易誤按，尤其是手指頭比較大的人在打字的時候。於是手機製造商繼G1之後，也有開發其他具有QWERTY鍵盤的手機，方便使用者在打字的時候，具有按鍵的反饋效果讓打字更快速而且也不容易誤按(如：HTC Desire Z)。
隨著遊戲開發商將遊戲移植到Android版本上架，越來越多人喜歡在Android手機上玩遊戲，但是如果在手機上玩動作類遊戲就會發現遊戲操控性不易的問題。於是Sony Ericsson將自家開發掌上型遊戲機的經驗，把遊戲手把移植到手機上(如：Sony Ericsson XPERIA PLAY)。
&amp;nbsp;
&amp;lt;!--[endif]--&amp;gt;
HTC Desire Z
&amp;nbsp;
 &amp;lt;!--[endif]--&amp;gt;
Sony Ericsson XPERIA PLAY
&amp;nbsp;
大螢幕
以前的手機都在比誰能做的又輕又小，但現在的手機卻是在比誰把畫面做的比較大台。其實會造成這樣的結果也不用感到太驚訝，因為現在的手機使用者希望能夠隨時隨地上網，畢竟大畫面對於網頁瀏覽舒適度會有所提升。除了瀏覽網頁之外，電子書也使用智慧型手機做為載體，所以大畫面對於某些需要常常閱讀手機畫面的使用族群具有獨特的吸引力。
但魚而熊掌是不能兼得的，小畫面看的不清楚，大畫面會降低手機的便攜性，於是有廠商發展了雙螢幕手機(如：Kyocera Echo)，或是能夠透過轉接鍵盤底座變成筆電的方式使用(如：Motorola Atrix)，但目前大部分的Android手機都有支援HDMI將手機畫面同步傳輸到電視或是投影機。
&amp;nbsp;
&amp;lt;!--[endif]--&amp;gt;
Kyocera Echo
&amp;lt;!--[endif]--&amp;gt;
Motorola Atrix
&amp;nbsp;
3D: 裸視3D螢幕、3D攝影
3D螢幕算是已經行之有年的產品了，但一直都是必須配戴3D眼鏡才能夠看到3D的效果，為了擺脫3D眼鏡，目前已經發展出裸視(Glasses-Free&amp;nbsp;)3D螢幕的技術，其原理是在螢幕插入光柵，讓人類左右眼看到不同的畫面，然後就會在腦中認為這是立體的影像。除了裸視3D螢幕之外，目前也有手機具有雙攝影鏡頭(如:HTC EVO 3D、LG Optimus 3D)，利用兩顆鏡頭同時攝影，混合成具有人眼左右視差影像，直接產生具有3D效果的照片、影片。當然廠商也看到了這個商機，把裸視3D的螢幕與3D攝影鏡頭配置在手機裡面，加上3D遊戲、3D攝影、3D照相的軟硬體整合，讓手機的娛樂效果更加提升。
&amp;lt;!--[endif]--&amp;gt;
HTC EVO 3D 
&amp;nbsp;
&amp;lt;!--[endif]--&amp;gt;
LG Optimus 3D
&amp;nbsp;
&amp;nbsp;
紅外線
紅外線最早應用於資料傳輸，日本手機從很早以前就有的元件之一，而且到目前似乎也沒有拿掉這個元件的打算，幾乎可以說是日本手機的基本配備，而日本會這麼熱衷於紅外線的原因或許跟他們習慣使用紅外線短距無線傳送訊息有關。近年來由於藍芽能夠使用較大的頻寬且不具方向性的傳輸，紅外線幾乎已被藍芽所取代。所以現在的手機幾乎都有藍芽功能，但卻很少有紅外線的功能(除了日本手機之外)。
但是紅外線是否真的被藍芽取代了？其實不然。因為紅外線的另一項應用正潛伏在每個人的生活當中，也就是遙控器。舉凡電視、音響、冷氣…等等，每個人家中電器產品的遙控器都是紅外線。於是日本廠商Sony把平板電腦(Sony Tablet S)內建了紅外線裝置，並且開發了專屬的軟體，只要把家中每個遙控器按鍵讓Sony Tablet S記憶，從此就能夠使用平板遙控家電。
&amp;lt;!--[endif]--&amp;gt;
Sony Tablet S
&amp;nbsp;
然而並不是每隻Android手機都有紅外線裝置，可是絕大部分的手機都具有3.5mm耳機孔。於是有廠商開發了能夠使用耳機孔發射紅外線訊號的裝置，將紅外線發射器插在手機的3.5mm耳機孔，將音頻轉為紅外線訊號，就變成了遙控器。例如，艾鍗學院(http://www.ittraining.com.tw/)就利用自製的3.5mm耳機孔紅外線訊號發射器變成KTV點播器。
&amp;nbsp;
&amp;nbsp;
電腦銷售點管理系統 (point of sale，POS)
或許很多人都有聽過利用iPad點餐的餐廳，但是其實目前已經有Android的POS系統了。艾鍗學院的專題製作裡，在Android平板上實作一套點餐系統，點完餐之後，透過WIFI與印表機伺服器溝通，就能列印出顧客點餐清單與發票。
&amp;nbsp;
&amp;lt;!--[endif]--&amp;gt;
&amp;nbsp;
&amp;nbsp;
多媒體播放器
由於目前的影片檔案格式眾多，多種不同的檔案編碼以及藍光等級的影片檔會讓許多的電腦播放不順暢，於是多媒體播放器便因應而生。雖然在市面上已經有許多的多媒體播放器，但是以Android為作業系統的多媒體播放器卻只有人因科技Android Smart TV DB400。
&amp;nbsp;&amp;nbsp; 
使用Android為作業系統的多媒體播放器最大的好處就是能夠用電視輕鬆上網、文書處理、收發email、安裝Android的軟體，達到現在很流行的SmartTV效果，不過目前這台機器的Android 版本為Android 2.2，而且沒有內建Android Market，所以軟體的安裝還是要先利用其他的Android 裝置，把已經下載安裝後的APK備份出來安裝。不然就是要使用這家廠商提供的一些軟體安裝。

&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
參考資料：
Sinchen部落格：人因科技「Android Smart TV DB400」多媒體播放器開箱分享，http://scl13.com/ergotech-db400/
艾鍗學院，http://www.ittraining.com.tw/ </description>
		<pubDate>Sat, 25 Feb 2012 15:39:12 +0800</pubDate>
	</item>
	<item>
		<title>Android 4.0新功能介紹</title>
		<link>http://lms.xms.com.tw/board.php?courseID=143&amp;f=doc&amp;cid=8019</link>
		<description>Android 4.0新功能介紹&amp;nbsp; (作著: 艾鍗學院)
在Android4.0發表之前，google所帶領的Android版本兵分兩路，一個是從1.0一路發展到目前2.3.3的手機版本(通稱為2.x系列版本)；另一個則是設計給Android平板使用，版本號從3.0開始發展到目前的3.2版(通稱為3.x版本)。雖然Google對於當時的版本發展很明確的表示兩套不同版本是為了給不同的裝置使用，但是介面的差異，卻造成使用者面對Android的手機與平板需要重新學習兩套不同的操作介面，並且也因為版本的不同而造成軟體不相容的問題產生。
Google為了解決發展分歧兩套不同的版本，重新開發了下一代的Android 4.0版本。而這個版本很明確的就是要整合2.x與3.x系列版本。並且在2011年10月19日在香港正式發表。如果您有看過第一隻搭載Android 4.0原生介面的Nexus Galaxy，會發現手機的正面沒有實體按鍵，取而代之的是使用的軟體虛擬的方式產生Android的Home、Menu與Back按鍵。以下介紹幾種關於4.0主要新功能。
&amp;nbsp;
&amp;lt;!--[if !supportLists]--&amp;gt;一、&amp;lt;!--[endif]--&amp;gt;開始使用
第一次看到4.0的介面，會發現配色風格與操作的方式是延用3.x版本的樣式。而在桌面主畫面的配置則是與2.x的版本類似。所以不管您之前是Android手機或是平板的使用者，都會有一種似曾相識的感覺。
&amp;lt;!--[endif]--&amp;gt;
&amp;nbsp;
在待機解鎖的部分，Google考量到有許多人會把手機當成看時間的工具使用，所以在手機未解鎖時，畫面上只會很簡潔的出現時間與一個鎖頭的圖示。當按下鎖頭的圖示時，會出現相機與鎖頭開啟的圖示，手指滑動到鎖頭開啟的圖示後便能解鎖進入手機的主畫面，而滑動到相機圖示便能立刻開啟相機功能，方便喜歡拍照的使用者能夠隨時拍下稍縱即逝的那一刻。而在手機鎖定的狀態下，就能夠拉下通知列查看通知訊息。&amp;nbsp;
而此次4.0發表最廣為討論的創新應用就是使用人臉辦識的解鎖方式，是既Motorola Atrix的指紋辦識系統之後，另一個應用在手機上的新型態保全方式。
&amp;nbsp;
&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;!--[endif]--&amp;gt;
&amp;nbsp;
&amp;lt;!--[if !supportLists]--&amp;gt;二、&amp;lt;!--[endif]--&amp;gt;widget分類夾、widget縮放功能
按下桌面上的程式集按鈕會進入一個很像2.x版本的程式集頁面，但是換頁的方式並不是上下捲動，而是左右滑動。
而程式集裡面多了一個小工具(widget)的分頁，進入小工具的頁面後左右滑動可以切換小工具頁面，按住一個小工具不放即可放至桌面。由於4.0的版本已經將小工具分類收藏在程式集裡，所以在桌面上久按已經不會再出現新增小工具的選項了。而桌面上大小不一的小工具有時會有偏一邊無法置中，或是小工具太大佔了太多的版面的情形，在這一版的widget已經支援縮放功能以解決上述的情形。
&amp;nbsp;
&amp;lt;!--[if !vml]--&amp;gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;lt;!--[endif]--&amp;gt;
&amp;nbsp;
&amp;lt;!--[if !supportLists]--&amp;gt;三、&amp;lt;!--[endif]--&amp;gt;相機功能
&amp;nbsp;
Android 4.0內建的相機比之前的版本新增了許多功能，除了能夠直接用鏡頭對著要想拍攝的畫面，順暢的平移即可拍攝全景之外，還能夠對於拍攝後的照片直接做特效、旋轉、裁切…等等的編輯功能。而且能夠開啟即時運算的人臉特效，就能夠在拍攝時即時套用到人臉上，而這項即時人臉特效也能夠使用在視訊對話功能，讓拍照與視訊對話時增添更多的趣味。而相簿的呈現方式，也重新設定成立體相紙排列的方式呈現。
&amp;nbsp;&amp;nbsp;
&amp;lt;!--[if !supportLists]--&amp;gt;四、&amp;lt;!--[endif]--&amp;gt;社交功能&amp;nbsp;
Google+在4.0的版本已經結合群組視訊對話軟體hangouts，從原本只能一對一的視訊對話，變成多人同時參與的視訊會議。而Google主推的近場通訊（Near Field Communication，NFC）也增加了android beam的新功能，只要開啟這個功能，對方的手機也有支援NFC晶片，透過NFC晶片的接觸，便能夠立即分享連絡人資訊、網頁、Youtube 影片、Google 地圖等資訊，讓分享更方便即時。
而在電話響起時，如果剛好不方便接聽的時候，除了掛掉對方電話之外，android 4.0新增了來電直接回覆簡訊功能。對於商務人士來說，這是很重要的功能，能夠透過簡訊回覆目前不便接電話，避免在開會時無法接聽電話直接掛掉電話而造成對方不愉快的感覺。
&amp;lt;!--[endif]--&amp;gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;lt;!--[endif]--&amp;gt;
&amp;nbsp; </description>
		<pubDate>Sat, 25 Feb 2012 14:52:10 +0800</pubDate>
	</item>
	<item>
		<title>Android十大好用軟體推薦</title>
		<link>http://lms.xms.com.tw/board.php?courseID=143&amp;f=doc&amp;cid=7981</link>
		<description>Android十大好用軟體推薦&amp;nbsp; (作著: 艾鍗學院)
&amp;nbsp;






Whatsapp
&amp;nbsp;
評分：4.6顆星(377247個評分)
類別：通訊
售價：第一年免費，第二年起1.99美金/年


軟體下載：https://market.android.com/details?id=com.whatsapp
&amp;nbsp;
Whatsapp是一套跨手機平台的通訊軟體，只要你的手機通錄中有對方的電話號碼，並且對方的手機也有安裝Whatsapp軟體，就能夠免費傳送訊息到對方的手機。然而這套軟體在Android系統只有第一年可以免費使用，第二年起就會收年費1.99美金。
&amp;nbsp;
Whatsapp的使用方式很簡單，當您在Android Market下載之後，第一次開啟使用的時候會要求輸入你的手機號碼並且傳送簡訊做為認證，而這個認證簡訊是會被電信服務商收費的。在您接收到認證簡訊之後，就可以開始使用Whatsapp。
&amp;nbsp;
Whatsap除了能夠傳送文字訊息給對方之外，還能夠傳送照片、影片、錄音、目前的地理位置，而且也能夠使用笑臉圖示，在聊天對話時增添些許的趣味。
&amp;nbsp;
&amp;nbsp;




&amp;lt;!--[endif]--&amp;gt;

RepliGo reader
&amp;nbsp;
評分：4.5顆星(2087個評分)
類別：生產應用
售價：4.99美金


軟體下載：https://market.android.com/details?id=com.cerience.reader.app
&amp;nbsp;
&amp;nbsp;
RepliGo reader是一套操作速度流暢、介面簡單易懂的PDF閱讀與編輯軟體。在RepliGo reader上能夠將PDF的文字畫上底線、幾何圖形、註解說明…等等的編輯方式。而編輯後存檔的PDF檔案，在電腦上的Acrobat軟體開啟時，還能夠繼續修改編輯。反之，若在電腦上透過Acobat軟體修改編輯後的PDF檔案，放到手機上使用RepliGo reader開啟，一樣能夠繼續修改編輯。所以RepliGo reader堪稱是Adobe Acrobat的手機版本。
&amp;nbsp;
&amp;nbsp;




&amp;lt;!--[endif]--&amp;gt;

ES文件瀏覽器
&amp;nbsp;
評分：4.7顆星(124781個評分)
類別：生產應用
售價：免費


軟體下載：https://market.android.com/details?id=com.estrongs.android.pop
&amp;nbsp;
&amp;nbsp;
早期許多第一次使用Android手機的人，如果想把檔案放在手機裡，或是下載到手機的檔案日後想要再次開啟使用，會發現內建的系統沒有檔案總管，尤其是當初就使用Windows系統習慣的人會覺得更不適應。所以現在大部份的手機製造商都會內建檔案總管的app。但是各家的檔案總管名稱、介面都不同，不僅會造成使用者在不同的Android手機找不到檔案總管的正確名稱是什麼，而且功能都很陽春(真的就只有瀏覽、開啟放置在手機內或記憶卡的檔案的功能)。所以使用一套專門為手機製作的檔案管理的app確實有其必要性。
&amp;nbsp;
ES文件瀏覽器除了能夠瀏覽本地端(手機內部或記憶卡)的檔案，還能夠連線到windows的網路芳鄰、FTP、藍芽裝置共享傳檔、網路硬碟(dropbox)…等五大檔案瀏覽存取功能。如果你的手機有取得root權限，ES文件瀏覽器還能夠存取修改系統內部檔案，有時候你的手機照相快門聲被手機製造商強制為開啟的時候，就會需要修改系統數值才有辦法關閉惱人的聲音。
&amp;nbsp;
&amp;nbsp;




&amp;lt;!--[endif]--&amp;gt;

MoboPlayer 
&amp;nbsp;
評分：4.5顆星(36311個評分)
類別：媒體與影片
售價：免費


軟體下載：https://market.android.com/details?id=com.clov4r.android.nil
&amp;nbsp;
Android手機雖然有內建多媒體播放軟體，但是檔案格式的支援度其實不是很全面，而且播放的流暢程度也不算很好。MoboPlayer就像是PC版的KMplayer一樣，支援影片的格式很全面，包括avi, rm, rmvb, 3gp, mp4, mkv, mov, flv…等26個影片格式，而且能夠對於每個影片格式選擇軟解或是硬解的方式處理，除此之外還能夠外掛srt、ass、saa等字幕檔以及支援網路串流媒體播放。
&amp;nbsp;
MoboPlayer在影片播放的情形下，在螢幕右邊區域用手指上下滑動可以直接調整音量、螢幕左邊上下滑動可以直接調整亮度，若是直接在螢幕點一下會暫停播放影片，在螢幕左右滑動則可以快轉/倒轉影片播放。




&amp;lt;!--[endif]--&amp;gt;

ColorDict 辭典-Dictionary
&amp;nbsp;
評分：4.4顆星(14512個評分)
類別：圖書與參考資源
售價：免費


軟體下載：https://market.android.com/details?id=com.socialnmobile.colordict
&amp;nbsp;
Android的手機本身沒有內建字典軟體，於是早期有許多的免費字典軟體是利用Google提供的Google字典之下而產生。隨著Google 字典的服務關閉後，雖然一些免費的字典軟體依然能夠透過Google翻譯而繼續使用，但是每次查個字就必須透過網路的傳輸實在也不是很方便；加上目前絕大部分的Android手機都能提供外接SD Card的功能，安裝個離線字典，對於Android手機實在不會造成負擔，而且還能隨時想查就查，不受限於網路的傳輸。
&amp;nbsp;
ColorDict是一套可以附掛星際譯王(StarDict)字典檔的Android免費字典，在Android Market就能夠下載的到字典檔。並且有查詢歷史紀錄，能夠了解自己對於哪些字比較陌生，能夠做為日後復習的紀錄。
&amp;nbsp;
在主程式按下”下載詞典資料”就能夠直接進到Android Market的下載字典檔頁面，字典檔下載安裝後，在主程式的詞典分頁便能夠看到已安裝後的字典，然後可以調整字典顯示順序，如此日後查詢的時候就會依使用者自訂的字典顯示順序排列出來。
&amp;nbsp;
但是ColorDict但若是要安裝其他專業的字典檔，像是：牛津現代英漢雙解詞典，就必須到網路上星際譯王(StarDict)的字典檔找來安裝，而且因為沒有與英文音標相關的字型所以無法顯示單字的英標，而且也沒有發音的功能。但以免費的離線字典軟體來說，算是還不錯的app。
&amp;nbsp;
其他的字典檔可以從ftp://ftp.freebsd.org/pub/FreeBSD/ports/distfiles/stardict/下載，下載後的字典檔先解壓縮到最底層會看到有三個檔，XXX.dz，XXX.idx與XXX.ifo。將XXX.dz更名為XXX.gz，並且解壓縮出XXX.dict。最後將.dict，.idx與.ifo一併放入SD卡的dictdata內（檔名都要一樣）。執行ColorDict辭典重新索引後，字典就安裝完成了。
&amp;nbsp;




&amp;lt;!--[endif]--&amp;gt;

隨手寫
&amp;nbsp;
評分：4.5顆星(2371個評分)
類別：生產應用
售價：免費


軟體下載：https://market.android.com/details?id=com.suishouxie.freenote
&amp;nbsp;
Android的筆記備忘軟體其實並不少，而大部分都是只能使用打字的方式存成一份記事文字檔案，功能比較多一點的可能還有加上可以錄音記事、手繪圖樣的方式記事…等。而隨手寫是一套可以讓你實現用手寫的方式做筆記的軟體。
&amp;nbsp;
隨手寫具有多種的記事方式，應該是目前功能最齊全的螢幕手寫記事備忘軟體。最大的特色是能夠在使用者用全螢幕手寫後，便將手寫的筆跡自動縮小成為具有筆跡樣式的一個字體並依序往後排列，持續手寫就能夠成為一整行排列整齊具有手寫筆跡的文章，是不是很像上課抄筆記的感覺呢?
&amp;nbsp;
而隨手寫也能夠插入圖片、聲音、錄音做為筆記中的元件，並且能夠使用自由塗鴨的模式，隨意的在你的筆記上跨越字體行列，畫上具有助憶性的線條、箭頭、插圖，更趨近於在紙上抄寫筆記的感覺。
&amp;nbsp;
&amp;nbsp;




&amp;lt;!--[endif]--&amp;gt;

Shazam
&amp;nbsp;
評分：4.5顆星(242686個評分)
類別：音樂與音效
售價：免費


軟體下載：https://market.android.com/details?id=com.shazam.android
&amp;nbsp;
不知道你是否曾走在路上或是在餐廳吃飯，突然聽到一首很好聽的歌曲，卻不知道歌手是誰，所以很有可能偶然的聽過那麼一次，之後就再也沒機會再聽到這首歌了。Shazam是一套可以在播放歌曲的時候，打開這個軟體就能夠即時錄下一段音訊檔案，上傳到Shazam的歌曲比對資料庫，而且不到10秒的時間就會告訴你歌曲名稱、歌手、專輯名稱。如果你對於這首歌有興趣，Shazam也提供購買這首歌曲的超連結，方便使用者能夠直接購買。
&amp;nbsp;




&amp;lt;!--[endif]--&amp;gt;

ChromeMarks Lite
&amp;nbsp;
評分：4.5顆星(1926個評分)
類別：通訊
售價：免費


軟體下載：https://market.android.com/details?id=com.h.chromemarks.lite
&amp;nbsp;
如果你是個無時不刻都在看網頁，而且又是使用Chrome瀏覽器上網的人，ChromeMarks Lite會是你的好幫手。ChromeMarks Lite能夠幫助你抓取出你在電腦使用Chrome瀏覽器所加入的書籤(bookmark，在IE稱為”我的最愛”) ，方便你將帶手機出門時依然能夠使用電腦上的書籤。
&amp;nbsp;
但是這個app有使用上的限制，必須先在電腦上的Chrome瀏覽器加入書籤，而且必須在Chrome瀏覽器上登入Google帳號並開啟書籤同步的功能。第一次開啟了ChromeMarks Lite之後，軟體會顯示資料庫內沒有任何的書籤，直接按下sync(同步)就能夠將電腦上Chrome的書籤同步到這個軟體裡面。
&amp;nbsp;
&amp;nbsp;




&amp;lt;!--[endif]--&amp;gt;

Jorte
&amp;nbsp;
評分：4.5顆星(70457個評分)
類別：生產應用
售價：免費


軟體下載：https://market.android.com/details?id=jp.co.johospace.jorte
&amp;nbsp;
Jorte最大的好處在於能夠在你的手機桌面上，放置各種大小的Google日曆小工具(Widget) 。只要你在Jorte登入你的Google帳號並且開啟Jorte與Google同步的功能，就能夠在手機上即時同步觀看你的行事曆與待辦事項。
&amp;nbsp;
而Jorte的功能不僅只是能夠查看你的Google行事曆而已，當你點一下放置在桌面上的Jorte小工具時，會直接進入到Google日曆，所以能夠直接用手指滑動螢幕切換到不同的月份觀看，也能夠直接點選某個日期新增備忘錄，而使用Jorte新增的備忘錄也會即時的更新到Google日曆當中。而新增待辦事項也同樣會和你的Google待辦事項資料同步。
&amp;nbsp;




&amp;lt;!--[endif]--&amp;gt;

Zedge Ringtones &amp;amp; Wallpapers
&amp;nbsp;
評分：4.5顆星(244977個評分)
類別：個人化
售價：免費


軟體下載：https://market.android.com/details?id=net.zedge.android
&amp;nbsp;
Zedge提供免費的桌布、鈴聲，以及提示警示聲，能夠讓你的手機常常都更換不一樣的桌面底圖，也不會因為手機鈴聲跟別人撞機。而內容的來源是來自於網路共享而來，很符合Android開放共享的精神。
&amp;nbsp;
除了豐富的內容之外(目前有桌布八百多張、鈴聲52萬多首以及提示聲7萬8千多首)，這套軟體的操作介面也相當的簡潔易懂，提供檔案下載、分享、加入最愛內容，以及檔案資訊查看等功能。也有內容提供者的相關資訊，以及內容提供者所分享過的內容有哪些，方便使用者能夠很快速的找到某些作者發佈的檔案資訊。 </description>
		<pubDate>Sat, 18 Feb 2012 18:13:17 +0800</pubDate>
	</item>
	<item>
		<title>[Android開發技巧]--自行設計按鈕樣式 by艾鍗學院</title>
		<link>http://lms.xms.com.tw/board.php?courseID=143&amp;f=doc&amp;cid=7770</link>
		<description>在Android中要自行設計按鈕有以下幾種方式,&amp;nbsp;

一: 準備多張不同的按鈕圖片
你可以預先為你的按鈕準備多張不同的圖片，例如如按下前是亮色,按下後變暗, 或是按下前是原圖,按下後變小圖
接著自行編寫不同圖片顯切換的時機, 使用XML編寫,並將檔案放置於 drawable目錄中
例如下列的範例. &amp;nbsp;bg.xml


&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&amp;gt;
&amp;lt;selector xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;&amp;gt;

&amp;lt;!-- 非觸控模式下,取得焦點時的圖片(利用軌跡球或鍵盤上下選) --&amp;gt;
&amp;lt;item android:drawable=&quot;@drawable/ittraining_bg_focus_blue&quot;
android:state_focused=&quot;true&quot; /&amp;gt;
&amp;lt;!-- 觸控模式下,按下時的圖片 --&amp;gt;
&amp;lt;item android:drawable=&quot;@drawable/ittraining_bg_pressed_blue&quot;
android:state_pressed=&quot;true&quot; /&amp;gt;
&amp;lt;!-- 原始圖片 --&amp;gt;
&amp;lt;item android:drawable=&quot;@drawable/ittraining_bg_focus_blue&quot; /&amp;gt;

&amp;lt;/selector&amp;gt;

接著將該bg.xml 設定為該Button元件的blackground即可.

二: 利用xml編寫android&amp;nbsp;shape drawable 元件

第一種換圖的方式，會導致圖片檔要準備很多份，這將會造成包裝的apk檔code size過大，因為圖片
的東西是己經無法在進行壓縮的，另外利用圖片因為是點陣圖也會有色彩失真或是解析度不足的狀況
（由其在不同大小的營幕上顯示時)。　因此我們可以改以利用xml編寫android &amp;nbsp;shape drawable元件，
這個圖片與色彩會是在執行時期利用cpu去演算出來，為向量的圖形，因此可以有較好的畫質呈現.

以下為幾個經xml編寫設計過的shape drawable元件

&amp;nbsp;1.藍色系

&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&amp;gt;
&amp;lt;selector xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;&amp;gt;
&amp;nbsp; &amp;nbsp; &amp;lt;item android:state_pressed=&quot;true&quot; &amp;gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;shape&amp;gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;solid
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; android:color=&quot;#449def&quot; /&amp;gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;stroke
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; android:width=&quot;1dp&quot;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; android:color=&quot;#2f6699&quot; /&amp;gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;corners
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; android:radius=&quot;3dp&quot; /&amp;gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;padding
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; android:left=&quot;10dp&quot;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; android:top=&quot;10dp&quot;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; android:right=&quot;10dp&quot;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; android:bottom=&quot;10dp&quot; /&amp;gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/shape&amp;gt;
&amp;nbsp; &amp;nbsp; &amp;lt;/item&amp;gt;
&amp;nbsp; &amp;nbsp; &amp;lt;item&amp;gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;shape&amp;gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;gradient
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; android:startColor=&quot;#449def&quot;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; android:endColor=&quot;#2f6699&quot;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; android:angle=&quot;270&quot; /&amp;gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;stroke
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; android:width=&quot;1dp&quot;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; android:color=&quot;#2f6699&quot; /&amp;gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;corners
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; android:radius=&quot;4dp&quot; /&amp;gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;padding
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; android:left=&quot;10dp&quot;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; android:top=&quot;10dp&quot;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; android:right=&quot;10dp&quot;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; android:bottom=&quot;10dp&quot; /&amp;gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/shape&amp;gt;
&amp;nbsp; &amp;nbsp; &amp;lt;/item&amp;gt;
&amp;lt;/selector&amp;gt;

2.黑色系

&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&amp;gt;
&amp;lt;selector xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;&amp;gt;
&amp;nbsp; &amp;nbsp; &amp;lt;item android:state_pressed=&quot;true&quot; &amp;gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;shape&amp;gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;solid
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; android:color=&quot;#343434&quot; /&amp;gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;stroke
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; android:width=&quot;1dp&quot;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; android:color=&quot;#171717&quot; /&amp;gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;corners
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; android:radius=&quot;3dp&quot; /&amp;gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;padding
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; android:left=&quot;10dp&quot;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; android:top=&quot;10dp&quot;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; android:right=&quot;10dp&quot;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; android:bottom=&quot;10dp&quot; /&amp;gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/shape&amp;gt;
&amp;nbsp; &amp;nbsp; &amp;lt;/item&amp;gt;
&amp;nbsp; &amp;nbsp; &amp;lt;item&amp;gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;shape&amp;gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;gradient
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; android:startColor=&quot;#343434&quot;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; android:endColor=&quot;#171717&quot;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; android:angle=&quot;270&quot; /&amp;gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;stroke
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; android:width=&quot;1dp&quot;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; android:color=&quot;#171717&quot; /&amp;gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;corners
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; android:radius=&quot;4dp&quot; /&amp;gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;padding
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; android:left=&quot;10dp&quot;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; android:top=&quot;10dp&quot;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; android:right=&quot;10dp&quot;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; android:bottom=&quot;10dp&quot; /&amp;gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/shape&amp;gt;
&amp;nbsp; &amp;nbsp; &amp;lt;/item&amp;gt;
&amp;lt;/selector&amp;gt;

3.綠色系

&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&amp;gt;
&amp;lt;selector xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;&amp;gt;
&amp;nbsp; &amp;nbsp; &amp;lt;item android:state_pressed=&quot;true&quot; &amp;gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;shape&amp;gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;solid
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; android:color=&quot;#70c656&quot; /&amp;gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;stroke
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; android:width=&quot;1dp&quot;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; android:color=&quot;#53933f&quot; /&amp;gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;corners
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; android:radius=&quot;3dp&quot; /&amp;gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;padding
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; android:left=&quot;10dp&quot;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; android:top=&quot;10dp&quot;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; android:right=&quot;10dp&quot;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; android:bottom=&quot;10dp&quot; /&amp;gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/shape&amp;gt;
&amp;nbsp; &amp;nbsp; &amp;lt;/item&amp;gt;
&amp;nbsp; &amp;nbsp; &amp;lt;item&amp;gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;shape&amp;gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;gradient
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; android:startColor=&quot;#70c656&quot;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; android:endColor=&quot;#53933f&quot;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; android:angle=&quot;270&quot; /&amp;gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;stroke
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; android:width=&quot;1dp&quot;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; android:color=&quot;#53933f&quot; /&amp;gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;corners
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; android:radius=&quot;4dp&quot; /&amp;gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;padding
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; android:left=&quot;10dp&quot;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; android:top=&quot;10dp&quot;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; android:right=&quot;10dp&quot;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; android:bottom=&quot;10dp&quot; /&amp;gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/shape&amp;gt;
&amp;nbsp; &amp;nbsp; &amp;lt;/item&amp;gt;
&amp;lt;/selector&amp;gt;


三: 利用色彩過瀘器為你的View元作設計不同的渡色.
以下為三種利用ColorFilter的做法.

bt.getBackground().setColorFilter(
new PorterDuffColorFilter(Color.argb(210, 255, 0, 0), PorterDuff.Mode.MULTIPLY));

bt2.getBackground().setColorFilter(0xFFFF0000, android.graphics.PorterDuff.Mode.MULTIPLY);

bt3.getBackground().setColorFilter(new LightingColorFilter(0xFFFFFFFF, 0xFFAA0000));

Edit by Jarey/艾鍗學院.&amp;nbsp;

     </description>
		<pubDate>Thu, 22 Dec 2011 13:50:04 +0800</pubDate>
	</item>
	<item>
		<title>[Android開發技巧] --如何設計與管理Android Log by艾鍗學院</title>
		<link>http://lms.xms.com.tw/board.php?courseID=143&amp;f=doc&amp;cid=7769</link>
		<description>
Android Log的設計原則:

　　關於Log的問題是許多在將Android產品商品化時會擔優的問題，也有許多人問過我同樣的問題，因為你不會想人透過Log看到你的應用程式存在一些bug訊息，或是讓有心人事可以透過這些Log去更加容易理解與破解出你應用程式的架構與寫法。所以一般人會想在最終滙出要上架的APK檔可把不必要的資訊去除掉，當然這必須做一些手腳，在說明這一切之前我必須要讓你先清濋的理解Android Log的機制設計與官方的使用建議。

The order in terms of verbosity, from least to most is ERROR, WARN, INFO, DEBUG, VERBOSE.&amp;nbsp;Verbose should&amp;nbsp;never be compiledinto an application&amp;nbsp;except during development. Debug logs are compiled in but&amp;nbsp;stripped at runtime.&amp;nbsp;Error, warning and info logs are&amp;nbsp;always kept.

以上這段話是Google官方網站上所建議的Log使用方法，(需注意這裡指的是建議的做法，並沒有幫你實作，你必須自己照這機制去設計)，這段話有三個重點如下:

1.Google建議你將Verbose的訊息在最終發布到Market時不要compiler進APK之中，而只有在開發時期可以被compiler APK裡方便你除錯用，簡單的說你可以將一些比較重要或是機密的除錯訊息寫在Verbose中，而這訊息在最終發布APK時並不會被編譯進去，所以你也就不用害怕說這些訊息會被使用者看見，就算有惡意人士直接用反組譯程式的手法去觀看你的程式碼，也完全看不到這些log訊息,因為根本就沒被編譯進去。

2.在來是Debug 層級的Log，Google官方建議你將這層級的訊息編譯進去APK之中，但在執行時期(runtime)，不要將此訊息顯示出來，一般人會看不懂這段話的用意是什麼，但如果你是位真正有在Market上架APP的開發者，你就會理解這樣做是非常重要的。　因為當你發布APP的某先前的版本發生了bug，這時你為了要完整的模擬或是複制發生錯誤的環境，你必須要回頭去舊的版本，但這時你需要有debug訊息，這時你可以透過打開debug mode，來讓你的應用程式可以有debug訊息發送出來。你可以試想如果當初你連把debug的訊息沒compiler進去了，那麼大概除了重新builder軟體，不然就沒有機會在重新叫出debug訊息了。

3.最後Error、Info、Warning　官方建議你要永遠保留與顯示


OK上述是官方建議你如何去利用Log，但是要如何達成這需要你自行去設計實作，在教你如何設計前，我必須在說明Java編譯器的特性，與static final靜態常數的應用。

1．如何讓Log訊息在編譯時期被濾掉，不會被編入到APK檔中:
Java的編譯器會對程式碼做最佳化的處理，對於不可能被執行到的應用程式，會自動在編譯時期就被去除掉，例如以下程式碼: 是永遠不可能被執行的，因此在編譯時期下列的所有Log都會消失
if (false) {
Log.v(&quot;LOG TEST:&quot;, &quot;Verbose&quot;);
Log.d(&quot;LOG TEST:&quot;, &quot;Debug&quot;);
Log.i(&quot;LOG TEST:&quot;, &quot;Info&quot;);
Log.w(&quot;LOG TEST:&quot;, &quot;Warn&quot;);
Log.e(&quot;LOG TEST:&quot;, &quot;Error&quot;);
}

因此你可以直接設計一個靜態的常數來決定那些Log訊息直接不要被Compiler進APK中。

/**
&amp;nbsp;* Log控制類別
&amp;nbsp;*&amp;nbsp;
&amp;nbsp;* @author Jarey
&amp;nbsp;* @ittraining 艾鍗學院 2011/12/13 www.ittraining.com.tw
&amp;nbsp;*/
public class Android_log_testActivity extends Activity {
/** Called when the activity is first created. */
public static final boolean isCompilerLog = false;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
if(isCompilerLog){
Log.v(&quot;LOG TEST:&quot;, &quot;Verbose&quot;);
Log.d(&quot;LOG TEST:&quot;, &quot;Debug&quot;);
Log.i(&quot;LOG TEST:&quot;, &quot;Info&quot;);
Log.w(&quot;LOG TEST:&quot;, &quot;Warn&quot;);
Log.e(&quot;LOG TEST:&quot;, &quot;Error&quot;);
}
}
}

我們接著將編譯後的APK檔在透過dextojar反組譯回來看:

public class Android_log_testActivity extends Activity
{
&amp;nbsp; public static final boolean isCompilerLog;

&amp;nbsp; public void onCreate(Bundle paramBundle)
&amp;nbsp; {
&amp;nbsp; &amp;nbsp; super.onCreate(paramBundle);
&amp;nbsp; &amp;nbsp; setContentView(2130903040);
&amp;nbsp; }
}
從上述程式碼中可以看到，Log訊息全都不見了。



2.如何設計將Log編譯進APK中，但在執行時期不要顯示出來
你可以利用Adapter 設計模式，將Log類別包在一個Adapter使用，那麼你就可以自行定義有那些層級的Log不要輸出，但實際上Log訊息還是會被編譯進APK之中。在此要特別特別提醒的是，不想被編譯進APK中的Log不能透過此Adapter去輸出，因為將會讓Log訊息還是被編進了APK裡：例如你可能會想說這樣寫:

public class Android_log_testActivity extends Activity {
/** Called when the activity is first created. */
public static final boolean isCompilerLog = false;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

ITLog.v(&quot;LOG TEST:&quot;, &quot;Verbose&quot;);
}
}

public class ITLog {
public static final boolean isCompilerLog = false;
public static void v(String tag, String msg) {
if (isCompilerLog ) {
Log.v(tag, msg);
}
}
}
上述的寫法只會讓ITLog類別中的Log.v(tag,msg);在編譯時期時消失掉，而你呼叫的ITLog.v(&quot;LOG TEST:&quot;, &quot;Verbose&quot;);　還是會被編譯進APK中，這點必須是要特別注意的。




3.如何完整的實作官方的建議Log做法:
我己依照Google官方的建議做法，撰寫了一個簡單的實作範例提供大家參考：
/**
&amp;nbsp;* Log控制類別
&amp;nbsp;*&amp;nbsp;
&amp;nbsp;* @author Jarey
&amp;nbsp;* @ittraining 艾鍗學院 2011/12/13 www.ittraining.com.tw
&amp;nbsp;*/
public class Android_log_testActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
/*Verbose的訊息透過靜態常數決定是否要被編譯進APK*/
if(ITLog.isCompilerLog){
Log.v(&quot;LOG TEST:&quot;, &quot;Verbose&quot;);
}

/*設定只顯示到INFO層級的LOG*/
ITLog.displayLevel=Log.INFO;

/*透過外包的Log類别操作輸出Log*/
ITLog.d(&quot;LOG TEST:&quot;, &quot;Debug&quot;);
ITLog.i(&quot;LOG TEST:&quot;, &quot;Info&quot;);
ITLog.w(&quot;LOG TEST:&quot;, &quot;Warn&quot;);
ITLog.e(&quot;LOG TEST:&quot;, &quot;Error&quot;);
}
}

/**
&amp;nbsp;* Log控制類別
&amp;nbsp;*&amp;nbsp;
&amp;nbsp;* @author Jarey
&amp;nbsp;* @ittraining 艾鍗學院 2011/12/13 www.ittraining.com.tw
&amp;nbsp;*/
public class ITLog {
public static final boolean isCompilerLog = false;

/* 要輸出顯示的Debug層級 */
public static int displayLevel = Log.VERBOSE;

public static void d(String tag, String msg) {
if (Log.DEBUG &amp;gt;= displayLevel) {
Log.d(tag, msg);
}
}

public static void i(String tag, String msg) {
if (Log.INFO &amp;gt;= displayLevel) {
Log.i(tag, msg);
}
}

public static void e(String tag, String msg) {
if (Log.ERROR &amp;gt;= displayLevel) {
Log.e(tag, msg);
}
}

public static void v(String tag, String msg) {
if (Log.VERBOSE &amp;gt;= displayLevel) {
Log.v(tag, msg);
}
}

public static void w(String tag, String msg) {
if (Log.WARN &amp;gt;= displayLevel) {
Log.w(tag, msg);
}
}
}


4.如何驗證上述的範例是正確的
我們直接將上述的範例輸出成APK檔後，在透過反組譯將APK轉成Java檔來進行驗證:

public class Android_log_testActivity extends Activity
{
&amp;nbsp; public void onCreate(Bundle paramBundle)
&amp;nbsp; {
&amp;nbsp; &amp;nbsp; super.onCreate(paramBundle);
&amp;nbsp; &amp;nbsp; setContentView(2130903040);
&amp;nbsp; &amp;nbsp;&amp;nbsp;ITLog.displayLevel = 4;
&amp;nbsp; &amp;nbsp; ITLog.d(&quot;LOG TEST:&quot;, &quot;Debug&quot;);
&amp;nbsp; &amp;nbsp; ITLog.i(&quot;LOG TEST:&quot;, &quot;Info&quot;);
&amp;nbsp; &amp;nbsp; ITLog.w(&quot;LOG TEST:&quot;, &quot;Warn&quot;);
&amp;nbsp; &amp;nbsp; ITLog.e(&quot;LOG TEST:&quot;, &quot;Error&quot;);
&amp;nbsp; }
}

public class ITLog
{
&amp;nbsp; public static int displayLevel = 2;
&amp;nbsp; public static final boolean isCompilerLog;

&amp;nbsp; public static void d(String paramString1, String paramString2)
&amp;nbsp; {
&amp;nbsp; &amp;nbsp; if (3 &amp;gt;= displayLevel)
&amp;nbsp; &amp;nbsp; &amp;nbsp; Log.d(paramString1, paramString2);
&amp;nbsp; }

&amp;nbsp; public static void e(String paramString1, String paramString2)
&amp;nbsp; {
&amp;nbsp; &amp;nbsp; if (6 &amp;gt;= displayLevel)
&amp;nbsp; &amp;nbsp; &amp;nbsp; Log.e(paramString1, paramString2);
&amp;nbsp; }

&amp;nbsp; public static void i(String paramString1, String paramString2)
&amp;nbsp; {
&amp;nbsp; &amp;nbsp; if (4 &amp;gt;= displayLevel)
&amp;nbsp; &amp;nbsp; &amp;nbsp; Log.i(paramString1, paramString2);
&amp;nbsp; }

&amp;nbsp; public static void v(String paramString1, String paramString2)
&amp;nbsp; {
&amp;nbsp; &amp;nbsp; if (2 &amp;gt;= displayLevel)
&amp;nbsp; &amp;nbsp; &amp;nbsp; Log.v(paramString1, paramString2);
&amp;nbsp; }

&amp;nbsp; public static void w(String paramString1, String paramString2)
&amp;nbsp; {
&amp;nbsp; &amp;nbsp; if (5 &amp;gt;= displayLevel)
&amp;nbsp; &amp;nbsp; &amp;nbsp; Log.w(paramString1, paramString2);
&amp;nbsp; }
}


從上述反組譯出的程式可以看的出來，Verbose層級的Log並沒有被編譯進APK中所以程式碼己完全消失了。而雖然我們預設將displayLevel設為2，但在onCreate第一些，我們在執行時期，會將&amp;nbsp;&amp;nbsp;ITLog.displayLevel = 4;　設定為4，所以可以看的出來只有INFO、WARN、ERROR的訊息會永遠被顯示出來，ERROR的程式碼有被編進APK中，但並不會被顯示出來。而這就是Google官方建議我們Log的應用方式。

以下為LogCat執行此範例時所輸出的訊息
-----------------------------------------------------------------

12-12 17:45:33.908: I/LOG TEST:(360): Info
12-12 17:45:33.937: W/LOG TEST:(360): Warn
12-12 17:45:33.937: E/LOG TEST:(360): Error

Edit by Jarey/艾鍗學院. 
   </description>
		<pubDate>Thu, 22 Dec 2011 13:38:03 +0800</pubDate>
	</item>
	<item>
		<title>[Android 技術分享]--Android  NFC 技術 by艾鍗學院</title>
		<link>http://lms.xms.com.tw/board.php?courseID=143&amp;f=doc&amp;cid=7761</link>
		<description>&amp;nbsp;

NFC是SONY與Philips共同發展的技術，採取兩種規格，有接電源的為主要裝置，採用電池的隨身裝置則為次要裝置。 兩種規格的差異在於範圍的多寡以及耗電量。技術上採用了類似RFID的辨識技術並結合無線網路協定來傳輸資料。 
n 頻段：13.56MHz
n 通訊距離：0-20cm
n 標準規格：
¨ ECMA 356/362
¨ ISO/IEC 21481 (ECMA 352)
¨ ISO/IEC 18092 (ECMA 340)
n 傳輸速度
¨ 424kbps (被動)
n 與Philips MIFARE和Sony Felica 智慧卡相容
Android 至2.3開始主打NFC的功能，並開始推出NFC相關的API，隨著Android版本不斷的提升NFC相關API的功能與支援性也愈來愈強大，目前Android NFC可以支援的格式有
&amp;nbsp;




TagTechnology

The interface that all tag technology classes must implement.


NfcA

Provides access to NFC-A (ISO 14443-3A) properties and I/O operations.


NfcB

Provides access to NFC-B (ISO 14443-3B) properties and I/O operations.


NfcF

Provides access to NFC-F (JIS 6319-4) properties and I/O operations.


NfcV

Provides access to NFC-V (ISO 15693) properties and I/O operations.


IsoDep

Provides access to ISO-DEP (ISO 14443-4) properties and I/O operations.


Ndef

Provides access to NDEF data and operations on NFC tags that have been formatted as NDEF.


NdefFormatable

Provides a format operations for tags that may be NDEF formattable.
&amp;nbsp;
透過Andorid 系統NFC API可以對Tag進行資料寫入與讀取的動作，所以手機本身就可以做為一個NFC的Reader與writer 手機也可以化身為一個Tag裝置，讓兩個手機之間透過NFC進行p2p資料傳輸,到了Android 4.0之後NFC API又更進一步推出了AAR功能(Android Application Recoder)，可以讓你的APP應用程式與NFC的 Tag資料記錄做對應，Android APP應用程式可以透過NFC掃描TAG的方式觸發啟動，這有點像USB的隨插即用功能，基本 上若在你的手機上找不到該應用程式，系統還會自動連到Android Market協助你下載。
目前台灣買的到的NFC TAG大多都是傳統名片卡大小的SIZE，比較沒有搞頭，國外有間公司有推出超迷你的貼紙型NFC Tag，15張14.25美金（可進行讀寫，有1K的資料大小空間），平均１張大約１元美金, 大小只有1元大小.



 
NFC Hobbyist Starter Kit - (15 Stickers) $14.25 

 
NFC Hacker Starter Kit - (USB Writer + 25 Stickers) $72.71 

 
NFC Professional Sticker Kit - (150 Stickers) $121.00 
&amp;nbsp;
&amp;nbsp;
Tagstand官方網站:　 http://www.tagstand.com/
&amp;nbsp;得介紹一下這間公司是間新創公司，由YC-Funded(全世界最大創投公司)所扶植的，專門就是在做上圖這個 NFC的貼紙（有分很多不同規各，防水，戶外型…），這間算個傳奇公司，因為這公司就只靠這一張TAG貼紙，成功吸金110萬美金 ，由此可以看出這個NFC被手機這麼一推後，真的是爆發性的成長，力道很驚人。&amp;nbsp;
&amp;nbsp;Google 推出「Android Beam」基於 NFC 技術
的手機分享應用
&amp;nbsp;

&amp;nbsp;
&amp;nbsp;
&amp;nbsp;   </description>
		<pubDate>Wed, 21 Dec 2011 15:10:11 +0800</pubDate>
	</item>
	<item>
		<title>Java 書--jarey推廌</title>
		<link>http://lms.xms.com.tw/board.php?courseID=143&amp;f=doc&amp;cid=7254</link>
		<description>Java 系列
&amp;nbsp;
&amp;nbsp;
Head First Java

Amazon 4.5 顆星評價，以大量圖片與故事來解釋java 概念，適合初學的入門者，
可以先對Java 有些概念
http://www.javaworld.com.tw/jute/post/view?bid=22&amp;amp;id=3981&amp;amp;sty=1&amp;amp;tpg=1&amp;amp;age=-1

&amp;nbsp;
&amp;nbsp;Thinking in Java 4/e 中文版
工具書（包含所有Java 含概的範圍，通包的一本枕頭書）
http://www.books.com.tw/exep/prod/booksfile.php?item=0010412750

&amp;nbsp;
&amp;nbsp;
物件導向設計概念與Java 核心運作理理（進階）
Java 深度歷險
http://www.javaworld.com.tw/roller/moli/date/20060324
&amp;nbsp;

Design Patterns 於Java 語言上的實習應用 增訂第二版
http://www.drmaster.com.tw/Bookinfo.asp?BookID=PG20214

&amp;nbsp;
Java Multithread Design Pattern-Java 多執行緒與平行處理
http://www.drmaster.com.tw/Bookinfo.asp?BookID=PG20138

&amp;nbsp;
Java重構-Java refactoring
http://www.kingstone.com.tw/book/book_page.asp?kmcode=2014713022509&amp;amp;actid=ActBillBoard

 </description>
		<pubDate>Thu, 27 Oct 2011 16:00:20 +0800</pubDate>
	</item>
	<item>
		<title>[程式練功區]--Java物件導向架構設計練習題 by艾鍗學院</title>
		<link>http://lms.xms.com.tw/board.php?courseID=143&amp;f=doc&amp;cid=7177</link>
		<description>for 產訓班學員, 請認真完成&amp;nbsp;
&amp;nbsp;
n&amp;nbsp; 練習題目: 簡易購物車系統，設計一套簡易的購物車系統。管理人員可以上架商品，顧客可以購買指定商品，商品可以向製造商進貨，並會依進貨的價格與預期要賺的利潤自動為商品制定售價。最後收銀員會依顧客購買的商品進行結帳。而每天可以利用結帳機統計出整個商品的總收入，與每個收銀員的個人績效(為公司賺進多少利潤)。
&amp;nbsp;
n&amp;nbsp; 功能定義:
u&amp;nbsp; 管理者可得知目前架上的商品項目還有那些，與每個商品的購買數量
u&amp;nbsp; 賣場有許多不同的收銀機與員工，必須要能各別統計每位員工今日的營業額與結帳的商品項目清單
u&amp;nbsp; 商場可以選擇向製造商進貨，進貨的商品種類與價格都會有所不同，並會自動依照預計要賺的毛利去決定終端售價。
u&amp;nbsp; 最後必須能夠統計加總所有員工今日的營收，並計算出每位員工的業績排行榜。
n&amp;nbsp; 主要練習目標:
由於員工的總會來來去去，架上的商品也會不斷的有所變更。因此必須利用物件導向技巧將員工與商品給抽像化，以提供倉庫與收銀機一致的操作介面。
&amp;nbsp;
n&amp;nbsp; 實作方式:
u&amp;nbsp; 定義商品抽像介面
u&amp;nbsp; 實作一商品製造工廠，負責產出許多不同的商品實作類別
u&amp;nbsp; 實作一個商場，商場上可上架從製造工廠補進的商品。
u&amp;nbsp; 定義員工抽像介面
u&amp;nbsp; 實作不同的員工類別
u&amp;nbsp; 定義收銀機抽像介面
u&amp;nbsp; 實作收銀機類別，負責結合員工與商品之間的對應關係.
u&amp;nbsp; 撰寫一主程式，運用上述的物件進行功能測試     </description>
		<pubDate>Sun, 16 Oct 2011 21:58:15 +0800</pubDate>
	</item>
	<item>
		<title>FW: Android 目錄結構 &amp; Make流程</title>
		<link>http://lms.xms.com.tw/board.php?courseID=143&amp;f=doc&amp;cid=6696</link>
		<description>&amp;nbsp;
just as a reference

http://welkinchen.pixnet.net/blog/post/23490267

http://tw.myblog.yahoo.com/chimei-015/article?mid=1057 </description>
		<pubDate>Tue, 09 Aug 2011 20:14:50 +0800</pubDate>
	</item>
	<item>
		<title>[Android新聞]Android開發難度高 用戶不願付費</title>
		<link>http://lms.xms.com.tw/board.php?courseID=143&amp;f=doc&amp;cid=6522</link>
		<description>&amp;nbsp;
Android開發者生態︰開發難度高 用戶不願付費http://www.mobile4.asia/thread-1411-1-1.html
Android平台終於創造出它的第一個百萬財富故事，遺憾的是主角仍是讓人審美疲勞的《憤怒的小鳥》（Angry Birds）。2010年10月底，開發此遊戲的芬蘭公司Rovio從取得極大成功的蘋果iOS平台（包括iPhone、iPod Touch、iPad）擴張至Android，首月廣告收入100萬美元。此時據首款Android手機發佈已過去整整兩年。iOS上第一款月收入過百萬美元的應用已不可考，但一夜暴富的故事至今屢見不鮮。最新上位者是2010年12月9日才開始發售的Infinity Blade，這款售價5.99美元的遊戲發售4天銷量就突破20萬，總收入超過160萬美元。　　這樣的對比讓Android多少有些尷尬。2009年夏天，曾在iPhone上兩個月就賺得25萬美元的遊戲Trism登陸Android平台 後，3個月的總下載量同樣驚人—僅僅500次，最多賺到1500美元。即便《憤怒的小鳥》如今在Android上取得2000倍於Trism的成 功，100萬美元與這款遊戲在iOS上的火爆和1000萬美元左右的收益相比仍顯蒼白。　　於是，一幅頗為奇妙的景象浮現。任何一個稍微留心科技新聞的人都能感受到Android過去一年瘋狂的增長勢頭，熱辣的新機不斷從各大手機廠商 的設計室走向流水線，摩托羅拉甚至因之起死回生。科技圈中人人都在談論Android，狂熱當然也蔓延到中國。接連不斷的開發大會人滿為患，激情四射的中 國開發者在台上口若懸河。這很容易讓人產生又一個百億美元行業誕生的錯覺，回到現實中便看到，缺乏審核和管理的Android Market一片混亂，其中最頂級的團隊也只能在養活自己之外賺一些小錢。　　“國內專注做Android應用開發的團隊其實很少，專職以此為生非常困難，大部分都兼做好幾個平台。”從2008年就開始做Android應 用開發的朱衡對《環球企業家》說，並對谷歌極力宣揚的《憤怒的小鳥》在Android手機上百萬美元的成功感到懷疑︰“應該沒有這麼多，廣告收入浮動很厲害。”　　朱的團隊Superdroid在國內Android開發者中已算翹楚。很多關注IT領域的風險投資商（VC）與這一類開發團隊都有來往，但本刊接觸到的4個專注做Android應用的開發團隊均暫未獲得投資。如果最善於以小博大且急於在中國市場找到退場門的熱錢都選擇觀望—這個過分喧鬧的行業是否 真的被高估了？
&amp;nbsp;
&amp;nbsp;

【慘淡經營】　　人們對Android的信仰很容易用一連串數字解釋。　　以英國市場調研機構Canalys的數據為例，2010年第二季度和第三季度Android智能手機出貨量同比增幅高達886%和1309%，現已佔全球智能手機市場份額的25%，高於iPhone的17%。Android之父安迪·魯賓（Andy Rubin）不久前在Twitter上表示，現下每天激活的Android設備超過30萬部，高於蘋果的iOS設備。　　在中國市場，Android手機至今仍非主流。一個被很多圈內人認可的中國Android手機保有量是300多萬部，這與諾基亞2010年在中國市場前三個季度就售出6000萬部手機的成績相去甚遠。但就像其在全球範圍正在經歷的爆發性增長，Android手機同樣被認為會在中國贏得大眾市場， 並於2011年進入快速成長期。服務於Android用戶和開發者的N多網創始人陳 對《環球企業家》表示，他預計到2011年中期，中國市場將有 1000萬部Android手機。　　蘋果iOS平台始終是Android的對標對象，而iOS上最火爆的應用始終是遊戲。過去兩年它已向全球開發者累積分成10億美元，最近走紅的劍術格鬥遊戲Infinity Blade，顯著提升了iOS遊戲畫面精致程度的上限。但這些在Android平台上都難以複製。　　相比iOS，Android平台開發難度低很多，營運效率卻是瓶頸。遊戲程式運算量極大，對系統平台、CPU和內存等軟硬體支援要求較高。 Android手機硬體配置本身就遜於iPhone且規格不統一，再加上其使用的編程語言有局限性，像《憤怒的小鳥》這樣移植過來的成熟且簡單的遊戲營運 起來都有困難，遑論培養出真正的Android遊戲神作。　　最讓人沮喪的是，即便資金充裕的大公司也無法解決這些技術問題，小型開發團隊更只能因陋就簡。想在Android平台上寫出流暢營運的遊戲應 用，必須擁有超一流的程式員—頂級配置的手機上所有遊戲都暢行無阻，一旦硬體環境惡化，要想流暢營運就必須深度優化遊戲代碼。達到超一流編程水準或投入十 倍於iOS應用開發的資源，對勢單力薄的Android遊戲開發者都是太高的要求。　　退一步說，即便開發出優質的遊戲和其他應用，想讓Android用戶付費仍難上加難。Android平台上免費應用近60%，幾乎所有收費應用 都有破解版或免費的同類應用，這使用戶養成了不願付費的習慣。如果一定要購買某個付費應用，支付管道的缺失或極複雜的操作方法等問題也足以讓用戶打消念 頭。　　對中國Android開發者而言，眼下最可行的賺錢模式是免費應用加廣告，但這同樣前途叵測。廣告拋放量多寡完全不在開發者控制範圍，而且廣告 增速遠不及應用增速，這意味著每個廣告位分得的收入隨之減少。同時，Android收費應用數量太少對免費應用上的展示廣告有直接影響。谷歌旗下移動廣告 公司AdMob統計顯示，85%的應用內置廣告都由其他應用拋放—如果沒有足夠多的收費應用，免費應用上的廣告從那裡來？　　朱衡不止一次向本刊提及目前Android平台上廣告收入下降得非常厲害︰“我們現下掛的谷歌廣告收入也只是原來的幾分之一。”在中國市場拋放 Android廣告的人更少。提供移動廣告優化工具的果合的員工發現，某Android應用內置的廣告位僅有16個不同廣告供展示。　　軟硬體環境差強人意、開發難度極高、用戶不願付費、廣告資源稀缺，這就是中國Android開發者在無限風光背後的真實生存境況。這裡幾乎不可能有一夜暴富的機會，卻仍有人懷揣希望等待神話。很多開發團隊之所以能支撐下去，僅僅因為賺的是美元花的是民眾幣。　　因此，像Superdroid這樣單純專注於Android開發應用的獨立團隊很少，80%開發者都在為需要佈局Android平台的各種大公司服務。而獨立開發團隊只要有實力，大多都會同時兼顧iOS、Android、Symbian和Windows Phone等多個平台以獲取更多收入並降低風險。　　眼下的生存艱難並不意味著Android是開發者的不歸路。畢竟，這仍是一個被廣泛看好的朝陽平台，銷量已超越iPhone並將繼續飆升。　　另一好消息是，各大移動設備相關公司開始模仿蘋果與KPCB合作的iFund，為有潛力的Android開發者提供天使投資。在中國，急於透過 Android向移動互聯網轉型的聯想集團此前宣佈成立初期金額為1億元民眾幣的“樂基金”，並樂於幫助開發者解決經常遇到的盜版和支付等問題（詳情請於 Gemag.com.cn查閱《不在服務區》）。除了設備製造商，國內三大電信運營商也在積極力推Android平台，希望以此拉動用戶的數據消費。　　大玩家的加入自然是開發者的福音，依附於它們顯然比單打獨斗更有勝算。從另一角度，這也意味“在中國個人開發者沒有太多空間，只能靠管道，靠跟 運營商的關係，靠跟廠商合作搞內置應用搞吸費”。不靠上述任何一點的Superdroid主要面向海外市場開發應用，用戶付費下載和搭載展示廣告是其主要 收入來源。朱衡不願透露具體收入，僅表示養活自己的團隊絕對沒有問題。可以肯定的是，更多產品和收入尚不及他們的，很可能賺的錢還不如去大公司打工的多。　　【根本結症】　　朱衡所說的“中國特色”正是開發者面對Android與蘋果iOS平台時應該注意的最大區別—後者對開發者而言更像道統軟體業，做一個好遊戲再放到App Store裡賣就可以；做Android則必須參與產業鏈。事實上，應用開發者目前在國內最穩妥的賺錢模式就是內置進手機。要做到這一點只有兩個方法︰與N多網、安卓網和機鋒網這些扮演Android應用市場管道的第三方應用網站合作，或者與更上游的通信產業大玩家合作。　　對大部分開發者而言，要參與產業鏈並不容易。想內置進手機必須向掌握著手機硬體生產和銷售管道的電信業者—無論他們做的是光明正大的“行貨”還是潛藏於地下的“水貨”生意—繳納“入門費”，比如一部手機首次激活要交兩塊錢。　　大部分Android應用開發者的短板正在於此。他們遠沒有騰訊在移動互聯網上做Q-Service那樣雄濃的實力，能在手機做出來之前就跟廠 商研究如何把自己的產品整合進去。這不僅要求QQ這樣的殺手級產品，也需要多年累積和巨額資金。更重要的是，這些隨著互聯網和更新興的移動互聯網浮出水面 的年輕人，或者不屑、不願意與堪稱“老前輩”的通信產業為伍，或者根本不理解這是一個怎樣的世界。　　本質上，已成熟多年的通信產業是相當道統的行業。它的管道和上下游信任關係的建立與互聯網很不一樣，更接近上個世紀的生意模式—山西的煤一火車 一火車地運出來，要等賣煤的管道全部賣完才給產煤的煤礦結算。這樣的信任關係絕非一兩天能達成，透過明確分工建立起的道統管道非常強健也缺乏彈性，若干年 內不會有大改變，更不會隨便侵入他人領地。在瞬息萬變的互聯網和移動互聯網，這樣的遊戲規則顯得古板甚至可笑。現下市場上的Android開發團隊基本都 曾在其他平台上做過。“這是一個今天做Windows Mobile應用，明天就可以做Android應用的世界。合作關係以天計算，無需知根知底的信任，更可以隨意複製別人的想法。”陳 對《環球企業家》總 結道。一個典型例證是，美國針對移動設備的新型即時通訊產品Kik發布不到兩個月，國內迅速出現兩款同類模仿產品速聊和米聊。　　更重要的是，像開發者這樣處在產業鏈後端的小玩家，在強大的手機製造和管道面前毫無議價能力。做道統通信行業的人不在乎跟他談合作的移動互聯網 新兵融了多少錢、明天有多少用戶、能賺幾個億，只在乎要的這個產品能不能立刻得到，不能馬上找另一家。憑借將山寨手機“智能化”起家的手機軟體平台斯凱之 所以能一個季度收入就上億元，很大程度憑的就是在道統手機廠商和手機設計公司處“立等可取”的口碑（詳情請於Gemag.com.cn查閱《斯凱︰“中間 路線”》）。　　這種簡單粗暴的做法，正是最健康的一手交錢一手交貨的商業行為，而大部分習慣透過未來預期賺錢的移動互聯網業者卻難以接招。太多人認為只要有幾 個好的創意就能輕易成功，抱著這種既天真又輕率的想法拼命擠入本已魚龍混雜的移動互聯網世界。再加上多金的VC、互聯網巨頭進入後對人才的掠奪，這個才剛 開始嶄露頭角的行業異常浮躁。北京、上海每個月都有好幾場移動互聯網主題的沙龍，開發者疲於奔命，真正賺錢的卻極少，因為拿不出好產品給道統通信業。　相比之下，N多網和安卓網這一類聯繫開發者、終端用戶和上游廠商的移動互聯網應用管道，更像一門生意。至少他們在標榜自己新銳的同時，也在試圖 與上游通信產業建立起牢固的同盟關係。據陳 介紹，N多網與聯發科關係密切，每周都能拿到對方的技術文檔，並在使用聯發科晶片的手機中內置自己的應用商店 程式和軟體。現下，N多網、安卓網和機鋒網都已拿到風險投資。　　“移動互聯網還處在很道統的通信產業鏈中。Android應用管道和開發者都在產業鏈末端，要等前面的環節全部都起來才能輪到我們。所以眼下最 重要的是參與推展整個產業鏈的發展和成熟。”陳 對本刊表示。他認為，互聯網進入通信行業再融合成新的移動互聯網至少還要3至5年，現下就“應該用做道統 行業的心態做移動互聯網的事”。　　陳 將他的每個部門視為一個小賣部，要求大家必須知道今天進了多少貨、賣出多少貨、賺了多少錢、怎么收回成本。“你必須知道時間表上排的每個事 情能不能按時出來、哪個產品還需要什麼功能又什麼時候發布，但不需要拼命思考明年的移動互聯網市場能有多大、什麼時候起來。”過去幾年的創業經驗使他深刻 意識到，總是用看似巨視的眼光看事情，其實什麼也看不出來。因為對絕大多數開發者和創業者而言，大趨勢是自己無法決定甚至根本影響不到的東西，卻有太多人 寄望於在其中渾水摸魚。　　事實上，Android開發者要生存下去並不困難—丟開不切實際的幻想，做好現下手上的事情，不管大小，只要對產業鏈有益就會有人埋單。遺憾的是，這個太簡單的道理始終被湮沒在喧嘩與騷動中。　　Android應用管道和開發者在產業鏈末端，要等前面環節全部起來才輪到我們。所以眼下最重要的是參與推展整個產業鏈的發展和成熟。

&amp;nbsp;
&amp;nbsp;
&amp;nbsp; </description>
		<pubDate>Mon, 25 Jul 2011 09:21:37 +0800</pubDate>
	</item>
	<item>
		<title>4月30日「Android開發者研討會」</title>
		<link>http://lms.xms.com.tw/board.php?courseID=143&amp;f=doc&amp;cid=5737</link>
		<description>&amp;nbsp;
原始連結:
http://chinese.engadget.com/2010/05/18/android-embeded-contest/
公部門投入資源 Android在台灣絕對有商機
&amp;nbsp;
由 Atticus Wu 於 11 months 之前發表

文章分類: PDA手持裝置, 智慧型手機, 軟體應用在4月30日進行的「Android開發者研討會」，看到眾多高手們共襄盛舉，願意投入Android的開放平台市場，其中一些先進更拋磚引玉，將自身的開發經驗以及產業觀察與參與的研發人員分享，包括oAngel雲端救援平台軟體開發經驗的分享、來自資策會整理的android發展應用趨勢報告以及android嵌入式系統發展趨勢的分享，將電腦公會200人的會議室擠得滿滿的，讓我們從嗅出民間對android作業平台發展的信心。當工程師躍躍欲試、國內廠商積極推出android手機、更多國內廠商準備推出android嵌入式系統設備、連遠傳和中華電信繞過Google拼命建構付費軟體平台機制時，公部們怎能沒有動作了？舉辦到今年已經是第八年的經濟部「開放平台行動裝置應用大賽」即日已經開始（詳細競賽內容），相信歷年的參賽朋友都不會陌生，就如同上面所說的，今年競賽特別不同的地方在於以開發 Android 軟體為主。但不僅是如此，這次比賽特別著重商業應用軟體開發上，屆時獲選得獎的廠商，除了有豐厚的獎金以外，還能和國內的電訊商以及手機上連結，這對開發者來說是傳播軟體最棒的途徑。另一個值得一提的是，除了一般應用軟體開發外，這次更有「Android嵌入式系統」競賽項目。安排這個項目實在對到不行的作法，因為台灣有個很棒的優勢，許多廠商有各式各樣的嵌入式產品，例如七吋的MID和以後數位有線電視普及家家都要裝一台的機上盒，甚至各種戶外都媒體廣告的機台，都是android嵌入式產品的大好機會呢！全文有當天研討會的重點實錄：
由世新資管系林宏遠教授開發的「oAngel雲端救援平台」軟體先前我們已經報導過了。這次更提點到一個重點關鍵--軟體開發出來以後，如何和各大救援體系作良好的串接。簡單來說，就是如果消防局、警察局或其他救援單位的資訊系統間，都有一個可以串接資訊的API，並和這套軟體結合，那效果就是十倍百倍了，但如果救援訊號只發給簡訊、Email和SNS的話，這樣很難掌握「到達最後一哩」的時間，這部份反而是軟體開發中最需努力的地方，也感謝林教授在開發程式中也持續和救援單位溝通得到的經驗談。這似乎也意謂著，公部門將各種資料公開化並提供標準傳接格式這樣的環境營造出來，民間的開發者才有機會基於這些資料打造出各種真正有用的應用程式。另外 oAngel 程式還有個貼心小工具，當使用者夜間搭計程車時，只要拍下車牌後程式就會自動紀錄軌跡並直接上傳到伺服器上，這對不暗複雜手機功能的使用者來說，這樣的界面設計可說是剛剛好。資策會劉文山先生則分享android發展應用趨勢報告，其中最值得提到的是 android 應用程式的商業模式，其中包括1).透過android market發佈銷售（但如何讓使用者知道這點十分困難）2).批發-專為機構或學校打造android程式（這部份搭配硬體或許更佳）3).授權-授權給電信業者或手機商收取權利金 4).外包代工-這是許多獨立軟體創業者的第一步 5).內容/服務收費-這是萬年模式，但贏家非常之少。王勝德教授android嵌入式系統發展趨勢的分享中，特別提到日本 KDDI 打造以 MIPS 為基礎的機上盒，透過android系統打造出來的VOD界面，是邁向IP TV的重要途徑之一。但要打造好的 android 嵌入式產品目前首要困難的地方式3D晶片的部份，目前還沒有兩好的對應3D晶片。android 程式資深開發者 Sam 分享更多「開發心法」-在產品開發之前，開發者就要先調查1).市場上有相似的應用軟體嗎？ 2).使用者對你的應用程式是否有強烈的需求呢？ 3).定價多少？ 接著 Sam 進一步提出 GiGi 開發守則，這四個字分別是 GSM, Internet, GPS, Intelligent 的縮寫，在開發軟體時都要思考著有沒有包含上面四個項目。應用程式組有三組優勝名額，每組都可獲得新台幣20萬元整喔！網路人氣獎部份也有三名，也可得獎金五萬元整。這次競賽分成「應用程式組」和「系統軟體組」，特別值得一提的為系統軟體組，以建構嵌入式產品的系統架構為主，這也是以往android競賽特別不同之處，對硬體製造商來說特別有用呢！ </description>
		<pubDate>Wed, 04 May 2011 09:36:36 +0800</pubDate>
	</item>
	<item>
		<title>如何抓取Android 手機畫面</title>
		<link>http://lms.xms.com.tw/board.php?courseID=143&amp;f=doc&amp;cid=4742</link>
		<description>
&amp;nbsp;
軟體你可以把你手機接上PC,然後使用android的DDMS去抓圖, 如下圖所示. 
先切到DDMS頁面,在選手機devices.你把手機接上去PC,然後進到手機的設定頁, è進入應用程式設定è開發設定頁è將除錯模式打開. 
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
接著你的Eclipse的DDMS的devices欄位就會找到你的手機,點選後,在點照片的按鈕(中間圈起來的部份) 就可以抓圖了
&amp;nbsp;
&amp;nbsp;

&amp;nbsp;
&amp;nbsp;
&amp;nbsp; </description>
		<pubDate>Fri, 25 Feb 2011 10:16:10 +0800</pubDate>
	</item>
	<item>
		<title>Android 程式開發入門  導入 (1)</title>
		<link>http://lms.xms.com.tw/board.php?courseID=143&amp;f=doc&amp;cid=4740</link>
		<description>&amp;nbsp;
Dear all, 
&amp;nbsp;
&amp;nbsp;
先前的一個完整的專案範例，我還在補註解，先前比較趕code都完全沒註解
我想等我把註解都補完後在給大家研究比較看的懂．

首先大家先在家練習設計一個List View可以進行多選模式，並刪除所選的資料
刪除後資料會從List中消失．　這是一個很常使用到的List View刪除模式，也就
是一般在看List View中一行一行的資料，例如簡訊，當你想要刪除簡訊時，User
會習慣去按下Menu鍵，接著在Menu選單中會有一個刪除的按鈕，點下刪除後
會進入刪除模式，原本的List View每一行的最右側會出現一個刪除選取鈕，接著
在List View的下方會多出一個刪除和取消的按鈕．
&amp;nbsp;
１．以下是網路上的教學範例，如何客制化一個可以被click的List View元件
http://www.marvinlabs.com/2010/10/custom-listview-ability-check-items/
&amp;nbsp;
２．利用上述的範例去進行修改，先設計一個ListActivity單純只有View List內容，並加入一個冊除按鈕和一個add按鈕在Menu選單中，按下Add按鈕會自動增加List View的內容，先使用簡單的ArrayList練習（你也可以　　在多設計一個Dialog，讓User輸入要新增的文字內容，按下確認後在加入到ListView中，而當　　User按下Menu中的刪除鈕時切換到另一個Activity頁面，切過過去的Acitivity使用第一點提到的技巧，變成可以可以被多選的客制化的List View例表．
&amp;nbsp;
3.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 在列表的最下面加入入刪除與取消的按鈕，當用戶按下去刪除時，將User所勾選的資料刪掉後在切換回第一個單純只有Vise List內容的Acitivy．並更新內容資料，用戶看到的就會是被刪除後的狀態了．
&amp;nbsp;
以下是大至的運作圖參考，List View內容你們可以先從簡單的Array List開始，熟了後在換成比較復雜的自定的List View&amp;nbsp;可以自己加圖和字排版上去．
　
&amp;nbsp;
&amp;nbsp;
&amp;nbsp; </description>
		<pubDate>Fri, 25 Feb 2011 09:42:25 +0800</pubDate>
	</item>
	<item>
		<title>文章:Android車載系統 from RUNPC</title>
		<link>http://lms.xms.com.tw/board.php?courseID=143&amp;f=doc&amp;cid=4526</link>
		<description>Android車載系統
&amp;nbsp;
http://www.runpc.com.tw/content/content.aspx?id=105642 </description>
		<pubDate>Tue, 15 Feb 2011 11:46:29 +0800</pubDate>
	</item>
	<item>
		<title>Google 手持設備應用程式設計入門</title>
		<link>http://lms.xms.com.tw/board.php?courseID=143&amp;f=doc&amp;cid=4212</link>
		<description>&amp;nbsp;
深入淺出 Android -- Google 手持設備應用程式設計入門
&amp;nbsp;
&amp;nbsp; </description>
		<pubDate>Wed, 19 Jan 2011 17:01:00 +0800</pubDate>
	</item>
	<item>
		<title>Android程式設計班_期中測驗</title>
		<link>http://lms.xms.com.tw/board.php?courseID=143&amp;f=doc&amp;cid=3070</link>
		<description>一 : 實作題目
Picasa網路相簿應用程式，提供輸入Picasa帳號，並透過網際網路至Picasa取得用戶的所有相簿列表。並提供一個相片選擇流覽介面。
&amp;nbsp;
二 : 練習目標
1.學習切換Activity，並透過Inten傳遞資料
2.學習使用xml排版Activity UI畫面。
3.學習使用sharepreference，儲存用戶輸入的資料
4.學習使用Adapter載入圖片列表
5.學習透過URL Connecnt連線取得Iimage並解碼後顯示於畫面上 </description>
		<pubDate>Sat, 09 Oct 2010 19:22:42 +0800</pubDate>
	</item>
	</channel>
	</rss>
