これらのインターフェースの目的は何ですか?
CharSequence一連の文字を表す標準 Java インターフェイスです。Stringは の最も一般的に使用される具体的な実装でありCharSequence、続いてStringBuilder.
SpannedはCharSequence、テキストの一部に適用するフォーマットを示す「スパン」を含む です。これらのスパンは変更できません。
SpannableはSpanned、スパンを変更する (書式設定を追加または削除する) 機能を追加しますが、テキスト自体を変更することはできません。
SpannedStringSpannedインターフェイスの具体的な実装です。
SpannableStringSpannableインターフェイスの具体的な実装です。
どのシナリオでそれらを使用するのが最も一般的ですか?
1 を返すメソッドがある場合 (たとえば でgetText()) EditText、または 1 をパラメーターとして受け取るメソッドがある場合 (たとえば でsetText()) TextView。

引用された使用のケースはHtml.fromHtml()、従来の Android 開発でおそらく最も一般的です。 TextViewwithSpannedは a よりもはるかに軽量ですWebView。ただし、次のような他の使用例があります。
どのような場合に使用を避けるのが最善ですか?
彼らは、ハゲとの戦い、除雪、ヒートポンプの修理、スフレの作成などで非常にひどい.
:-)
それらのいずれかを使用するときに考慮すべき明らかなパフォーマンスへの影響はありますか?
インターフェイスは、定義上、「パフォーマンスへの影響」はありません。インターフェイスは単に API の記述にすぎません。
特定の操作SpannableStringよりも大幅に遅いことは認識していません。SpannedStringただし、SpannableStringBuilder(テキストをフォーマットするスパンに加えてテキストを操作できるようにする)は、さまざまなものよりも少し遅くなる可能性がありSpannableStringますSpannedString。ただし、パフォーマンスの違いが問題になるかどうかは、使用状況によって異なります。