ごりぽんソフトウェア

2013-09-29

WX04SH専用?「PHSデータ通信スイッチャ」公開

出来ちゃったんでお披露目です(苦笑)。

とりあえずURLはこちら。

PHSデータ通信スイッチャ(Google Playストア)

もう、ものすごく単純で、PHSデータ通信の状態をON/OFFでトグルするウィジェットと、PHSデータ通信をONにするだけのアプリと、PHSデータ通信をOFFにするだけのアプリの3つが入っているだけです。アイコンは手抜きして、アンテナピクトの絵にしちゃいました。まあ、あまりこういうデザインのセンスは無いのでご容赦を。

内部のコード的には、ほぼ3Gデータ通信ON/OFFのサンプルプログラムそのまま。呼び出すメソッド名をPHS用のものに変更しているだけです。もちろん、アプリに仕立てるにあたって、それなりに工夫とかしてたりしますけどね。

要望などありましたら、アプリの評価かここのコメントまでどうぞ。ちなみに、SDカードへの移動対応についてはもうやってあって登録済みですので、Playストアに反映されるのを待つだけです。

2013-01-27

CyanogenModのビルド環境を整える・改

ビルド環境構築の際に試行錯誤を繰り返したって話はしましたが、その際に何回もUbuntuのインストールからやりなおしたんで、同じ手順を何回も繰り返すことになって大変でした。

そうそう繰り返すことがある話じゃないですが、いつものノリで「面倒だからシェルスクリプトにまとめるか」ってことで作ってみたのでエントリ。まさかの「お手軽ビルド環境構築シェルスクリプト」です。

ということで、シェルスクリプトの内容は以下の通り。Ubuntu 12.04.1 LTSの64bit版向けですので他のディストリビューションや他のバージョンでは使えません。それと、USBデバイスの対応がP-01Dだけですので、他のAndroid端末ではそのままでは基本的に使えません。解る人はアレンジしちゃってください。

また、いつものように無保証です。一応、実PC上とVirtualBox上の仮想環境で試していますので大丈夫だと思いますが、環境構築が失敗したとしても恨まないでください(苦笑)。

#!/bin/bash
cd ~
(cat << EOF) >> .bashrc

# for Build Android OS
export PATH=\$PATH:~/Development/bin:~/Development/android-sdk-linux/tools:~/Development/android-sdk-linux/platform-tools
export USE_CCACHE=1
export CCACHE_DIR=~/Development/CCACHE
EOF
(cat << EOF) > 51-android.rules
SUBSYSTEM=="usb", ATTRS{idVendor}=="04da", MODE="0666", GROUP="plugdev"
SUBSYSTEM=="usb", ATTRS{idVendor}=="05c6", MODE="0666", GROUP="plugdev"
EOF
sudo mv 51-android.rules /etc/udev/rules.d/
sudo chmod a+r /etc/udev/rules.d/51-android.rules
sudo apt-get -y install git-core gnupg flex bison gperf \
build-essential zip curl libc6-dev libncurses5-dev:i386 \
x11proto-core-dev libx11-dev:i386 libreadline6-dev:i386 \
libgl1-mesa-glx:i386 libgl1-mesa-dev g++-multilib mingw32 tofrodos \
python-markdown libxml2-utils xsltproc zlib1g-dev:i386 \
schedtool optipng pngcrush
sudo apt-get -y autoremove
sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so
mkdir -p ~/Development/bin; cd ~/Development/bin
curl -O https://dl-ssl.google.com/dl/googlesource/git-repo/repo
chmod a+x repo
mkdir ~/tmp; cd ~/tmp
git clone https://github.com/flexiondotorg/oab-java6.git
sudo ./oab-java6/oab-java.sh
cd ~; rm -rf ~/tmp
sudo apt-get -y install sun-java6-plugin sun-java6-jre sun-java6-bin sun-java6-jdk
cd ~/Development
curl -o sdk.tgz http://dl.google.com/android/android-sdk_r21.0.1-linux.tgz
tar -xvzof sdk.tgz
rm sdk.tgz
cd ~/Development/android-sdk-linux/tools
./android

前回の手順通りにUbuntu 12.04.1 LTSの64bit版をインストールしてアップデートマネージャーでアップデートを掛けた後、上記の内容をinstall-build-env.shというファイル名で保存*1し、実行属性をつけて端末アプリから実行すれば、あとはほぼ自動で環境構築が行われます。アップデートを忘れるとエラー山盛りになりますのでご注意を。

最後にAndroid SDKのSDKマネージャーが起動するので、必要なファイル*2をダウンロードしておしまいです。終わったら一応、PCを再起動しておきましょう。インストールが正常に終わっていて再起動も済ませていれば、端末アプリからadbコマンド、javaコマンド、repoコマンドが実行できるようになっているはずです。念のため確認してみてください。ついでにP−01Dを繋いでadb devicesコマンドでデバイスが表示されるかも確認を。

途中1回だけ(のはず)、sudoコマンドがパスワードを要求して来ますので、インストール時に決めたパスワードを入力します。パスワードを入力する関係で、端末アプリから実行しないと正常に動作しません。ホームフォルダーアプリから実行する場合は、ファイルをダブルクリック→[端末内で実行する(T)]で実行するようにしてください。

ハードディスク容量に余裕があるなら、最後の行を

./android update sdk -u

とすれば、sudoのパスワード入力以外は完全に自動化できますが、Android SDKをフルセットでダウンロードしてくる関係で、ハードディスク容量を7GBほど余計に使いますし、時間もかなり掛かります。

また、Android SDKのアーカイブファイルのURL(最後から数えて5行目のcurlコマンドの行)は、Android SDKのバージョンが更新されると変化しますので、適宜変更してください。ここのURLも自動取得にしようと思えば出来なくはないんですが、さすがに手間が掛かり過ぎるので手抜きしてます。

ちなみに上記内容のファイルをウチのWEBページにアップロードしてありますので、実は端末エミュレータから

cd ~
wget http://www.zob.jp/~goripon/android/p01d/install-build-env.sh
chmod a+x install-build-env.sh
./install-build-env.sh

と4行入力すれば、シェルスクリプトをダウンロードして環境構築を始められます。ただし、内容の更新は保証できないので、Android SDKのバージョンが上がったら動かなくなるかもしれません。念のため、wgetした後にテキストエディタで内容を確認し、必要があれば修正するようにしてください。

基本的に1回しか実行しないという前提で組まれていますので、複数回の実行はしないでください。使用後はシェルスクリプトの削除を推奨です。もし、何らかの事情で実行が失敗し、再実行する必要がある場合は、ホームディレクトリの.bashrcファイルの末尾に追記されている内容を削除したうえで行なってください。他はそのままで大丈夫なはず。

これでAndroidをビルドしてみる人が増えたら面白いですね。Cyanogenmod for P-01Dへの加勢もちょっと期待してます。

*1:Ubuntu上でこのページを表示し、テキストエディタを起動して直接コピペするのが面倒が無いです。

*2:Cyanogemod for P-01Dをビルドするなら、[Android 4.0.3 (API 15)]と[Tools]の2項目。

2013-01-25

CyanogenModのビルド環境を整える

Cyanogenmod for P-01Dの開発協力を申し出たものの、ビルド環境がどうしてもうまく構築できず、全くお手伝いてきていませんでした。どうもビルド環境の構築って苦手なんですよね。Linuxも得意ってほどじゃないし。

それでもなんとか試行錯誤して、どうにかビルドまで出来るようになったので、覚え書きも兼ねて手順をエントリしてみようかなと。

まずはベースのLinux環境。推奨環境がUbuntuの64bit版なので、Ubuntu 12.04.1 LTSの64bit版をダウンロードしてインストールします。私はゲーム用に使っていたOpteron 246×2/2GB RAM/320GB HDD×2/RADEON 9500という構成のPCが退役したので、これにUbuntuをインストールしてビルド専用マシンにしましたが、デュアルブートにしたり、仮想PCで構築することも出来るようです。

本家Ubuntuのページから[64-bit PC (AMD64) desktop CD](ファイル名はubuntu-12.04.1-desktop-amd64.iso)をダウンロードして、CDに焼いてインストールします。それほど特殊な選択は無いと思いますが、一応、こんな感じに選択してみました。

  • 言語は日本語
  • [インストール中にアップデートをダウンロードする]と[サードパーティーのソフトウェアをインストールする]のチェックボックスは両方ON
  • [インストールの種類]では[それ以外]を選んでswapパーティションのサイズをビルド環境の推奨値である16GBに設定

他の設定は適当で。手順についてはUbuntuのTipsページを参考に。インストールが終わってデスクトップが立ち上がったら、アップデートマネージャーを起動して、ひと通りのアップデートを掛けておきます。アップデートを忘れると、これ以降の作業でエラーが出る場合がありますので、確実にやっておきましょう。

続いて、まずは必須ツール類のインストール。とはいえ、やることは決まっているので、単に端末エミュレータからコマンドをガシガシと入力していくだけです。

sudo apt-get install git-core gnupg flex bison gperf build-essential \
zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev \
libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 \
libgl1-mesa-dev g++-multilib mingw32 tofrodos \
python-markdown libxml2-utils xsltproc zlib1g-dev:i386 \
schedtool optipng pngcrush
sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so

基本的にはAOSPのページにあるInitializing a Build Environmentの通りなんですが、そのままではうまくいかないのでアレンジしてあります。具体的には、後でOracle Javaを入れるのでopenjdk-6-jdkを除外したのと、ウチの環境では何故か入っていなくてビルド時にエラーになってしまったのでschedtool/optipng/pngcrushを追加した*1のの2点。上記コマンド列を1コマンドごと端末エミュレータにコピペすればそのまま動きます。以下、コマンドについては同様。

次はrepoコマンドのインストール。インストール先はパスさえ通せばどこでも良いのですが、今回はホームディレクトリ内にDevelopmentディレクトリを作り、そこにまとめることにしました。

mkdir -p ~/Development/bin; cd ~/Development/bin
curl -O https://dl-ssl.google.com/dl/googlesource/git-repo/repo
chmod a+x repo

更にOracle Javaのインストール。何通りか方法がありますが、CyanogenMod wikiページから辿っていった先に書かれていたoab-java.shを使う方法を採用。

mkdir ~/tmp; cd ~/tmp
git clone https://github.com/flexiondotorg/oab-java6.git
sudo ./oab-java6/oab-java.sh
cd ~; rm -rf ~/tmp
sudo apt-get install sun-java6-plugin sun-java6-jre sun-java6-bin sun-java6-jdk

インストールの最後はAndroid SDK。極力コマンドラインで出来るようにcurlコマンドでダウンロードするようにしてみましたが、WEBブラウザでダウンロードしてきても構いません。他のものと違ってバージョンが変わるとURLも変わるので要注意。

cd ~/Development
curl -o sdk.tgz http://dl.google.com/android/android-sdk_r21.0.1-linux.tgz
tar -xvzof sdk.tgz
rm sdk.tgz
cd android-sdk-linux/tools
./android &

ダウンロードと展開が終わるとSDKマネージャーが起動するので、必要なSDKとツールを選択してダウンロードします。今回はCM9(Android 4.0.4)ベースなので、API15のSDKとPlatform-toolsをダウンロードしておきます。

あとは設定ファイルの作成と書き換えで終了。まず.bashrcへの実行ファイルのパスとビルドキャッシュ関係の追記。

cd ~
(cat << EOF) >> .bashrc

# for Build Android OS
export PATH=\$PATH:~/Development/bin:~/Development/android-sdk-linux/platform-tools:~/Development/android-sdk-linux/tools
export USE_CCACHE=1
export CCACHE_DIR=~/Development/CCACHE
EOF
source .bashrc

んで、最後にAndroid端末をUSB接続で認識させるための設定ファイル51-android.rulesの作成。

cd ~
(cat << EOF) > 51-android.rules
SUBSYSTEM=="usb", ATTRS{idVendor}=="04da", MODE="0666", GROUP="plugdev"
SUBSYSTEM=="usb", ATTRS{idVendor}=="05c6", MODE="0666", GROUP="plugdev"
EOF
sudo mv 51-android.rules /etc/udev/rules.d/
sudo chmod a+r /etc/udev/rules.d/51-android.rules

上記はP-01D用(SUBSYSTEMの1行目が通常起動時・2行目がCWM Recovery起動時)なので、他の機種ならidVendorの値を調べて書き換えてください。

ここまで設定すればビルド環境は完成。Cyanogenmod for P-01Dなら、README.mdに記載のコマンドを順に入力していくだけでビルドが始まります。

*1:このせいでどれだけ試行錯誤したことか……。rootスレの皆様、ありがとうございます。

2011-10-13

x64(64bit)版のPleiades All in Oneを作る(完全版)

まったりとネットを這いずり回っていたら、なんとJStyleの64bit版がリリースされていることに気づきました。前回はJStyleが64bit非対応だったので誤魔化した部分があった訳ですが、64bit版が出たとなれば、当然試してみたくなるというもの。で、早速やってみたのでエントリ。これでEclipseも64bitに移行できます(嬉)。

  1.  Eclipse公式ページのEclipse Downloadsから、64bit版のアーカイブファイルをダウンロードしてきます。Java版ならEclipse IDE for Java EE Developers、C/C++版ならEclipse IDE for C/C++ Developers、PHP版ならEclipse for PHP Developersを元にすれば良いでしょう。
     私の場合はPlatform版が欲しかったので、Eclipse Classicの[Other Downloads]のリンク→Latest Downloadsの"Eclipse 3.x downloads are here."という文の[here]のリンク→Latest Releasesの[3.7.1]のリンク→Platform Runtime BinaryのWindows (x86_64)行・Download列の[(http)]のリンクと辿って、"eclipse-platform-3.7.1-win32-x86_64.zip"をダウンロードしてきました。
  2.  Pleiades All in One 日本語ディストリビューションダウンロードページから、Eclipse 3.7 Indigo Pleiades All in OneのPlatform版Standard All in One (JRE なし)をダウンロードしてきます。中に入っているファイルを流用するだけなので、基本的にどれでも構いませんし、JREも不要です。ただし、今回の手順では、スプラッシュ画像もそのまま流用(というか放置?)しますので、こだわる人は先にダウンロードしておいたEclipseに合わせたものをダウンロードしてください。
  3.  MergeDocプロジェクトのJStyleのリリース一覧ページから、JStyleの64bit版をダウンロードしてきます。最新版は10月8日に公開されたばかりの"jstyle.x86_64_3.7.1.0.zip"です。これが今回のキモ。
  4.  EclipseとPleiades All in One、そしてJStyleの64bit版をを別々に展開します。Eclipseはそのまま使用開始するフォルダに配置して構いません。Pleiades All in OneとJStyleはファイルを取り出すだけなので、それぞれ適当な作業フォルダに展開しておきます。
  5.  Pleiades All in Oneを展開したフォルダの中から"eclipse\eclipse.ini"、"eclipse\eclipse.exe -clean.cmd"、"eclipse\eclipse.exe startup.cmd"の3ファイルと、"eclipse\dropin\"、".metadata.default\"の2フォルダを取り出し、そのままEclipseの同じ場所に上書きコピーします。
  6.  上書きした"eclipse\eclipse.ini"をテキストエディタで開き、4行目("--launcher.library"の次の行)を"plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.100.v20110502"(赤字部分が追加)に書き換えてセーブします。改行コードと文字コードには注意してください。
  7.  JStyleを展開したフォルダの中から"plugins"フォルダを取り出し、そのままEclipseの同じ場所に上書きコピーします。

これで出来上がり。起動すればPleiades All in Oneのスプラッシュ画像と共に日本語化された64bit版Eclipseが起動します。JStyleも64bit版になって、まさに完全版ですね。この手順はEclipse 3.7.1(SR1)用のものですが、多分、バージョンが変わっても同様の手順でできるんじゃないかと思います。まあ、公式に64bit版が出たらこんな手間も要らなくなるのでしょうが、それまで我慢出来ない人(もちろん、ごりぽん自身も含む)は試してみてくださいませ。

ちなみに、前回も例に出した、64bit版のjreフォルダを作成するバッチファイルも同様に使えるので、ちょっと手直しして再掲しときます。64bit版のJDKをインストールした環境で以下のバッチファイルを実行してください。Javaのバージョンに合わせてパスやファイル名を書き換えるのをお忘れなく。

mkdir .\jre
xcopy "%ProgramFiles%\Java\jdk1.7.0\jre" .\jre /e /y
xcopy "%ProgramFiles%\Java\jdk1.7.0\bin" .\jre\bin /e /y
xcopy "%ProgramFiles%\Java\jdk1.7.0\lib" .\jre\lib /e /y
copy /y "%ProgramFiles%\Java\jdk1.7.0\src.zip" .\jre\
copy /y nul .\jre\jdk-7u1-windows-x64

2011-09-24

Storage Accelerantが人気の新着に?!

先日から順次Androidマーケットが新しいバージョンに切り替わっているということで、ウチのDELL Streak君も切り替わったので見ていたんですが、なんと「人気の新着(有料)」の画面に、拙作「Storage Accelerant」が! ということでエントリ。

画面のキャプチャはこんな感じです。右列下から4段目。ちなみに、見栄えがいいので縦画面でキャプチャしていますが、一応、横画面でも画面一番下の段に出てきます(苦笑)。

f:id:goriponsoft:20110924155954p:image

1機種(DELL Streak)専用なのに、ランク入り(?)とは嬉しい限り。とは言え、有料と無料をあわせても2ケタの序盤ですし、まだまだですけどね。

新しいマーケットアプリで気づいたことは「Androidマーケット以外でインストールしたAndroidマーケットに公開されているアプリ」が、きちんと「インストール済」と表示されるようになったこと。おかげで自分でも使ってるStorage Accelerantはきっちり「インストール済」の表示です。もちろん、自分で買ったりなんかしていませんよ?(苦笑)