先日、Google のエンジニアが Reddit で AMA を行いました。 AMA は Android Q ベータ版に関するものでした。 ここでは、彼らの回答から学んだことを要約します。
昨年、Google の Android チームは Reddit の /r/AndroidDev サブレディットで Ask Me Anything (AMA) を主催し、 Android P 開発者プレビュー. 今年、Android Q ベータ版に取り組んでいるエンジニアリング チームが Reddit で質問に答えました。 AMA 8月1日午後12時(太平洋標準時)に開始され、約1時間半後に終了しました。 33 人の Google エンジニアが AMA に参加し、AMA の短い時間内に大量の質問に答えました。 私たちが学んだすべての新しい情報の要約は次のとおりです。
Android Q AMA: Google から学んだことすべて
Android Q ベータ チームの参加者
- アダム・コーエン: Android ランチャー / システム UI 上の TLM
- アダム・パウエル: UI ツールキット/フレームワーク上の TLM。 ビュー、ライフサイクル、フラグメント、サポート ライブラリ
- アラン・ヴィヴェレット: TLM、ジェットパック / AndroidX
- アレン・ファン: UI、ランチャー、通知、検索統合などの PM です。
- アンドリュー・サピアスタイン: Android の TLM 設定
- ブラヒム・エルブチキ: Android 機械学習およびカメラ (NN API、ML Kit、CameraX、カメラ プラットフォーム) の PM ディレクター
- チャド・ブルベイカー: ソフトウェア エンジニア、Android プラットフォーム セキュリティ
- シャーメイン・ディシルバ: プライバシー担当PM
- チェット・ハース: Android チーフアドボケート、デベロッパーリレーションズ
- ダイアナ・ウォン: PM、アプリの互換性、非 SDK API の使用、ART、NDK
- ダイアン・ハックボーン: Android フレームワーク チームのマネージャー (リソース、ウィンドウ マネージャー、アクティビティ マネージャー、マルチユーザー、印刷、アクセシビリティなど)
- E.K. チョン: UXディレクター
- イアン・レイク: ソフトウェア エンジニア、Jetpack (フラグメント、ナビゲーション、アーキテクチャ コンポーネント)
- イリヤーン・マルチェフ: プロジェクトメインラインの主任ソフトウェアエンジニア
- ジェイコブ・レールバウム: Android 向けデベロッパー リレーションズ ディレクター
- ジェイク・ウォートン: ソフトウェア エンジニア、Jetpack
- ジャマル・イーソン: Android Studio の PM
- ジェフ・ベイリー: TLM、Android オープンソース プロジェクト (AOSP)
- ジェフ・シャーキー: ソフトウェア エンジニア、Android フレームワーク
- ジェフリー・ファン・ゴッホ: Android Studio、コンパイラ
- ジェン・チャイ: PM、場所とコンテキスト、認証、自動入力、非 SDK API の使用、ART
- カレン・ン: Android 開発者ツール、Android Studio、Android Tookit、Jetpack のグループ PM
- ポール・バンクヘッド: Google Play プロダクト管理ディレクター
- ローハン・シャー: プロダクト マネージャー、Android システム UI
- ロマン・ガイ: Android Toolkit/Jetpack チームのマネージャー
- サーガル・カムダール: Android 担当プロダクト マネジメント ディレクター
- 土K: Android コネクティビティ担当エンジニアリング ディレクター
- セリム・チネク: ソフトウェア エンジニア、Android システム UI
- ステファニー・サード・カスバートソン: Android プロダクト管理担当シニア ディレクター
- スミール・カタリア: ソフトウェア エンジニア、Jetpack (ワークマネージャー)
- トラヴィス・マッコイ: PM、Android プラットフォーム
- トリスタン・アップスティル: 優秀なエンジニア、Android システム UI およびインテリジェンス担当リード
- ヴィニト・モディ氏: PM、Android カメラ
続きを読む
OEM は、ユーザーが最近アプリをスワイプしてもアプリを強制終了できなくなりました
中国ブランドのスマートフォンを使用したことがあるなら、おそらく迷惑な「バッテリー最適化」機能に対処したことがあるでしょう。 バックグラウンドでお気に入りのアプリをすべて終了します. この動作は、何らかの理由で特定のアプリがバックグラウンドで実行され続けることを期待しているユーザーにとって迷惑であるだけでなく、 しかし、それがアプリのものではないことを理解していないユーザーからの悪いレビューに苦しまなければならない開発者にとっては迷惑でもあります。 故障。 Googleがいる間、 まだ この問題に完全には取り組んでいない(彼らは、この行為は問題であると言って問題を無視した) おそらくすでに Android 互換性定義文書の要件に違反している可能性があります)、同社は は 行動を起こします 一部の OEM が採用している「バッテリー節約」動作の変更に対して。
「この状況を解決するために、Android Q に CTS テストを追加し、アプリが [最近] からスワイプされても強制終了されないことを確認しました。」
Android R はスクリーンショットに予想以上の変更をもたらす可能性があります
Googleは追加を計画している Android R でのスクリーンショットのスクロール、しかし同時に、 アンドロイドチームは 「R の画面全体の [X] エクスペリエンスをどのように改善できるかを詳しく調べています。」 したがって、私たちは、 次の Android メジャー バージョンでのスクリーンショット (およびスクリーンキャスト) 動作のその他の改善点をご覧ください。
Android Q の新しいデスクトップ モードを明確にする
の 最初のパブリックベータ版リリース Android Q では、AOSP と Pixel Launcher に非表示のデスクトップ モード インターフェイスが導入されました。 Googleですが 機能について簡単に触れました Google I/O セッション中に、新機能が Android エコシステムにどのように適合するかを Google から直接聞いたことはありません。 グーグル 今明らかにする:
Q AOSP の「デスクトップ モード」は、アプリケーション開発者を対象とした開発者向けオプションです。 これにより、マルチディスプレイおよびフリーフォーム ウィンドウ モード環境でアプリをテストできるようになります。 以前は、標準の Android 上で自由にサイズ変更可能なウィンドウを使用して、セカンダリ ディスプレイ上でアプリの動作をテストする便利な方法はありませんでした。 この機能は単独では製品化されていないため、現時点では通常のユーザーを対象としていません。 それにもかかわらず、OEM が革新して優れた製品を製造するための Android プラットフォームのベースラインです。」
したがって、OEM が Android Q のネイティブ デスクトップ モードをベースにして構築されることが期待できます。 たとえば、 OnePlus 7 Pro は HDMI 経由のディスプレイ出力をサポートします, その可能性があります。 Android Q ベースの OxygenOS 10 将来的には独自のデスクトップ モード インターフェイスが搭載される予定です。 また、Google が今後の機能に基づいて機能を構築することを期待しています。 ピクセル4.
時間ベースのダークモード
Android Q は、広くリクエストされていた機能をついに提供します。 システム全体のダークモード. 現在、ダーク モードは、[設定] または [クイック設定] タイルを使用して手動で有効にするか、バッテリー セーバーが有効になっているときに自動的に有効にすることができます。 Android Q より前には、ダークモードを有効にするオプションがありました 時刻に基づいて、しかし、そのオプションは非推奨になりました。 クリス・ベインズ氏によると、
「これが AppCompat v1.1.0 で非推奨 (削除されない) になっている理由はいくつかあります。アプリがリクエストを行う必要があるためです。 位置情報の許可が正確である必要があり、有効な位置情報であっても、日の出/日の入り時刻の計算が正確になる可能性があります。 バギー。"
これらのバグについて尋ねられたとき、ベインズ氏は次のように述べています。「日の出と日の入りの計算は、特に近くの場所では難しいことで有名です 北極/南極。」 ユーザーは、Android 7.1 Nougat 以降で利用できる常夜灯が日没/日の出に基づいて自動的に切り替えられることを持ち出しました。 スケジュール。 Banes 氏は、Night Light は CalendarAstronomer を使用しているため、 ICU4J、「AppCompat に依存させたくないコードの大きな塊」が使用されています。 ただし、チームは、 州 この機能は「(彼らが)検討しているもの」だという。
Android Q 起動デバイスの必須の Camera2 API/Camera HAL3 サポート
Google は、アプリがスマートフォンに接続されている個々のカメラとどのように対話できるかをより適切に定義するために、Camera2 API を導入しました。 Googleしながら 励ます スマートフォン ベンダーは「すべての物理カメラを開発者に公開」するよう求めていますが、多くのベンダーは「API 自体は公開されていない」にもかかわらず、そうしないことを選択しています。 これは、多くのサードパーティ製カメラ アプリが、最新のデバイス上で 2 番目または 3 番目のカメラ モジュールを使用できないことを意味します。 スマートフォン。 ただし、Android Q の改良により進歩は見られます。 LOGICAL_MULTI_CAMERA、開発者がデバイス上のすべてのカメラにアクセスしやすくなり、OEM が電力消費と複数のカメラ状態の管理を制御できるようにする API。
さらに、Google は、Android Q で起動するすべてのデバイスに対して、Camera2 API/Camera HAL3 をネイティブにサポートするための要件を追加したと述べています。 ヴィニト・モディ氏によると:
「Android P 以降、HALv3/camera2 をネイティブに使用するには、1GB 以上の RAM を搭載した新しいデバイスが必要になります。 Android Q 以降のすべての新しいデバイスは、HALv3/camera2 をネイティブにサポートする必要があります。 残念ながら、HALv1 から HALv3 へのアップグレードは無線でかなり複雑で、予期せぬ結果を招く可能性があるため、対象を新しいデバイスに限定する必要がありました。」
興味深いのは、通常の RAM Android P 起動デバイスに関するモディ首相の声明です。 矛盾している Google から以前に知らされた内容と、オンラインの Image Test Suite ページで公開されている内容です。
Jetpack Compose を使用した動的アプリのテーマ設定
Sony の OMS テーマ フレームワークは、かなり前のリリースで AOSP に追加されましたが、それは単なる OEM向け 上に構築する。 私たちはすでにそれを知っています Googleは反対している ユーザーによるアプリのテーマへのランタイム リソース オーバーレイの使用ですが、開発者にとっては、同社は 願って それは Jetpack 作成 UI フレームワークは「動的なテーマへの興味深いアプローチ」を推進します。
Skia が UI をレンダリングするための Vulkan バックエンド
去年、 私たちは議論を見つけました Google のエンジニアの間で、Android フレームワークで UI レンダリングに Vulkan グラフィックス API を使用する計画について話しています。 携帯電話がなくても、Vulkan ハードウェア アクセラレーション バックエンドを有効にすることが可能になりました クラッシュしているため、Google からいつこれらを展開する予定であるかについて具体的な計画は聞いていません。 変化します。 この AMA はその質問には答えていませんが、少なくともまだ開発中であることは確認できています。 ロマン・ガイ氏によると:
「チームは Android で使用される 2D レンダラーである Skia の Vulkan バックエンドに取り組んでいますが、現在デフォルトでは有効になっていません。 UI と Canvas は引き続き OpenGL ES を通過します。」
Android Qのジェスチャーバーをよりダイナミックにする
XDA の中にはまだそう考えている人もいます Androidの新しいジェスチャーはめちゃくちゃだ, でも個人的には大丈夫だと思います。 ただし、Android Q の新しいジェスチャを少し試してみると、ジェスチャ バーが指で動かないことに気づくでしょう。 また、ホーム画面や最近使用したアプリの概要など、必要のない画面にも表示されます。 アレン・ファン 言う 彼らは、「ナビゲーションラインをより静的」にする「機会があることに全面的に同意する」と述べた。 彼はさらにこう言います 「これは私たちが取り組んでいることですが、気が散らないようにバランスをとることも重要です」 現れる/消える。」
ストレージアクセスフレームワークの改善
Android Q の多くの変更により、 プラットフォームのセキュリティとプライバシー. そのような変更の 1 つは「Scoped Storage」と呼ばれ、外部ストレージ上のファイルへのアプリのアクセスを合理的な方法で制限します。 たとえば、音楽アプリはギャラリーを参照する必要はありません。 Android Q で実行されているファイル マネージャー アプリは、通常どおり動作し続けるために、Storage Access Framework と呼ばれる API を使用する必要がありますが、 一部の開発者はこの API を劣っていると見なしています 以前に利用可能だったものに。 Googleのジェフ・シャーキー 言う チームは、次のような開発者の苦情のいくつかに対処しました。
「最新の Android Q ベータ リリースでは、SAF のパフォーマンスがいくつか改善されました。 最新のベータ版と比較してベンチマークを確認していただけますか? また、一括操作を実行するときは ContentProviderClient を使用していることを確認してください。」
Project Treble は Android Pie の採用と Android Oreo の比較を改善しました
Android フレームワークの主要な低レベルの再設計である Project Treble が、新しい Android OS バージョンの採用をどのように改善したかをすでに見てきました。 Googleは、多数のスマートフォンベンダーが参加したのはTrebleの功績であると認めている。 Android P ベータ版 去年と Android Q ベータ版 今年。 プロジェクト・トレブルのリーダーであるイリヤーン・マルチェフ氏と 幹線 エンジニア、 言う 2018 年末時点での Android Pie の採用率は Android Oreo の「3 倍」でした。
同じコメントの中で、Dick Dougherty 氏は、Android バージョンの分布図に関して、より有用な指標が開発中であるとほのめかしています。 チャートは 最終更新は5月, しかし、そのデータはアプリ開発者よりもジャーナリストにとって有益です。
画面録画はまだ作業中です
初期の Android Q ベータ版では、基本的なスクリーン レコーダーの機能フラグが追加されましたが、プラットフォーム自体は、次のことによって画面録画のユーティリティを大幅に向上させました。 アプリが他のアプリからオーディオをキャプチャできるようにする. ステファニー・サード・カスバートソン氏によると、チームは「つい昨日まで画面録画のニーズにうまく対応できる方法」を検討していたという。 他のスマートフォンブランドのようなもの ワンプラス, ASUS、Huawei、Samsung は内部音声を記録できる強力なスクリーンレコーダーを備えているため、Google はここで追いつくことになるでしょう。
ダークテーマのすべて!
見逃した方のために付け加えておきますが、Google はほとんどのアプリにダーク モードを追加しています。 ステファニー・サード・カスバートソン 言う すべての「主要アプリ」が「公式 [Android Q] リリースまでに」ダーク テーマをサポートすることを期待します。 Google Chromeでも、現在は システム全体のダーク テーマが有効になっている場合にページを強制的にリロードします。テーマが有効になっている場合は更新されなくなります。 かわった。
はい、サードパーティのランチャーは(最終的には)ジェスチャーで動作するようになります
Android のジェスチャーは一種の サードパーティのランチャーを使用すると壊れる. これは、最近のアプリの UI がストック ランチャー アプリ内に含まれており、Google はまだそれを行っていないためです。 純正のPixelでジェスチャーを使用したときに見られるのと同じシームレスなトランジションを実現する方法を考案しました。 ランチャー。 アダム・コーエン 肯定する Googleはこれらの問題に「リリース後できるだけ早く」対処する計画だ。 彼はさらにこう言います この非互換性は「Q 以降のアップデートで対処され、今後発売される新しいデバイスにバックポートされる予定です」 Q.」
動的/論理パーティションはカスタム ROM を強制終了するために存在するわけではありません
サポートするために 動的なシステム更新 Android Q では、Google Pixel 3 や Pixel 3 XL などの特定のデバイスが論理パーティションを使用します。 これらのパーティションのサイズは動的に変更できます。 この変更により、 root アクセスを機能させるのは困難であることが証明されています, そして一部の開発者はカスタムROMが標的にされているのではないかと懸念しています。 Iliyan Malchev 氏は、カスタム ROM を制限することが目的ではないと保証しています。 として 彼は説明する:
「動的パーティションは、カスタム ROM でできることを制限するものではありません。それらは単に パーティション サイズが固定されており、デバイスを再パーティションする安全な方法がないという問題の解決策 太田。 動的パーティションを作成する前に、OEM がサイジングを誤った場合、たとえば、 システム パーティション、その後、 その選択によって制限されるため、一定の期間を過ぎるとデバイスをアップグレードすることが事実上不可能になります。 ポイント。 一部の OEM は実際に OTA でデバイスのパーティションを再分割していますが、これは a) Android では正式にサポートされておらず、b) パーティション テーブルの変更は非常に危険であると考えられています。 動的パーティションは、物理パーティション テーブルと OS が認識するレベルの間に間接的なレベルを導入することで問題を軽減することを目的としています。 これにより、OTA でパーティション サイズを安全に調整できるようになります。 カスタム ROM に関しては、今よりもできることを制限されるべきではありません。 カスタム ROM のサポートは、各 OEM が有効にすることを決定しており、今後も継続します。」
プロジェクトのメインライン - ART モジュールとサポート期間
Mainline は、特定のライブラリとパッケージを標準化して、プラットフォームの更新とは関係なく更新できるようにすることを目的とした Google の新しい取り組みです。 なぜ Android ランタイム (ART) がまだメインライン モジュールではないのか疑問に思う人もいますが、私は Google I/O で次のように言われました。 ART のモジュール化に伴う複雑さにより、ART を初期の APEX パッケージの 1 つとして含めることができませんでした。 として 説明した イリヤーン・マルチェフ氏とダイアナ・ウォン氏の両名による:
「ランタイムの更新 (特にパフォーマンスと GC 修正、コア ライブラリ) は、間違いなくメインラインのコンテキストで検討していることです。 これらの更新をすべてのデバイス間で、またメインラインの複数のリリース間で一貫性のあるものにできることには、多くの利点があることがわかります。 これは、開発者にとって最善の方法を考える上で大きな技術的な課題でもあり、おそらく数年にわたる取り組みになります。 それは Mainline が現在実行できることではありませんが、確かに私たちが検討していることです。」
AOSP Gerrit をフォローすると、Google が依然として 一生懸命働いている ランタイムAPEXを作成します。 現在、それらは次のようです Bionic と ART/libcore を分割する 別々の APEX モジュールに分割します。
Project Mainline の利点に関して、あるユーザーは Mainline のアップデートの長さについて質問しました。 これに対し、イリヤーン・マルチェフ氏は、 言う 「これはまだ検討中のポリシーの問題ですが、デバイス上のメインライン モジュールを可能な限り長く更新したいと考えています。」 XDA 認定開発者 ルカ020400 カスタム ROM 開発者がアップデートをマージできるように、事前に構築されたメインライン モジュールが提供されるかどうかについて質問したところ、Jeff Bailey 氏はこれに応じました。 繰り返します 「AOSP から分離されるモジュールには、各モジュール リリースと一致するソース リリースが含まれます。」 AOSP では、次のような新しい APEX モジュールの進歩がすでに確認できます。 ニューラルネットワークAPI.
CameraX と ML Kit の出会い
今年の I/O で、Google は CameraX Jetpack ライブラリ. このライブラリは、開発者が Android Lollipop までの互換性を維持しながら、Android の Camera2 API を簡単にサポートできるように設計されています。 ヴィニット・モディ からかう 同社が CameraX との統合に取り組んでいること MLキット, Google の機械学習 Firebase SDK を使用すると、開発者は画像フレームを ML Kit にフィードして分析できます。
CameraX ベンダーの拡張機能とリリース日
カメラ アプリの開発者は、Google Pixel の夜景機能のような高度なカメラ機能がサードパーティのカメラ アプリからはアクセスできないという事実を嘆いています。 これは CameraX ベンダーの拡張機能で解決できるはずです。Google の Jeff Sharkey 氏はこれに対応しました。 言う 「すべての Pixel デバイスは CameraX Core 用に最適化されています。」 彼は、「拡張機能の側面は、新しいデバイスや今後のデバイスでサポートされる予定です」とからかいます。 さらに、グーグルは、 「いくつかのメーカーと協力して、デバイスの機能を開発者とユーザーに同様に提供できるようにしています。」 直接確認されていませんが、機能が確認される可能性があります のように 夜景 で グーグルピクセル4 CameraX ライブラリを使用するサードパーティのカメラ アプリで利用できるようになります。
シャーキー氏は、グーグルは今年末のベータ版リリースを目標にしていると述べた。
Android Q のメモリ管理の改善
Pixel 3 は以下の機能を搭載していると非難されました。 発売後の多くの問題しかし、Google はこれらの問題に対処するために数多くの取り組みを行ってきました。 発売後のアップデート. メモリ管理は Pixel 3 の最も弱い点の 1 つでしたが、Android Q リリースではもう少し改善されるはずです。 セリム・チネク氏は次のように述べています。
「たとえば、SystemUI では、通知やその他のサーフェスの RAM 使用量を削減するために、Q でさまざまな大規模なリファクタリング作業が行われました。」
ついにワイヤレスADBが実現するのか?
携帯電話をワイヤレスでデバッグしたい場合は、デバイスをルート化する必要があります。 Android Studio チームの Jamal Eason 氏 言う 彼らは現在、この機能の実現可能性に取り組んでいるとのこと。
Googleはまだタブレットでテストを行っていますか?
XDA 認定開発者 ルク1337 Googleは現在もタブレット上でAOSP UXをテストしているかどうかを尋ねた。 ということを考慮すると、それは当然の質問です 優れた Android タブレットが不足している そしてその バグが存在する 現在のリリースでは。 アレン・ファン 言う Googleは今でも「毎年テストと修正」を行っており、「Androidタブレットの優れたエクスペリエンスを確保するために」パートナーと緊密に協力していると述べた。
Reddit のスレッド全体にはさらに多くの投稿があります。 ここで取り上げたことは、私たちが学んだすべての新しい情報を要約したものですが、数人の Google 社員は (特にダイアン・ハックボーン) X 機能を削除したり、Y を実装しなかったりする理由について詳しく説明します。 許可。 Android チームの意思決定をもう少しよく理解したい場合は、AMA の全文を読むことをお勧めします。
/r/AndroidDev で AMA の全文を読む