人気ブログランキング | 話題のタグを見る

VisualStudioでAndroid開発

VisualStudioでもAndroidアプリの開発が出来るようになったので
勉強がてら色々いじってみた

取りあえずデフォルトフォームのビューをデバッグして・・・
・・・遅い
Androidのシミュレータは昔っからモッサモサなことで一定の評価があるが
やはりこれもダメだった

ということで実機をつないでデバッグするしかねーと考え
その設定方法を備忘録として残す(2016/02時点の資料です)

まずAndroidSDKをインスコする(環境はWin10,64bit)
SDKのDLページ

ここはAndroidStudio推しなのでスタンドアロンの方を選ぶ
ASが使えるんならVSなんか使わずそっち使った方がいい、本家なんだし

まずはSDK Tools Onlyの方のインストーラかzipをDLしましょう
フォルダ1個好きなとこに置くだけのホントの意味でスタンドアロンなので
exeでもzipでもどっちでもいいと思う、ここではインストーラ版で説明

デフォルトでは

C:\Program Files (x86)\Android\android-sdk

に入る、はず
こだわりが無ければそのままで
JDKが入ってなかったらその前に入れる流れになると思うけど割愛
インストールの終了時にSDKマネージャを起動します

VisualStudioでAndroid開発_e0349767_12230675.png
余計なものを入れないよう一旦「Deselect All」を押してから
・Android SDK Tools
・Android SDK Platform-tools
・Googlel USB Driver
この3つの入ってない奴をインストールします
(初めてやるなら多分全部入れることになるはず)

インストールが終わったら
adb shell を使えるようにするため環境変数にPathを通します

C:\Program Files (x86)\Android\android-sdk\platform-tools
を追加(重要)

ネットでAndroidSDKについて探すと分かりますが
「adbがtoolsの中にあるのでここにpathを適用する」という資料が散見されますが
これは誤り、というか情報が古い

現行Ver.ではplatform-toolsにadbが移動しているので注意
(ここで小一時間はまる)

Pathを通したらほんとに使えるのか確認
VisualStudioでAndroid開発_e0349767_12373329.png
いけてそう

次に実機をPCにつないで端末のドライバをインストールする
ここについては各機種手順が色々異なると思うので省略

ちゃんとドライバが入ってたらこうなる
VisualStudioでAndroid開発_e0349767_12462147.png
プロパティを開いて「詳細」タブのハードウエアIDを選択
ここの情報をGoogle USB Driverのandroid_winusb.infに追記する

infファイルの場所はデフォルトなら
C:\Program Files (x86)\Android\android-sdk\extras\google\usb_driver
android_winusb.inf内の

[Google.NTx86]
[Google.NTamd64]

の各セクション内に

%SingleAdbInterface% = USB_Install, USB\VID_XXXX&PID_XXXX
%CompositeAdbInterface% = USB_Install, USB\VID_XXXX&PID_XXXX&MI_XX

を記述する(Xは端末ごとに異なるのでそれに合わせて)
使うのはVID,PID,MIなのでREVとかよく分からない数字とかは無視してOK
設定周りはこれ終わりなのでadbがちゃんと端末を認識するか確認

端末が繋がってるのを確認してadb devices

VisualStudioでAndroid開発_e0349767_13030683.png
それっぽいのが出てきたのでOKなんでしょう

最後にVisualStudioを起動してシミュレート目的のプロジェクトを開く
デバッグ端末の選択にアタッチした端末が出てるはずなのでそのままデバッグ実行
VisualStudioでAndroid開発_e0349767_13080824.png
端末側でアプリが起動すれば設定完了

VisualStudioでAndroid開発_e0349767_13144243.png


# by onigirism | 2016-02-19 13:15 | Android | Comments(0)

【戦いに】ディスク100%問題【決着】

今仕事で使ってるPCの起動が重い、とにかく重い
i7にメモリ16GBも積んでるくせになんで起動に5分以上も掛かってんだよクソッタレ!!

タスクマネージャを起動するとディスクが100%のまま推移している
何かが悪さをしている・・・

色々調べてみたら結構同じ悩みを抱える人が多いみたい
メジャーな対応を一通りやってみたけど良くならない
症状は同じなのに対策が異なるってホント質が悪いよなぁ
ということであらゆる手段を講じて解決策を導き出せたので
備忘録としてここに記す

①Win+Rから「services.msc」を実行
「Peer Name Resolution Protocol」を無効にする
「SuperFetch」を無効にする
「WindowsSearch」を無効にする
「WindowsUpdate」を無効にする

サービス系でいらんことをしてるやつを軒並み無効にする作戦
探せばもっとあると思う

②コンパネ→ネットワークとインターネット
→ネットワークと共有センター→イーサネットのプロパティを開いて
「インターネットプロトコル バージョン6」を無効にする
IPv6のやつ、上記のPNRPと一緒になっていらんことをするらしい

③Win+Pauseから
システムの詳細設定→詳細設定→パフォーマンスの設定
→詳細設定→仮想メモリの変更
最小サイズにメモリの1.5倍、最大サイズにメモリの3倍の値を入れる

仮想メモリを増設するドーピング作戦
メモリの値はMB換算で

この辺で大体の人は解決してるみたいだったけど
自分のマシンはそれでも絶賛ディスク100%のまま・・・

タスクマネージャからカスペルスキーを切ってみたりSlackを潰してみたり・・・
半ば諦めかけてたところ、ふと気になることが

④WindowsUpdateのタスクキル
Ctrl+Shift+Escでタスクマネージャを起動
(普通はCtrl+Alt+Deleteだけどこっちは片手で楽々出来るのでオススメ)
プロセスタブを名前でソート
下の方にあるWindowsプロセス内の
「サービスホスト:ローカルサービス」をプルダウン
すると何故かここで「WindowsUpdate」が動いてるのでこれを停止

直った!ディスクが2%とかになった!
サービスの管理でWindowsUpdateは無効にしてるのに
なんでか分からんけどプロセスとして動いていた
起動するたびに確認してみたけど
どうもスタートアップのそれと同名の別プロセスのような感じ
これを無効にするにはどうしたらいいんだろう

取りあえずこんな感じで解決した
同じ問題にぶつかってる人の参考になりますように・・・

2017/09/20 追記
※この方法で必ず解決するわけではないです。
 あくまで数ある解決手段の1つとしてお考えください。
 また、WindowsUpdateは手動で行う形になってしまうので
 セキュリティの面からもマメにアプデを確認しましょう。

# by onigirism | 2016-02-02 10:55 | Windows | Comments(19)

Kinect.Faceの落とし穴

顔認識のライブラリを使用して
書割の画像と合成するオモチャを作ってる際にそれは起きた

Kinect.Faceの落とし穴_e0349767_12473936.png

あわわわわ、Eceptionが止まらない・・・
ObejctDisposedExceptionがKinect.Face.dllで起きてるから
FaceFrameReaderかFrameSource辺りで変なことしてるのかなと思い
該当のソースを見てみる

Kinect.Faceの落とし穴_e0349767_12501209.png
うーん?別に何もおかしくないんだけどな・・・
各Disposeメソッドをコメントアウトするとエラーは消えるものの
これだと画面遷移してもインスタンスが残ったままになるのでよろしくない
ステップで追おうにもpdbを吐かないからどうにもならない

これが昨日の晩からさっきまで頭を悩ませていたけど・・・解決!

Kinect.Faceの落とし穴_e0349767_12530787.png
どうやらFaceFrameReaderのアクティブな状態を止めないといけないらしい
IsPausedプロパティをTrueに切り替えてからDisposeを行うとエラーが出なくなった
SDKのサンプルソースだとWindowのClosingイベント時に同様のことをしているものの
FrameArrivedのイベントハンドラはそのまんま放置してるので、こういうことをしないといけないってのは明記されてない
このハマり状態から抜け出せただけで今日の仕事終わっていいんじゃないのって思うレベル

しかしMSさんよ、IsPausedを何に使うかってことぐらいどこかに書いといてくれないかねぇ・・・。

# by onigirism | 2016-01-26 13:01 | プログラミング | Comments(0)

Windows10所感

昨年末にOSをアップグレードして、新年一発目の仕事はWindows10でスタート
・・・のはずが見た目とか機能とかの面でやや煩わしい部分があったので
今後Windows10へのアップグレードを行った人たちへのメモを残しておく。

なおWindows8,Windows8.1から10へ上げた人向けなので悪しからず。

まず大きく変わるのがモダンUI一覧の廃止。
綺麗に整理整頓して並べてたのが無くなったので何か空しい・・・。
Win10には、Win7まであったスタートメニューみたいなやつにピン留めされたアプリが並べられている。
これが非常に見づらいしアプリも探しにくい。

ということでデスクトップ画面とモダンUIの切り離し、要はWin8系の形に戻す方法を。
1.Winキーから設定を選択して、パーソナル設定画面を開く
2.パーソナル設定画面の「スタート」で「全画面表示のスタート画面を使う」をONにする
これでOK
ただし、アプリの並びは旧Verから引き継がれてないので、自分の好みに並べなおさなきゃいけない。
これはもう我慢するしかない。クソッめんどくせえ。


次に検索ボックスの処遇について。
はっきり言って邪魔、仕事中にCortanaとか使わないし。
1.タスクバーを右クリック→「Cortana」→「表示しない」
これだけでタスクバーすっきり。
でも検索バー無いと困るよ!という人はWinキー+検索したいワードでOK
見かけ上ただのモダンUI一覧が出るけど、実は文字を入力すれば検索画面が出るようになってる。
今までWin+Rで出してたやつと同義と考えていいと思う(というか従来通りWin+Rでもいいんだけど)


ほかにも色々あるけど一応最後に仮想デスクトップを紹介
Linuxだと昔からあるタイプのやつだけどWindowsもようやく搭載されたかぁという感じ
調べてみたところ、「まずここを押してここを押して・・・」と長ったらしいので
これはショートカットキーを覚えた方が圧倒的に早いし分かりやすい。

使うのはWinとCtrl、これを同時押しで操作するのが基本
1.デスクトップの追加 Ctrl+Win+D
押した瞬間切り替わるから分かりやすいはず。連打すると空のデスクトップがたくさん出るので注意しましょう。

2.デスクトップの切替 Ctrl+Win+←(または→)
スコーンスコーンと切り替わるのでキモチイイ。

3.デスクトップの削除 Ctrl+Win+F4
アクティブなウィンドウは余ったデスクトップに追いやられるのでごちゃごちゃしないよう注意。

4.アプリを別のデスクトップに移動 Win+Tab後、移動したいアプリをドラッグ&ドロップ

これはあんまり使わないかもしれないけど一応。

とりあえず軽く調べてざっとこんな感じです。
Cortana使ってみたいけどねー。

# by onigirism | 2016-01-05 15:33 | PC | Comments(0)

VBA死滅せよ

営業さん向けのツールで、よくExcelのマクロ組むことがあるんですが
前職でバリバリのソリューションやってた自分はもうVBAをガチ実装します。
可視性のあるVBEで自分で書いた方が間違わないし、色々出来るし。

で、今さっき見つけた変な動き
VBA死滅せよ_e0349767_16595738.png
空文字(未入力)ならエラーを出して処理を中断するチェックなんだけも
なぜか空なのにif文の中に入らない。
なぜ???

ウォッチ式を見てみる。
VBA死滅せよ_e0349767_17043073.png
値はEmptyなのでif文の評価はTrueにならないとおかしいのだが・・・
もう少し細かく評価してみる。
VBA死滅せよ_e0349767_17061793.png
んん??値が""になった??

ということは・・・if文全体の評価をウォッチしてみる。
VBA死滅せよ_e0349767_17083738.png
案の定、まさかのFalse

型をよく見てみるとTrimした段階でVariant/Emptyから
Variant/Stringに変わっている。

調べたところによると、Trimに限らず文字列を返す関数ってのはVariantを引数として渡すと、内部処理形式をStringで返す、しかもエラーとして処理されない
ということらしい。

だからVariantは嫌いなんだ!

# by onigirism | 2015-12-25 17:17 | プログラミング | Comments(0)