Emoji2

現在のデバイスと古いデバイスで絵文字を表示します。
最新の更新 現在の安定版リリース 次のリリース候補 ベータ版リリース アルファ版リリース
2021 年 11 月 17 日 1.0.0 - - -

依存関係の宣言

Emoji2 への依存関係を追加するには、Google の Maven リポジトリをプロジェクトに追加する必要があります。詳しくは、Google の Maven リポジトリをご覧ください。

アプリまたはモジュールの build.gradle ファイルに、必要なアーティファクトの依存関係を追加します。

Groovy

dependencies {
    def emoji2_version = "1.0.0"

    implementation "androidx.emoji2:emoji2:$emoji2_version"
    implementation "androidx.emoji2:emoji2-views:$emoji2_version"
    implementation "androidx.emoji2:emoji2-views-helper:$emoji2_version"
}

Kotlin

dependencies {
    val emoji2_version = "1.0.0"

    implementation("androidx.emoji2:emoji2:$emoji2_version")
    implementation("androidx.emoji2:emoji2-views:$emoji2_version")
    implementation("androidx.emoji2:emoji2-views-helper:$emoji2_version")
}

依存関係について詳しくは、ビルド依存関係の追加をご覧ください。

フィードバック

お寄せいただいたフィードバックは Jetpack 改善の参考にさせていただきます。新しい問題が見つかった場合や、このライブラリを改善するアイデアをお持ちの場合は、お知らせください。新しい問題を報告していただく前に、このライブラリの既存の問題をご確認ください。スターボタンをクリックすると、既存の問題に投票できます。

新しい問題を報告する

詳細については、Issue Tracker のドキュメントをご覧ください。

1.0

バージョン 1.0.0

2021 年 11 月 17 日

androidx.emoji2:emoji2-*:1.0.0 がリリースされました。バージョン 1.0.0 に含まれる commit については、こちらをご覧ください

1.0.0 の主な機能

androidx.emoji2 により、androidx.emoji が以下の追加機能に置き換えられます。

  • androidx.emoji に対する APK のサイズ削減
  • 自動設定
  • appcompat 1.4 への依存関係として追加

androidx.emoji2 の詳細については、最新の絵文字のサポートと、Android Dev Summit の講演のアプリですべての絵文字を表示するをご覧ください。

バージョン 1.0.0-rc01

2021 年 10 月 27 日

androidx.emoji2:emoji2-*:1.0.0-rc01 がリリースされました。バージョン 1.0.0-rc01 に含まれる commit については、こちらをご覧ください

  • beta02 からの変更はありません。

Emoji2 バージョン 1.0.0-beta01

2021 年 9 月 15 日

androidx.emoji2:emoji2-*:1.0.0-beta01 がリリースされました。バージョン 1.0.0-beta01 に含まれる commit については、こちらをご覧ください

API の変更

  • FontRequestEmojiCompatConfigsetLoadingExecutor が追加されました。これは setHandler の以前の API に代わるものです。この API を使用すると、任意のバックグラウンド エグゼキュータを使用するように FontRequestEmojiCompatConfig を設定できます。

    この変更は androidx.emoji:emoji からの互換性を破る変更であるため、setHandler は no-op の非推奨 API として保持されます。(I6cd48

  • EmojiCompat が Android 11 で EditorInfo.extras を正しく設定します。

    • EditText をサブクラス化せずに IME を使用するカスタム ウィジェットは、EmojiCompat.updateEditorInfo を呼び出して、EmojiCompat の処理をサポートしていることを IME に通知できます。(I1ea9b

バグの修正

  • API 19 と 28 で絵文字フォント プロバイダを正しく検索するように DefaultEmojiCompatConfig を修正しました。これにより、emoji2 1.0.0-alpha01 以来のバグが修正されました。(Ib33d8b/197906329

バージョン 1.0.0-alpha03

2021 年 6 月 30 日

androidx.emoji2:emoji2-*:1.0.0-alpha03 がリリースされました。バージョン 1.0.0-alpha03 に含まれる commit については、こちらをご覧ください

新機能

このリリースはバグの修正と安定化のリリースです。

  1. EmojiEditTextHelper で null を KeyListener として渡すことができるようになりました。これにより、EditText の実装をサポートする絵文字に null を適用できるようにするプラットフォームの動作が可能になります。
  2. EmojiCompatInitializer を使用する際に、初回の起動遅延が改善され、最初のアクティビティが再開した後にトリガーされるようになりました。これにより、アプリ起動が競合のない状態で行われるようになり、UI を表示しないアプリ起動時にフォントが読み込まれなくなります。短い遅延の後、EmojiCompat によってスレッドが作成され、絵文字フォントが読み込まれます。
  • 遅延を実装するため、androidx.emoji2:emoji2 から androidx.lifecycle:lifecycle-process への新しい依存関係が追加されました。これにより発生する、すでにライフサイクルが含まれているアプリ(appcompat を使用するアプリなど)の APK サイズへの影響はほとんどありません。

API の変更

  • AppCompatEditText で null の KeyListener が許可されるようになります。これにより、1.4.0-alpha01 で AppCompatEditText に追加された null 以外のアノテーションが取り消され、null が渡されたときの動作が以前のものに戻ります。(I21482b/189559345

バグの修正

  • EmojiCompatInitializer を変更し、最初の Activity.onResume から 500 ミリ秒が経過するまでフォントの読み込みが行われないようになります。これにより、アクティビティが競合のない状態で Application.onCreateActivity.onCreate を実行できるようになるのと同時に、絵文字フォントがアプリ起動直後に読み込まれるようになります。(I4bff7

バージョン 1.0.0-alpha02

2021 年 6 月 2 日

androidx.emoji2:emoji2:1.0.0-alpha02androidx.emoji2:emoji2-views:1.0.0-alpha02androidx.emoji2:emoji2-views-helper:1.0.0-alpha02 がリリースされました。バージョン 1.0.0-alpha02 に含まれる commit については、こちらをご覧ください

API の変更

  • emoji2-views-helper 内のパッケージの名前を androidx.emoji2.viewsintegration に変更しました。これは AppCompat 1.4.0-alpha01 の互換性を破る変更であり、アプリでは、AppCompat の依存関係が新しい Emoji2 バージョンを使用するように更新されていることを確認する必要があります。(Ie8397

バージョン 1.0.0-alpha01

2021 年 5 月 18 日

androidx.emoji2:emoji2:1.0.0-alpha01androidx.emoji2:emoji2-views:1.0.0-alpha01androidx.emoji2:emoji2-views-helper:1.0.0-alpha01 がリリースされました。バージョン 1.0.0-alpha01 に含まれる commit については、こちらをご覧ください

この初回リリースの機能

API19 の最新の絵文字をサポートするために、すべてのアプリで emojicompat を統合することをおすすめします。アプリ内でユーザーが生成したすべてのコンテンツに 🎉 が含まれています。

EmojiCompat は、androidx.emoji アーティファクトから新しい androidx.emoji2 に移動し、alpha01 に入りました。以前のバージョンは新しいアーティファクトに置き換えられます。

AppCompat 1.4.0-alpha01以降、emoji2 が AppCompat の依存関係として追加されており、AppCompat ビューではデフォルトで有効になっています。

emoji2 アーティファクトでは、androidx.startup ライブラリを使用した新しい自動構成が導入されています。「🐻‍❄️」を表示するのに 👨🏽‍💻 コードを記述する必要がなくなりました。

emoji から emoji2 の変更点

  • androidx.startup を使用した新しい自動構成 EmojiCompatInitializer を追加しました。
  • サービス ロケーションを使用して DefaultEmojiCompatConfiguration のダウンロード可能フォントのプロバイダを見つける新しいデフォルト構成を追加しました。
  • クラスを androidx.emoji パッケージから androidx.emoji2 に移動しました。
  • EmojiTextView と関連ビューを独立したアーティファクト emoji2-views に分離しました。これは、アプリで appcompat を使用しない場合にのみ使用してください。
  • emojicompat をカスタムビューに統合するヘルパーを、独立したアーティファクト emoji2-views-helper に分離しました。
  • null 可能性アノテーションを追加しました。
  • EmojiCompat が初期化されていない場合でも、emoji2-views-helper のヘルパーを使用できるようになりました(以前は例外をスローしていました)。

どの依存関係を追加すればよいか

  • AppCompat を使用するアプリは、appcompat バージョン AppCompat 1.4.0-alpha01 以降にアップグレードする必要があります。
  • プラットフォームの TextView / EditText を使用して AppCompat を使用しないアプリでは、emoji2-viewsEmojiTextView と関連クラスを使用する必要があります。

カスタムビューでのサポート方法

  • AppCompat を使用するアプリは、プラットフォームの TextView などではなく、AppCompatTextViewAppCompatButton などを拡張する必要があります。
  • AppCompat を使用しないアプリでは、androidx.emoji2:emoji2-views-helper 依存関係を追加し、ヘルパーを使用してカスタム TextView または EditText サブクラスと統合する必要があります。

自動初期化の構成

  • アプリで自動初期化を無効にするには、次のコードをマニフェストに追加します。

     <provider
         android:name="androidx.startup.InitializationProvider"
         android:authorities="${applicationId}.androidx-startup"
         android:exported="false"
         tools:node="merge">
         <meta-data android:name="androidx.emoji2.text.EmojiCompatInitializer"
                   tools:node="remove" />
     </provider>
    
  • これにより自動構成が無効になり、カスタム構成を EmojiCompat.init に渡すことができます。システムのデフォルトの構成は、EmojiCompat.init に渡す前に DefaultEmojiCompatConfig.create(context) によって取得されて以降の構成に使用されます。