で3000匹のスクリーンショット2016/12/16にAndroid 7にアップデートした端末のねこあつめ、3000匹集まった pic.twitter.com/MMC7NgSwNW— Oっくん (@okkun_zzz) 2017年12月10日
2017/12/10
3000匹集まったので
Android 7 のイースターエッグ、ねこあつめで3000匹集まった
2017/11/20
Termuxの備忘録
昔書いた、
Android上で動くgccの導入
WgetをAndroid NDKでコンパイル
Android用のnkfをコンパイル
Android用のnkfをコンパイル その2
がたまにアクセスがあるので、自分の備忘録も兼ねて。
Android 5.0以上ならターミナルエミュレーターはTermuxの使用をお勧めします。
まずGoogle Playからインストール → Termux
使い方はTermuxのThe Termux Wikiを見ればOK
忘れがちなキーの割り当て(Touch Keyboardより)
・Volume Up + W → Up arrow key
・Volume Up + A → Left arrow key
・Volume Up + S → Down arrow key
・Volume Up + D → Right arrow key
ボリュームダウンが[Ctrl]キーに割り当てられてるけど、操作し辛いのでナビゲーションドロワーから「KEYBOARD」を長押しして、「Extra keys view」を表示しておく。(Touch Keyboardより)
バージョン 0.62から Extra keys view は Volume UP + Q で表示/非表示可能 (2018/06/24 追記)
Volume UP + Q での Extra keys view の表示/非表示は以前からあったようです(2018/06/27 追記)
Termux-setup-storage にある通り、ストレージの初期設定を行う。
あとはDebian系のディストリビューションと同じ感覚で、
で利用できるパッケージリストの更新。
で新しいパッケージに更新。
以上で、Termuxの準備は完了。
・Clang
以前はgccのパッケージがあったのですが、現在ではClangになっています。(clangのパッケージに含まれるgccはclangへのリンクになっています。)
でインストールされます。
・Wget
Termuxはbusyboxがインストールされているので、busyboxで機能が足りているならそのまま使用、機能が足りないようであれば、パッケージのインストール。
でインストールされます。
・nkf
Termuxのパッケージにはないので、コンパイルします。
nkf Network Kanji Filterからソースをダウンロードして、ファイルの展開後、config.h の
を有効にして
で実行ファイルが作成されます。
2018/06/16 追記
FDcloneのコンパイル、インストール方法は Termux上でFDcloneを動かす に書きました。
Android上で動くgccの導入
WgetをAndroid NDKでコンパイル
Android用のnkfをコンパイル
Android用のnkfをコンパイル その2
がたまにアクセスがあるので、自分の備忘録も兼ねて。
Android 5.0以上ならターミナルエミュレーターはTermuxの使用をお勧めします。
インストールと初期設定など
使い方はTermuxのThe Termux Wikiを見ればOK
忘れがちなキーの割り当て(Touch Keyboardより)
・Volume Up + W → Up arrow key
・Volume Up + A → Left arrow key
・Volume Up + S → Down arrow key
・Volume Up + D → Right arrow key
ボリュームダウンが[Ctrl]キーに割り当てられてるけど、操作し辛いのでナビゲーションドロワーから「KEYBOARD」を長押しして、「Extra keys view」を表示しておく。(Touch Keyboardより)
Volume UP + Q での Extra keys view の表示/非表示は以前からあったようです(2018/06/27 追記)
Termux-setup-storage にある通り、ストレージの初期設定を行う。
$ apt update
で利用できるパッケージリストの更新。
$ apt upgrade
で新しいパッケージに更新。
以上で、Termuxの準備は完了。
パッケージのインストール
・Clang
以前はgccのパッケージがあったのですが、現在ではClangになっています。(clangのパッケージに含まれるgccはclangへのリンクになっています。)
$ apt install clang
でインストールされます。
・Wget
Termuxはbusyboxがインストールされているので、busyboxで機能が足りているならそのまま使用、機能が足りないようであれば、パッケージのインストール。
$ apt install wget
でインストールされます。
・nkf
Termuxのパッケージにはないので、コンパイルします。
nkf Network Kanji Filterからソースをダウンロードして、ファイルの展開後、config.h の
#define DEFAULT_CODE_UTF8
を有効にして
$ make
で実行ファイルが作成されます。
2018/06/16 追記
FDcloneのコンパイル、インストール方法は Termux上でFDcloneを動かす に書きました。
2017/08/25
Android 7 でのイースターエッグで表示されるねこの種類 (2)
前回は、"ねこの色などを決めている乱数のシードを0~231-1まで変えて種類を数えるしかない" となり、種類を数え切れていなかったので、今回はシードを0~2,147,483,647まで変えて数えました。
以下のような結果になりました。
まずは前回、選択可能なパターンで何種類いるか見た定義されている11色。
以下のような結果になりました。
まずは前回、選択可能なパターンで何種類いるか見た定義されている11色。
色 | 出現回数 | 種類 |
---|---|---|
0xFF212121 |
386,547,201
|
2,048
|
0xFFFFFFFF |
386,547,151
|
3,072
|
0xFF616161 |
300,647,462
|
3,072
|
0xFF795548 |
300,647,869
|
3,072
|
0xFF90A4AE |
214,748,370
|
3,072
|
0xFFFFF9C4 |
214,748,365
|
3,072
|
0xFFFF8F00 |
214,748,377
|
3,072
|
0xFF29B6F6 |
10,737,323
|
3,044
|
0xFFFFCDD2 |
10,737,350
|
3,046
|
0xFFCE93D8 |
10,737,557
|
3,042
|
0xFF43A047 |
8,589,885
|
3,035
|
合計 |
2,059,436,909
|
30,599
|
0xFF212121 ~ 0xFFFF8F00 の色のねこは全種類出現していました。
0xFF29B6F6 ~ 0xFF43A047 の色のねこは出現回数が減るため、全種類は出ないようです。
続いて定義されている11色以外となるねこは
2,147,483,647 - 2,059,436,909 = 88,046,738 回
出現し、種類は結果だけを書くと 85,516,367 種類となりました。
このうち、定義されている11色と被る種類が、
0xFF8F00 で 2種類
0x29B6F6 で 3種類
0x43A047 で 21種類
いたので、定義されている11色以外のねこは
85,516,367 - 2 - 3 - 21 = 85,516,341 種類
となります。
以上からねこの種類は
30,599 + 85,516,341 = 85,546,940 種類
となります。(書いたプログラムが合っていればですが…)
2017/08/21
Android 7 でのイースターエッグで表示されるねこの種類 (1)
先に結論を書いておくと、数え切れてません。
Android 7でのイースターエッグのねこの体の色は、定義されている11色以外に多くの色を取り得ること、各部位の色の全てのパターンが現れるとも限らないので、ねこの色などを決めている乱数のシードを0~231-1まで変えて種類を数えるしかないと思います。
2017/08/25 追記: シードを0~2,147,483,647まで変えて数えました → Android 7 でのイースターエッグで表示されるねこの種類 (2)
ひとまず、選択可能なパターンでねこが何種類いるかソースを見ながら計算してみる。
(体の色が定義されている11色以外の色があるが、今回は考えない。)
https://android.googlesource.com/platform/frameworks/base/+/android-7.1.1_r50/packages/EasterEgg/src/com/android/egg/neko/Cat.java#151
前回のAndroid 7.0/7.1.1 でのイースターエッグで表示されるねこの違いで見た通り、定義されているのは11色。
体の色が暗いか(isDark(mBodyColor))どうかで決まる。
体の色が暗いなら白、そうでなければそのまま(黒)。
目、口、鼻と同様に体の色が暗いかどうかで決まる。
暗ければ 0xFFEF9A9A、そうでなければ 0x20D50000。画像は"2. 目、口、鼻"と同じ。
Android 7でのイースターエッグのねこの体の色は、定義されている11色以外に多くの色を取り得ること、各部位の色の全てのパターンが現れるとも限らないので、ねこの色などを決めている乱数のシードを0~231-1まで変えて種類を数えるしかないと思います。
2017/08/25 追記: シードを0~2,147,483,647まで変えて数えました → Android 7 でのイースターエッグで表示されるねこの種類 (2)
ひとまず、選択可能なパターンでねこが何種類いるかソースを見ながら計算してみる。
(体の色が定義されている11色以外の色があるが、今回は考えない。)
1. 体の色
https://android.googlesource.com/platform/frameworks/base/+/android-7.1.1_r50/packages/EasterEgg/src/com/android/egg/neko/Cat.java#82,https://android.googlesource.com/platform/frameworks/base/+/android-7.1.1_r50/packages/EasterEgg/src/com/android/egg/neko/Cat.java#151
前回のAndroid 7.0/7.1.1 でのイースターエッグで表示されるねこの違いで見た通り、定義されているのは11色。
2. 目、口、鼻
https://android.googlesource.com/platform/frameworks/base/+/android-7.1.1_r50/packages/EasterEgg/src/com/android/egg/neko/Cat.java#158体の色が暗いか(isDark(mBodyColor))どうかで決まる。
体の色が暗いなら白、そうでなければそのまま(黒)。
3. 耳の内側
https://android.googlesource.com/platform/frameworks/base/+/android-7.1.1_r50/packages/EasterEgg/src/com/android/egg/neko/Cat.java#161目、口、鼻と同様に体の色が暗いかどうかで決まる。
暗ければ 0xFFEF9A9A、そうでなければ 0x20D50000。画像は"2. 目、口、鼻"と同じ。
4. 腹
https://android.googlesource.com/platform/frameworks/base/+/android-7.1.1_r50/packages/EasterEgg/src/com/android/egg/neko/Cat.java#163,
https://android.googlesource.com/platform/frameworks/base/+/android-7.1.1_r50/packages/EasterEgg/src/com/android/egg/neko/Cat.java#108
より、0(透明、つまり体の色と同じ)か0xFFFFFFFF(白)の2通り。
腹と同じで0(透明、つまり体の色と同じ)か0xFFFFFFFF(白)の 2通り。
Cat.java の167行目では顔の色が明るければ(!isDark(faceColor))口と鼻を黒くする。
Cat.javaの172行目からどのつま先を白くするかの処理。
174行目、4本とも白。
178行目、前足2本(Android 7.0の場合は右前足、右後ろ足)が白。
181行目、後ろ足2本(Android 7.0の場合は左前足、左後ろ足)が白。
184行目、4本のうちどれか1本が白。
172, 176, 179, 182行目の各条件を満たさない場合は、白くならない。
全部で 1 + 1 + 1 + 4 + 1= 8通り。
白か体の色と同じになるので 2通り。
https://android.googlesource.com/platform/frameworks/base/+/android-7.1.1_r50/packages/EasterEgg/src/com/android/egg/neko/Cat.java#119,
https://android.googlesource.com/platform/frameworks/base/+/android-7.1.1_r50/packages/EasterEgg/src/com/android/egg/neko/Cat.java#113
体の色が暗ければ(isDark(mBodyColor))、P_LIGHT_SPOT_COLORS、暗くなければP_DARK_SPOT_COLORS の各配列の中から選択。
P_LIGHT_SPOT_COLORS は Cat.java の119行目で0(透明、つまり体の色と同じ)か0xFFFFFFFF (白) の2通り。
P_DARK_SPOT_COLORS は Cat.java の113行目で0(透明、つまり体の色と同じ)、0xFF212121、0xFF6D4C41 の3通り。
暗いか暗くないかで2通り、または3通りになる。
1.の体の色では、黒いねこ(色は0xFF212121)のみisDarkがtrueになる。
https://android.googlesource.com/platform/frameworks/base/+/android-7.1.1_r50/packages/EasterEgg/src/com/android/egg/neko/Cat.java#97
P_COLLAR_COLORSで、定義されている8色。
0xFFFFFFFF, 0xFF000000, 0xFFF44336, 0xFF1976D2, 0xFFFDD835, 0xFFFB8C00, 0xFFF48FB1, 0xFF4CAF50
Cat.java の196~197行目。
0(透明、つまり蝶ネクタイを描画しない)か襟と同じ色の2通り。
以上から、
1. 体の色
4. 腹
5. 顔の色(というか鼻と口周り)
6. つま先
7. しっぽの先
8. 頭
9.襟
10.蝶ネクタイ
が変わる。
黒いねこ(色は0xFF212121)の場合、
1 x 2 x 2 x 8 x 2 x 2 x 8 x 2 = 2,048 通り
それ以外のねこの場合、
10 x 2 x 2 x 8 x 2 x 3 x 8 x 2 = 30,720 通り
合計 32,768 通り。
定義されている体の色だけで、これだけのパターンが考えられるので、えさを置いてねこが来て、では全部集めるのは厳しい。
背中も腹と同様に0(透明、つまり体の色と同じ)か0xFFFFFFFF(白)の2通りあるのですが、
https://android.googlesource.com/platform/frameworks/base/+/android-7.1.1_r50/packages/EasterEgg/src/com/android/egg/neko/Cat.java#411
での戻り値の配列に back が抜けているため、描画されません。
backを描画するとこんなねこになります。
https://android.googlesource.com/platform/frameworks/base/+/android-7.1.1_r50/packages/EasterEgg/src/com/android/egg/neko/Cat.java#108
より、0(透明、つまり体の色と同じ)か0xFFFFFFFF(白)の2通り。
5. 顔の色(というか鼻と口周り)
https://android.googlesource.com/platform/frameworks/base/+/android-7.1.1_r50/packages/EasterEgg/src/com/android/egg/neko/Cat.java#165腹と同じで0(透明、つまり体の色と同じ)か0xFFFFFFFF(白)の 2通り。
Cat.java の167行目では顔の色が明るければ(!isDark(faceColor))口と鼻を黒くする。
顔の色が明るくなったので、口と鼻が黒くなる(右)
6. つま先
https://android.googlesource.com/platform/frameworks/base/+/android-7.1.1_r50/packages/EasterEgg/src/com/android/egg/neko/Cat.java#172Cat.javaの172行目からどのつま先を白くするかの処理。
174行目、4本とも白。
178行目、前足2本(Android 7.0の場合は右前足、右後ろ足)が白。
181行目、後ろ足2本(Android 7.0の場合は左前足、左後ろ足)が白。
184行目、4本のうちどれか1本が白。
172, 176, 179, 182行目の各条件を満たさない場合は、白くならない。
全部で 1 + 1 + 1 + 4 + 1= 8通り。
7. しっぽの先
https://android.googlesource.com/platform/frameworks/base/+/android-7.1.1_r50/packages/EasterEgg/src/com/android/egg/neko/Cat.java#188白か体の色と同じになるので 2通り。
8. 頭
https://android.googlesource.com/platform/frameworks/base/+/android-7.1.1_r50/packages/EasterEgg/src/com/android/egg/neko/Cat.java#190,https://android.googlesource.com/platform/frameworks/base/+/android-7.1.1_r50/packages/EasterEgg/src/com/android/egg/neko/Cat.java#119,
https://android.googlesource.com/platform/frameworks/base/+/android-7.1.1_r50/packages/EasterEgg/src/com/android/egg/neko/Cat.java#113
体の色が暗ければ(isDark(mBodyColor))、P_LIGHT_SPOT_COLORS、暗くなければP_DARK_SPOT_COLORS の各配列の中から選択。
P_LIGHT_SPOT_COLORS は Cat.java の119行目で0(透明、つまり体の色と同じ)か0xFFFFFFFF (白) の2通り。
P_DARK_SPOT_COLORS は Cat.java の113行目で0(透明、つまり体の色と同じ)、0xFF212121、0xFF6D4C41 の3通り。
暗いか暗くないかで2通り、または3通りになる。
1.の体の色では、黒いねこ(色は0xFF212121)のみisDarkがtrueになる。
体の色が暗い場合
体の色が明るい場合
9.襟
https://android.googlesource.com/platform/frameworks/base/+/android-7.1.1_r50/packages/EasterEgg/src/com/android/egg/neko/Cat.java#194,https://android.googlesource.com/platform/frameworks/base/+/android-7.1.1_r50/packages/EasterEgg/src/com/android/egg/neko/Cat.java#97
P_COLLAR_COLORSで、定義されている8色。
0xFFFFFFFF, 0xFF000000, 0xFFF44336, 0xFF1976D2, 0xFFFDD835, 0xFFFB8C00, 0xFFF48FB1, 0xFF4CAF50
10.蝶ネクタイ
https://android.googlesource.com/platform/frameworks/base/+/android-7.1.1_r50/packages/EasterEgg/src/com/android/egg/neko/Cat.java#196Cat.java の196~197行目。
0(透明、つまり蝶ネクタイを描画しない)か襟と同じ色の2通り。
以上から、
1. 体の色
4. 腹
5. 顔の色(というか鼻と口周り)
6. つま先
7. しっぽの先
8. 頭
9.襟
10.蝶ネクタイ
が変わる。
黒いねこ(色は0xFF212121)の場合、
1 x 2 x 2 x 8 x 2 x 2 x 8 x 2 = 2,048 通り
それ以外のねこの場合、
10 x 2 x 2 x 8 x 2 x 3 x 8 x 2 = 30,720 通り
合計 32,768 通り。
定義されている体の色だけで、これだけのパターンが考えられるので、えさを置いてねこが来て、では全部集めるのは厳しい。
おまけ: 背中
https://android.googlesource.com/platform/frameworks/base/+/android-7.1.1_r50/packages/EasterEgg/src/com/android/egg/neko/Cat.java#164背中も腹と同様に0(透明、つまり体の色と同じ)か0xFFFFFFFF(白)の2通りあるのですが、
https://android.googlesource.com/platform/frameworks/base/+/android-7.1.1_r50/packages/EasterEgg/src/com/android/egg/neko/Cat.java#411
での戻り値の配列に back が抜けているため、描画されません。
backを描画するとこんなねこになります。
2017/07/07
Android 7.0/7.1.1 でのイースターエッグで表示されるねこの違い
Android 7.0の正式版がリリースされて1年近くたち、Android 8.0のデベロッパープレビューも出てますが、Android 7.0/7.1.1 でのイースターエッグ(ねこあつめ、Android Neko)で表示されるねこの違いが気になったのでソースを見てみました。
Android 7.0でのソースは
https://android.googlesource.com/platform/frameworks/base/+log/android-7.0.0_r33/packages/EasterEgg
Android 7.1.1でのソースは
https://android.googlesource.com/platform/frameworks/base/+log/android-7.1.1_r46/packages/EasterEgg
を見ています。
Android 7.1.1と7.1.2のソースは同じでした。
Android 7.0のリリース後に修正された点は以下の7つです。
・a801d40531b71f8c75bb03bb8fec429f503e391e
・1bdc770e664d7052ae277ea07bd40bd36037d822
・753762c8fa3fae29f20a0fc34531ecef3fef85a9 (1)
・4a1bcd966b1c271909f38b41031cc012e233fbdd (2)
・1e52909888fc27bc8d7f63ceeabba0a87b65e419
・7c2e730f637ee40f2be642b08a3956895dbb178b (Android 7.1.0でのソース) (3)
・946c2b89396554b2618ea5bbaff4652f75768016 (Android 7.1.1, 7.1.2でのソース)
この中で見た目が変わる修正が入ったのは3つありました。
黒いねこ(色は0xFF212121)、白いねこ(色は0xFFFFFFFF)、ここにはいませんが灰色のねこ(色は0xFF616161)は色相の値が0.0のため、黒だけ、白だけ、灰だけの並びにはなりません。
・一覧からの削除時にダイアログを表示
・共有時の画像サイズの変更(512x512 → 600x600)
ねこのデザインの調整で一番分かりやすい部分は、Android 7.0では足先が白くなるパターンとして右側だけ、左側だけというのがありましたが、Android 7.1.xでは前だけ、後ろだけになっています。(上の画像だと #139, #131, #574)
Android 7.0, 7.1.xともにねこの生成には乱数が使用されているのですが、乱数の生成に必要なシードから名前が付けられます。
Android 7.0ではシードの上3桁、Android 7.1.xではシードの下3桁(正確にはシードを1000で割った余り)になっています。
Android 7.0ではシードが3桁未満だとアプリが(多分)落ちます。
シードは https://android.googlesource.com/platform/frameworks/base/+/android-7.0.0_r33/packages/EasterEgg/src/com/android/egg/neko/Cat.java#182 で生成されていて、 Math.abs(ThreadLocalRandom.current().nextInt()) となっているので、3桁未満になる可能性は低いです。
Android 7.1.xは下3桁になったのでアプリが落ちることは無くなりました。この修正で名前の数字部分が1桁、2桁のねこが現れるようになったと思います。
補足:
・シードの上3桁(Android 7.0)、下3桁(Android 7.1.x)をねこの名前にしているので、名前は同じなのに色が違うというのが起こります。
・ねこを全部集めようと思ってもシードが231個あるのでねこもその数だけいます。ただ、全く同じ柄のねこになる場合があるので柄の種類としては231より少なくなると思われます。(2017/07/10訂正: シードは232個ではなく231個でした)
Android 7 でのイースターエッグで表示されるねこの種類 (1)
Android 7 でのイースターエッグで表示されるねこの種類 (2)
おまけ:
ねこの体の色は
https://android.googlesource.com/platform/frameworks/base/+/android-7.1.1_r46/packages/EasterEgg/src/com/android/egg/neko/Cat.java#82 で設定されていて、11個が定義されています。
Android 7.0でのソースは
https://android.googlesource.com/platform/frameworks/base/+log/android-7.0.0_r33/packages/EasterEgg
Android 7.1.1でのソースは
https://android.googlesource.com/platform/frameworks/base/+log/android-7.1.1_r46/packages/EasterEgg
を見ています。
Android 7.1.1と7.1.2のソースは同じでした。
Android 7.0のリリース後に修正された点は以下の7つです。
・a801d40531b71f8c75bb03bb8fec429f503e391e
・1bdc770e664d7052ae277ea07bd40bd36037d822
・753762c8fa3fae29f20a0fc34531ecef3fef85a9 (1)
・4a1bcd966b1c271909f38b41031cc012e233fbdd (2)
・1e52909888fc27bc8d7f63ceeabba0a87b65e419
・7c2e730f637ee40f2be642b08a3956895dbb178b (Android 7.1.0でのソース) (3)
・946c2b89396554b2618ea5bbaff4652f75768016 (Android 7.1.1, 7.1.2でのソース)
この中で見た目が変わる修正が入ったのは3つありました。
(1) 753762c8fa3fae29f20a0fc34531ecef3fef85a9
一覧でのソート処理が入りました。ねこの体の色(HSV色空間の色相)でソートされます。Android 7.0 |
Android 7.1.1 |
黒いねこ(色は0xFF212121)、白いねこ(色は0xFFFFFFFF)、ここにはいませんが灰色のねこ(色は0xFF616161)は色相の値が0.0のため、黒だけ、白だけ、灰だけの並びにはなりません。
(2) 4a1bcd966b1c271909f38b41031cc012e233fbdd
・ねこのデザインの調整・一覧からの削除時にダイアログを表示
・共有時の画像サイズの変更(512x512 → 600x600)
ねこのデザインの調整で一番分かりやすい部分は、Android 7.0では足先が白くなるパターンとして右側だけ、左側だけというのがありましたが、Android 7.1.xでは前だけ、後ろだけになっています。(上の画像だと #139, #131, #574)
(3) 7c2e730f637ee40f2be642b08a3956895dbb178b
生成されたねこに付ける名前が修正されています。(ここまでの修正がAndroid 7.1.0に含まれています)Android 7.0, 7.1.xともにねこの生成には乱数が使用されているのですが、乱数の生成に必要なシードから名前が付けられます。
Android 7.0ではシードの上3桁、Android 7.1.xではシードの下3桁(正確にはシードを1000で割った余り)になっています。
Android 7.0ではシードが3桁未満だとアプリが(多分)落ちます。
シードは https://android.googlesource.com/platform/frameworks/base/+/android-7.0.0_r33/packages/EasterEgg/src/com/android/egg/neko/Cat.java#182 で生成されていて、 Math.abs(ThreadLocalRandom.current().nextInt()) となっているので、3桁未満になる可能性は低いです。
Android 7.1.xは下3桁になったのでアプリが落ちることは無くなりました。この修正で名前の数字部分が1桁、2桁のねこが現れるようになったと思います。
補足:
・シードの上3桁(Android 7.0)、下3桁(Android 7.1.x)をねこの名前にしているので、名前は同じなのに色が違うというのが起こります。
・ねこを全部集めようと思ってもシードが231個あるのでねこもその数だけいます。ただ、全く同じ柄のねこになる場合があるので柄の種類としては231より少なくなると思われます。(2017/07/10訂正: シードは232個ではなく231個でした)
Android 7 でのイースターエッグで表示されるねこの種類 (1)
Android 7 でのイースターエッグで表示されるねこの種類 (2)
おまけ:
ねこの体の色は
https://android.googlesource.com/platform/frameworks/base/+/android-7.1.1_r46/packages/EasterEgg/src/com/android/egg/neko/Cat.java#82 で設定されていて、11個が定義されています。
P_BODY_COLORS の最後が "0" になっていますが、これは透明ではなく、
https://android.googlesource.com/platform/frameworks/base/+/android-7.1.1_r46/packages/EasterEgg/src/com/android/egg/neko/Cat.java#152 で乱数を使って体の色を決めています。(Color.HSVToColor(new float[]{}) はアルファ値を 0xFF でHSVToColor(int alpha, float hsv[])を呼び出しているので生成される色は透明になりません。)
登録:
投稿 (Atom)