Email me: jollen # jollen.org

more: Jollen 的 Embedded Linux 教育訓練

« July 2009 | (回到Blog入口) | September 2009 »

August 2009 歸檔

August 5, 2009

CTimes 矽導論壇:Android產品開發的關鍵五力

文/陳俊宏
jollen@jollen.org
(原文刊載於零組件雜誌2009年6月份)

開放平臺讓我們看見了新機會 關鍵能力培植才能掌握機會

Android手機產品開發的重要能力培植,是搭上Android商機列車的入場卷。在Android手機產品開發,以及技術養成方面,有哪些重要的關鍵能力呢?以下針對這段時間所做的觀察,以及個人的心得,提出五個重要的指標能力,請您不吝指教。

關鍵力一:界面設計。過去談智慧型手機時,大家都了很多的力道在UI設計上,主要的原因除了智慧型手機都是觸控式螢幕的規格外,也受到iPhone很大的影響。Android的「制式界面」比較沒有獨特之處,因此「客製界面」將成為Android手機以及其他Android產品的重要特色。採用OMS系統(Open Mobile System)的oPhone手機,就在UI設計上下了很大的功夫。

關鍵力二:工業設計。手機工業設計(ID)包含手機的體積以及外觀,由於「手機」的特點是「經常攜帶」、「高移動性」以及「時尚配件」,所以手機是否夠輕薄、易攜帶,會是消費者重要的考量點。此外,有些手機代表的是一種時尚配件,或是身份地位的象徵,因此在工業設計的能力也影響到手機的銷售。對Android手機來講,工業設計不但重要,甚致還要更高一層來搭配有特色的UI設計。

關鍵力三:底層技術能力。研究Android作業系統底層技術的目的之一為「培養Android移植技術的能力」。任何Android應用程式都需要底層的支援,才能順利運作在硬體平臺上,而這也正是Android產品開發的核心能力;Android產品開發階段,不但一個高品質的硬體,也需要將Android作業系統移植到該硬體上並進行調校,才能讓Android應用程式在產品上順利執行。

關鍵力四:軟硬整合。上述的「移植能力」並不等於「軟硬整合」的能力。移植的目的是為了讓Android作業系統能在目標裝置上順利執行,並且驅動程式部份也能正常運作。軟硬整合的工作則是希望透過驅動程式的支援,讓Android Framework能發揮硬體的特色,因此如何擴充framework並實作自已的Activity與Service,以及修改framework,將是技術面的關鍵。

關鍵力五:行銷溝通力。手機產業本身就是一個特殊的產業,除了通路行銷(channel marketing)以及電信通路(carrier)的做法外,直銷(direct sale)也會是Android新興品牌手機的一大機會。Android是人人可取得的開放手機作業系統,新的產品概念,可幫助新興品牌進入利基市場,而採取直接銷售,例如透過網路,將是利基品牌手機很有影響力的一個做法。在產品行銷方面,如何與社群(community)以及終端用戶(end-user)溝通,並精確傳遞產品概念,以及經營品牌形象,就成為非常重要的關鍵能力。

與技術面有關的關鍵力三,以及關鍵力四,說明了Android作業系統與過去的Linux手機平臺的不同之處。Android是一個很健全(strong)的Application Framework,framework的擴充與開發技術是重要的技術。以大方向來看,加入新的 library 時需要擴充 application framework。

Android framework 的實作,部份需要考量硬體的規格,例如: Surface Manager 需要考量是否有 GPU 或硬體加速。但 Android application 建立一個 Surface holder時,若是將 Surface 的類型設定為 SURFACE_TYPE_HARDWARE,就必須針對硬體加速與 DMA 做移植工作。這個例子舉Android基本技術能力的重要性。

界面設計(UI)、工業設計(ID)、底層技術(Internals)、軟硬整合(Integration)與行銷溝通力(Communications),共五個關鍵能力。UI與ID是比較抽象的能力,需要天生好手或是有經驗的設計師來協助;底層技術與軟硬整合,是比較具體的能力,可以採用培訓來初步形成,並透過實務經驗來加強,或是採取伙夥合作(partnership)的方式來補足;最後的行銷溝通力,則是一半抽象一半具體,具體的部份是行銷方面有一些標準方法與工具,抽象部份是如何有創意的利用這些標準方法與工具,來傳達正確的產品訊息給消費者。

CTimes 矽導論壇:四個步驟、建立你的Android競爭力

文/陳俊宏(Jollen Chen)
Contact: jollen@jollen.org
(原文刊載於零組件雜誌2009年7月份)

創建自有版本 打開你的競爭力

過去品牌商面臨的一個問題是沒有自已的軟體。所謂的「自已的軟體」並不是拿別人的軟體來使用,或是視取得的開放源碼軟體為自有軟體。Android是一個作業系統,微軟的Windows Mobile也是一個作業系統,他們二者的「本質」上有什麼不同?Windows Mobile是由微軟所「擁有」的軟體,無法「自由」取得;而Android是開放源碼的軟體,每個人都可以透過網路自由取得,但是你擁有它嗎?

取得不代表擁有。建立自已的版本,能控制並掌握整個框架的開發,才叫做擁有。擁有了自已的Android軟體,你就能修改它,並做出任何你想要的版本,取得(get)與擁有(own)意義上有很大的不同。過去Linux以及開放源碼給人的迷思是,由於軟體能自由取得,並做修改,因此不需要付費購買微軟的產品。下載Linux核心與開源軟體,故事才正要開始,首先要面臨到的便是工程的部份。沒有自有的Linux技術團隊,只要假以他手,將專案外包,而工程化後的Linux系統,自已仍無法掌握,照著自已的意思儘情地修改。

如何擁有自已的軟體,以下是個人建議,請您指教。擁有自有Android軟體的第一個步驟是:建立Android進化版本、即自已的分支。將Android框架的原始(original)原始碼(source code)建立一個新分支,也就是自已名字的版本。Google所提供的Android作業系統是「原生版本」,而自有的分支則是「進化版本」。例如:調整Android框架的實作,以加入自有的特性(features),讓自有的進化版與原生版有所差異。試想,當我的Android進化版可以提供更炫麗的操作介面(UI)時,使用原生版本的產品便失去了市場性。最佳典範就是 HTC Sense。HTC Sense是HTC手機的專用UI,針對Android手機,HTC Sense能提供更棒的使用性(usability)。

第二、建立商標。Android作業系統採用Apache授權(Linux kernel除外),而不是較為普及的GPL授權,所以Android作業系統對於商標(trademark)的建立是相當有助益的。商標是企業的一項價值,商標代表「這是我的東西」。當有差異性的Android版本能關閉原始碼,並建立註冊商標時,代表的是一個重要的里程碑:「這是屬於我的Android版本」。最佳典範,一樣是HTC Sense(tm)。

第三、適度貢獻與關閉原始碼。Android作業系統是開放平臺,開放平臺技術開發講求貢獻。OHA聯盟也是如此。廠商要能持續對OHA聯盟有所貢獻,而提交Android框架的程式碼是一個做法。OHA聯盟發給會員的門票並非終身有效,因為仍有被趕出大門的例子。另外,基於自有版本提供一套SDK是非常不錯的做法,例如OMS SDK就是一個典範。

第四、建立應用程式。基於市場與產品建立應用程式,以搭配產品,這是Android作業系統帶來的絕佳機會。是否自創品牌,當然也是一個考量,端看應用程式的價值以及特殊性。進化版Android目前來看,可以有二個發展題目。第一是結合服務的客製化版本,例如:OMS針對China Mobile服務做大量的客製化。第二個是針對UI與使用性做客製化版本,例如上述的HTC Sense。

廠商欲採用Android作業系統,並開發產品,但若不思考如何建立自有的能力,以及創造自有的Android進化版本,是非常可惜的一件事情。最大的盲點在於「外包能解決所有問題」的思維;反之,專案外包(out sourcing)不會是Android能帶來的商業價值,解決方案(solution)才是。針對個人開發者的部份,Android作業系統給開發者(developers)最好的舞臺是Android Marketing,因為越多的拷貝數量(即下載數)代表軟體越有價值。

CTimes 矽導論壇:經營Android軟體設計服務、需要不同的思考

文/陳俊宏(Jollen Chen)
Contact: jollen@jollen.org
(原文刊載於零組件雜誌2009年8月份)

軟體委外設計服務 - 百年老店、全新感受

委外服務(outsourcing)在科技產業是一種普遍的商業模式,透過委外取得解決方案,以及後續服務是產品開發的一種做法,委外服務供應商透過「接案」的方式獲取利潤。特別是在軟體方面,有許多代表性的「軟體代工」廠,讓軟體代工成為委外服務的代表作。

隨著Android被大量關注以及採用,會有越來越多的「Android設計服務」公司出現,透過觀察,確實也有很多專門承接Android軟體專案的公司、小團隊或個人,這是不令人感到意外的現象。在討論Android設計服務前,不如先來思考一下近來當紅的線上軟體商店模式。

Android Market提供的商業模式是收取「安裝」費用,即使用者下載的拷貝(copy)數決定了軟體開發商的營收,雖然Android Market還沒有像App Store這樣成熟,但是「線上軟體商店」的模式幾乎已經被確立了,「應該要做market」的公司,也都宣佈他們的market方案了。這種賺取拷貝數的商業模式最簡單沒有負擔,可以說是比微型創業更小型的創業方式,唯一的考量的是流通在外的裝置(device)數量,因為裝置流通越多,軟體被下載的機會與次數越高。

再談到委外開發的模式,什麼樣的公司,會有「Android應用軟體委外設計」的需求?無疑是想要「bundle」特殊軟體在「產品」上的公司,希望有些軟體在機器出廠時就被安裝,在這樣的前提下,就有二個想法。第一,我們可以單純提供設計服務、交付成果,再由廠商預裝到裝置上,這時「安裝數量」與收費就沒有關係;第二,可以提供收取權利金的方式,安裝到裝置的數量,決定收費,等於收取拷貝數的費用。

對設計服務公司而言,採用以拷貝數為基礎的模式,是比較好的模式,但是這種模式能不能被廠商接受?衡量的依據之一是「解決問題」,或是「提供價值」。一項只能解決問題(技術難題)的服務,大體上只能以服務收費為主;而一個能提高產品價值的軟體,就能收取拷貝數的錢。在這裡所討論的是Android的設計服務,在其他領域,銷售「關鍵技術」是一個很好的商業模式。

Android應用軟體設計商,還要具備的一個思惟是,Android應用軟體是可以被安裝到「任何」的Android裝置上的;因此,為單一廠商或單一產品設計軟體,收取服務費用,還不如自已擁有(own)該軟體的所有權利,並透過market銷售,讓使用者安裝我們的軟體到不同的Android裝置。

但是,在線上軟體商店賣軟體也是辛苦的工作。一些應用軟體開發商,從線上軟體商店賺到的錢是相當微薄的,對人數較多的公司而言,market的模式還無法支撐營運。看來,現階段定位為Android應用軟體開發商的公司,除了採取最容易的「設計服務」外,要以拷貝數為商業模式的基礎,確實要有一些非常的策略才行了。

CTimes 矽導論壇:從Android看小筆電的機會

文/陳俊宏(Jollen Chen)
Contact: jollen@jollen.org
(原文刊載於零組件雜誌2009年5月份)

技術端須補缺口 產品端須達到實用性

社群開發者將Android移植到EeePC後,興起一股「Android小筆電」討論風潮。幾個月後,市場上刮起了一陣開發Android小筆電的新聞。現在,幾家品牌大廠,對Android小筆電市場更是磨刀霍霍。對於這陣Android小筆電的風潮要如何解讀?在此分享個人的觀察與想法,請不吝指教。

Android小筆電的概念是由開發者社群所帶來的。網路上的技術玩家,將 Android 移植到 EeePC 701,並將這個新概念放到YouTube上分享。隨後,網路上開始出現討論,社群網站也接著進行報導,經由社群的推波助瀾,主流媒體也開始進行報導,接著,就像現在我們所看到的現象,Android小筆電開始吸引廠商的注意,大家都認為這是一個有不錯商機的產品。對於Android小筆電產品的熱潮,廠商與使用者的期待與想像也是一個主因。從技面的角度來看,Android小筆電仍有使用介面(UI)上的疑慮。由於Android介面的設計預設對象為手機,因此在小筆電上的畫面表現較不理想,操作方面亦同。Android小筆電在技術端仍需填補一些缺口。

但是,我們不仿從另一個「非技術面」的角度來思考。基於「使用應用程式、上網」為概念的小筆電,看來仍是微軟作業系統的天下,Linux小筆電在市場上起不了大作用的原因是「使用習慣」的問題。因為,使用者免不了將Linux小筆電與微軟系統的小筆電拿來比較。Linux上有OpenOffice 辦公軟體,但微軟系統小筆電上有使用者更習慣的Office套裝軟體;Linux上有Thunderbird電子郵件軟體,但微軟系統小筆電有使用者更習慣的Outlook軟體;不論是上網、電子郵件還是即時通訊,Linux小筆電上的「應用程式」都讓使用者操作得很沒有安全感。

基於「網路服務」概念的Android平臺,因為與微軟系統的小筆電有很大的差異性,因此似乎存在不錯的機會。Android平臺不基於 Linux桌面技術,我們不能將OpenOffice軟體,或是Firefox瀏覽器安裝在Android小筆電上,正好能與現有的小筆電做出相當大的市場區隔。因此有一個很好機會是,我們可以讓使用者很自然地不將Android小筆電與微軟系統小筆電拿來做比較。差異性與區隔性,讓Android小筆電浮現市場價值。

總結來看,現階段Android小筆電仍處於技術玩票階段,要讓Android介面適用在小筆電產品上仍有一些技術距離;Android技術平臺與典型的Linux桌面環境截然不同,Linux或微軟的應用程式,無法「移植」到Android平臺上,但這個技術上的大不同,正好給了Android 小筆電「差異化」的想像空間。產品定位方面,把Android做為取代微軟系統的想法,反而讓Android小筆電失去差異性;應將Android平臺做為「產品使用區隔」的有效工具。未來Android若真的能開發出適合小筆電的版本,一定是個很酷產品。

August 7, 2009

Jollen 的 Android 教學,#27: 使用ACTION_CALL實作自動撥號: HelloIntentDialer

HelloIntentDialer是一個自動撥號程式,執行時會自動撥號到指定的電話。這樣的程式要怎麼寫呢?先看到HelloIntentDialer.java的完整程式如下:

package com.moko.hellointentdialer;
 
import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
 
public class HelloIntentDialer extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
         
        Intent dial = new Intent();
        dial.setAction("android.intent.action.CALL");
        dial.setData(Uri.parse("tel:119"));
        startActivity(dial);        
    }
}

因為permission的關係,所以也要在AndroidManifest.xml裡加上「CALL_PHONE」的權限。AndroidManifest.xml的完整內容如下:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.moko.hellointentdialer"
      android:versionCode="1"
      android:versionName="1.0">
    <application android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:name=".HelloIntentDialer"
                  android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
    <uses-sdk android:minSdkVersion="3" />
    <uses-permission android:name="android.permission.CALL_PHONE" />
</manifest>>

這個範例相當簡單,但足以說明Intent的核心精神了。程式說明:

1. 先產生一個Intent物件:

 Intent dial = new Intent();

2. 設定Intent的action為「android.intent.action.CALL」,這是一個內建的action:

 dial.setAction("android.intent.action.CALL");

內建action「CALL」需要附帶一筆資料,而資料的寫法是使用URI格式:

 dial.setData(Uri.parse("tel:119"));

4. 「CALL」是一個activity action,所以呼叫startActivity()向Intent送給框架:

 startActivity(dial);

這個範例的概念並不難,「送出一個帶有內建action的Intent給框架,因為action為CALL,所以框架會去啟動撥號activity並打電話。」

Jollen 的 Android 教學,#28: HelloIntentSelect - 內容選擇器(Content Chooser)

上一篇教學提到如何利用Intent實作「自動撥放」程式。而另外一個較具代表性的Intent應用就是「內容選擇器」。例如,要怎麼實作一個音樂撥放機呢?先說明音樂撥放器HelloIntentSelect範例的使用情境如下:

1. 執行HelloIntentSelect後,出現一個「撥放音樂」的按鈕
2. 按下按鈕後,選擇一個音樂檔撥放

實作「選擇音樂檔」的做法是使用Intent的「chooser」觀念。程式做法如下:

1. 建立action為ACTION_GET_CONTENT的Intent:

 Intent intent = new Intent(Intent.ACTION_GET_CONTENT);

2.設定Intent的mime type,例如:設定Intent的mime type為聲音檔案:

 intent.setType("audio/*");

3.建立內容選擇器並送出Intent:

 startActivity(Intent.createChooser(intent, "Select music"));

以上的程式是根據Android的Reference Guide寫出來的。當Intent action為ACTION_GET_CONTENT時,表示要根據mime type來「取得內容」(get content),因此呼叫setType()方法,來定義內容的mime type。

定義好mime type後,再呼叫createChooser()方法來產生能取得此mime type內容的「選擇器」,簡單說,就是一個「檔案選取程式」。

利用Android的Intent觀念,我們以不到十行的程式碼實作了一個音樂撥放器。

Action的屬性寫法與常數寫法

Intent的action寫法有二種。第一種寫法是屬性(attribute)寫法,例如第一個HelloIntentDialer範例:

 dial.setAction("android.intent.action.CALL");

在「android.intent.action」套件(package)裡,定義了action的屬性。第二種寫法是常數寫法,例如第二個HelloIntentSelect範例:

 Intent intent = new Intent(Intent.ACTION_GET_CONTENT);

在「Intent」類別(class)裡,定義了action的常數。在記憶的技巧上,可以用「xxx對於到ACTION_xxx」的方式記。例如:

CALL(android.intent.action.CALL)就是ACTION_CALL(Intent.ACTION_CALL)。

又如,所以當我們講「GET_CONTENT」時,指的就是android.intent.action.GET_CONTENT;同理,講ACTON_GET_CONTENT時,就是代表Intent.ACTION_GET_CONTNET。所以「GET_CONTENT」與「ACTION_GET_CONTNET」代表相同的Intent。

hellointentselect-1.png
圖1: HelloIntentSelect主程式

hellointentselect-2.png
圖2: 出現一個Content Chooser:「音樂選擇器」

August 22, 2009

Jollen 的 Android 教學,#29: HelloIntentWallpaper - 背景圖選擇器

Android提供「SET_WALLPAPER」的內建Intent,當框架收到這個Intent時,就會啟動「背景圖選擇器」,讓我們選取新的背景圖。送出SET_WALLPAPER intent的程式寫法如下:

        Intent intent = new Intent(Intent.ACTION_SET_WALLPAPER);
        startActivity(Intent.createChooser(intent, "Select Wallpaper"));

根據Reference Guide的說明,SET_WALLPAPER會啟動一個內容選擇器,所以同時地,我們先呼叫createChooser()方法建立一個內容選擇器後,再送出Intent。

完整程式碼: HelloIntentWallpaper.java

package com.moko.hellointentwallaper;
 
import com.moko.hellointentwallaper.R;
 
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
 
public class HelloIntentWallpaper extends Activity implements View.OnClickListener {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
         
        Button button = (Button)findViewById(R.id.set_wallpaper);
        button.setOnClickListener(this);
    }
 
    public void onClick(View v) {
        Intent intent = new Intent(Intent.ACTION_SET_WALLPAPER);
        startActivity(Intent.createChooser(intent, "Select Wallpaper"));
    }
}

UI設計: layout/main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
	<TextView  
	    android:layout_width="fill_parent" 
	    android:layout_height="wrap_content" 
	    android:text="@string/hello"
	    />
    <Button android:id="@+id/set_wallpaper"
        android:layout_width="wrap_content" android:layout_height="wrap_content" 
        android:text="@string/set_wallpaper">
        <requestFocus />
    </Button>
</LinearLayout>

執行結果

hellointentwallpaper-1.png
圖1: HelloIntentWallpaper主程式

hellointentwallpaper-2.png
圖2: 「背景圖」選擇器

Jollen 的 Android 教學,#30: R.drawable 應用-製作NinePatch圖檔

什麼是NinePatch圖檔

NinePatch是一種「可延展」的PNG圖檔。NinePatch圖檔的用途是製作「可隨文字大小縮放」的圖片,如圖1。

ninepatch-1.png
圖1: 文字背景可隨著文字大小縮放

NinePatch是很有用的圖片格式,可做為widget的「背景圖」。如圖1的範例,其應用程式的設計如下:

  • 文字部份使用TextView元件
  • 使用TextView的XML attribute來設定文字大小
  • 使用TextView的XML attribute來設定一張背景圖
  • 使用NinePatch圖片做為背景圖,如此一來背景圖就可以隨著文字大小縮放

首先,第一個工作就是「製作NinePatch圖檔」,方式如下。

Step 1. 準備一張原始的PNG圖檔,如圖2。

ninepatch-2.png
圖2: 原始PNG圖檔(arrow.png)

Step 2. 啟動Android提供的draw9patch工具,直接執行Android SDK tools/目錄下的draw9patch執行檔即可,如圖3。

ninepatch-3.png
圖3: Android SDK提供的draw9patch工具(點擊看原圖)

Step 3. 開啟原始PNG圖檔,編輯圖檔,如圖4。

ninepatch-4.png
圖4: 開始編輯圖檔(點擊看原圖)

如何編輯NinePatch圖檔

NinePatch圖檔的製作方式是「繪製二條線」,分別在原始圖檔的上方與左方繪出二條「黑線」,黑線所交集的區域即為「可延展」區域。如下圖的粉紅色區域。

ninepatch-5.png
圖5: 定義延展區

「可延展區」是Android框架用來擺放文字的區域,換句話說,文字(TextView)只會被放置在粉紅色區域,並且擺放的原則是「對準粉紅區域的中心點」,即上下置中、左右也置中。非「可延展區」,即綠色部份,並不會隨著文字的大小縮放延展。所以:

1. 綠色區域是固定大小區域
2. 粉紅色區域是可延展區域、文字擺放於此

圖中的「二條黑線」是怎麼畫出來的呢?方式如下。

Step 4. 移動「Zoom」調整圖檔比例,讓「斑馬線」的大小能適中,如圖6。

ninepatch-6.png
圖6: 調整比例

Step 7: 畫黑線

斑馬線是用來畫黑線的區域,怎麼畫黑線呢?用滑鼠點斑馬線就可以了。要怎麼刪除黑線上?按住「Shift」再點斑馬線即可。斑馬線很不好點,所以如果不是要特意訓練操作滑鼠的技巧以及考驗眼力,善用「Zoom」功能可以幫助黑線的繪製。

勾選「Show patches」選項,即可顯示粉紅色區域,如圖7。

ninepatch-7.png
圖7: 即時顯示可延展區

在draw9patch的右邊也會有縮放的展示圖。

Step 8: 完成NinePatch圖檔

儲存完成的NinePatch圖檔,draw9patch會自動將圖檔的副檔名儲存為*.9.png。完成NinePatch圖檔後,就可以開始寫程式了。

* Update: 2009/9/20 - Android擺放文字於NinePatch圖檔上的原則「並非對準粉紅區域的中心點」,已刪除此句。

August 29, 2009

深耕校園、 清華大學Android種子教學培訓課程

Android校園計畫

產學官三界過去在Android的發展做了很多腦力激盪的工作,這是一個很好的現象,有助於Android熱潮的延續,以及各界對Android作業系統的重視。提到Android研發能量的建立,最根本的治理方式是「深耕校園」。

因此,現階段要務是「深耕校園」。實際做法建議是「建立種子」。建立種子師資或種子學生,透過導入課程至大學課程的方式,讓大一與大二的學生「認識」並「開始接觸」Android作業系統;種子學生的建立,可以鎖定大三以上、研究生或是以實驗室為單位,做為培訓對象。這個階段的做法,可以建立採取「種子培訓營」的方式進行。

學生如果能被適當的訓練,就能將把創造力,或是想像力,轉換成「具體」的成果。一個實際的例子是,如果能訓練非資訊本科系的學生撰寫Android應用程式,學生才能有能力把想法轉換成「程式原型」、才能展現創意。因此「深耕校園」的目標應該是要更「普及」,而不是只導入本科系。

活動詳情可參閱嵌入式軟體聯盟網站,以下是課程資訊。希望藉由自已在教育訓練方面的經驗,貢獻棉薄之力。

課程簡介

本課程的目的是培訓大專校院之Android種子教學師資。課程針對Android系統,由底層框架、驅動程式、移植、到應用開發,做一完整的介紹,並利用OpenMoko FreeRunner手機為實驗平臺,實際動手實作。整個課程設計以符合業界實際需要為重點,藉由本課程之培訓,讓學校能充實Android研發能量,未來達到產學結合的效果。

時間:98年9月7日 (星期一) 至9月10日 (星期四)
地點:清華大學資訊電機館資工系3F 328室
資格:國內各大專校院教師或學生,對Android系統之教學及開發有濃厚興趣者
名額:40人
費用:NT$ 2,500 (含午餐、設備使用費、講義;報名後通知繳費)
主辦單位:教育部顧問室嵌入式軟體聯盟、清華大學電腦與通訊科技研發中心、清華大學資訊工程學系
協辦單位:Jollen’s Consulting、清華大學OpenLab
聯絡人: 吳少文小姐 Tel: 03-5742410 E-mail: swwu@mx.nthu.edu.tw

關於 August 2009

此頁面包含了在August 2009發表於Jollen's Blog的所有日記,它們從老到新列出。

前一個存檔 July 2009

後一個存檔 September 2009

更多信息可在 主索引 頁和 歸檔 頁看到。

Top | 授權條款 | Jollen's Forum: Blog 評論、討論與搜尋
Copyright(c) 2006 www.jollen.org