2012年10月31日水曜日

AmazonEC2でAndroidのビルド環境構築2(beagleboard接続)

Beagleboard-xmを起動させ作業用PCから接続します。

1. beagleboard-xmビルド済みイメージのダウンロード
[コンパイルされたAndroidの入手]
http://software-dl.ti.com/dsps/dsps_public_sw/sdo_tii/TI_Android_DevKit/TI_Android_GingerBread_2_3_4_DevKit_2_1/index_FDS.html
より「beagleboard-xm.tar.gz」をダウンロード

[SDカードの作成]
$ tar xzvf beagleboard-xm.tar.gz
$ cd beagleboard-xm/
カードリーダーライターでmicroSDカードを認識後、
$ df (microSDカードのデバイス名を確認。例:/dev/sdb )
$ LANG=C sudo ./mkmmc-android.sh /dev/sdb
microSDカードを装着し、電源をいれます

これはAmazonEC2からはできないので、PC上に作成された仮想イメージで行います。

HDMI→DVIケーブルで接続されたモニタにAndroidが起動すればOKです。

2. Android SDKのコマンドラインツール の利用
[パスを通す]
/home/ubuntu/.bashrc に下記を追加
export PATH=$PATH:/home/ubuntu/Desktop/eclipse/android-sdk-linux/platform-tools (adb)
export PATH=$PATH:/home/ubuntu/Desktop/eclipse/android-sdk-linux/tools   (ddms,emulator)
@ubuntu:~$ source ~/.bashrc

[emulatorコマンド]
@ubuntu:~$ emulator -avd avd2.3.3

3. ボードとPCの接続
ボードとの接続は2通りあります。
・ネットワーク経由
・USB接続(miniUSBポート利用)

続きは後で。

AmazonEC2でAndroidのビルド環境構築5(ファイル共有)

Ubuntuで作成したファイルを共有する方法です。
今回はUbuntu Oneを利用します。

1.Ubuntu One起動

パスフレーズを入力(キーリング:defaultのパスワード)


画面が起動し、ブラウザも起動する。この状態だとunknown

ブラウザでIDを持ってなければ、作成する。


IDを作成してログインすると
「PCが登録されていなければ、UbuntuPCを登録するようにする」

PCを追加すると、次の画面がでてくる

アプリケーションに戻り「Connect」を押す

成功すると、ホームディレクトリに「Ubuntu One」というフォルダがあり、同期がとれる状態になっている。
そこにファイルをいれると同期ができる。

Windows、MACからもUbuntu One用のソフトがあるので、それを利用すれば簡単に共有ができる。「Dropbox」のイメージで結構使いやすく、同期も早そう。

2012年10月30日火曜日

JavaBeansプログラミング3(フォーム利用:MVC)

フォーム(HTML)、受け取り(Servlet)、データ格納(JavaBeans)、データ表示(JSP)を行います。
MVCで行います。
M:JavaBeans、V:JSP、C:Servletです。

1.Tomcatプロジェクト作成
プロジェクト名:HelloMVC
ルートディレクトリ:sample

パッケージ作成
パッケージ名:hellomvc

ファイル作成
・sample/form.html
・sample/HelloMVC.jsp
・sample/WEB-INF/src/hellomvc/HelloMVC_Servlet.java
・sample/WEB-INF/src/hellomvc/HelloMVC_Bean.java
・sample/WEB-INF/web.xml




IDとパスワードの変更画面(入力して表示するだけ)を作成します。

2.コード作成
2-1 HTMLフォーム
[form.html]

ソースコードはこちら




[HelloMVC_Servlet.java]

package hellomvc;

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class HelloMVC_Servlet extends HttpServlet {
  /**
*
*/
private static final long serialVersionUID = -1378958237392312712L;

public void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException {
// リクエストパラメータの文字エンコーディングを設定
request.setCharacterEncoding("Windows-31J");
// JavaBeansSendMailをインスタンス化
HelloMVC_Bean objBean = new HelloMVC_Bean();

objBean.setId(request.getParameter("user"));
objBean.setPassword(request.getParameter("passwd"));

// HelloMVC_Beanクラスをリクエスト属性にセット.これがないとJSP側で同じオブジェクトを使えません。
request.setAttribute("mvc",objBean);
   // 処理をHelloMVC.jspに転送
  getServletContext().getRequestDispatcher("/HelloMVC.jsp").
  forward(request,response);
  }
}



[HelloMVC_Bean.java]

package hellomvc;

public class HelloMVC_Bean {

// 各種パラメータを保存するプライベート変数を定義
  private String id;
  private String password;

// コンストラクタ
  public HelloMVC_Bean(){
  }

  // 各種プロパティのアクセサメソッド
  public String getId(){
  return id;
  }
  public String getPassword(){
                  return password;
          }

  public void setId(String id){
  this.id=id;
  }
  public void setPassword(String password){
  this.password=password;
  }

}



[HelloMVC.jsp]

<a href="https://docs.google.com/open?id=0B2K8r-qA0vpLTDJESFdwdWtKazg">ソースはこちら</a>[web.xml]
ソースはこちら

うまく実行できれば




①HTML(フォーム)から情報をServletに送信します。

②サーブレットでは

JavaBeanのクラスインスタンスを生成し
HelloMVC_Bean objBean = new HelloMVC_Bean();



objBean.setId(request.getParameter("user"));
objBean.setPassword(request.getParameter("passwd"));

パラメータを受け取り格納します。

その後JSPで同じオブジェクトを利用できるように、オブジェクトをJSPに転送します
// HelloMVC_Beanクラスをリクエスト属性にセット.これがないとJSP側で同じオブジェクトを使えません。
request.setAttribute("mvc",objBean);
   // 処理をHelloMVC.jspに転送
  getServletContext().getRequestDispatcher("/HelloMVC.jsp").
  forward(request,response);

③JSPでは同じオブジェクトを利用し、表示します。

この流れがMVC基本形です。
HTML,Servlet(C),JavaBeans(M),JSP(V)の連携を理解してください。

2012年10月29日月曜日

JavaBeansプログラミング2(HelloServlet)

Servletの確認を行います。

1.プロジェクト、ファイル作成
Tomcatプロジェクトを作成し、
パッケージ名:hello
クラス名:HelloServlet.java
ルートディレクトリ/sample/
を作成します。

2.Servlet用ファイル作成
パッケージ作成「hello」
sample/WEB-INF/src/hello

helloパッケージの中に「HelloWorld.java」を作成


[HelloWorld.java]

package hello; import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class HelloWorld extends HttpServlet { /** * */ private static final long serialVersionUID = -2003654477020348689L; public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException{ response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println("&lt;html&gt;"); out.println("&lt;head&gt;"); out.println("&lt;title&gt;Hello World Servlet!&lt;/title&gt;"); out.println("&lt;/head&gt;"); out.println("&lt;body&gt;"); out.println("&lt;h1&gt;Hello World Servlet!&lt;/h1&gt;"); out.println("&lt;/body&gt;"); out.println("&lt;/html&gt;"); } }

ここで



private static final long serialVersionUID = -2003654477020348689L;はServletではserial IDを振ることになっているので&#12289;警告がでます&#12290;クラス名を右クリックして自動生成します&#12290;doGet()はデフォルトです&#12290;何も指定しなければdoGet()メソッドが呼ばれます&#12290;3. web.xml作成sample/WEB-INF/の中にweb.xmlを作成します&#12290;


[web.xml]



4. 表示http://localhost:8080/HelloServlet/hello/HelloServletプロジェクト名/パッケージ名/ソース名

が表示されればここまで大丈夫です&#12290;