Android SDK を CLI 環境で更新する

March 11th, 2012 No comments

jenkins 用の android sdk を更新しようとしたら

Exception in thread "main" org.eclipse.swt.SWTError…

というエラーが出た
GUIを表示させない -u オプションがあったので下記コマンドを実行した

sudo -u jenkins /path/to/jenkins-android-sdk/tools/android update sdk -u
Tags: ,

Jenkins(Hudson) で Android アプリケーションのテストを自動実行する

March 5th, 2012 No comments

JenkinsというCIツールが流行っているらしいので試してみました

インストールは公式の手順通り
Installing Jenkins on Ubuntu – Jenkins – Jenkins Wiki

installすると8080ポートで動き出すのでブラウザからアクセスします
http://localhost:8080/

Android のテストはエミュレータで実行する前提で進めます
まずは Android Emulator Plugin を入れます
アップデートセンター [Jenkins]
github にソースを置いてる人は Git Plugin も入れましょう

続いてシステム設定で android sdk と ant の設定をします
システムの設定 [Jenkins]
それぞれ /var/lib/jenkins/tools/ 以下に入るように設定します
(jdk, ant はインストール済みなら多分必要無いです)

android-sdk-path

android-sdk-path


ant-path

ant-path

フリースタイル・プロジェクトのビルドでジョブを作成します
SCMの設定で自分のgitリポジトリを指定します

git-repo

git-repo

ここではローカルのものを指定してますが、git clone に渡せるものであればなんでも構いません
ジョブのワークスペース以下にAndroidのテストアプリケーションと、
そのターゲットとなるアプリケーションの両方が配置されるようにします

workspace

workspace


プラグイン設定でサブディレクトリ以下に clone する設定が分からなかったので submodule を使いました
(そもそもテストを含んだプロジェクト構成にしとくべきですね…その内直します)

続いてビルド環境の設定で適当にAndroidエミュレータの設定をします

android-emulator

android-emulator

最後にビルドの設定です
まずは ant でビルド出来るようにAndroidアプリケーションプロジェクトを更新します

update-android-project

update-android-project

ant によるビルドの実行

ant-build

ant-build

これでエミュレータにアプリケーションとテスト用アプリケーションの両方がインストールされるので、
いよいよテストを実行します

test-execute

test-execute


(横幅の関係で2行になってますが実際は1行です)

これで最低限のテスト自動実行が出来ました

Tags: , ,

近況:テレビとかPS3とか

December 28th, 2011 No comments

すっかりblog書くのサボってますが、年末に色々買いました
あとPSVitaも
これで大画面でゲーム&動画が楽しめる

42Z3

42Z3

買ったのは東芝REGZA 42Z3
本当は一世代前の42Z2が安くて良い感じだったのだけど、売り切れだったので仕方なく
ヨドバシアキバで10万5千円ぐらいのポイント10%還元でした
設置料考えると最安と同等以下の値段だと思います(通販サイトで設置頼むとそれだけで1万ぐらい取られる…)
テレビラックが12800円ほど、1万以下で探してたけどまぁ許容範囲内
ヨドバシの設置料はテレビ1000円のラック2000円で計3000円ほど
今年最後の浪費となるでしょう

買うまではテレビなんて大きいディスプレイぐらいにしか考えてなかったのだけど、
2画面表示出来たりレグザリンクでPS3と連動したり、最近の家電に圧倒されっぱなし…
メニューの表示も意外とレスポンスよくてそれなりに満足です

ゲームの話
PS3はとりあえずテイルズオブヴェスペリア買って全クリ済み、次はグレイセスF、エクシリアかな
Vitaはみんいつだけひたすらやってるけど、本体重量以外は結構良い感じ
動作は軽いのに本体が片手で持つのが辛いぐらい重いのが残念…
ローンチタイトルには欲しいのがないけど、テイルズオブイノセンスのリメイクは買う予定
あとはモンハン出てくれれば…

Tags:

ワイヤレスマウスM515購入…はなかったこともなかった(ありです)

August 28th, 2011 No comments

職場でワイヤレスマウスが支給されて快適に作業できるなー
と感じたので家でもワイヤレスにしたい!と思い、アキバへ

会社ではロジクールのM505(?)だったと思うのですが、
M510、M515というのが電池のもちが良さそう
#最長でM505が15ヶ月、M510&M515が2年との表記
だったので、ボタン数もそんなに要らないし深く考えずにM515にしたのですが、なんかホイールが使いづらい
引っかかりのないホイールで、力を込めて回すとシャーっと回り続けるタイプです
これ、最初は便利かと思ったのですが、
自分の使い方だとちょっと動かしたときにどれぐらいスクロールするか把握しづらくて逆に使いづらかったです

多分、ソフトウェアキーボードが好きになれないのと同じ理由
回した後止まる感触がないので移動量が測れず気持ち悪いですね
大人しく会社と同じM505(カチカチするタイプのホイール)を買いなおそうと思います
久々に大失敗の買い物でした

Unifyingレシーバはいいですね、挿すだけですぐに使えるようになります
BTみたいに対象を選ぶ必要もないし、電池もちも相当いいみたいです

2011年9月4日 追記
スクロールの件はホイールを押しこむことでカチカチとヌルヌルを切り替えられるんですね
しばらく気づきませんでした…(M505を買う時に店で触っていて気付いた)
若干力入れて回したら壊れそうでビクビクしてますが、M515はそれ以外気になる点はなくなりました!
M505も一応買ったんですが、電池蓋が手の平の位置にあってカチャカチャ気になるので、予備に取っとこうと思います
ホイールは一般的なカチカチタイプ(回すときに抵抗がある)で、全体的に使いやすいです
#電池蓋は個体差もあるかも?お店で触ったときはそんなに気にならなかったので…

Tags: ,

gbaプログラミング | ビットマップモードの初期化

August 16th, 2011 No comments

ずいぶん久しぶりに書く気がする…

最近、会社で勧められてGBAプログラミングを始めました
懐かしのGameBoyAdvanceです
GBAは開発環境が無料で用意できるので、コンソールゲーム開発入門にうってつけらしいです

以下は矩形を表示してカーソルキーで動かすプログラムです
おまじないだらけですね

#include <gba.h>

#define  VideoBuffer   (u16*)0x6000000
void WaitForVsync()
{
  while (*(volatile u16*)0x4000006 >= 160) {};
  while (*(volatile u16*)0x4000006 <  160) {};
}
void Mode3PutPixel(u16 x, u16 y, u16 col)
{
  u16* ScreenBuffer     = VideoBuffer;
  ScreenBuffer[y*240+x] = col;
}
void Mode3DrawBox(u16 sx, u16 sy, u16 ex, u16 ey, u16 col)
{
  u16 x, y;
  for(y=sy; y<ey; y++)
    for(x=sx; x<ex; x++)
      Mode3PutPixel(x, y, col);
}
int main()
{
  SetMode(MODE_3 | BG2_ENABLE);
  u16 col = RGB5(255,0,0);
  u32 dummy ALIGN(4);
  int x = 0;
  int y = 0;
  for(;;)
  {
    WaitForVsync();
    int ox = x,oy = y;
    if( !(REG_KEYINPUT & KEY_UP)    ) y--;
    if( !(REG_KEYINPUT & KEY_DOWN)  ) y++;
    if( !(REG_KEYINPUT & KEY_LEFT)  ) x--;
    if( !(REG_KEYINPUT & KEY_RIGHT) ) x++;
    if (ox != x || oy != y) {
      CpuSet((u32)&dummy, (u32)VideoBuffer, ((240*160*2) / 4) | (1<<26) | (1<<24));
    }
    Mode3DrawBox(x, y, x+20, y+20, col);
  }
}

ビットマップモードの画面クリア方法が分からなくて嵌ってました
Mode3PutPixelで1pxずつ塗りつぶしていくと全然間に合わず、チラついてしまいます
そこで、CpuSetというGBAのBIOS命令を使って処理させたらチラツキなく画面を更新出来ました(エミュレータ上では)
まぁ、sprite使えやって話なんでしょうが…

環境構築などはGBA develop Wikiを、
今回のCpuSetはゲームボーイアドバンス 実験室のコードを参考にしました
wikiの方のチュートリアルで適当なmain.cにコピペすればmake出来ると思います

Tags: , ,