iT邦幫忙

DAY 5
0

Android 實現智慧生活 DIY系列 第 5

實現智慧家庭diy (Day5) - 寫一個能執行於Android手機雲的 Web Application

今天的重點,在於公開如何做一個 符合 Android 與 i-jetty 規格的war 檔,其中關鍵在於dex檔的製作。

限於篇幅,未詳列完整程式碼,若有需要,請留下你的e-Mail Box。

接下來,我們就寫個最著名的 Hello World建構一個最簡單的手機雲服務,
向登入我們手機的人打招呼。

其他文章http://ithelp.ithome.com.tw/category/%E5%AE%B6%E5%BA%AD%E9%9B%B2
在開始動手前,請先確認你的開發環境,我的示範會以我的環境為例。
這裡列出我開發環境清單,安裝步驟參閱該軟件的說明。

1)Java EE 6 SDK Downloads http://www.oracle.com/technetwork/java/javaee/downloads/index.html
2)Eclipse IDE for Java EE Developers http://www.eclipse.org/downloads/packages/eclipse-ide-java-ee-developers/junosr1
3)Android SDK
http://developer.android.com/sdk/index.html

開發環境確認後,請在 Eclipse for J2EE中,建立一個Dynamic Web Project專案名為SayHello,接著在src下建立一個套件 main.java,與一個Servlet 名為HelloWorld,如下圖。

接著編輯 HelloWorld.java 內的doGet(),加入如下的程式碼後

response.setContentType("text/html");
ServletOutputStream out = response.getOutputStream();
out.println("");
out.println("<h1>Say Hello From Servlet in Android</h1>");
out.println("");
out.flush();

你可在Eclipse內先執行看是否會如下圖顯示。

請在Eclipse中的SayHello專案按右键,Export出 war 檔。
並觀察 SayHello 專案路徑下SayHello\build\classes\main\java 應有HelloWorld.class ,而這個檔在我的 Eclipse Workspace並未顯示出來。

所以我須在 檔案總管 到 SayHello\build下複製classes資料夾,將這個資料夾複製到你的Android sdk安裝目錄中的platform-tools裡面,接著開啟命令模式視窗,在platform-tools下,以指令
dx --dex --output=.\classes.dex --core-library .\classes

我們使用 Android安裝目錄下的dx 指令 將 classes資料夾內的Java class轉成dex檔,這dex檔是Android JVM 使用的 格式,而非一般 慣用的 Jar檔。隨後,將dex 檔,壓成 zip檔,再複製到Eclipse專案下的 SayHello\WebContent\WEB-INF\lib,這時,將整個 專案 Export成 SayHello.war檔。如此,我們便完成我們的 war 檔,如下圖。

有了這個 war 我們下回會藉由i-Jetty的upload功能,把這個 war 送進Android內,讓未來的i-Jetty與我們的 War 共同運作。


上一篇
實現智慧家庭diy (Day4) - 如何建構 Android手機的私有雲
下一篇
實現智慧家庭diy (Day6) - 完成了今天的練習,你手機的HomePage就能向登入者 Say Hello。
系列文
Android 實現智慧生活 DIY30

尚未有邦友留言

立即登入留言