2015年2月25日水曜日

Android Studio インストールしたけど... AMDだと...

要は、
要するにAMDのCPUのPC(Windows)だと、Android Studioをインストールしたのですが、高速emulatorというものが動作しないようです。残念。

AMDのCPU

Intel VTが使えない。

Intel HAXMがインストールできない。

高速emulatorが動かない。

だらだら書くと、
今月号の日経ソフトウェアの付録に「Android Studio 出始める Android アプリ開発超入門」
っていう付録がついてきました。

よし。いっちょやってみよう。と思いまして、インストールをしました。

そして、「上の△ボタンを押せば、なにもコーディングしてなくても、emulatorが起動し、「Hallo World」が表示されます。」
という記事の通りにやってみたところ、
emulatorが起動しない。

「Nexus_5_API_21_x86」デバイスをせんたくしたところ、こんなエラーがでました。
-------------------------------
emulator: ERROR: x86 emulation currently requires hardware acceleration!
Please ensure Intel HAXM is properly installed and usable.
CPU acceleration status: HAX kernel module is not installed!
-------------------------------

ググったところ、
Intel Haxmを入れるとよいということで、ダウンロードしてきましたが、エラーがでてインストールができない。


また、ググったところ
BIOSで、intel-vtを有効にしないとだめよ。と。
PCを再起動し、BIOSの画面を開いたけど、そういう設定が見当たらない。
あれ?

またまた、ググったところ
intelのCPUの機能ということがわかりました。

ほかのデバイス(AVD_for_Nexus_S_by_Google)もこんなエラーが出まして、
-------------------------------
emulator: ERROR: This AVD's configuration is missing a kernel file!!
-------------------------------

これも、よくわからず。
結局、emulatorが動作しない状況でした。

ですが、AVD Managerから、armのデバイスを追加したところ、emulatorがやっとこ起動しました。
案の定、とても遅いですが。

2015/12/17追記
現在は、genymotionをインストールして使ってます。
エラーで起動しないようなことはないです。めちゃくちゃ遅いということもないです。

2015年2月18日水曜日

Visual Studio 2013 Community

インストールをしてみました。
無料で、MFCの開発ができるようになってました。

Expressとは異なり、作成可能なアプリに制限はないようです。
ユーザーに縛りがありますが、個人開発者はOKとのこと。

■エディションの比較(抜粋)

■FAQ(抜粋)

詳細はこちら

2015年2月8日日曜日

Windows メモリ使用量 監視 を powershellで。

やりたいこと
特定のアプリケーションのメモリ使用量を監視して、結果をcsvとする方法をpowershellでやってみたいです。
コマンドプロンプトで行う方法は、こちらになります。
最終的にこうなる
こんなCSVを作りたい
Step1 使用するコマンド(コマンドレット)
Get-Process を使用します。 powershellでGet-Processを打ち込むと、メモリの使用量等の情報を出してくれるコマンドになります。
Step2 対象のプロセスを絞る
Get-Processの後対象のプロセスの名称を入れると、それだけを表示できるようになります。
ペイントのみにしてみました。
Step3 Get-Processの戻り値を取得する
powershellでは、ドルマークを頭につけたものが変数になります。 (例 $ret)
これにGet-Processの戻り値を入れます。
※.NetのSystem.Diagnostics.Processが取得できます。(詳しくは、 こちら。 Processクラスについては、 こちら。 )

戻り値がProcessクラスのオブジェクトになっているため、
[変数].[メンバ]のようにして、メンバ変数(プロパティ)にアクセスができます。

Processクラスには、メモリ使用量みたいなものがいっぱいあるのですが、物理メモリの使用量WorkingSet64を表示させたい場合はこんな感じにします。

Step4 スクリプトにする
ループさせて、1秒ごとに、メモリの使用量を取得するようにしたものが下のものになります。
できたら、「.ps1」という拡張子をつけて保存します。
#---見出し---
$midashi  = "DateTime, " + "WorkingSet64[B], " 
echo $midashi

#---メモリの監視---
for ( $i = 0; $i -lt 10; $i++ )
{
    #監視する プロセスを取得(毎回取得する。)
    $ret = get-process mspaint

    #情報を出力
    $outinfo = (get-date).DateTime + ", " + $ret.WorkingSet64 
    echo $outinfo

    #1秒待つ。
    Start-Sleep -s 1
}
Step5 csvファイルに出力する。
スクリプトを実行するときに、以下のようにして、実行すればcsvファイルが作成されます。

SJISでcsvファイルを作るために、| out-file....をしています。
以上となります。
苦労した点
・単純にリダイレクト( > )しただけだと、unicodeで保存されるそうで、できたcsvをexcelで開くと、1列だけになって、あれ?っとなりました。

・最初、コマンドプロンプトでやったみたいに、get-processの出力結果からヘッダをとって、csv形式で出す方向で調べていたのですが、
そっちはわからなかったです。
・get-processの戻り値を取得したのはいいのですが、echo $retとやると丸ごとでるし、どう扱えばよいのかよく分からなく行き詰りました。
・echoで改行しないで出力する方法がよくわからず。単純に echo 変数1, 変数2 みたいにしてたら、改行されて行き詰りました。 + で結べばいいんですね。