【巣ごもり】3ヶ月で10キロ痩せた私のダイエットツールたち

昨年のうちにBMIと血液数値を修正するのが目標だった。結果は新年早々の血液検査で。

-3kg/月。

おじいが健康的に痩せるにはほど良い程度だと思ってる。

水色の線は平均線、何日間のかは知らん。

 

体重計

乗る回数が減ると太るので、いちいち乗る。



オムロン 体重・体組成計 カラダスキャン スマホアプリ/OMRON connect対応 ホワイト HBF-256T-W

うんこ -600g
しっこ -300-600g
ジョギング -1000-2000g
睡眠 -500-2000g
一日の飲食 +1500-3500g

乗る前に自分の体重を100g単位で当てれるようになる。

 

Googlt fit / Mi fit

グラフ化して眺める。ニヤニヤしたり、ブチ切れたり、反省する。



Xiaomi Mi Band 5

視覚化は大事。雰囲気でなく数字。結果。


👉 Google Fit: 運動を記録して健康的な生活を - Google Play のアプリ 
👉 Mi Fit - Google Play のアプリ 
👉 Mi Smart Band5 隠された3つのデフォルトテーマを使いたい 

Google Fitアプリは、他のフィットネスアプリを経由してデータをグラフ化してくれる。最近見やすくなった。

私の場合は、


Mi Smart watch

|

Mi Android App

|

Google fit App

てな計測データの流れとなってる。

👉 アプリが Google Fit に対応しているか確認する

 

血圧計

炭水化物を抜いてると血圧が上がるのが分かる。

そういえばうちの母が言ってた「米を食べんと血圧があがるぞ。」

人生の先輩は健康については経験からの知識が豊富。



オムロン上腕式血圧計 HCR-7104

手首式を買ったのだが、上腕式のが測定誤差が出にくい。計測時は心臓の高さで。

 

カレンダー

休肝日を週4で設定。結果をつける。ジョギング継続記録。体重目標とか。

👉 Google fit - Google Play の Android アプリ 

 

睡眠

腹を空にしてから8時間とるのが目標だが老人ほど厳しいはずだが、寝れなくても目を閉じてじっとしておく。

体は回復するし体重は減るし最強。

時間当たりのパフォーマンスは悪いようだが、後々勝つる。

スマートウオッチは睡眠の時間や状態を計測記録してくれる。



Xiaomi Mi Band 5

👉 Mi Fit - Google Play のアプリ 

 

歯磨き

口の中を清潔にしておくと味に敏感になり薄味を愛せる。塩入りのやつや薬用の高いやつなど複数併用する。



塩 はみがき

塩入りを常用すると、なんでも甘く感じる。

 

玄米

硬めに炊くとうまいがおにぎりを成形できん。

カレーに合うがチャーハンはまずい。

うんこが2-3倍の良型に。

白米はでんぷんの飲み物なのでやめれ。



圧力鍋

もしかして、今どきは、電気炊飯器のが簡単においしく炊けたりする?

 

こんにゃく

切って常備。みそ汁、ラーメン、鍋、何にでも入れちゃう。ゼリーのコーヒー味うまい。糸コンも併用。



こんにゃく食べてれば空腹感はないのだが、食べたいという感情は湧くことを知る。

 

ヨーグルト

毎日食べる。バナナ中心の果物も同時に摂る。

いちごやキウイも混ぜ込んで400gを2日間で食うペース。

うんこモリモリ。

 

ジョギング

毎日2時間。10-15km。2万歩。速度は遅い。雨でも。

濡れたシューズを洗濯乾燥機に入れると接着剤が剝がれて各パーツに分解される。

冬の気温はゼロ度。ネックウォーマー必須。コロナ対策にもなる。



ネックウォーマー ジョギング

 

ラジオ体操

毎朝6時半のラジオで。

10分間。

毎日6:30, 平日 8:40, 12:00, 15:00 に、

ラジオ体操がラジオである(テレビもある)ので、ジョギング時間に絡めるといい。

肩こりにも効果。

老体は硬く可動域が狭い。

子供のころ公園で体操してるおじいちゃんいたよな。


👉 図解 - ラジオ体操 - NHK 

 

血液検査

献血と健康診断で無料で3ヶ月おきにやる。コロナで血液は不足してる。得だし誰かの役に立つ。健康であることをしっかり考えることができる。

 

目標

コレステロール値、γGTP の数字。
BMIの改善。

 

まとめ

他人から見て「あーそら痩せるわ。」くらいでないと痩せん。

継続することの効果を感じながら試行錯誤の繰り返し。

結果、総コレステロール、γGTPを正常範囲におさえることができましたとさ。


👉 マイページ | ラブラッド 

歳や環境などタイミングや人によってダイエット方法は異なると思う。

体重落とすと血圧が少し上がるのは仕方がないのか。

引き続き、最も病気が少ないといわれるBMIの22を目指したい。

👉 Mi Band のアプリ 


【Google フォト対策】ffmpeg で動画軽量化

👉 Encode/AV1 – FFmpeg 

Android端末カメラで取得できる最高品質の動画を撮る。



パソコンのデスクトップ上に置いて、確認したあと、コーデック変換してサイズを下げる。


➜  ls -alh PXL_20201214_211006730.mp4
-rw-r--r--@ 1 nasu  staff   864M 12 15 13:14 PXL_20201214_211006730.mp4


➜  ffprobe -hide_banner PXL_20201214_211006730.mp4
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'PXL_20201214_211006730.mp4':
  Metadata:
    major_brand     : mp42
    minor_version   : 0
    compatible_brands: isommp42
    creation_time   : 2020-12-14T21:12:41.000000Z
    com.android.capture.fps: 30.000000
  Duration: 00:02:30.34, start: 0.000000, bitrate: 48225 kb/s
    Stream #0:0(eng): Audio: aac (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 191 kb/s (default)
    Metadata:
      rotate          : 90
      creation_time   : 2020-12-14T21:12:41.000000Z
      handler_name    : SoundHandle
    Stream #0:1(eng): Video: h264 (High) (avc1 / 0x31637661), yuvj420p(pc, smpte170m/bt470bg/smpte170m), 3840x2160, 48030 kb/s, SAR 1:1 DAR 16:9, 29.98 fps, 30 tbr, 90k tbn, 180k tbc (default)
    Metadata:
      rotate          : 90
      creation_time   : 2020-12-14T21:12:41.000000Z
      handler_name    : VideoHandle
    Side data:
      displaymatrix: rotation of -90.00 degrees


➜ ffmpeg -i PXL_20201214_211006730.mp4 -c:a copy -c:v libx265 -tag:v hvc1 PXL_20201214_211006730_hevc.mp4
...
frame= 4511 fps=5.4 q=31.0 size=  318720kB time=00:02:30.28 bitrate=17373.5kbitsframe= 4512 fps=5.3 q=34.2 Lsize=  323369kB time=00:02:30.30 bitrate=17625.0kbits/s dup=10 drop=5 speed=0.178x
video:319682kB audio:3517kB subtitle:0kB other streams:0kB global headers:2kB muxing overhead: 0.052518%
x265 [info]: frame I:     42, Avg QP:29.28  kb/s: 78656.18
x265 [info]: frame P:   1219, Avg QP:30.59  kb/s: 32333.41
x265 [info]: frame B:   3251, Avg QP:33.83  kb/s: 11025.11
x265 [info]: Weighted P-Frames: Y:10.1% UV:9.8%
x265 [info]: consecutive B-frames: 14.4% 7.1% 8.9% 45.5% 24.1%

encoded 4512 frames in 844.19s (5.34 fps), 17411.49 kb/s, Avg QP:32.91





サイズは1/2以下になるはず。


➜ ls -alh PXL_20201214_211006730*
-rw-r--r--@ 1 nasu  staff   864M 12 15 13:14 PXL_20201214_211006730.mp4
-rw-r--r--  1 nasu  staff   316M 12 15 13:33 PXL_20201214_211006730_hevc.mp4


➜  ffprobe -hide_banner PXL_20201214_211006730_hevc.mp4
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'PXL_20201214_211006730_hevc.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2mp41
    encoder         : Lavf58.45.100
  Duration: 00:02:30.40, start: 0.000000, bitrate: 17613 kb/s
    Stream #0:0(eng): Video: hevc (Main) (hvc1 / 0x31637668), yuvj420p(pc, progressive), 2160x3840 [SAR 1:1 DAR 9:16], 17412 kb/s, 30 fps, 30 tbr, 15360 tbn, 30 tbc (default)
    Metadata:
      handler_name    : VideoHandle
    Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 191 kb/s (default)
    Metadata:
      rotate          : 90
      handler_name    : SoundHandle

スマホで閲覧がメインな今、無駄な高画質動画など本当にいるか?

AV1はとろすぎ。

👉 【Googleフォト】一括で「高画質」へ変換して使用量を無制限にする方法 
👉 Google「バックアップと同期」が謎だったので整理する 
👉 Google フォト から写真や動画を一括で取得する – Google データエクスポート 
👉 「無料」は永遠ではない? 「Google フォト」が容量無制限の保存を終了する意味 | WIRED.jp 
👉 Googleフォトの[高画質]無制限バックアップが'21年6月終了。整理ツールも - Impress Watch 


今はまだ必要な Android ライブラリ の Bill of Materials(BOM) のURLs

以下は、Androidアプリ開発には、必ず使いますよね。

いや使うと良い、か。

 

Kotlin Libraries Bill of Materials

👉 Maven Repository: org.jetbrains.kotlin » kotlin-bom 

 

Kotlinx Coroutines BOM

👉 Maven Repository: org.jetbrains.kotlinx » kotlinx-coroutines-bom 

 

firebase-bom

👉 Google's Maven Repository - BOM 

 

OkHttp BOM

👉 Maven Repository: com.squareup.okhttp3 » okhttp-bom 

latest の更新に注意するためのな。

👉 bom - Google's Maven Repository 
👉 org.jetbrains - Maven Central Repository Search 


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

minSdkVersion をいくつにするか。

直近から80%までをカバーすることにして公式で確認してみましょう。

👉 配信ダッシュボード  |  Android デベロッパー  |  Android Developers 

今ではもう公式からのデータ公開などありません。

プラットフォームのバージョン
プラットフォームのバージョン情報については、Android Studio の [Create New Project] ウィザードでご確認ください。

 

Android Studio

確認してみます、2020-12-01現在。

Android 6.0 (API 23) 以降をカバーすれば、84.9%となり、8割をカバーすることができることになりますね。

これだけでは、あやしいのでネット上を定番サイトを巡回していきます。

 

AppBrain

AppBrain で確認してみます。


👉 Android OS version market share over time | AppBrain 

計算しやすいように順番に並び替えます。

OS Share (%) Sum (%)
6 7.6 90.6
7.0-7.1 9.8 83.0
8.0-8.1 17.8 73.2
9 24.1 55.4
10 31.1 31.3
11 0.2 0.2

Android7.0 (API24) 以降で、83%をカバーします。

 

StatCounter Global Stats

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

日本では Android8.0 (API26) 以降で 80.42%、世界では Android7.1 (API25) 以降で 81.86%をカバーします。

 

Google Play コンソール

先述の、公式ページに書いていたもう一つの関連メッセージ。


👉 配信ダッシュボード  |  Android デベロッパー  |  Android Developers 

信頼性の高いデータを使ってアプリのターゲティングを管理し、ユーザーのデバイスの特性を把握できるようにするには、Play Console で入手できるアプリの統計情報を活用することをおすすめします。

アプリ開発者向けのサイトになりますが、利用者数が多いアプリを公開していれば、最もリアルな生データになります。

しかし、そのアプリの特性も織り込まれます。

わたしらの公開しているアプリで見てみましょう。

OS Share (%) Sum (%)
7.1 2.02 88.12
8.0 10.35 86.10
8.1 2.09 75.75
9 25.31 73.66
10 46.99 48.35
11 1.36 1.36

Android8.0 (API26) 以降で 86.10% をカバーします。 アプリのユーザーは7割が日本国内を占めます。

 

まとめ

Android端末の国内発売当初から、バージョンシェアを眺めてきていますが、公式のAndroidDeveloperサイトのプラットフォームダッシュボードや、AndroidStudio内のウィザードの情報はこれまでも、かなり古い古すぎでした。

よって、今現在8割超えの minSdkVersion は「26」と決めつけちゃえ。

ちなみに以下も死んでます。

👉 minSdkVersion(@minSdkVersion)さんの返信があるツイート / Twitter 

ちなみに8年前。なつい。


👉 #androidファッション通信 | Facebook 


【コピペ用】Android「Google アプリ署名」コマンドまとめ

たまにしか使わないコマンドは忘れる。


➜  ~ keytool -help

キーおよび証明書管理ツール
コマンド:

 -certreq            証明書リクエストを生成します
 -changealias        エントリの別名を変更します
 -delete             エントリを削除します
 -exportcert         証明書をエクスポートします
 -genkeypair         鍵ペアを生成します
 -genseckey          秘密鍵を生成します
 -gencert            証明書リクエストから証明書を生成します
 -importcert         証明書または証明書チェーンをインポートします
 -importpass         パスワードをインポートします
 -importkeystore     別のキーストアから1つまたはすべてのエントリをインポートします
 -keypasswd          エントリの鍵パスワードを変更します
 -list               キーストア内のエントリをリストします
 -printcert          証明書の内容を出力します
 -printcertreq       証明書リクエストの内容を出力します
 -printcrl           CRLファイルの内容を出力します
 -storepasswd        キーストアのストア・パスワードを変更します

command_nameの使用方法については"keytool -command_name -help"を使用してください

-vオプションは、-helpコマンドを除くすべてのコマンドで使用できます。-vオプションを指定した場合、冗長モードになり、詳細な情報が出力されます。

👉 Java Platform, Standard Edition Tools Reference - keytool 
👉 Java Platform, Standard Editionツール・リファレンス - keytool 

ので、必要なものを箇条書き的メモに。

「キーストア」と「エイリアス」の言葉や関係は以下。

「keystore」というファイルの中に「keypair」が「entry」されている。「keypair」は「alias」という名称 (別名) で呼ばれる。

👉 【keytool】「キーストア(keystore)」と「エイリアス(alias)」の関係 

 

鍵の作成


➜  ~ keytool -genkeypair -v \
-keystore mykeystore.jks \
-alias mykey1 \
-keyalg RSA \
-keysize 2048 \
-validity 36500 \
-dname "C=JP, O=MY COMPANY, CN=MY NAME"


キーストアのパスワードを入力してください:
新規パスワードを再入力してください:
36,500日間有効な2,048ビットのRSAの鍵ペアと自己署名型証明書(SHA256withRSA)を生成しています
	ディレクトリ名: C=JP, O=MY COMPANY, CN=MY NAME
<mykey1>の鍵パスワードを入力してください
	(キーストアのパスワードと同じ場合はRETURNを押してください):
[mykeystore.jksを格納中]

以前のリリースでは「-genkey」という名前でした。この古い名前は、このリリースでも引き続きサポートされています。今後は新しい名前である「-genkeypair」を使用することをお薦めします。

👉 Java Platform, Standard Editionツール・リファレンス - keytool -genkeypair  

Android Studio では、以下のような画面で簡単に作成できますね。

Error ダイアログが、Warning メッセージと共に表示されますが、作成はされています。

 

キーストアの内容確認


➜  ~ keytool -list -v -keystore mykeystore.jks 


キーストアのパスワードを入力してください:
キーストアのタイプ: jks
キーストア・プロバイダ: SUN

キーストアには1エントリが含まれます

別名: mykey1
作成日: 2020/11/29
エントリ・タイプ: PrivateKeyEntry
証明書チェーンの長さ: 1
証明書[1]:
所有者: C=JP, O=MY COMPANY, CN=MY NAME
発行者: C=JP, O=MY COMPANY, CN=MY NAME
シリアル番号: 7f178100
有効期間の開始日: Sun Nov 29 13:10:39 JST 2020 終了日: Tue Nov 05 13:10:39 JST 2120
証明書のフィンガプリント:
	 MD5:  32:26:7F:2B:CC:FC:42:51:3F:3B:EE:78:E8:51:BE:4D
	 SHA1: 60:AB:6A:86:F0:5F:8A:B9:D5:00:E0:90:9A:FA:A8:75:33:8B:77:35
	 SHA256: 56:82:65:8C:C1:83:0F:3A:F8:EE:34:7A:A1:C9:17:B4:18:E9:89:C9:54:73:85:54:3B:5D:67:7C:67:E9:DF:CD
署名アルゴリズム名: SHA256withRSA
サブジェクト公開鍵アルゴリズム: 2048ビットRSA鍵
バージョン: 3

*******************************************
*******************************************


➜  ~ keytool -list -v -keystore .android/debug.keystore


キーストアのパスワードを入力してください:
キーストアのタイプ: jks
キーストア・プロバイダ: SUN

キーストアには1エントリが含まれます

別名: androiddebugkey
作成日: 2020/01/14
エントリ・タイプ: PrivateKeyEntry
証明書チェーンの長さ: 1
証明書[1]:
所有者: C=US, O=Android, CN=Android Debug
発行者: C=US, O=Android, CN=Android Debug
シリアル番号: 1
有効期間の開始日: Tue Jan 14 16:29:10 JST 2020 終了日: Thu Jan 06 16:29:10 JST 2050
証明書のフィンガプリント:
	 MD5:  21:18:F2:2D:27:D4:AB:22:32:02:AA:2C:FC:46:93:B2
	 SHA1: 6F:A3:EC:3C:AB:78:A1:D5:81:2C:9F:26:D5:27:C7:C9:05:88:74:E2
	 SHA256: BD:E1:34:6C:C9:FF:43:F0:67:C4:8A:EF:76:54:AB:09:8D:6E:34:C4:CB:E5:AB:49:CF:65:66:2F:FF:F7:A0:C8
署名アルゴリズム名: SHA1withRSA
サブジェクト公開鍵アルゴリズム: 2048ビットRSA鍵
バージョン: 1

*******************************************
*******************************************


➜  ~ keytool -list -rfc -keystore .android/debug.keystore


キーストアのパスワードを入力してください:
キーストアのタイプ: jks
キーストア・プロバイダ: SUN

キーストアには1エントリが含まれます

別名: androiddebugkey
作成日: 2020/01/14
エントリ・タイプ: PrivateKeyEntry
証明書チェーンの長さ: 1
証明書[1]:
-----BEGIN CERTIFICATE-----
MIIC5DCCAcwCAQEwDQYJKoZIhvcNAQEFBQAwNzEWMBQGA1UEAwwNQW5kcm9pZCBE
ZWJ1ZzEQMA4GA1UECgwHQW5kcm9pZDELMAkGA1UEBhMCVVMwIBcNMjAwMTE0MDcy
OTEwWhgPMjA1MDAxMDYwNzI5MTBaMDcxFjAUBgNVBAMMDUFuZHJvaWQgRGVidWcx
EDAOBgNVBAoMB0FuZHJvaWQxCzAJBgNVBAYTAlVTMIIBIjANBgkqhkiG9w0BAQEF
AAOCAQ8AMIIBCgKCAQEArTek9kmuVbQj5RU38w7vwvD6IaVt161YR62t3nWeJBU1
lCaOds4EKG4hhcUmR/tJcy0qklO/t7MotmGvKD9QpKLXI+EQ3hyf9W2iwpqe0QZB
mMvSaqu0rYnZkPnHaN7/8KVJBC8YRZNNIq6TQ34X1brmXD96/ftnAyZGLwdapS40
nKViT2QLmqjyWwcq2V8lafrSvuLEgn9exj1ZGs7TTD3xYuO/OOnjKUpIa/6VH5SY
WEFg4az74t10k3EVRyrpc0n+ihc+a5JyTFepiTd+wadhU45s7Ozrh8NEyzpa2Jll
Hqq8BJ8hComumlPEovTAYNBUasvWjudpcIfJE/cCjwIDAQABMA0GCSqGSIb3DQEB
BQUAA4IBAQAQWvQrZp6Lsj67CwNXRS8zxlVYlhRvm3OoVe/GgD4ZHRYhhcHzd1lw
ycfFK9jRFwFC1I+PAF4BAu7MxFT+kAKxJx4cY20bRki6yTfU/TfqFAfGudsIeeCI
YPSWTwqHOHDVSz6APe9QMY64HG2llyHjVP+w1Qiu1mowsXH3uWLH+TLb55BJEBP1
asT1TsCU3uTlZnDdKgz/v0SobXyAO7vLE3TEtv5+4hvXUyj+BHzjDm2Y1APMJeKP
e35yohrL2U2qUNvrDawhSMW+/UzkIM1jHYM5HZaZeH93kaNV+7wtkazDrGxa7+P7
0D8I0LK8pnCk+7gjp2X4jtvTXUmbZMVn
-----END CERTIFICATE-----

*******************************************
*******************************************

-vオプションと-rfcオプションを同時に指定することはできません。

 

鍵のエクスポートと暗号化


➜  ~ java -jar pepk.jar \
--keystore=foo.keystore \
--alias=foo \
--output=encrypted_private_key_path \
--encryptionkey=eb10fe8f7c7c992315022017b00c6471f8ba8170b13049a11e6c09ffe3a56a104a3bbe4ac5a955f4ba4f113fc8cef2a558a3eb9d2a529a2092761fb833b656cd4cb9de6d

Android Studio では、コマンド入力不要で暗号化した private_key.pepk ファイルを書き出してくれます。

 

鍵の証明書(PEM)のエクスポートと表示


➜  ~ keytool -exportcert -rfc \
-keystore mykeystore.jks \
-alias mykey1 \
-file mystore-mykey1.pem


キーストアのパスワードを入力してください:
証明書がファイルに保存されました

このコマンドは、以前のリリースでは-exportという名前でした。この古い名前は、このリリースでも引き続きサポートされています。今後は新しい名前である-exportcertを使用することをお薦めします。


➜  ~ keytool -printcert -file mystore-mykey1.pem


所有者: C=JP, O=MY COMPANY, CN=MY NAME
発行者: C=JP, O=MY COMPANY, CN=MY NAME
シリアル番号: 7f178100
有効期間の開始日: Sun Nov 29 13:10:39 JST 2020 終了日: Tue Nov 05 13:10:39 JST 2120
証明書のフィンガプリント:
	 MD5:  32:26:7F:2B:CC:FC:42:51:3F:3B:EE:78:E8:51:BE:4D
	 SHA1: 60:AB:6A:86:F0:5F:8A:B9:D5:00:E0:90:9A:FA:A8:75:33:8B:77:35
	 SHA256: 56:82:65:8C:C1:83:0F:3A:F8:EE:34:7A:A1:C9:17:B4:18:E9:89:C9:54:73:85:54:3B:5D:67:7C:67:E9:DF:CD
署名アルゴリズム名: SHA256withRSA
サブジェクト公開鍵アルゴリズム: 2048ビットRSA鍵
バージョン: 3

上記のコマンドは、アップロード鍵使用時の「アップロード鍵の証明書を PEM ファイルとしてエクスポートする」ときに利用されています。

Play コンソール [設定] - [アプリの署名]


➜  ~ keytool -export -rfc \
-keystore upload-keystore.jks \
-alias upload \
-file upload_certificate.pem

 

aab 署名証明書(フィンガープリント)の表示


➜  ~ keytool -printcert -v -jarfile 202011290.aab

.aab ファイルは、Play コンソールから「元のファイル」としてダウンロードして確認できます。

 

apk 署名証明書(フィンガープリント)の表示


➜  ~ apksigner verify --print-certs -v 202011290.apk

.apk ファイルは、Play コンソールから「署名済みのユニバーサル APK」としてダウンロードして確認できます。

 

その他

各出力結果に表示されますが、省略してます以下メッセージ。


Warning:
JKSキーストアは独自の形式を使用しています。"keytool -importkeystore -srckeystore mykeystore.jks -destkeystore mykeystore.jks -deststoretype pkcs12"を使用する業界標準の形式であるPKCS12に移行することをお薦めします。

👉 「Generate Signed Bundle or APK」ダイアログの混乱 
👉 はじめての Android App Bundle 
👉 【keytool】「キーストア(keystore)」と「エイリアス(alias)」の関係 
👉 Android: Reset Password Keystore file - DEV 
👉 Authenticating Your Client  |  Android 用 Google API  |  Google Developers