2013年2月20日水曜日

サイズの補正について


端末の種類によって解像度と画素数が異なるAndroid端末では、サイズの補正を十分考慮した上でアプリ作成をする必要があります。

そこで、今回はサイズの補正についてまとめてみました。

1.解像度(dpi)と単位
解像度が「160dpi」の端末を、「Density=1.0」の基準端末とします。

[例]
160dpi(Density=1.0)---「HT-03a」
240dpi(Density=1.5)---「Xperia SO-01B」
320dpi(Density=2.0)---「Xperia acro HD」「IS03」

レイアウトする際は、解像度の違いを吸収させるために以下の単位を使用します。

・dp
160dpiの画面に於いて、1dp=1pxとなる単位。
この単位によって構成したレイアウトは、解像度が異なる画面でも同じ大きさに見えます。

240dpi---1pd=1.5px
329dpi---1pd=2.0px

・sp
160dpiの画面を基準にして、フォントサイズを解像度によって自動スケールされます。
フォントサイズを指定する際に使用する単位。

2.サイズの補正
dpやspを使用して解像度の違いは吸収できても、解像度(dpi)と画素数(px)の比率の違いは吸収できません。
解像度(dpi)と画素数(px)の比率が異なる場合は、別途計算して補正する必要があります。
例えば、文字列「abc」を32spサイズで表示したときの画面構成です。

(a)「160dpi」「320×480」
+++++++
+    +
+  abc  +
+         +
+    +
+++++++

(b)「320dpi」「640×960」

+++++++
+    +
+  abc  +
+         +
+    +
+++++++


(c)「320dpi」「720×1280」

++++++++
+       +
+  abc     +
+            +
+       +
+       +
+       +
++++++++


解像度が「160dpi」の基準端末の画素数(px)は、320×480です。
従って、「240dpi」「320dpi」の端末の画素数(px)が、それぞれ「480×720」「640×960」であれば補正の必要はありません。
しかし、各端末は、同じ解像度(dip)でも、画素数(px)はまちまちなものです。

[例]240dpi(Density=1.5)の端末
480×854 「Xperia SO-01B」
540×960 「SH-12C」
480×800 「Nexus S」

よって、どの環境であっても同様のレイアウトを実現するには、サイズ補正の処理を組み込む必要があります。

2013年2月19日火曜日

GALAXYのデバイスドライバについて


これまで、アプリの実機デバッグはすべてXperia SO-01Bで行っていましたが、SO-01BはOSがAndroid2.1までしかアップグレードできず、Android2.2以上をターゲットとしたアプリのデバック用としては利用できませんでした。
そこで、もう一台の所有端末であるGALAXY NOTEもデバッグに利用することにしました。
このとき実施した、デバッグ端末として利用するためのデバイスドライバのインストール手順についてまとめてみました。


Galaxy端末とPCでデータの同期が行えるKiesをインストールすれば、デバイスドライバも同時にインストールできるとの情報を聞いていたので、SAMSUNG Kiesの配布サイトからインストールしました。

http://www.samsung.com/jp/support/usefulsoftware/KIES/JSP

インストール完了後、さっそく端末をUSB接続してみると、新しいハードウェアの検出ダイアログが表示されました。
そこには、付属のディスクを挿入してくだいとのメッセージが表示されていました。
こんなディスクなんて持っていないので、とりあえずキャンセルしてみました。




一応、EclipseのDDMSパースペクティブからデバイスを確認しましたが、当然認識されていません。


そこで、デバイスマネージャでデバイスの状態を確認してみると、USB接続した端末が以下のデバイスとして認識されていました。
どちらも、黄色い三角の!マークのアイコンが表示されていて、ドライバがインストールされていない状態です。

ほかのデバイス
 +CDC Serial
 +SAMSUNG_Android

※CDC(Communication Device Class)
USBでRS-232Cの通信方式をサポートするためのプロトコルです。



Kiesのインストール後に、デバイスドライバをインストールしないといけないみたいです。
そこで、以下の手順でデバイスドライバをインストールします。


1.SAMSUNG_Androidのプロパティを開いて、ドライバタブを選択して、[ドライバの更新]をクリックします。



2.ドライバソフトウェアの更新画面で[コンピュータを参照してドライバソフトウェアを検索します]をクリックします。

3.ドライバソフトウェアの更新画面で[コンピュータ上のデバイスドライバの一覧から選択します]をクリックします。


4.ドライバソフトウェアの更新画面で「SAMSUNG Android Phone」を選択して、[次へ]をクリックします。



5.ドライバソフトウェアの更新画面のモデル一覧で「SAMSUNG Android ADB Interface」を選択して、[次へ]をクリックします。

6.ドライバの更新警告ダイアログが表示されますが、[はい]をクリックするとインストールが開始します。
※自己責任でお願い致します



7.インストールが開始してしばらくすると、「ドライバソフトウェアが正常に更新されました」のメッセージ画面が表示されます。
これでインストールは完了です。


8.デバイスマネージャでデバイスの状態を確認してみると、端末がデバイスとして認識されています。

SAMSUNG Android Phone
 +SAMSUNG Android ADB Interface

EclipseのDDMSパースペクティブからもデバイスが認識されていること確認できます。


  






2013年2月18日月曜日

Android SDK アップデート後のエラー対応

今回は、Android SDKのアップデート後のエラー対応についてまとめてました。

Android SDK Managerで利用可能なアップデート(Update available)があったので、アップデートを行います。


「The Android SDK and AVD Manageer that you are currently using has been updated.
It is recommended that you now close the manager window and re-open it.
If you use Eclipse,please run Help > Check for Updates to see if the Android plug-in needs to be updated.」のインフォメーションダイアログが表示されます。



インフォメーションの指示に従い、[OK]をクリックした後、AVD Managerを再オープンします。
そして、Help > Check for Updateからソフトウェアのアップデートをチェックします。








アップデートした後に、Eclipseを再起動すると以下のエラーが表示されます。

「This Android SDK requires Android Developer Toolkit version 21.1.0 or above.
Current version is 21.0.1.2012-12-6-2-58.Please update ADT to the latest version.」




ADTを最新バージョンに更新してくださいとのメッセージなので、[Check for Updates]をクリックすると、「No updates were found.」が表示されてしまいます。

そこで、どうしたらよいのか色々調べてみたところ、以下の対応をすればよいみたいです。


Help > install New Software からAvailable Software を開き[Add]をクリックして表示されるダイアログに名前とロケーションを入力して[OK]をクリックします。

Android Plugin
https://dl-ssl.google.com/android/eclipse/

Developer ToolsとNDK Pluginsにチェックを入れて[Next]をクリックします。



[Next]をクリックします。



I accept the terms of the license agreements.にチェックを入れて[Finish]をクリックします。


インストールが始まります。


途中に警告が表示されますが、[OK]をクリックします。


最後に再起動の要求が表示されますので、[Yes]をクリックして完了です。





































2013年2月17日日曜日

「SDK ADT Bundle for Windows」による開発環境の構築③

プロジェクトの作成

File > New > Android Application ProjectでNew android Appliccationダイアログが表示されます。
下記のURL先にあるCreate a Project with Eclipseに従いプロジェクトの作成をすすめていきます。
http://developer.android.com/training/basics/firstapp/creating-project.html



・Minimum Required SDK
アプリケーションがサポートする最低限のAPIレベルを選択する。
できる限り多くのデバイスをサポートするためには、利用可能な最も低いバージョンを設定する必要があります。

・Target SDK
アプリケーションが動作すること確認している最も高いAPIレベルを選択する。
作成するアプリケーションが推奨とするAPIレベルを選択する。

・Compile With
アプリケーションをコンパイルするプラットフォームのAPIレベルを選択する。
ここで選択できるAPIレベルはAndroid SDK Managerでインストール済みのパッケージとなります。

・Theme 
 UIスタイルを選択する。Compile WithでAPIレベル11以上を選択したときに有効です。そうでないときはNoneとする。


例として、Minimum Required SDK/Target SDK/Compile WithをすべてAPIレベル7を選択、ThemeをNoneとしてプロジェクトを作成します。
※すべてAPIをレベル7で選択しても、それより高いバージョンのデバイスで動作します。

[Next >]をクリックします。


[Next >]をクリックします。


[Next >]をクリックします。


Blank Activityが通常のアクティビティなので、これを選択します。
[Next >]をクリックします。


[Finish]をクリックします。



プロジェクトが作成されます。





エミュレーターによる実行


プロジェクトを選択して、ツールバーからエミュレーターを実行します。


LogCatモニターを開くかどうかを問うダイアログが開きますので、yesを選択して[OK]をクリックします。


エミュレーターが起動します。


※以下のエラーダイアログが表示されて、エミュレーターが起動しない場合があります。


その際は、[プログラムの終了]をクリックします。
AVDManagerから作成したAVDを選択して、[Edit]ボタンのクリックから設定のダイアログを開きます。
Memory OptionsのRAMの値を下げて[OK]をクリックします。


再度、エミュレーターを実行してみてください。


「SDK ADT Bundle for Windows」による開発環境の構築②


◆APIパッケージのインストール
Window > Android SDK Managerから「Android SDK Manager」を開きます。
「SDK ADT Bundle for Windows」のインストール直後はAndroid SDK ToolsとAndroid4.2(API17)のみがインストールされている状態です。





ここに、アプリケーションの作成ターゲットのAPIパッケージをインストールします。
例として、Android2.1(API7)パッケージをインストールします。
Android2.1(API7)にチェックを入れて[Install 3 packages]をクリックします。



















Accept Allにチェックを入れて[Install]をクリックする。













これでインストールは完了です。


◆AVD(Android Virtual Devices)の作成

Window > Android Virtual Devices Managerから「Android Virtual Devices Manager」を開いて[New]をクリックします。

















AVD Nameに任意の名前を入力します。
Deviceは、プルダウンから「Galaxy Nexus」を選択しました。
Deviceが選択されると、各項目にデフォルト値が入力されるのですが、TargetをAndroid2.1(API7)に変更しました。その他の値は、以下を参照してください。





[OK]をクリックするとAVDが作成されます。

















次回は、プロジェクトの作成とエミュレーターによる実行です。










2013年2月16日土曜日

「SDK ADT Bundle for Windows」による開発環境の構築①

◆「SDK ADT Bundle for Windows」とは
「SDK ADT Bundle for Windows」は、統合開発環境(Eclipse)にADT(Android Development Tools)がバンドルされています。
これを利用すれば、Eclipseをインストールして、そこにATDをプラグインするといった手間から開放されることになります。

◆JDKのインストールと環境変数の設定(事前準備)
以下のURLからJDKをダウンロードします。
http://www.oracle.com/technetwork/java/javase/downloads/index.html

ダウンロード及びインストールの方法については割愛します。

・JAVA_HOMEにJDKを設定します。
JAVA_HOME=C:\Program Files\Java\jdk1.6.0_39;


・Pathに以下を追加します。
%JAVA_HOME%\bin;


◆「SDK ADT Bundle for Windows」のダウンロード
以下のURLから任意のフォルダへダウンロードします。
http://developer.android.com/sdk/index.html





◆Install the SDK and Eclipse IDE

1.ダウンロードしたZIPファイルを展開して、任意の場所に保存します。
例えば、ホームディレクトリにDevelopmentフォルダを作成して、ここにZIPファイルを展開します。

2./eclipseフォルダを開いて、eclipse.exeを実行します。
これでおしまいです。Eclipseには、すでにADTがプラグインされています。

【注意】
展開して作成されたファイルやディレクトリは移動させてはいけません。もしeclipseやsdkを別のフォルダに移動したら、ADTはSDKの場所を認識できなくなり、ADTの設定を手動で更新する必要になります。



eclipseを実行すると、Workspaceを指定するダイアログが表示されますが、特に指定がない限りデフォルトのままで[OK]をクリックします。
尚、ホームディレクトリにはworkspaceフォルダと.androidフォルダが作成されます。


eclipseが起動すると、使用統計に貢献するかどうかを問うダイアログが表示されます。
If you later decide to change this setting, you can do so in the options panel under Android > Usage Statsと記載があるように、この設定は後で変更が可能なので、特に悩まずにYesかNoのどちらかを選択して[finish]をクリックします。


Android IDEタブでWelcom!の全面が前面に表示されています。


とりあえず、このWelcom!のタブは閉じておきましょう。再度表示させたいときはHelp>Welcomから表示することができます。


これで、「SDK ADT Bundle for Windows」のインストールまでが完了です。
次回は、APIパッケージのインストールとAVD(Android Virtual Devices)の作成です。