Upload
7shi
View
12.458
Download
2
Embed Size (px)
DESCRIPTION
VC# ExpressでWindows Mobile開発
Citation preview
無料環境でWindows Mobile アプリ開
発
七誌
はじめに
公式には以下の環境が必要
• Visual Studio 2005 Standard 以上
• Visual Studio 2008 Professional 以上
• Visual Studio 2010 Professional 以上(予定)
Pro が必要だと
• 趣味で気軽に開発できない• アプリ開発を人に勧められない
• オープンソースにしても開発者が集まらない
そこであえて
• 無料の Express Edition でやってみよう!(無保証)
ただし
• Professional の機能が使えるようになる裏技ではありません
• Express でも可能な範囲でやりくりするだけ
• いわゆるバッドノウハウ• できないこともあります
でも、がんばれば
• 最近発売されたWindows Mobile本のコードはほとんど利用可能
• 一部 Express では不可能な機能も、別の手法で代替可能
何ができるの?
用語について
• PCWindows XP/Vista/7 が動くパソコン
• WMWindows Mobile が動く携帯
• EXE ファイルアプリケーションの本体
PC と WM で同じ EXE が動く※ただし条件付き
これを利用して
• PC 用アプリを作る
• WM で動かす
• 結果的に WM アプリになる
• この方法なら無料で可能!
だけど
• PC と WM の共通機能しか使うことができない
• 使用言語は C#• 起動が遅い
–起動後の体感速度は工夫次第–エフェクトの裏で重い処理など
こういうものなら作れる
• ゲーム–あまり動きが激しくないもの
–3D バリバリはきつい
• ネットワーククライアント
–2 ちゃんねるや Twitter のような特定のサイトに特化したもの
Pro を買わないと厳しいもの
• 電話や GPS などモバイル機能に依存したもの
• Today など C# だけで作れないもの
• 起動高速化のため C/C++ を使いたいとき
• モバイルっぽいものばかり!
どうやって動くの?
通常の EXE は CPU に依存
x86 ARM
C# の EXE は CPU 非依存
• x86 でも ARMでもない CIL
• 各 CPU 用に変換して実行
• 変換のため起動が遅くなる
• JIT という仕組み x86 ARM
変換
実行
CIL
x86 ARM
ライブラリ
• 言語だけでは何もできない• ライブラリが各種機能を提供–GUI や画像を表示
–ファイルを読み書き–ネットワークで通信–その他いろいろ
参照
• ライブラリを使うことを参照と呼ぶ
• ライブラリの実体は DLL ファイル
EXE参照
DLL
.NET Framework
• PC 用に以下をまとめたもの
•C#•VB.NET•C++/CLI•F#•など
言語 ライブラリ
各種機能•入出力•通信•GUI•など
VM
実行エンジン•JIT•メモリ管理•API 呼出•など
.NET Compact Framework
• WM 用の .NET Framework• PC 用と比べて機能が少ない
–だからコンパクト
• WM 特有の機能を追加
• 長いので以下 CF と省略
つまり• CF で PC と WM 共通の機能だけを使えば、どちらでも動く
WM 用
共通
PC 用
VC# を使ってみる
C# ファイルから EXE を作成
EXE(CIL)
プロジェクト
ビルド
開発の流れ
• プロジェクトを作成
• CF の DLL を参照
• プログラムを書く
• PC で動作確認
• WM で動作確認 ← 区切りで
繰り返し
プロジェクトを作成
プロジェクトを作成
プロジェクトを作成
プロジェクトを作成
CF の DLL を参照
CF の DLL を参照
削除 参照の追加
ビルドエラーを消す
PC と WM で動く EXE 出現
あとは
• 使える機能が少なかったり、 GUI のデザインが面倒なだけで、普通の C# プログラミング
• C# に慣れるまでは、 PC 用のプログラミングから始めて、機能を削って WM で動かすのを推奨
注意事項
• Express は CF 用の機能がない
• GUI デザイナーは使えない–コードで GUI を作成
• エミュレーターと連携できない–手動で動作確認
• インストーラーが作成できない–手動で作成
PC と WM の違い
ウィンドウ
• 最大化ボタンがない
• × を終了手段として使えない
• 最小化を無効にすると OK が出現
<PC
K OKWM なし
最小化 最大化 閉じる
ウィンドウのバー
• メニューがなければ IME の状態は表示されない機種が多い
• 最大化指定でタイトルバーが消える
画面の解像度
• 画面はドット(点)の集まり• 画面のドット数を解像度と呼ぶ
• 「横 ×縦」で表す
9×8 8
9
表示の細かさ
• 1 インチに含まれるドット数をドット密度と呼び、単位 dpi で表す
• 同じドット数の場合、画面が小さいほど表示が細かくなり、 dpiの値が大きくなる• 2 インチに 100 ドット → 50dpi• 1 インチに 100 ドット → 100dpi
PC の解像度
• 画面の解像度に関係なくドット密度は一定として扱う(通常 96dpi )
• 解像度が上がれば大画面化する
1024
1280
VGA96dpi SXGA
96dpi
640
480
WM の解像度• 画面の解像度に関係なく画面のサイズは一定として扱う–あまり巨大化すると携帯できなくなるため
• 解像度が上がれば表示が細かくなる
QVGA96dpi
240
320 VGA192dpi
480
640
サイズ調整
• VGA では画像や文字のサイズをQVGA の倍にしないと、細かすぎてまともに読めない
• WM では縦横を回転できるため、横長と縦長の両方を考慮
• GUI のレイアウトではサイズと位置をコードで調整する必要がある
その他
• カレントディレクトリの概念がない–相対パス指定ができない– EXE ファイルのパスを取得して合成
• α ブレンド(半透明画像合成)ができない–自前描画は遅いので諦めるのが得策?
• サウンドの合成ができる– CF 3.5 が必要
– PC ではできない
– WM の方が高性能な唯一の例?
ご清聴ありがとうございました