2013年6月30日日曜日

第2回アンドロイド開発備忘録

今日は書けることが少ない。

まず状況が、前回の
http://www.atmarkit.co.jp/fdotnet/special/monoforandroid/monoforandroid_01.html
のページのインストールを行なっていたが、
ビルドできなくなってしまった。
1回目は確かに出来たのに、2回めが出来ない。
何故だ。。。

で悩み続けて、全部アンインストールして、再インストールして、それでも上手く行かず、javaのバージョンがおかしいのかと、いろいろな
バージョンを入れてみるも治らず
2時間半もつまった。

結論はSDKManagerで、Android SDK Build-toolsをインストールしていなかったからだった。
次からはSDKManager.exeをきちんと確認するようにしよう。。。


ちなみに、順序立てて現象を書くと、環境構築→ビルド→ビルド失敗→エラーが出る。以下のようなエラー

エラー 1 "Aapt" タスクが予期せずに失敗しました。
System.InvalidOperationException: シーケンスに要素が含まれていません
場所 System.Linq.Enumerable.First[TSource](IEnumerable`1 source)
場所 Xamarin.Android.Tasks.BuildToolsUtils.GetBuildToolsPath(String androidSdkDirectory)
場所 Xamarin.Android.Tasks.Aapt.GenerateFullPathToTool()
場所 Microsoft.Build.Utilities.ToolTask.ComputePathToTool()
場所 Microsoft.Build.Utilities.ToolTask.Execute()
場所 Xamarin.Android.Tasks.Aapt.Execute()
場所 Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute()
場所 Microsoft.Build.BackEnd.TaskBuilder.d__20.MoveNext() AndroidApplication3
http://forums.xamarin.com/discussion/4249/error-msb4018-the-aapt-task-failed-unexpectedly-on-new-android-application-no-code-added/p2
上記のページより、

SDKManagerから、Android SDK Build-toolsをインストールする。

エラー消える。

超うれしい気持ちになる。やったーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー。

失礼しました。2時間半の反動が出てしまいました。

以上です。
何か間違いなどあれば、可能な限り対応しますので、ご指摘ください。

追記
インストール時はmono for Androidで入れれば、他に必要な環境は全て自動で入れられているみたい。
いちいち、javaやandroidSDKを入れる必要は無いように見えたのでメモ。
後、私見だが、英語のページを見るときはsolveってかいてあるコメントを重点的に見れば、
答えを見つけやすいことに気がついた。少しだけ賢くなった気がする。





2013年6月29日土曜日

第1回アンドロイド開発の備忘録

どうもこんにちは

アンドロイド開発で調べたことを雑多に書いていきます。
あくまで、備忘録になるので、読みやすくは無いですが、私が学んだことを少しでも公開していきます

今日はVisual Studioでandroid開発が出来ないか調べてみました。一般的には、android開発といえば、Eclipseで開発するのが、主流です。タダだしね。僕も普通はタダの方を選びます。
でも、僕のPCにたまたま、VIsualStudioを入れていたため(へんなたまたまですが)、HDDの容量を下げるために、VIsual Studioを使えんもんかと思い、調べてみました。

結論を言えば、制限のある開発しか出来ません。第1候補としてはNDKを入れると、開発できそうですが、構築が大変な感じがしたので、やめました。第2候補として、monoがパッケージを出してくれていました。monoさん最高ー! タダ、タダで出来るのが、32Kのコードまでになります。それ以上だと、android上に転送できない。。。むむむと思いましたが、今、僕がやりたいことは全然、容量がいらないはずなので、まあ、やってみようと考えました。
というわけで、
http://www.atmarkit.co.jp/fdotnet/special/monoforandroid/monoforandroid_01.html

上記ページを見ながら、インストール中です。

2013年6月28日金曜日

2回目2013/06/21C#勉強

第2回目の勉強結果を記載します。
基本的には
http://www.atmarkit.co.jp/ait/subtop/features/da/dt_csharp_abc2_index.html
のページ利用です。

まず、自分で、C#のコードを書いてみました。
http://blog.kassyi.com/2011/04/c.html

20分くらいでかけました。中身もそれほど、難しくなかったです。
#の便利さを思い知りました。
C++でこんな簡単にGUI作れないよ。。。

書いていて、分からなかったのが、クラスの先頭にあるpartialという文字の意味。
調べてるみると、クラスを複数ファイルに分断できる機能だった。
OSが自動生成してくれるコードとユーザーが自分で書くコードをファイルで分離することが出来る。
すごい!!!InitializeComponentが実装どこに有るのとは思ったら、きちんともう一つの
分断先に実装が書かれていた。ユーザーが意識しないでいいのがありがたいです。



他にhttp://www.atmarkit.co.jp/ait/articles/0209/25/news001.html#cs0601
で変数の自分の考え方が合ってるか確認してみた。
全然違っててめちゃめちゃ悲しい。。。

調べてみると、C#では参照型と値型がある。これはC++でもあるは合ったのだが、
少し概念が違ってるところがあって、間違えた。
一言で言うと、C#では構造体とクラスの違いが値型と参照型だけの違いになる。
構造体はメソッドを持つことができてしまう。逆にクラスは参照型なので、
インスタンスをもたせる場合、基本点にnewが必要!(これはC++も一緒)

そんな感じの勉強でした。
次からは値型と参照型の違いには気をつけよう。。。



以上です!!!
間違いなどあれば、指摘頂ければ可能な限り修正します。
よろしくお願いします

2013年6月26日水曜日

20130626C#、C++/CLI、ネイティブC++のコードの速度について

今日は雑多な書き込みをします。
自分は色々と手を広げて、わかりにくくなるところがあるので、出来る限り絞りますが。。。

1. C#、C++/CLI、ネイティブC++のコードの速度について、
C#は一番遅く、C++/CLI、ネイティブC++のコードは同じくらい早いそうです。
しかし、C++/CLIは書き方によっては遅くなってしまう(ある程度上級者向け)ということと、ネイティブC++だと、
Intel C++ Compilerを使うと、1,2割の最適化が行われることから、速度重視であれば、C++を使うのが良いみたいです。
http://xptn.dtiblog.com/blog-entry-113.html



2.仮想COMポートについて
COMポートは2種類の意味があり、
1.コミュニケーションポート → 通信ポート全般を指す
2. RS232C等のシリアル通信ポートを指す
それがわかりにくくさせていると思う。

仮想COMポートはコミュニケーションポートを使う時に、直接IOを叩かないで済むように、通信しやすくするための仮想上の通信ポートだと思われる。
お互いに仮想COMポートを持つことで、簡単にライブラリを介した通信が出来るようになると考えられる。

以下のページがCOMポート機能作成で使いやすそう。
http://code.msdn.microsoft.com/windowsdesktop/COM-howto-4b79a479



3. C#でC++で作成したdllを作成する機能を調べました。
前も調べたことがあるので、やってみれば、難しくないことは知っていました。分かりやすいページを見つけたので、以下に乗せておきます。
http://wgag.blog.fc2.com/blog-entry-59.html
個人的には文字列を渡す時に変換が必要なことが不思議な気持ちです。そこら辺は使いながら理解を深めていこう。

もし、間違ってるようなら、ご指摘頂ければ幸いです。



4. Outlookが再起動できない!
番外で、聞かれたので、調べてみた
プロファイルデータがバグると上手く行かなくなるらしい
http://stella-le.seesaa.net/article/121626191.html
消せば治るかな。。。という感じ



2013年6月21日金曜日

1回目2013/06/21C#勉強

これから、C#について、学んだことをここに書いて行きたい。

C#は完全に初心者なので、勉強した履歴が何かの役に立つことを期待して書いていきます。
あくまで、備忘録に近くもなるので、わかりにくいところがあると思いますが、ご容赦願います。

今日はC#のサンプルプログラムを探しましたが、あまり使いたいと思うのは見つけられませんでした。

以下のページはサンプルが多くて使いやすそうです。
http://uchukamen.com/index.htm

NUnitという、.Net用のテスト・ツールがあることを知りました。

以下のページで、C#に関する勉強ページのまとめがあります。
http://matome.naver.jp/odai/2133454861369781601

まず、基礎を勉強しようと思い、以下のページを見ています。
http://www.atmarkit.co.jp/ait/subtop/features/da/dt_csharp_abc2_index.html
C#独自の概念で、インデクサーとプロパディの概念を知りました。
インデクサーは配列と似た機能をユーザーが作成出来ます。ちなみに、string型は配列でアクセスできるように見えますが、実際はインデクサーを利用しているので、C++のような配列の参照は出来ないとのことです。今までの配列の使い方をしたい場合、Char型を使う必要があるらしい。

プロパディは数字と文字列を置き換えて、クラスに保存できるように出来ます。(他にもいろいろな機能がありそうですが、わからなかった。)


今日、一番の驚きはC#にはハッシュテーブルが標準で用意されていること。インデクサーの添字を文字列で表現できることが新鮮だった。唯、使いドコロはまだ分からないのが残念だ

しばらく、基礎の勉強毎日して行きたい。