考慮すべき多くの要因があります。
1.対象読者は
1.5は今日はあまり重要ではありません。本当に必要な場合を除き、ターゲットにすることはお勧めしません。今日、これらのデバイスでは、アプリの検出率は0.9%であると、current Market statisticsによると、
視聴者から見れば、1.5は無関係です。
1.6は今日では約1.4%ですが、もう少しですがそれでもトレースです。この議論だけでは、それは重要ではありません。
ターゲットオーディエンステクノロジという非常に重要な問題もあります。これらはニッチ市場です。たとえば、1.5にはiDENデバイスがいくつかあり、それらのユーザーを扱うときはカップケーキサポートが非常に重要になります。
米国のデバイスが2.1でアップデートされているため、別の場所にあると想定してはいけません。モトローラは、例えば、他の国のデバイスをサポートするという恐ろしい歴史を持っています。たとえば、#MOTOFAILの傾向を参照してください。
また、国別のターゲットも考慮する必要があります。そこにいる人々は、より少ない金額で、現在のEclair以前のデバイスと、小さなeclair/froyoデバイスを持つ可能性が高くなります。そのことを考慮に入れ、APIのニーズをバランスさせる必要があります。しかし、私はこれが今日、関連性があるとは思わなかった。これは、まだ1.5台のデバイスが氾濫している貧しい国々にとっては大変重要ですが、それでも変化しています(個人的な経験)。
最後に、純粋な収益性要因があります。個人的な経験から、1.5と1.6のユーザーは、有料でアプリをサポートする可能性は非常に低くなります。私はフリーメイムモデルのアプリを持っています。無料アプリでは、有料アプリよりも4倍(比例して明らかに)のユーザーが増えています。
2. APIの機能と開発
のしやすさIは、そのレイアウト癖の1.5をターゲットにすることはお勧めしません。十分に作業していれば、レイアウトと描画可能な空きが不完全であることがわかります。最初のfoursquareアプリ(私が今日Google Codeで見てきた例)には、これらの問題を説明している行がたくさんあります。私の謙虚な意見では、それは価値がありません。
良いことは、約1.6あなたが1.6に戻って移植された多くの非常に重要なライブラリ、主にフラグメントおよびローダー、にアクセスし、そのはるかに簡単にあなたの人生になりますということです。これらのレガシーデバイスすべてをサポートしながら、多くの負担を負うことはありません。
これは、今日、人々が最低限のAPIとして1.6を設定している主な理由です。
ニーズが混在する場合は、は、multiple API strategiesとする必要があります。
今やマイナーな問題です。あなたのプロジェクトが大きすぎる場合は、froyo/2.2/api-8で導入されたapp2sd機能なしでデバイスをターゲットに設定する価値があるのだろうかと思うかもしれません。しかし、私はそうではないと感じています。そして今私が覚えていないその他の小さな問題があります。
しかし、1.6は聖杯ではありません。 1.6をターゲットにすると、小さな迷惑を見つけることになります。ちょっと例を挙げると、私は、onKeyLongPress()
is available on pre-2.0 devicesとは思えません。 Service.onStartCommand
と多くのサービスフラグ(api 5以上)と同じことです。
たとえば、私はSTART_FLAG_REDELIVERY
またはSTART_STICKY
に頼っています。ですから、1.6でLoaderを使うことができましたが、1.6の欠点を補うために他の機能が必要になってしまいました。これらの機能のほとんどは、1.6 AFAIKでは利用できません。
これはちょっとした問題の1つです。彼らは散在しているので、それらをすべて実現することは困難です。
APIが優れているため、市場投入までの時間が短縮され、生産性が向上します。戦略個人的に
の開発
3、私は(私は実際に今それをやっている)次の操作を行いたい:下位レベルのデバイス(1.6)のために開発し、あなたが必要と感じるたびにそこに存在しないものを実装し、より高いAPIにターゲットを変更して、その "感情"を得る。これは、実装すべきものがすでに分かっている場合に役立ちます。
実装する対象がわからないときは(コード単位で)、最高のAPI(一般に2.3)をターゲットにして、コード補完機能を参照できます。私はこれが「試行錯誤」のように聞こえるが、実際にこれを学習する方法があるかどうかはわかりません。
4.断片化
私は、これはF-単語のコメントを生成します知っているので、これは、少なくとも私の意見では、断片化についての多くが、APIを学ぶことについて多くはないことを考慮に入れますあなたの目標と市場を知ること。断片化はこの議論には二次的なものなので、この熱い議論を避けるほうがよいと思います。
技術的には、API Differenceサイトの違いを見ることができます。
ええ、それはかなり良い概観だと思います。
付録:私は今日やるだろう何(編集済み)
一般的には、他のすべてが等しいと、一般的なアプリケーションのためのもの、私はAPI 7 /エクレアでもminと思います。まだ市場に出回っているデバイスの97%ですが、豊富なアプリの機能と開発の容易性を提供しながら、収益性を確保しながら市場投入までの時間を短縮しながら生産性を向上させます。
質問を締め切りするために余分なポイントがありますか?これは、プラットフォームの技術的能力についての非常に具体的な質問であり、意見ではありません。要するに、アンドロイド2.1をターゲットにすれば、それはそれ以降のバージョンで動作します。なぜそれが議論を引き出すのだろうか?それは以下の答えが表示されないことを証明する。私は、ほとんどの新しいアンドロイドの開発者がこの質問のバージョンに答える必要があると思う - それはデバイスの数ではないか、xまたはyプラットフォームをターゲットにする必要があるだろうか?2のために構築されているなら3,4,5で動作するだろうか。 – Chanoch