根據WIKI,Android是基於Linux核心的軟體平台,是Google在2007年11月5日公佈的行動電話系統平台,早期由Google開發,後由開放手機聯盟(Open Handset Alliance)開發,這個組織是Google和其他幾十個手機公司為了推廣此技術所成立的。它採用了軟體堆疊(software stack)的架構,主要分為三部分:
- 低層以Linux核心為基礎,只提供基本功能。
- 其他的應用軟體則由各公司自行開發。
- 以Java作為編寫程式的一部分。

Android應用程式是用JAVA程式語言來編寫,並且運作在一個虛擬機器(VM)中,其中VM不等於JVM,而是Dalvik Virtual Machine。除此之外,還包括Android SDK、APT(Android Development Tools)、Eclipse IDE和JDK。因此要開發Android應用程式,最好是在Linux環境之下,尤其是Ubuntu,當然如果要在Windows環境下開發也可以。
如果要移植Android至Embedded System的產品開發,就必須理解Android系統內部的函式庫、Android執行環境與Linux核心的細節。而就最重要的是開發者不用花費到一毛錢,便可以建構一個很完整且便利的Android應用程式開發環境,並 發展屬於自己的應用程式
Android內建的網頁瀏覽器(Web Browser)的名稱叫做Google Chrome Lite,與iOS當中內建的Safari網頁瀏覽器一樣是採用Webkit網頁引擎(Web browser engine)。Webkit是目前最多知名智慧型手機作業系統採用的網頁引擎。這些作業系統包括了Symbian OS、iOS、Palm webOD與Android等。
Webkit可以讓正常網頁(非手機版本)自動調整成頁寬(auto fit page)的方式完整縮小呈現在手機的小螢幕中,如此可以方便使用者立即在手機上看到正常網頁的全觀,如果要近看某區塊之內容時,只要將該區塊放大即可。
另外Android內建了SQLite的關聯式資料庫引擎(Relational database engine)式的設定資料或者上一次遊戲關卡的資料等。在應用程式當中,如果使用了SQLite,則手機用戶可將相關資料儲存在手機儲存設備中,無需再以網路連線方式存取遠端的資料庫。
Android在未公開之前大多傳聞認為Google開發的是自己的手機電話產品,而不是一套軟體平台。到了2010年1月,Google開始發表自家品牌手機電話的Nexus One。
對於使用者而言,只要先申請一個免費的Google帳戶,當想換一台手機時,就可以在不同廠牌,同樣使用Android作業系統平台的手機之間選擇,簡單地將如聯絡簿等個人資料轉換到新手機上。
Android Market是一個由Google為Android所創建的線上應用程式服務,允許用戶瀏覽和下載一些由第三方開發商為Android開發的應用程式。用戶可以購買或免費試用,讓該應用程式直接下載到Android的手機中。上傳應用程式到Android Market需要20元美金的帳號註冊費,而下載付費軟體需1元美金。
目前應用程式的數量已經突破10萬組以上,不過整體僅為蘋果App Store約1/3的比例,而且Google線上評審似乎顯得「寬鬆」許多,也因此不少應用程式的品質參差不齊,甚至還有人刻意透過撰寫 Android應用程式竊取使用者個人資訊。不過隨著目前Android平台市占率逐漸提昇,數量和品質是後勢看漲!
閱讀全文...
剛接觸嵌入式系統時,直覺聯想到20年前接觸的「單晶片微電腦」(Single-Chip Microcomputer)。同樣是把中央處理器、記憶體、定時/計數器(Timer/Counter)、各種輸出入介面等都整合在一塊積體電路晶片上的微型電腦。當時所用的開發工具是Z84C01微電腦電路模擬板,開發的語言是Z80組合語言。

當時的Z80與Intel 8080、Motorola 6800等都屬於8位元微處理器,而之所以會選擇Z80是因為I/O中斷控制和抗雜訊的能力很強,因此適用於工廠、電梯等工控系統。
Z80是由Zilog公司於1976年製造,後來由Intel公司於1981年製造的8051也是8位元單晶片微電腦,屬於MCS-51單晶片的一種。近年來由於功能不斷加強,價格愈加便宜,傳統的8051已經成為學校的教材。開發的語言除了8051組合語言之外,也可以搭配C語言來縮短開發的時程。
另外美國Microchip公司於1989年開發的PIC(Peripheral Interface Controller),也是8位元微處理器。PIC由於採用RISC架構,快速的運算、簡單易用、價格便宜、低耗電,高速,高輸出驅動電流、豐富多樣化的週邊界面提供選擇等優點,目前廣為業界採用,尤其是大量應用在消耗性電子裝置、家電、玩具等產品上。
其實4位元微處理器多用於冰箱、洗衣機、微波爐等家電控制中;8位元、16位元微處理器主要用於一般的控制領域,一般不使用作業系統;32位元則用於網路操作、多媒體處理等複雜處理的場合,一般要使用嵌入式作業系統。
所謂的嵌入式系統簡而言之是一種『執行部份特定功能』的系統實作上並不限定技術範疇,只要能將特定的功能(function)『嵌入』 到目標裝置(target device)裡,包含這些功能的整體系統(或平臺)即是『嵌入式系統』。
常見的嵌入式系統有:DOS、Windows CE、Palm、EPOC、Linux等,而Embedded Linux其實並不是一個作業系統,而是代表應用Linux系統於embedded system 的名詞。Embedded Linux是Linux for devices 的意思。
根據「Building Embedded Linux Systems」ㄧ書指出,近來以8051微控制器開發新設計的經濟效益似乎已經不高了,其中所隱含的小筆額外費用,已經能擁有整個Linux系統的所有能力。…當然,微波爐中並不需要使用32位元的微處理器,但如果使用它沒有比較貴,而且可以有一個內建的Web伺服器,使其能夠到遠端更新自己的功能,何樂不為呢?
用 Linux 來發展嵌入式系統有以下的優點:
• 開放原始碼、模組化設計
• 穩定性夠
• 網路功能強大
• 跨平台
• 應用軟體眾多
• 選擇多樣
一般用來開發嵌入式系統的 CPU 有:X86、ARM、MIPS、PowerPC等,例如Samsung S3C6410 BOARD。

閱讀全文...
客戶的這台Aspire 8930G有2顆320G的硬碟,所以將原來的系統碟拆下來保留不動,利用另一顆硬碟來做Vista和XP的多重開機。
- 利用SPFDISK分割為2個磁區。
- 將Vista還原光碟(有3片DVD)安裝到第一個磁區(C:)。
- 再利用SPFDISK將第2個磁區設定為開機磁區。
- 安裝Windows XP到第2個磁區。
- 安裝XP的驅動程式。
- 最後利用SPFDISK製作多重開機。
說明:
- 利用SPFDISK分割磁區,可以分割2個磁區分別給不同的作業系統,或者也可以再多分割1個以上的邏輯磁區做為資料碟。
- Acer的還原光碟會進行磁區分割並還原至C磁碟,但不會產生隱藏磁區,所以還原後開機時無法以Alt+F10呼叫還原程式,更不用說想備份還原光碟。
- 因此可以將整個C磁碟以Ghost將整個磁碟備份下來存成image檔,如此就可以將原來的系統碟重新磁區分割製作多重開機了,而當想回復到出廠預設的環境就不用花800元送回維修中心重灌。
- 接下來安裝XP時,因為Aspire 8930G是Intel(R) ICH9M-E/M SATA AHCI Controller,所以一開始要先按F6去進行SATA驅動程式的安裝,而此時就必須要有一台軟式磁碟機(USB介面)將剛才的SATA驅動程式安裝進來,否則XP會找不到硬碟而出現藍底白字的畫面。
要不然就要到BIOS將AHCI模式改成IDE模式囉,不過如此一來,以後進入XP之前都要先設定IDE模式了!! - 如果沒有軟式磁碟機的話,可以利用nLite(http://www.nliteos.com/download.html)將下載的SATA驅動程式整合到XP安裝程式並製作新的安裝光碟,當安裝XP時不用按F6就會自動安裝此SATA驅動程式了。
- 再來就是安裝XP的驅動程式,以下連接可找到大部分的驅動程式:http://komku.blogspot.com/2008/11/acer-aspire-8930-windows-xp-drivers.html
其中如果讀卡機有問題,可以試試下載下列連接點來安裝看看:http://www.downv.com/Windows/install-Z01-cardreader-XP-Vista-v351whql-rar-10180701.htm
閱讀全文...
Q:
如何用GMAIL來發信?
A:
假設GMAIL的帳號是account,密碼是password

Q:
如何用超連接傳送變數?
A:
如在任一頁中建超連接:< a href=Edit.aspx?fbid=23>點擊< /a>
在Edit.aspx頁中取值:String str=Request.QueryString["fbid"];
Q:
承上題,當從電子信箱點擊帳號開通信件的網址時,出現「剖析器錯誤訊息 無法辨認的屬性 'type'。」錯誤訊息。
A:
將IIS中ASP.NET版本的組態設定從1.1改成2.0即可。
Q:
如何在SQL語法處理變數?
A:
(a).SQL修改『某紀錄』語法
Update 1a set name = ‘jack’, chi = 90 where id_no=’90001’
(b).當有變數時的SQL修改語法(C#)
”Update 1a set name = '" + textBoxName.Text + "', chi = " + Int32.Parse(textBoxChi.Text) + " where id_no=' " + textBoxNo.Text + "'";
注意:什麼時候要用單引號『’』,什麼時候不用加呢?
字串:字串前後要加上 ‘ 單引號
Values('" & txt_5_PrjCode.Text & "')”
數值:數值前後要不用加,但是所引用的textbox.text要先用Int32.Parse轉換成數值格式
Values(" & Int32.Parse (txt_5_Period.Text) & "')”
日期:字串前後要加上 ‘ 單引號,所引用的textbox.text要先用DateTime.Parse轉換成日期格式
Values('" & DateTime.Parse(txt_5_BeginDay.Text) & "')”
Q:
網頁之間如何傳接值?
A:
1. 使用QueryString變量
QueryString是一種非常簡單的傳值方式,他可以將傳送的值顯示在瀏覽器的地址欄中。如果是傳遞一個或多個安全性要求不高或是結構簡單的數值時,可以使用這個方法。但是對於傳遞數組或對象的話,就不能用這個方法了。下面是一個例子:
a.aspx的C#代碼
private void Button1_Click(object sender, System.EventArgs e)
{
string s_url;
s_url = "b.aspx?name=" + Label1.Text;
Response.Redirect(s_url);
}
b.aspx中C#代碼
private void Page_Load(object sender, EventArgs e)
{
Label2.Text = Request.QueryString["name"];
}
2. 使用Application 對象變量
Application對象的作用範圍是整個全局,也就是說對所有用戶都有效。其常用的方法用Lock和UnLock。
a.aspx的C#代碼
private void Button1_Click(object sender, System.EventArgs e)
{
Application["name"] = Label1.Text;
Server.Transfer("b.aspx");
}
b.aspx中C#代碼
private void Page_Load(object sender, EventArgs e)
{
string name;
Application.Lock();
name = Application["name"].ToString();
Application.UnLock();
}
3. 使用Session變量
想必這個肯定是大家使用中最常見的用法了,其操作與Application類似,作用於用戶個人,所以,過量的存儲會導致服務器內存資源的耗盡。
a.aspx的C#代碼
private void Button1_Click(object sender, System.EventArgs e)
{
Session["name"] = Label.Text;
}
b.aspx中C#代碼
private void Page_Load(object sender, EventArgs e)
{
string name;
name = Session["name"].ToString();
}
4. 使用Cookie對象變量
這個也是大家常使用的方法,與Session一樣,但Cookie是存放在客戶端,而session是存放在服務器端。而且Cookie的使用要配合ASP.NET內置對象Request來使用。
a.aspx的C#代碼
private void Button1_Click(object sender, System.EventArgs e)
{
HttpCookie cookie_name = new HttpCookie("name");
cookie_name.Value = Label1.Text;
Response.AppendCookie(cookie_name);
Server.Transfer("b.aspx");
}
b.aspx中C#代碼
private void Page_Load(object sender, EventArgs e)
{
string name;
name = Request.Cookies["name"].Value.ToString();
}
5. 使用Server.Transfer方法
這個才可以說是面象對象開發所使用的方法,其使用Server.Transfer方法把流程從當前頁面引導到另一個頁面中,新的頁面使用前一個頁面的應答流,所以這個方法是完全面象對象的,簡潔有效。
a.aspx的C#代碼
public string Name
{
get{ return Label1.Text;}
}
private void Button1_Click(object sender, System.EventArgs e)
{
Server.Transfer("b.aspx");
}
b.aspx中C#代碼
private void Page_Load(object sender, EventArgs e)
{
a newWeb; //實例a窗體
newWeb = (source)Context.Handler;
string name;
name = newWeb.Name;
}
Q:
在.NET 3.0下Web Form如何與Dynamic實體網站結合?
A:
必須先建立Dynamic實體網站,然後再將做好的Web Form程式從「我的電腦」拖拉到Visual Studio的「方案總管」,唯專案名稱要ㄧ樣,同時Web.config的SQL連接字串設定要注意,不要覆蓋到Dynamic實體網站的Web.config,例如:

另外注意當SQL的資料表、某資料表的欄位,或者其他有新增、刪除等異動時,只要從"實體資料模型"中按右鍵執行"從資料庫更新模型"即可!
閱讀全文...
微軟正黑體是Vista之後版本的字型,或者若已經安裝了Office 2007或Visual Studio 2008等微軟軟體的話也會有正黑體。因此Windows XP的使用者,或者沒有安裝提供微軟正黑體的軟體,勢必繼續忍受細明體的"醜"。
當在設計網頁時,為了美化版面,會在CSS設定一些預設字型,微軟正黑體就是首選,然後才是為了以防萬一的新細明體或細明體。因此若沒有微軟正黑體的使用者,將看不到視覺設計師的用心良苦,以下就提供微軟正黑體的下載點:
微軟正黑體下載點
下載後,安裝即可馬上感受到微軟新的改變。不過,對於某些液晶顯示器等的使用者,會發現這個字體卻變得模糊不清,越看越不舒服,其實這要到控制台去設定Clear Type Tuning,提高文字的清晰度。如果控制台沒有Clear Type Tuning工具的話,可以到這個地方下載:
Clear Type Tuning工具
下載完安裝後會直接進入設定步驟,也可以由「開始→設定→控制台→ClearType Tuning」進入,勾選 Introduction 標籤中的「Turn On ClearType」後,點選「Start Wizard」一步一步依序點選最喜歡的顯示字體即可。

安裝以後,工具會協助調整 ClearType 顯示以達到最佳效果,讓使用者更輕鬆舒暢的閱讀螢幕上的文字。另外,安裝後,系統控制面板中會增加一項 ClearType Tuning 配置面板。如果用不習慣亦可從新增移除將之移除。
閱讀全文...

一個Ajax互動過程是從一個被稱為XMLHttpRequest的JavaScript物件開始的,再透過JavaScript使用者端腳本,以非同步互動的方式來執行HTTP請求,並對伺服器回應的XML資料進行解析,然後轉換為HTML格式並輔以CSS來呈現在使用者端瀏覽器中。Spry組件(widget):這是一些預設的常用使用者介面元件,可以使用CSS來自訂這些組件,然後將其新增到網頁中。使用Dreamweaver CS4就可以將多個Spry組件新增到頁面中,而這些組件包括XML驅動的清單和表格、折疊式組件、索引標籤式介面,以及具有驗證功能的表單元素。
在Ajax互動過程中,主要包含以下這幾個處理步驟:
- 使用者透過使用者端瀏覽器在網頁上執行某個操作,例如單擊按鈕、移動滑鼠或從鍵盤上按下某個按鍵等。
- 由於使用者的操作,網頁上發生相對應的DHTML事件。
- 透過回應這個DHTML事件,執行相對應的使用者端JavaScript函數,在執行過程中建立一個XMLHttpRequest物件實體,並註冊一個回呼函數,再透過使用XMLHttpRequest物件,以非同步的方式向伺服器端發送HTTP請求,此時可以透過Web頁面繼續與使用者的介面互動,而避免瀏覽器暫停並等待伺服器的回應。
- 當伺服器端收到XMLHttpRequest物件的請求時,便可透過ASP、JSP、PHP、ASP.NET等伺服器端技術,對使用者端請求的參數進行解析,然後執行適當的應用邏輯並將回應序列化到XML資料中。
- Web伺服器會以標準的XML格式,將回應的資料傳遞給Ajax。
- 當伺服器之回應到達使用者端時,JavaScript的回呼函數會被呼叫,並對XML資料進行解析和處理,再透過CSS和DOM實現頁面的局部更新。
- 使用者將透過使用者端瀏覽器看到頁面更新。
流行的Ajax框架
JavaScript是Ajax技術的一個主要組成部分,在開發Ajax應用程式的過程中,往往需要編寫大量的JavaScript程式碼。為了減少JavaScript編碼量,並簡化Ajax應用程式的開發任務,目前出現了許多出色的Ajax開發框架。
1.Dojo框架
Dojo是麻省理工學院(Massachusetts institute of Technology,MIT)許可下的一個開發原始碼專案,由Alex Russell和Dylan Schiemann等人在2004年發起,其設計目標是解決DHTML開發中長期困擾人們的一些問題。Dojo是一個JavaScript使用者介面開發工具包,使得編寫JavaScript程式碼更容易,構建大型介面更快速,部署動態的使用者介面更方便。Dojo的基礎是一個小型的函式庫檔案,該檔案包括了Ajax、事件處理、頁面特效及語言工具等。在這個基礎上,在Dojo核心中還新增了一些高品質的工具,例如拖放工具、Ajax擴展表單工具、I/O工具、Json-RPC、國際化及回呼方法等。
可以從http://www.dojotoolkit.org/下載
2.Prototype框架
Prototype是一個基礎性的Ajax開發框架,其檔案尺寸小,但功能很實用,適合用於開發中小型Web應用程式。Prototype提供了跨瀏覽器的相容性支援,對一些JavaScript內建物件進行了擴展,還新增了許多自訂物件,Ajax支援功能也是自訂物件中實現的。
可以從http://www.prototypejs.org/下載
3.script.aculo.us框架
script.aculo.us也是麻省理工學院許可下的一個開發原始碼專案,構建於Prototype框架之上的JavaScript函式庫。script.aculo.us框架的設計目標是幫助開發人員快速建立可展示和操作頁面的各種特效。該框架擁有強大的動畫功能,並且支援各種DOM操作和拖放操作,也提供了一些控制項和小元件,例如自動完成、滑動方塊和原地編輯等。
由於script.aculo.us是一個基於Prototype的框架,因此,使用script.aculo.us框架之前,必須先導入Prototype框架的JavaScript函式庫,然後再導入script.aculo.us的JavaScript函式庫。
可以從http://script.aculo.us/downloads/下載
4.Spry框架
Spry框架是Adobe公司開發,該框架實際上是一個JavaScript和CSS函式庫,可用來建構向網站存取者提供更豐富體驗的Ajax網頁。使用Spry框架就可以顯示XML資料,並建立用來顯示動態資料的互動式頁面元素,而無需更新整個頁面。只要有了Spry框架,就可以使用HTML、CSS和極少量的JavaScript程式碼,把XML資料合併到HTML文件中,也可以建立組件(例如折疊組件和選單欄位)或者在各種頁面元素中新增不同種類的效果。
Spry在設計上與其他的Ajax框架不同,Spry框架的標籤非常簡單,便於那些具有HTML、CSS和JavaScript基礎知識的使用者使用,而且也可以為設計人員和開發人員使用,因為實際上它有99%的部份都是HTML。更為可喜的是,在Dreamweaver CS3之後就提供了對Spry框架的支援。透過Dreamweaver CS3/CS4,就可以使用Spry框架進行動態使用者介面的視覺化設計、開發和部署。
Spry框架主要是透過以下這三種方式來提供對Ajax技術的支援。
- Spry資料:Spry資料集是透過JavaScript建立的一個物件。只需要在網頁中編寫幾行程式碼,就可以建立一個Spry資料集物件並從指定的資料來源(例如XML文件、HTML表格及JSON物件等)非同步載入資料,然後在網頁上透過Spry區域來顯示資料。
- Spry組件(widget):這是一些預設的常用使用者介面元件,可以使用CSS來自訂這些組件,然後將其新增到網頁中。使用Dreamweaver CS4就可以將多個Spry組件新增到頁面中,而這些組件包括XML驅動的清單和表格、折疊式組件、索引標籤式介面,以及具有驗證功能的表單元素。
- Spry效果:這是一種提高網站外觀吸引力的簡單方法,這種效果幾乎可以套用於HTML頁面上的所有元素。透過新增Spry效果就可以放大、縮小、漸隱和反白顯示元素,並在一段時間內已可視方式更改頁面元素,以及執行更多的操作。
5.ASP.NET Ajax框架
ASP.NET Ajax框架是由Microsoft公司所開發,其主要設計目標是對現有的ASP.NET伺服器端模型進行擴展,讓它可以產生實現豐富使用者端的JavaScript程式碼,並透過對ASP.NET增加使用者端程式設計模型來簡化使用者端程式設計。
可以從http://www.asp.net/ajax/downloads/下載。
閱讀全文...