2012-04-08 10 views
1

AndroidプラットフォームのサンプルコードとAndroid開発者サイトのリファレンスはプラットフォーム1.5に基づいています。新しいプラットフォームでは古いプラットフォームで開発されたアプリケーションをサポートできると理解していますが、 1.5のアプリケーションを開発するために使用されたコードは、新しいプラットフォームでも有用か、新しいクラスとメソッドで置き換えられましたか? IMEによって開発されたアプリケーションをエミュレータで表示できない場合や、デバイス上でテストまたは取得することができる場合にも、クラスやメソッドに関連して、サンプルで多くのコードエラーが発生しているようです。どんなアドバイスも歓迎です...申し訳ありません、それはとても長いですプラットフォームの互換性の問題

答えて

0

SDKフォルダを見ると、ウィンドウ上ではc:\<SDK location>\samples\android-xになります。サンプルはAPIレベルに基づいているため、互換性がありますので、これらを見ていきます。

他の質問に答えるには、apiレベルが上がるにつれてapiの変更があるので、警告やコンパイルエラーが発生し、一部のクラスが完全に削除される可能性があります。一般に、低レベルのものはあまり変更してはいけませんが、最も重要なことは、元の実装に設計上の欠陥がない限り、セマンティクスがほとんど変化しないことです。

各バージョンのリリースノートは、通常、何が変更されたかを指摘しています。オンラインドキュメントは、私の見解では、正確に非難されていることを伝えてくれます。古いデバイスをターゲットにしているだけの場合、エミュレータはこれらのAPIレベルをターゲットにするように設定されていますが、機能について懸念がある場合はapi 1.5を使ってコードを記述し、ICS APIレベル15エミュレータを実行し、あなたは最高の戦略が何であるべきかを決めます。一般的には、Android 2.2以上をモバイルデバイス用、3.0をタブレット用にターゲティングすることをおすすめしますが、本当にそれはあなた次第です。

+0

私はこのクラスがインスタンス化されておらず、文字列の一部でも適切な単語を表示していないなど、クラスエラーを出しています。代わりに@string/....を与えます。良いです...これらのエラーは混乱しています。私はサンプルが覚えていると思います。 –

+0

奇妙な音ですが、私はEclipseからプロジェクトを削除しますが(もちろんソースコードを削除しないでください)、Eclipseを再起動してくださいプロジェクトを再開して、完全に再構築して、それが今すぐうまれていることを確認してください。 – EdChum

+0

私はしています。あなたはすべて正しいと思っています。技術的には正しいと言え、開発者の調整は必要ではなく好みの方がいいのだろうか? Imは、サンプルが単なるグラフィカルな変更で機能しているのだろうと思っています –

0

3つは廃止され、Contacts.Peopleのようにもう使用できないクラスです。また、廃止予定のクラスもありますが、まだ使用できますが、新しいプロジェクトでは避けるべきです。以前は利用できなかった新しいクラスがあります。断片化のような場合には、古いプラットフォームで新しい機能を使用するための互換性サポートライブラリがありますが、古いプラットフォームではサポートされていないPreferenceFragmentなどのクラスではそうではありません。

+0

これは、エラーコードがどこから来ているのかわかります。私は2.1でビルドしていますが、1.5サンプルは1.5より古いので、更新されたクラスやメソッドは反映されません。ちょっと私の前提です... –