{書稿} 建置 Android 開發環境-02

安裝與設定 Eclipse EGit

什麼是 EGit?

EGit 是 Eclipse 的一個團隊提供者 (team provider)套件,它可以讓開發人員直接在 Eclipse IDE 環境內使用 Git 版本控制系統。

EGit 是基於 JGit 套件 (library)所發展,而 JGit 係以 Java 來實現 Git 完整功能的輕量級 (lighweight)套件庫。

安裝 EGit

自 Eclipse 4.2 以後版本,EGit 已成為核心組件,並不需要另行安裝;而若使用 Eclipse 較舊版本,則 EGit 是被視為外掛 (plug-in),可以透過 Eclipse 安裝管理員 (installation manager)安裝。

在 Eclipse 選單上點選【Help】→【Install New Software...】,在出現的對話框內,輸入下列 URL 位址: http://download.eclipse.org/egit/updates

然後按照對話框提示的訊息完成安裝。

圖、安裝 EGit 外掛

圖、安裝 EGit 外掛

閱讀全文 »

{書稿} 建置 Android 開發環境-01

安裝 Android 開發工具

Android App 開發環境只要設置下列兩個開發套件即可:

  • Java SE (Standard Edition)。
  • ADT (Android Development Tools) Bundle。

Java SE

Android App 是以 Java 語言撰寫的,自然需先下載 JDK (Java Development Kit) 的編譯環境。

請至 https://developer.android.com/sdk/index.html 下載 JDK 最新版本;注意下所對應的作業系統、以及 32或64 位元的版本檔案,然後下載直接執行安裝即可。

本書為 Windows 7 x64 的開發環境,最新的穩定版本為 JDK 7,所下載的參考檔案名稱為 jdk-7u51-windows-x64.exe

ADT Bundle

Google 已為 Android 開發人員準備了一套完整的開發套件-ADT Bundle,可讓開發人員不用再各別安裝與設定開發環境,降低 App 開發的門檻。

關於 Android 開發工具,可參考其開發人員首頁 https://developer.android.com/sdk/index.html 獲取更多相關資訊。

ADT Bundle 包含了下列幾個開發套件:

  • Eclipse + ADT plugin。
  • Android SDK Tools。
  • Android Platform-tools。
  • The latest Android platform。
  • The latest Android system image for the emulator。
下載與設定 ADT Bundle

在上述的網頁,點選【Download】下載取得 SDK ADT Bundle for Windows (32/64 位元)。

將所下載的壓縮檔 (檔名為 adt-bundle-.zip) 解壓縮至合適的位置內並可更名較簡短的資料夾名稱 (e.g. C:\adt-bundle-windows)。

開啟資料夾內 /eclipse/ 目錄並執行 eclipse.exe,設定工作區 (workspace)專案儲存目錄 (e.g. C:\Projects\workspace),如此即完成 ADT 的初始配置。

{書稿} 安裝與設定 Git for Windows

安裝與設定 Git

Note:
本書關於 Git 與 Android 開環環境是假設建基在 Windows-based (e.g. Windows 7/8)的系統下;如為 Linux (e.g. Ununtu/Fedora)、Mac 等其它系統,則可參考該系統相關的安裝指引。

在 Windows 環境下使用 Git,必須先安裝核心組件-msysGit。安裝完成後即可在命令列模式輸入 Git 指令,或是利用它內建的圖形界面操作 Git。

本書所有案例操作會同時以命令列 (command promprt)與圖形使用者界面 (GUI, Graphic User Interface)兩種模式,來說明如何執行 Git 操作。

命令列模式即是開啟「命令提示字元」視窗,並輸入 Git 指令;而圖形界面則以整合在 Eclipse 內的 eGit[1] 來執行 Git 。

Note:
雖然安裝完 msysGit 即有圖形界面,但是它作得很粗糙;所以若不是開發 Eclipse 並使用 eGit 的 Windows 使用者,會選擇另一套更友善的圖形使用界面-TortoiseGit。

不過要注意,TortoiseGit 只是 Git 的一種圖形前導 (frontend)界面,所以仍須先安裝完 msysGit 才能執行 Git 指令。

無論 msysGit、TortoiseGit、eGit,甚或其它第三方 Git Client,彼此之間並不會有任何衝突,都可以對同一 Git 儲庫執行 Git 指令。與其它版本控制系統不一樣的就是,所有的 Git Client 其實僅是 Git 原生組件 (component)的「包裹 (wrapper)」而以,它們其實都是操作同樣的 Git 核心組件。

[1] eGit 是已內建於 Eclipse 的 Git 套件,它可以透過 Eclipse 的界面直接操作 Git 指令。下一節會說明如何設定 eGit 組態。

閱讀全文 »

[案例研討] 雲端與安卓系統分析與實作-以豪小子App為例-06

*** 自本篇後續所有的文章內容,作者為賴信仁 (Ringle Lai),並已經由授權延續本案例研討系列。***

 

七、 雲運算技術總覽

7.1. 雲運算的歷史與分類
自從互聯網(Internet)開始進入電腦的世界以來,電腦技術的進展,以超越人類能夠想像的速度超高速發展中。

中國人有句話說:「積沙成塔,聚少成多」,用這句話來形容近來的電腦運算能力的進展,是再適合也不過的了。

在網路環境還不發達的年代中,所有的電腦都是獨立的個體,各自有各自的運算能力,彼此沒有辦法互相溝通,因此,要進行大量的運算,就必須要架構出「超級電腦」來進行超大量的運算;

當網路環境越來越成熟時,區域網路利用「乙太網」(ethernet)進行溝通,因此,在區域網路的環境中,可以架構出「叢集式運算」(Computer Cluster)的環境,讓多個Server可以透過互享資源的方式,將運算能力以倍計成長;

但「叢集式運算」的環境,對於很多的系統管理人員來說,卻是一個惡夢的開始,系統管理人員必須耗費相當多的心力來架構出「叢集式運算」的環境,而硬體及軟體成本也因為要架構出這樣的環境而大幅飆升,原先只是想要取代大型主機,卻發現要耗費的心力其實比維護大型主機更多!

基於這樣的一個背景,有些人開始思考是否有更簡單的方法來架構出一套具備叢集式運算能力,但在管理上更簡單、成本上更節省的方式。

「網格運算」(Grid Comupting)就是在這樣的背景上應運而生。

由於網際網路的傳輸能力大幅提升,無論在速度或是可靠性上,網際網路的能力都逼近了區域網路,因此,是否能夠運用網際網路的特性來進行分散式的運算,就成了計算機科學中的「顯學」。

網格運算主要是將整體的網際網路視為一個「有機體」,在這個有機體中,所有加入「網格」的個人電腦都視作是該有機體的「細胞」,每個「細胞」可以提供他多餘的運算能力,當有一個「運算任務」發出後,各個節點分散了整體的運算任務,讓整個的「網格」可以發揮最大的能力來進行運算。

「網格運算」可以說是分散式運算中的一個極致運用,但是網格運算在管理上仍然是一個很大的問題,由於參與網格是一個「自由」且「自發性」的行為,因此,同一個運算任務究竟需要多少的時間可能都沒辦法事先預測,也因此,是否有更適當的方式能夠同時兼顧「分散式運算」與「集中式管理」?

「雲運算」似乎是達成上述目標的其中一個「聖杯」。

何謂雲運算呢?根據美國國家標準技術研究所(National Institute of Standards and Technology, NIST)的定義,雲運算是:
「Cloud Computing is a model for enabling ubiquitous, convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction. This cloud model is composed of five essential characteristics, three service models, and four deployment models.」(ref: The NIST Definition of Cloud Computing; NIST Special Publication 800-145; Peter Mell & Timothy Grance)

雲運算是一個具備普及性、便利性及隨選式網絡的模型,其可以存取共用的可配置的電腦資源庫(如網絡,伺服器,存儲,應用程式和服務);使用者可以運用最少的管理成本快速地與服務供應商互動。

雲運算模式是由五個關鍵特性、三種服務模型以及四種部署模型所構成。

閱讀全文 »

[案例研討] 雲端與安卓系統分析與實作-以豪小子App為例-05

六、使用案例的實現 (use case realization)-利用循序 (sequence)圖表達物件之間的互動合作-Cloud Server System

圖 12、使用案例的實現 (realization)
(點擊圖片鏈接看原圖)圖12、使用案例的實現 (realization)

    關於使用案例實現的表達意涵:

  • 可以藉由 UML 的合作 (collaboration)圖示,來表現與使用案例的實現 (realization)關係。
  • 使用案例的實現可以是程序導向或物件導向的實作方式,沒有絕對的方法。
  • 程序導向 (procedure-oriented)的實作細節可利用活動圖 (activity diagram)來表達實作的設計。
  • 物件導向 (object-oriented)的實作細節則可以物件合作圖 (如溝通或循序圖)來表達實作的設計。
  • 本例均以循序圖 (sequence diagram)來表達物件內部互動合作的實作。

閱讀全文 »

[案例研討] 雲端與安卓系統分析與實作-以豪小子App為例-04

五、抽象層的結構設計 (abstract structure design)-Cloud Server System

  • Control (控制)
  • 每一個使用案例,對應並規畫一個控制物件 (controller)。控制物件名稱,一般命名建議為「Use Case Name + Control」。例,「彙整林書豪新聞資訊」,則控制物件名稱為:「彙整林書豪新聞資訊Control」。

    圖 9、控制物件類別圖
    (點擊圖片鏈接看原圖)圖9、控制物件類別圖

    閱讀全文 »

軟體思維顧問

專職軟體輔導與教育訓練的獨立顧問。輔導企業資訊單位如何有效組織系統開發與維護;輔導開發人員達成有效的專業分工。傳授如何把軟體作軟 (Keeping Software Soft)的技能,得以提昇系統的彈性/延展,並進而創造系統的再利用價值。

Personal