3

私は主に次の2つのソースからAndroidとPhonegapの開発を学んでいます。

http://news.softpedia.com/news/How-to-Run-Android-Applications-on-Ubuntu-115152.shtml

http://wiki.phonegap.com/w/page/30862722/phonegap-android-eclipse-quickstart

サムスンギャラクシータブを持っています。

しかし、私を困惑させるのは次のとおりです。

  1. 2010年第4四半期にAndroid搭載の携帯電話とタブレットの最大数に到達するために、開発でどの画面サイズを使用しますか?480x800画面にWVGA800をお勧めしますか?
  2. ほとんどのAndroidアプリは、高解像度であるにもかかわらず、7インチのSamsung Galaxy Tabに適切にサイズ変更するにはどうすればよいですか?これを実現するために開発者は何をしていますか?つまり、アプリに一種の伸縮性を持たせ、フォントも伸縮させることができますか?または、Googleはアプリが小さい画面用に設計されていることを検出しているため、Galaxy Tabのサイズ変更を処理しますか?AndroidManifest.xmlで何かを変更する必要がありますか?
  3. エミュレーターでHVGAのデフォルトを使用しましたが、非常に高速でした。WVGA800に切り替えると、かなり遅くなりました。何故ですか?
4

2 に答える 2

8

これがAndroid開発者の観点からの私の答えです(私はPhoneGapの経験がないので、それが物事にどのように影響するかは言えません):

  1. 私のテストの大部分では、320x480と480x800に焦点を当てています。タブレットの場合は、Galaxy Tabに対して具体的にテストすることもできます(エミュレーターでのテストの詳細については、Samsungのサイトを参照してください)。

  2. Androidのレイアウトは、通常、任意の画面サイズをサポートするように設計されています(またはそうする必要があります)。通常、ビューはMATCH_PARENT(以前のFILL_PARENT)またはWRAP_CONTENTに設定されているため、ビューのサイズは、ディスプレイの大きさではなく、ビューのレイアウトまたは含まれているコンテンツのいずれかに依存します。「DP」(密度に依存しないピクセル)を指定することもできます。これは自動的にスケーリングされます(したがって、2dpはHVGAデバイスでは2pxですが、WVGAデバイスでは3pxになります)。フォントはSPで指定する必要があります。これは基本的に同じですが、ユーザーのフォント設定も考慮に入れます。

    ビューをストレッチするためにウェイトを適用することもできます。たとえば、水平方向のLinearLayoutがある場合、2つのビュー(たとえば、TextViewとEditTextView)を配置できます。幅と高さの両方をWRAP_CONTENTに設定することもできますが、EditTextViewにlayout_weight = "1"を追加して、残りのスペースを埋めるように指示することもできます。さらに、大型デバイス用の特定のレイアウトを作成して、Galaxyタブの表示をカスタマイズできます。

  3. 解像度が高いほど、エミュレーターが処理するピクセル数が多くなります。また、Androidのバージョン間でパフォーマンスの違いに気付くでしょう。

そうは言っても、PhoneGapは多かれ少なかれWebAppの開発に似ているように見えます。その場合、AndroidWebAppsの記事が役立ちます。

編集(私のフォーマットが台無しになっていたので、最初のコメントへの応答):

いいえ、サポートするものを指定する以外に、AndroidManifestで変更するものはありません。

<supports-screens
  android:smallScreens="true"
  android:normalScreens="true"
  android:largeScreens="true"
  android:xlargeScreens="true"
  android:anyDensity="true" />

CSSの場合、密度に基づいてスタイルを指定したり、標準のパーセント、em測定値などを使用したりできます。

于 2010-12-19T19:34:30.160 に答える
1

任意のサイズで実行できるアプリのマニフェストで、次のものを使用し始めました。

<supports-screens 
android:smallScreens="true"                   
android:normalScreens="true"                   
android:largeScreens="true"                   
android:anyDensity="true" />
<uses-sdk android:minSdkVersion="4"></uses-sdk>
于 2010-12-19T20:52:53.373 に答える