ようこそゲストさん

すらりん日記

2011/10/26(水) Android SDK r14以降でVS-Androidを使う

Android SDK r14(Android 4.0をサポートしたバージョン)から、VS-Androidのサンプルですらビルドが通らなくなった。VS-Androidのサンプルのチュートリアル通りにやってみても失敗し、次に示すエラーメッセージが表示される。
Your build.xml file is outdated. 
Delete it and regenerate it with 'android update project'
そもそもVS-Androidを入れての開発環境ではbuild.xmlはサンプルからコピーして使っていたし、これはそもそも自動生成してできるものじゃなかった。

調査結果

このエラーメッセージはそもそもどこで出されているのかを調べてみた。
r14の状態では、このメッセージは tools/ant/pre_setup.xml に記載されていた。
従来までなら、ここに処理(&設定)が書かれていたはず。

VS-Androidのサンプルにあった build.xmlではこのpre_setup.xmlをインポートして使っていた。
SDKを更新したことで、この役割が変わったようだ。
pre_setup.xmlと同じ場所に、build.xmlというxmlが存在するようになったみたいだ。

解決方法

以下の手順で従来の build.xmlを最新の環境で使用できるようになる。

1.buld.xmlの次の行を編集
  <!-- Required pre-setup import -->
  <import file="${sdk.dir}/tools/ant/pre_setup.xml" />
この部分を、次のように変更する.
  <import file="${sdk.dir}/tools/ant/build.xml" />
2.となっている行を削除

サンプル

自分の環境で "testProj"というVCProjを作成した際に使ったbuild.xmlを下記に表示します。
NativeActivity, hello-JNIのサンプルでこのbuild.xmlが使えることは確認しています。
(ただし、project name="***"の部分は適宜変更してください)


<?xml version="1.0" encoding="utf-8"?>
<project name="testProj" default="help">
  <loadproperties srcFile="local.properties"/>
  <property file="build.properties"/>
  <property file="default.properties"/>
  <loadproperties srcFile="default.properties"/>

  <!-- Required SDK's build.xml import -->
  <import file="${sdk.dir}/tools/ant/build.xml" />
  <path id="android.antlibs">
    <pathelement path="${sdk.dir}/tools/lib/anttasks.jar" />
    <pathelement path="${sdk.dir}/tools/lib/sdklib.jar" />
    <pathelement path="${sdk.dir}/tools/lib/androidprefs.jar" />
    <pathelement path="${sdk.dir}/tools/lib/apkbuilder.jar" />
    <pathelement path="${sdk.dir}/tools/lib/jarutils.jar" />
  </path>
</project>

2011/10/25(火) Android 4.0 (ADT)での罠

Android 4.0が出て、SDKをインストール&更新していたら、
eclipseでうまく動かなくなった。
新規のAndroidプロジェクトを作成しようとしたら、ターゲットSDKのバージョンを選べず真っ白だったりとか。
そんな状態だったので、ADTを更新したらさらに悪化した。。。。

Android SDKのパスがリセットされたのかと思ったけど、そういうわけでもなさそう。
ただ設定項目を開くと、以下のようなメッセージが表示されている。
"com.android.sdkuilib.internal.widgets.SdkTargetSelector.access$000(Lcom/android/sdkuilib/internal/widgets/SdkTargetSelector;)Z"

どうやってもわからなかったので調べてみたところ、
eclipseの設定を一度リセットして再度プラグインを読み込ませる方法でいいらしい。

eclipseのあるフォルダには eclipse-clean.cmd があると思うので、
このエラーが発生したときにはこのバッチファイルを実行してeclipseを起動すればよい。
こちらではこの方法でうまく解決できた。

その他

ちなみにAndroid SDKを最新(4.0を含んだやつ)に更新したら、vs-androidのほうで失敗するようになった。
こちらをこれから調べてみようと思う。

2011/10/23(日) ネイティブAndroid開発に期待が?!

VisualStudioのアドインとしてのVS-Androidを探している途中に、たまたま見つけた"VS-Android-Debugger"というもの。
名前から、VisualStudio上でAndroidのデバッグができるようになるに違いないと期待しています。

vs-android-debugger

普段の開発でVS-Androidとこのデバッガーと両方そろえば、cygwinやeclipseからオサラバできそうな感じです。

今のところ発足したばかりのようで、今後に期待ですね。

2011/10/21(金) WinGDBがイケてる

Androidのネイティブプログラミングをしているときに厄介なのがデバッグ作業です。
一応、最近のSDK(NDK)を使っていれば、ndk-gdb でデバッガをつなげたりするのですが、ちょっと大変です。
できることなら普段のVisualStudioで開発するような感じで実行&ブレークポイント設定したいもんです。

これを実現させてくれるのが、WinGDB for Mobile Systems というソフトウェアです。
現在はまだベータ版なのですが一通りのことは実現させてくれます。
今から製品版が楽しみで、登場したら価格次第ではさっさと買いたいですね。

Java + jniで構成されている環境をインポートして.slnを作成します。
あとは、いつもどおりにF5で実行が可能です。

できたこと

  • ソースコードレベルでのブレークポイント設置
  • 変数の値表示、メモリ表示

不満点

  • スタティックライブラリ作成
ゼロからのプロジェクト作成で、ネイティブのスタティックライブラリを作成することができないという点です。
個人的にちょっとこれは対応してほしい点ですね。
Android.mkなどがすでに用意されている状態でならば、インポートによりスタティックライブラリの開発ができました。
  • Tegra Android Development Pack(TADP)との相性
どうもTADPをインストールした後でWinGDBいれるとうまく動かないようです。
cygwinやSDK,NDKのパスをTADPで設定されたものにしているのですが。
プロジェクトのビルドができないようです。

使う場合には、TADPに頼らずちくちくと自前でインストールしましょうってことなんでしょう。

まとめ

ndk-gdbがうまく使える環境なら、WinGDBも使えると思います。
手元ではGalaxySはうまく動きませんでしたが、ICONIA Tabでやってみたらうまくいきました。

ndk-gdbも、デバッガがない状態からすればとても便利なのですが、
このWinGDBからみるとやはり使いづらいと思います。
printfなどでデバッグしてきた世代からみると夢のような状態ですが、
ソースコードレベルでのデバッグしか経験してないと、Androidでネイティブの環境はきつすぎます・・・。

2011/10/15(土) Tegra Android Development Packを入れてみた

ちょっと気が向いてしまったので、
AndroidのNDKも視野に入れた環境を試してみました。
先月あたりにはAndroid SDKいれてJavaでアプリ作成ということはやってみたのですが、
cygwinの面倒さやAndroidでわざわざC++使わなくてもということで、
NDKの部分においては触らないようにしていました。

がしかし、Tegra Android Development Packの最新版が出ていたようなので、気が向いたこともありちょっと試してみました。

一応、NDKの環境を素からセットアップしたこともあるので
手間な部分については知っています。
それと比較すると、はるかにこのTegra Android Development Packを使ったセットアップは楽でした。
これからAndroidをNDK込みで始めたい!という人にはこれはオススメできます。
環境変数などの設定はインストーラーが勝手にやってしまうので、
そこの部分を自分仕様にしたい人には向かなそうですが。

また、cygwinのbinらにもパスが通ってしまうので、
このあたりを嫌う人にはちょっと難しいかもしれません。


手元にあったGalaxySでビルドして動作を確認してみたのですが、
一応動くようで、今のところ完全にTegra用というわけでもなさそうです。
ネイティブデバッガはまだ含まれていませんでしたし。
ネイティブデバッガが使えるようなバージョンになったころには、そのデバッガはTegra用という感じになるのだろうと思います。

2011/09/25(日) システムドライブ SSD化するにあたって

日記

はじめに

システムドライブをSSDに移行してみるとかなり快適になるという話を聞きます。
確かに、アクセス速度が高速なSSDなので移行すると快適になりそうなのはわかるのですが、フラッシュである以上書き込み上限数の問題や容量が比較的小さい点から、まだ難しいなと思っていました。
今回実験するのにちょうど良い状況があったので、システムディスクに128GBのパーティションとして、システムをゼロから構築してみました。

収まるかチェック

普段使用している環境はそのままじゃ容量オーバーのため持って行けないので、
何がどのくらい使用しているのかを調べ、プログラマPCとしてツール群をインストールしてみて移行は出来そうなのかを確認してみた。
  • Windows7 Professional with SP1
    • インストール直後状態 およそ 22.5GBを使用.
  • VisualStudio 2008 SP1
    • C#,C++の機能に絞ってインストール.
    • スマートデバイス系,Tools for Officeも削除
    • この様に絞ってインストールした結果、3.1GBほどの占有量.
    • Service Pack1をインストール後は、ディスク使用容量が27.1GBに.
      • この結果からSP1はおよそ2GBほど使用するんだろう.
  • Microsoft Office 2007
    • Word,Excel,PowerPointに絞ってインストール.
    • 1.5GBほど使用するような感じ. ディスク使用容量が28.6GBに.
  • VisualStudio 2010 SP1
    • C#,C++の機能に絞ってインストール.
    • 使用するのは5.5GBほどらしい. ディスク使用容量が35.2GB
    • Service Pack1をインストールしてみる. ディスク使用容量が 38.1GB
  • DirectX SDK 2010 June
    • インストール後は、ディスク使用容量が 40.0GB
この時点でユーザーフォルダをHDDであるDドライブへ移動
  • レジストリを変更してユーザーフォルダはDに配置するように変更
  • 既存のCドライブにあるユーザーフォルダは削除
    • ユーザーフォルダをDにコピーする際には一時的に別ユーザーを作成し、コピー作業を行うこと.
これらの作業をした結果、使用容量は 38.8GBに抑えられた.

まだ余裕がありそうなので、テキストエディタやバイナリエディタなどの細かいツールをシステムドライブ側へインストール
  • ツール例
    • テキストエディタ
    • バイナリエディタ
    • ファイル圧縮展開
    • sshクライアント
ここらでWindows Updateを適用させる.ディスク使用容量は 40.2GBに増加した.
あと20GBほどは使っても問題なさそうと思ったので、さらに下記のソフトウェアを追加でインストールしてみた.
  • VMware Workstation 8.0
  • PhotoshopCS5
  • Chrome
  • Internet Explorer 9
  • Maya 2012
    • 体験版インストール. Mayaのみのコンポーネントでインストール
この時点で 45.8GBの使用量

まとめ

自分にとって必須ツールのインストールでいっぱいいっぱいになってしまうのではと考えていたのですが、意外にそんなこともなかったです。まだ半分までにも余裕があるので128GBのSSDを購入したとしても上記構成ならSSDを割と長く使っても安心できる感じです。

2011/09/24(土) VMwareWorkstation8.0出てた

vmware
つい最近のようですが、VMware Workstation 8.0が出ていました。
早速、アップグレードで購入してみました。

今回の目玉機能としては、共有VM機能でしょうか。
これは、別PCで動いてるVMware Workstaionに接続して、
手元で動いているかのように見せてくれる機能です。
まあ、画面だけを手元のVMware Workstaionで表示しているだけだったりはしますが。
この部分はvSphere Clientに近い使用感と言えると思います。

他の機能としては、ちょっと試してはいないですが、3Dグラフィックスの性能向上、仮想マシン内でESXiを動かし、その中でさらに64bit仮想マシンを動かすことも出来るようになったみたいです。
昔はESXi on VMwareの中で 64bit仮想マシンは起動できなかった覚えがあるので、この部分の改良でしょうか。

気付いた点

  • 付属のVMware Playerが 4.0になった!
  • 物理マシンを仮想化するための機能が搭載されている模様.
  • UIがすっきりした。
    • なんとなくですが操作しやすくなった気がします

ESXiとの連携について

vSphere ClientでESXiに接続していましたが、VMware Workstation 8.0でもESXiに接続できるようになっています。普段利用するWorkstationのほうからESXiに接続できるのは便利ですね。
おかげでvSphere Clientを起動してESXiにアクセスする頻度はかなり下がりそうです。

2011/09/17(土) VisualStudio11 Developer Preview

VisualStudio 11 Developer Previewをインストールしてみた.

インストール時に気付いた点

インストールで付随して一緒にはいったもの。
  • Silverlight
    • Silverlight 4 SDK
    • Silverlight 5 beta SDK
  • SQL Server 2008
  • SQL Server Denali CTP3
  • Visual Studio 11
    • きっと本体.
インストール中は、再起動が2回ほど.
起動時のスプラッシュ画面は現在VS2010と同等。ここは製品版で一気に変わる可能性も。

うれしいポイント

DirectXを触るコードを書いている人にとって嬉しい部分があって、
FBXのモデルを表示したり、テクスチャを表示したりがウィンドウの中でできるらしい。
またシェーダーをノードベースで生成できたりする点も見逃せない.
このあたりは、こちら(http://www.shader.jp/?p=247)にうまく解説されてるので見てみるといいかも。
かなりすごいです。

さらに嬉しいポイントは C++/CLIでインテリセンスが機能するようになったこと!
この部分だけでVisualStudio2010を捨ててこちらに乗り換えてしまいたいくらい。

その他

  • C++のオプションで、Enable Parallel Code Genaration
    • プラグマによるヒントで並列実行コードを生成するためのオプション模様
コードを開いていてタブが出てくるんだけど左右でなにか分けられている状態.
右側に配置されたときには "Promote" というボタンで左側に移動する.
コードの変更状態でその辺がなにか関係してるような感じ.

ソリューションエクスプローラーでファイルをさらに開けるらしく、
そうするとそのソース内に含まれる関数をみることが出来るみたい。
これでクラスビューに変えなくても関数一覧は見やすくなった。

2011/09/11(日) ESXi 5.0でびっくりした

vmware
ESXi 5.0で機能強化された点に3Dグラフィックスサポートがありました。
Windows Vista/7でAeroが有効にできるというシロモノのようです。

前回の時にはVMwareToolsをインストールしても有効にならなかったので、
諦めていたのですが、今回有効に出来たので日記に記載しておきます。

やり方は実は簡単で、以下の設定だけでOKでした。
  • 仮想マシンの設定で、"ビデオカード"-"3Dサポートを有効化"にチェック
これだけです。
そして仮想マシンを再起動すればOK.
もしかするとテーマの選択でAeroを再設定する必要はあるかもしれませんが。

この結果、vSphere Clientのコンソールの画面でも、
Aeroが有効になっている状態で表示されます!!

・・・あー、おそらく仮想マシンはVersion 8形式で作らないとダメかもしれません。

2011/09/04(日) remoteFX環境下で試してみた

ちょっとだけ調べてみました。
動作環境ではRADEON5450を搭載しています。

Fetch4は使えるのか?

使えないです。

DepthTextureは使える?

使えるようです。

まとめ

やはりGPUを抽象化した別のデバイスとしてみえるため、
ベンダ拡張の機能がまだ強い物は扱えないようです。
Fetch4もダメとなるとNVIDIAのTransparency Antialiasもダメだろうなぁ。

ついでに、デバイスが別物なのでCUDA,(GPU側の)OpenCLもダメかなと思います。

1: yukana 『はじめまして、Remote-FXを試す機会が有ったので試してみました。 CINEBENCHのOpenGLベンチは測れませんでした。 CINEBENCHのCPUは5.72ほど(Xeon E3 1290 3.60Ghz 4C4T) また、FF14ベンチではグラフィックメモリの関係か、ところどころロードが遅い所があり、 GTX580のRemoteFXでもLOWのスコアが2300程度とあまりよろしくありませんでした。 構内LANでの3Dゲームプレイは、ネットブックからでのリモートでも それほど問題が無く(?)プレイすることが可能でした。 (以下がテスト動画です) http://www.youtube.com/watch?v=cit2rO91_ko』 (2011/09/27 15:05)

2: slash 『ありがとうございます。 動画を拝見しましたが、スムーズに動いてますね! うまくいけば3Dのゲームもきちんと遊べそうなところはこの技術すごいです』 (2011/09/27 20:18)