・ このブログの記事(テキスト・画像)について

2011年12月9日金曜日

【swing】Eclipse3.7の「WindowBuilder 」でSwingでレッツアプリ開発!! その4

前回の続き
プログレスバーを使用してみる。

1.追加ソース
 /**
  * Initialize the contents of the frame.
  */
 private void initialize() {
  frame = new JFrame();
  frame.setBounds(100, 100, 450, 300);
  frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  frame.getContentPane().setLayout(new BorderLayout(0, 0));
  JButton btnNewButton = new JButton("開始");
  frame.getContentPane().add(btnNewButton, BorderLayout.SOUTH);


  progressBar = new JProgressBar(0 , 100);

  frame.getContentPane().add(progressBar, BorderLayout.NORTH);
  btnNewButton.addActionListener(this);
  timer = new Timer(100 , this);
  timer.start();


 }

 /**
  * 汎用String格納用メンバ変数
  * メモリ効率を考えてStringBuilderを使用する。
  * */
 StringBuilder mStringBuilder = new StringBuilder();
 /* (非 Javadoc)
  * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
  */
 public void actionPerformed(ActionEvent e) {
  if(mStringBuilder !=null){
   mStringBuilder.delete(0, mStringBuilder.length());
  }
  mStringBuilder.append(e.getActionCommand());
  //開始のボタンイベントかどうか
  if(mStringBuilder.toString().equals("開始")){
   //警告ダイアログを表示する。
      JLabel label = new JLabel("Message");
      label.setForeground(Color.RED);
      JOptionPane.showMessageDialog(frame, label);



  }else{
   //ActionEventがクリックボタンではない場合,プログレスバーの値変更処理開始
   int value = progressBar.getValue();
   if (value == 100) {
    timer.stop();
    return;
   }else{
    progressBar.setValue(value + 1);
   }
  }
 } 
 
 2.プログレスバーが表示された。
プログレスダイアログが表示された。
 

3.プロジェクトについて
ここのサイトに格納しております。何かのお役に立てたら幸いです。


 

2011年12月8日木曜日

【swing】Eclipse3.7の「WindowBuilder 」でSwingでレッツアプリ開発!! その3

前回の続きです。

前回作成した、Buttonにクリックイベントを追加してみます。
下記がソースです。色を変更しているところが追加したところです。


package jp.co.hanatann.swing_hello;

import java.awt.Color;
import java.awt.EventQueue;

import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;

import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;

import javax.swing.JButton;

public class Swing_Hello implements ActionListener{
 private JFrame frame;

 /**
  * Launch the application.
  */
 public static void main(String[] args) {
  EventQueue.invokeLater(new Runnable() {
   public void run() {
    try {
     Swing_Hello window = new Swing_Hello();
     window.frame.setVisible(true);
    } catch (Exception e) {
     e.printStackTrace();
    }
   }
  });
 }

 /**
  * Create the application.
  */
 public Swing_Hello() {
  initialize();
 }

 /**
  * Initialize the contents of the frame.
  */
 private void initialize() {
  frame = new JFrame();
  frame.setBounds(100, 100, 450, 300);
  frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  frame.getContentPane().setLayout(new BorderLayout(0, 0));


  JButton btnNewButton = new JButton("開始");
  btnNewButton.addActionListener(this);
  frame.getContentPane().add(btnNewButton, BorderLayout.SOUTH);

 }

 /* (非 Javadoc)
  * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
  */
 public void actionPerformed(ActionEvent e) {
  //開始のボタンイベントかどうか
  if(e.getActionCommand().equals("開始")){
   //警告ダイアログを表示する。
      JLabel label = new JLabel("Message");
      label.setForeground(Color.RED);
      JOptionPane.showMessageDialog(frame, label);



  }

 }

}

アプリの使用としては、開始ボタンを押して警告ダイアログを表示させる仕様です。

開始ボタン押下

警告ダイアログが表示される。
簡単ですね ^^











2011年12月7日水曜日

【swing】Eclipse3.7の「WindowBuilder 」でSwingでレッツアプリ開発!! その2

前回の続きです。
前回は、swingのベースとなるframeを作成しました。
今回は、ボタンを追加してみました。

1.frameにBorderLayoutを追加する。
これを追加すると、レイアウトが綺麗になるっぽいので追加しますww

frameへBoarderLayoutを追加
 2.Buttonを追加
frameへButtonを追加する。

 3.Buttonのプロパティをいじってみる。
Buttonのプロパティ:textを変更してみる。
 4.アプリを実行してみる。


アプリの下部にButtonが追加されたことが確認できる。



2011年12月6日火曜日

【swing】Eclipse3.7の「WindowBuilder 」でSwingでレッツアプリ開発!! その1

eclipse3.7からWindowBuilderというプラグインが追加されて用です!!!

swingについては、耳にした程度で・・・・具体的にこれで開発したことはありません。

このswingは、
ぱっとみ、マルチスレッド向きでは、無い?って印象です。
シングルスレッド向きのアプリは、作成しやすいのかな?



百聞は一見にしかず!!!
何かアプリを作成してみます。



eclipse3.7のWindowBuilderプラグインはデフォルトでは、無効になっているので、有効にする。




WindowBuilderのプラグインをインストールする。


新規->その他を押下
javaプロジェクトを選択

プロジェクトが生成された
新規->その他->WindowBuilder->Application Windowを選択


パッケージ名と名前を入力する。
swingで必要なフレーム類がプロジェクトへ生成された
プロジェクトをJavaアプリとして起動する。

アプリが起動した。

下記は、生成されたソースの貼り付け

package jp.co.hanatann.swing_hello;

import java.awt.EventQueue;

public class Swing_Hello {

 private JFrame frame;

 /**
  * Launch the application.
  */
 public static void main(String[] args) {
  EventQueue.invokeLater(new Runnable() {
   public void run() {
    try {
     Swing_Hello window = new Swing_Hello();
     window.frame.setVisible(true);
    } catch (Exception e) {
     e.printStackTrace();
    }
   }
  });
 }

 /**
  * Create the application.
  */
 public Swing_Hello() {
  initialize();
 }

 /**
  * Initialize the contents of the frame.
  */
 private void initialize() {
  frame = new JFrame();
  frame.setBounds(100, 100, 450, 300);
  frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 }

}


ほほー、
あっという間に作成できました ^^


2011年12月5日月曜日

【Android】Androidのapkをデコンパイルやeclipseへデバック用にプロジェクトを読み込みしてみる。その2

前回のapkをデコンパイルする方法について・・・・・その2です。

1.環境
WindowsXP
Android開発環境
著作権上問題のないAndroidnoapkファイル
 ecilpse環境
dex2jarをダウンロード
jad をダウンロード
003SH 端末


2.手順~
手順の流れは下記になります。
  1. apkを解凍
  2. 解凍後、classes.dexの取り出し
  3. jarファイルを取り出すため、dex2.jarを使ってみる
  4. 生成されたclasses_dex2jar.jarを解凍して、classファイルを取得してみる
  5. classファイルから javaファイルを取得するため、jad というソフトを使ってみる。
  6. javaファイルゲット!!

 となります。
2.1 apkを解凍
 apkは、実質zip形式ファイルなので、zip解凍ソフトで解凍する。
zip解凍ソフトで解凍する。
zip解凍完了
 

2.2 classes.dexの取り出し
解凍されたclasses.dexを取り出す。
classes.dexを取り出す

2.3 jarファイルを取り出すため、dex2.jarを使ってみる
コマンドをポチット
 classes_dex2jar.jarが生成されます。

2.4 生成されたclasses_dex2jar.jarを解凍して、classファイルを取得してみる
解凍して、classファイルを取得する。
2.5 classファイルから javaファイルを取得するため、jad というソフトを使ってみる。
jadを実行して、javaファイルを生成する。

2.6 javaファイルゲット!!
javaファイルが生成された




でも、これって、Eclipse用にプロジェクトを読み込む場合・・すんなりとはいきません

うーん、javaファイルにデコンパイルできるのは、おいしいですね^^

2011年12月4日日曜日

【Android】Androidのapkをデコンパイルやeclipseへデバック用にプロジェクトを読み込みしてみる。

もし、自分のプロジェクトを紛失して、apkのみしか無い場合の事を考えて、プロジェクト作成できるか、ちょっと調べてみました。


ただ・・・・いろいろありますが2通りあることがわかりました。


1.環境
WindowsXP
Android開発環境
著作権上問題のないAndroidnoapkファイル
 ecilpse環境
apktooldex2jarをダウンロード (dex2.jarについては後日)
003SH 端末

2011年12月3日土曜日

【Android】画面解像度と画面密度~

Android開発をしていると画面解像度と画面密度の対処?がメンドクサイので自分的なメモをw
1.画面解像度
画面解像度とは、横x縦の総画素数の事と理解してます。
ですので、HVGAだとしても、横と縦が異なる場合があります。
そのため、見積もりの前提条件には、HVGA(320x480)と記載するようにしてます ^^

参考サイト



2.画面密度
これ・・・テコヅッタのでいろいろありますが・・・
minSdkVersionの記載を3から4にしたらレイアウトが劇的に崩れた ^^; 時のメモ
(1)まず、AndroidManifest.xmlの

の記述でxmlレイアウトをpx 単位で設定し、アプリを作成する。
(2)この状態で、アスペクト比が同じで画面密度が違う端末でレイアウト確認
->旨く表示されます。px 単位に設定したレイアウトが画面密度が異なる端末でも旨く同じように表示されます。
(3)に変更してアプリを起動すると
画面密度が異なる端末では、レイアウトが崩れます。
(4)対応としては、pxをdpに直しました。
また、動的に座標値を設定している処理については、画面密度のスケール分だけ調整値を入れて修正しました。

これらのことから・・・・
minSdkVersionを3にしていると(Android OS 1.5互換記述だと)pxをdp代わりに解釈するようです。
minSdkVersionを4にしていると(Android OS 1.6互換記述だと)pxはpxとして、dpはdpとして解釈するようです。


っと当時の私は結論にいたりましたww





2011年12月2日金曜日

【Android】CPU使用率について

最近、寒くてお腹をくだして・・・・トイレに篭った花水木です。 ^^;

さてさて
AndroidのCPU使用率について、メモして置きます。

1.環境
Windows
Androidの開発環境を設定済み
003SH端末やemulator

2.Android端末orEmulatorで、CPU使用率を調べる
Android端末orEmulatorのCPU使用率を調べた。
その結果、2通りを試すことができました。


2.1カーネルレベルでCPU使用率やメモリ消費容量を取得


adb shell vmstatによる、全プロセスの総合CPU使用率表示
このコマンドは仮想メモリの統計をレポートするためのに使用します。
参考サイト

上記サイトよりvmstatのヘッダパラメータ一覧抜粋、
1行目 2行目 説明
procs r CPUを割り当て中もしくは割り当て可能なプロセスの数。CPUの個数以下であることが望ましい。

b 割り込みを禁止しているプロセスの数。I/O待ちなどで割り込み不可能なときに発生。ゼロであることが望ましい。
memory swpd 使用している仮想メモリの量(KB)

free 空きメモリの量(KB)

buff バッファキャッシュに使用されているメモリ量(KB)

cache ページキャッシュに使用されているメモリ量(KB)
swap si ディスクからページインされるメモリの量(KB/秒)

so ディスクにページアウトしているメモリの量(KB/秒)
io bi ブロックデバイスから受け取ったブロック数(blocks/秒)

bo ブロックデバイスに送られたブロック数(blocks/秒)
system in 1秒あたりの割り込み回数。クロック割り込みも含む。

cs 1秒あたりのコンテキストスイッチの回数
cpu us ユーザー時間

sy システム時間

id アイドル時間。I/O待ちは含まない。

wa I/O待ち時間

あれ・・・Android端末へvmstatした場合のヘッダパラメータと違う・・・・
Androidにあるvmstatは通常のvmstatと違うということでしょうか?

謎です・・・^^;

何かご存知の方や参考サイトがありましたら教えてください ^^

2.2特定のプロセスIDの使用率を調べる
特定のプロセスIDの使用率を調べる処理をするバッチファイルを作成しました ^^
exeファイルとして公開します。
公開さきはここです。



2.2.1 command_check_cpu_log_on.exe
同階層にlog.txtファイルを生成して、そのファイルへログを追加していくexeファイルです。

起動時の画面

検索するパッケージ名に「sample」が含まれるプロセスのデータをlog.txtファイルへ追加します。

同階層にlog.txtファイルが作成された事を確認できます。

 このlog.txtファイルに検索するパッケージ名に対応する結果が追加されています。



2.2.2command_check_cpulog_off.exe
コマンドプロンプト上にログを出力するexeファイルです。

起動時の画面
コマンドプロンプト上にCPUの計測値が出力されます。




普段、これを使ってCPU使用率を調べています。

2011年12月1日木曜日

【寄付】Grow!がありました

Grow!
という日本初?の寄付サイトがありました。

なんか、FaceBookとTwitterと連携ができるようです。


ふむ・・・・

これベータ版ってかいてあるので・・・・・・まだお試し版ってことでしょうか?





不明ですが ^^;
今後が楽しみです ^^

2011年11月30日水曜日

【Paypal】寄付ボタンは日本では法律に引っかかる?

Paypalの寄付ボタンが面白そうだからいろいろ調べてみました。
その過程でのメモです。

1.PaypalのAPIリファレンス
を読むと寄付機能がちゃんとある ^^
PayPalAPI

むむ・・てことはできるはず!!

2.手順・・・・
Paypalサイトに行くと

丁寧に手順がかいてありました。

 以下、コピペ
//////////////////////////////////////////////////////
PayPal寄付は、次のように簡単に設定して利用できます。
  1. PayPalアカウントにログイン
  2. [決済サービス]タブをクリック
  3. [寄付]リンクをクリック
  4. 寄付の名称、金額(オプション。金額をブランクにしておいた場合、贈与者は寄付金額を選ぶよう求められます)、およびその他の詳細を指定
  5. カスタマイズされたボタングラフィックなどのオプションの情報や、寄付と一緒にメッセージを含める機能を追加
  6. [ボタンを作成]をクリックすると、ボタンファクトリによってカスタマイズされたHTMLコードが生成されます
  7. 自分のウェブサイトにHTMLコードを貼り付けて、[寄付]ボタンを作成
買い手が[寄付]ボタンをクリックすると、買い手は安全なPayPal支払いのページにジャンプし、このページから既存のPayPalアカウントにログインするか、または新しいアカウントに登録して、迅速に取引を完了することができます。/////////////////////////////////////////////////////////////

 よっし、と意気込んで手順通りにやってみました。。。


あれ?

3番の[寄付]リンクをクリック
ってところがみつからないwwww




おーい何これw






ちょっと、Google先生に相談したら
「日本の法律上、個人間の資金決済をPayPalが出来ないらしい。」



げwwww

要調査かな・・・・・・・・


2011年11月29日火曜日

【Android】端末のcpu情報をコマンドから取得

端末のCPU情報をコマンドから取得
1.環境
Windows
Androidの開発環境を設定済み

2.コマンドプロンプトを起動してコマンドを打つ
コマンドプロンプトからadb接続後、cpuの情報を表示する



3.cpuのことについて
図の情報は、ソフトバンクからでている
003SHという通称GALAPAGOS携帯です。


これを見たからって、私には「ふーん」としかwww感想がありません^^;


ただ・・・・知らないのと知っているのとでは大きな違いがあるはず!!


ということで、メモしておきます。

2011年11月28日月曜日

EclipseにGitを設定(1)

EclipseにSVNは設定してたけど、Gitを使ってみたくなった・・・・
設定にいたるまでのメモ代わりに書きます。

改めて、何Gitって?
ていうのは、Google先生に任せて・・・・・・・・・

とりあえず、 設定開始~

1.環境設定
1.1 All in one Eclipse3.6
1.2 これに予めあるプラグイン先の    http://download.eclipse.org/egit/updates    を使用可能にする
Eclipseのウィンドウ->設定->設定ダイアログを起動後、図のようにGitプラグインのサイトを有効にする。

1.3 いるものだけ選択して、プラグインのインストール開始~
Eclipseのヘルプ->新規ソフトウエアのインストール->インストールダイアログを起動後、作業対象から先ほど有効にしたGitのプラグインURLを選択する。
インストールするプラグインを選択する。

1.4 Eclipseが再起動でプラグインのインストール完了しているはず!!
これは、いわゆるEGitっていうプラグインですね。
詳細なドキュメントはここです

2.自前のGitサーバへプロジェクトを登録
プロジェクトを登録するために、無料でプライベートなサーバを調べてみました。
(お金があったら・・・有料にしたいww)
2.1オープンストレージ
オープンストレージを使ってGitサーバを構築
->これって、よく見かけます・・・使えるのは下記かな?
・sugar Sync
BusyBox
・Nドライブ?
・YahooBox ->これ凄く問題あり・・今カスタマーセンターへ問い合わせ中
メモ代わりに問い合わせ内容のリンク張っておきます。

2.2Gitサーバ
無料のGitサーバを調べるとちらほらヒット
その中で、プライベートで使えるサイトで選んだのがこれ
bitbucket
https://bitbucket.org/
 これの良いところは、プライベートで使えるから・・・・・
ただ・・最大データ容量が書かれていないので、いくつまで使えるかわかりませんww

いろいろ設定して、いざゴニョゴニョEclipseをいじる
gitサーバ側のuser:emailとuser:nameを設定


・・・お

Gitリポジトリパースペクティブに登録されたではないかww

大変かな?と思ったら、直ぐできたwww
通常のプラグインと同じ間隔でやるかぁ~


っと思ってたら・・・PullとかHEADとかコミットとか旨くいかないww
ううーん、どうしようかこれw