android 電池の最適化 | Doze | スタンバイ | バッテリーセーバー

以前にも書きましたが、いろいろな節電処理が自動に行われているということで。

「電池の最適化」とは、バックグラウンド時にアプリを「スリープ」すること。

👉 ラジオや音楽アプリが勝手に終了する場合 

まずは、adb でカレントなステータスを確認したり、エミュレートしたりして自在に試してみることですよね。

以下の公式リファレンスベースに確認しながら関連の操作や語彙に馴染んでいきましょう。

👉 Doze とアプリ スタンバイ用に最適化する  |  Android デベロッパー  |  Android Developers 

 

Dozeモード

端末を使っていなければアプリのバックグラウンド処理を保留する

アイドルモード開始


$ adb shell dumpsys deviceidle force-idle

アイドルモード終了


$ adb shell dumpsys deviceidle unforce

デバイスを再度アクティブにする


$ adb shell dumpsys battery reset

 

スタンバイモード

アプリを操作していなければ、そのアプリのバックグランド処理を保留します。

スタンバイモードにする


$ adb shell dumpsys battery unplug
$ adb shell am set-inactive {PACKAGENAME} true

アプリ復帰する


$ adb shell am set-inactive {PACKAGENAME} false
$ adb shell am get-inactive {PACKAGENAME}

👉 電源に関する問題をテストする  |  Android デベロッパー  |  Android Developers 

 

アプリ スタンバイ バケット 

各アプリは、その使用パターンに基づいて 5 つの優先度バケットのいずれかに振り分けられます。システムは、各アプリが入っているバケットに基づいて、そのアプリで使用できるデバイス リソースを制限します。


$ adb shell dumpsys battery unplug


$ adb shell am set-standby-bucket {PACKAGENAME} active|working_set|frequent|rare


$ adb shell am set-standby-bucket {PACKAGENAME1} {BUCKET1} {PACKAGENAME2} {BUCKET2}...


$ adb shell am get-standby-bucket [PACKAGENAME]

👉 アプリ スタンバイ バケット  |  Android デベロッパー  |  Android Developers 

 

バックグラウンド制限


$ adb shell cmd appops set {PACKAGENAME} RUN_ANY_IN_BACKGROUND ignore


$ adb shell cmd appops set {PACKAGENAME} RUN_ANY_IN_BACKGROUND allow

 

バッテリーセーバー


$ adb shell dumpsys battery unplug
$ adb shell settings put global low_power 1
$ adb shell dumpsys battery reset

👉 電源管理に関する制限  |  Android デベロッパー  |  Android Developers 

バッテリー操作系


$ adb shell dumpsys battery


$ adb shell dumpsys battery -h

電源を抜く


$ adb shell dumpsys battery unplug 

30%にセット


$ adb shell dumpsys battery set level 30

電源を元に戻す


$ adb shell dumpsys battery reset

 

まとめ

端末や対象のアプリそれぞれのステータスを確認しながら進むと良いででしょう。


$ adb shell dumpsys deviceidle


$ adb shell dumpsys battery


$ adb shell settings list {system|secure|global}


$ adb shell am get-inactive {PACKAGENAME}


$ adb shell am get-standby-bucket [PACKAGENAME]


$ adb shell cmd appops get {PACKAGENAME}

カレントな状態が目で見てはっきり分かると、

自然に次にやるべきことはきちんと見つかります。

👉 電源に関する問題をテストする  |  Android デベロッパー  |  Android Developers 


Google音声文字変換の起動方法

便利です。

いろいろ使えます。



しかし、Android のバージョンによって起動方法が違います。

 

アイコンをタップ

Pixel3以前 (Android Pie 9 まで?) はこの方法です。

アプリ自体はPlayストアからダウンロードします。

起動は、他のアプリと同様にアイコンをタップします。

 

2本指で上スワイプ

Android10以降は、この方法が良さげです。



まず、設定から有効化します。

[設定] - [ユーザ補助] から
「音声文字変換」を「ON」にします。

有効化しておけば、

あとは起動したくなったときに

2本指で上スワイプです。

👉 音声文字変換 - Google Play のアプリ 
👉 音声文字変換を使用する - Android のユーザー補助機能 ヘルプ 

 

その他

「自動字幕起こし」てのが、最近のAndroidにはついてますが、

現在は「英語のみ」となっています。


OBS出力から 仮想カメラ デバイス を作成する【macOS】

自在にストリーミングデータを組み合わせできるOBSを仮想のカメラデバイスとしてオンライン会議アプリケーションから利用できたら便利です。

👉 Open Broadcaster Software | OBS 

そんなOBSのプラグインがあります。

👉 johnboiles/obs-mac-virtualcam: Creates a virtual webcam device from the output of OBS. Especially useful for streaming smooth, composited video into Zoom, Hangouts, Jitsi etc. Like CatxFish/obs-virtualcam but for macOS. 

これ最高です。

 

インストール

1. リリースページから .pkgインストーラをダウンロードして実行する。
2. OBSを起動する。起動している場合は再起動。
3. [Tools] → [Start Virtual Camera] で仮想カメラを作成する。

これで、出力先のアプリ上で、カメラデバイスとして表示され選択できるようになります。

 

互換性の問題

Slack や Zoom で使うには少し設定が必要と。

👉 Compatibility · johnboiles/obs-mac-virtualcam Wiki 

「アプリにDAL(Device Abstraction Layer)プラグインを許可させる」必要が有るようです。


$ sudo codesign -f -s - /Applications/zoom.us.app


$ sudo codesign --remove-signature /Applications/zoom.us.app/

👉 DAL plugin unable to run because of codesigning issues · Issue #4 · johnboiles/obs-mac-virtualcam 
👉 How to fix virtual camera not working problem on Zoom 

 

まとめ

この機会にOBSを自在に使えるようになると今後いろいろと役立つと思います。



👉 グリーンバック(背景布)なしでクロマキー 
👉 AndroidスマホをWEBカメラとして使う【macOS】 
👉 SoundFlowerからBlackHoleに移行してOBS接続おさらい 
👉 OBSをバーチャルカメラとして出力してZoomやTeamsで映像ソースとして認識させる方法 | 技術的な何か。 


新型コロナ関連アプリを作っても公開停止だろ?

👉 AppleとGoogleが共同開発のコロナの接触者追跡アプリのインターフェースが公開 - iPhone Mania 

公開されてます。Javaライブラリとして。

👉 google/exposure-notifications-android: Exposure Notifications Android Reference Design 

よおし!

これを利用してアプリ作っちゃうか!

 

新型コロナアプリは勝手に公開できない

2020年4月に、「10万円給付」の前に「30万円給付」という話がありました。

このときに、30万円給付に該当するか確認するアプリを作って公開しようとPlayストアにアップしたのですが、

即停止されました。

その時のメール。

アプリのステータス: Life support temporary benefit (reference) ポリシー違反により   Google Play での公開停止中

審査の結果、お客様のアプリは配慮が求められる事象に関するポリシーに違反していることが判明いたしました。自然災害、残虐行為、紛争、死、その他の悲劇的な事象に対する妥当な配慮を欠く、またはそのような事象を利用するという違反が含まれております。詳しくは、配慮が求められる事象のページをご参照ください。
たとえば、お客様のアプリには現在、正当な情報源なしに、コロナウイルス(COVID-19)への参照が含まれています。

以下のいずれかに該当する場合は、その旨が確認できる書類をご提出ください。

1. アプリの製作者が政府または公的医療機関である場合。
2. アプリの製作者が政府または公的医療機関にアプリ制作依頼を受けている場合(例:WHO、赤十字社、その他の医療機関等にアプリ制作依頼を受けている)。
3. アプリが政府または公的医療機関の承認を得て作成されている場合。

販売 / 配布停止の対象になりますと、Google Play デベロッパー アカウントの状態が良好ではなくなりますので、ご注意ください。違反の繰り返しがあったアプリが否承認となったり削除されたりする場合と同様、著しいポリシー違反や複数のポリシー違反があったアプリは停止となることがございます。

また、文中内「配慮が求められる事象」。

自然災害、残虐行為、紛争、死、その他の悲劇的な事象に対する妥当な配慮を欠く、またはそのような事象を利用するアプリは認められません。
以下に一般的な違反の例を示します。

• 自殺、薬物の過剰摂取、自然死などによる人間の死への配慮が欠けている。
• 大規模な悲劇的事象を否定する。
• 悲劇的な事象から利益を得ているように見える(被害者に恩恵が届いているのか明確でない)。

👉 不適切なコンテンツ | 制限されているコンテンツ - Developer Policy Center 

「corona」でストアを検索すると結構ある。

開発元、パッケージドメインからみるに、政府や公的機関な雰囲気。

👉 corona - Google Play の Android アプリ 

「covid-19」で検索すると、WHOのものしかない。

👉 covid-19 - Google Play の Android アプリ 

 

まとめ

政府や公的医療機関の依頼がない限り、Playストアから公開は無理なのでしょう。

👉 マイナンバーカードの暗証番号入力間違い回数の確認やリセットする方法 
👉 Google | Exposure Notifications API 
👉 Google COVID-19 Exposure Notications Service Additional Terms 


Android OSバージョンシェア 2020-05

👉 AndroidのOSバージョンシェア 2020年5月 : リリースから8ヶ月ほど経ったAndroid 10はわずか8.2% | orefolder.net 

もう少し Android10 頑張ってほしいな、ということで Global Stats を見る。

👉 Mobile & Tablet Android Version Market Share Worldwide | StatCounter Global Stats 

👉 Mobile & Tablet Android Version Market Share Japan | StatCounter Global Stats 

 

まとめ

日本では、
API29(Android10)は、全体の2割。
9割カバーするには、minSdk=23。



毎月月初に、Twitter でバージョンシェア配信してますのでよければフォローどうぞ。

👉 ちゃんずまお(@maochanz)さんの返信があるツイート / Twitter