Android Studio 上で実機を操作できる件

Android Studio でエミュレーターのように接続した実機を、

操作、キャプチャーなどできるようになったんですね。



scrcpy も不要となってたんですね。

👉 【macOS / Android】scrcpy on Mac can't find "… libmbedcrypto.14.dylib" · Genymobile/scrcpy


Android Studio キャッシュの種類とそれぞれのクリーンの操作

ビルド速度が遅いので、


org.gradle.caching=true

としたら、署名付きビルドが更新されない。

「キャッシュ」のせいなのは分かるが、

いろいろ種類がありそうだよな、

Android Studio の「キャッシュ」って。

 

🤔 キャッシュの種類

ChatGPT に聞くと、3つあるそうです。

もちろん信用はしてないです。

IDE キャッシュ
コード補完、シンタックスハイライト、プロジェクトインデックス、ビルド設定など

Gradle キャッシュ
依存ライブラリ、ビルドキャッシュ(Gradleがダウンロードしたファイルなど)

ビルドキャッシュ
build/ フォルダ内の成果物やコンパイル済みファイルなど

そして、今回の調べるきっかけとなった


org.gradle.caching=true

は「ビルドキャッシュ」のようです。

 

🤔 まとめ

いきなり、分かったことをまとめます。


org.gradle.caching=true

は、ビルドキャッシュ。

キャッシュの範囲は、


ビルドキャッシュ < Gradle キャッシュ < IDE キャッシュ

のようなので、

キャッシュを消したいときは、


[Build] - [Clean Project]


[Build] - [Rebuild Project]


./gradlew clean


rm -rf ~/.gradle/caches


[File] → [Invalidate Caches / Restart]


rm -rf ~/.gradle

を上から順番に試していくのがいいと思います。

もちろん信用はしてません。

公式読むと良いです。

👉 Build Cache - docs.gradle.org

 

🧑🏻‍💻 おまけ

今回のような場合、

Gradle タスクに追加しておく方法もあるらしい。


tasks.withType(Sign).configureEach {
    outputs.cacheIf { false }
}

記述場所としては、

基本的に、android {} の外、末尾に記述する。

マルチモジュールなら subprojects {} 内に。


WordPress で cf-cache-status: BYPASS のままで HIT にならない

私の場合だけども、cloudflare で。


❯ curl -sI https://android.benigumo.com/ | grep 'cf-cache'
cf-cache-status: BYPASS

どうやっても「HIT」にならない。

レスポンスヘッダーに set-cookie があると cloudflare のキャッシュが効かなくなるらしい。

Additionally, the following headers have given me grief with CF in the past, they should not be present:

Set-Cookie

👉 CF-CACHE-STATUS showing BYPASS - Website, Application, Performance - Cloudflare Community

確認すると、謎の cookie セットがある。


❯ curl -sI https://android.benigumo.com/
HTTP/2 200
date: Sun, 02 Feb 2025 06:42:13 GMT
content-type: text/html; charset=UTF-8
vary: Accept-Encoding
vary: accept, content-type
set-cookie: 6666cd76f96956469e7be39d750cc7d9=1738478533; expires=Sun, 02-Feb-2025 07:42:13 GMT; Max-Age=3600; path=/

web リソース内を grep して、

あやしそうなプラグインを特定後、無効化しながら確認する。

私の場合は、中華産プラグインでした。

削除後。


❯ curl -sI https://android.benigumo.com/ | grep 'cf-cache'
cf-cache-status: HIT

1秒あたり15リクエストしか返せなかったのが、

キャシュが効いて71リクエストを返せるようになりました!


❯ wrk https://android.benigumo.com
Running 10s test @ https://android.benigumo.com
  2 threads and 10 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency   201.93ms  252.04ms   1.57s    88.06%
    Req/Sec    38.47     20.07    90.00     63.01%
  713 requests in 10.03s, 68.66MB read
  Socket errors: connect 0, read 0, write 0, timeout 1
Requests/sec:     71.06
Transfer/sec:      6.84MB

Cloudfrare プラグインは有料化への誘導なだけなので、

記事の更新や追加時のキャッシュのパージは手動で行います。