Android関連のことを調べてみた2022年06月24日

Android関連のことを調べてみた2022年06月24日

【Android】起動時パフォーマンス改善のためにBaseline Profilesを導入したときのメモ

GoogleI/O 2022で話題にあがっていたBaselineProfilesを導入検討した際のメモを残しておきます。

# 背景

Baseline ProfilesはAPKに含まれるクラスとメソッドのリストです。インストール時に、Android Runtime(ART)によって、クリティカルなパスをプレコンパイルするために使用されます。
導入すると起動時間の短縮が期待できます。

> Baseline Profiles are a list of classes and methods included in an APK used by Android Runtime (ART) during installation to pre-compile critical paths to machine code. This is a form of profile guided optimization (PGO) that lets apps optimize startup, reduce jank, and improve performance for end user

元記事を表示

令和最新版 Google Play Console アプリアップロード自動化のための設定フロー

2022年6月時点の Google Play Console へのアプリバイナリ (apk, aab) アップロード自動化のための、主に Google Play Console や Google Cloud Platform の設定のやりかたです。

## ステップ

1. Google Play Developer API 用の鍵の発行
2. 適切な権限を設定する
3. リリース用のツールをセットアップ

## 1. Google Play Developer API 用の鍵の発行

リリース用のツールで API を触るために鍵の発行が必要です。すでに鍵がある人はこのステップをスキップできます。

### 1-1. Google Cloud プロジェクトと紐づける

まず Google Play Console にログインして 「設定」 > 「API アクセス」を開きます:

![API_アクセス-2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/359439/bd359d90-7db1-d50b-

元記事を表示

Dagger Hilt Constructor Injection

# 最初に
Dagger Hiltの利用でField Injectionはスッと理解できたのですが、Constructor Injectionは少し時間がかかりました。自分用にもメモとして残します。
Dagger Hiltの環境設定やプロバイダのスコープ範囲などの説明はここでは割愛して、シンプルにコンストラクタインジェクションがどのように記述されるのかだけをまとめてます。

# 多分一番シンプルなコード
わかりやすくするためにString型を提供するプロバイダのサンプルです。
“`Kotlin
@AndroidEntryPoint
class HiltStringActivity : AppCompatActivity() {

// StringImplのコンストラクタには引数があるのに何も渡していない
// コンストラクタの引数はインジェクトしろというアノテーション
@Inject
lateinit var myStringImpl: StringImpl

override fun onCreate(savedInstanceState:

元記事を表示

コルーチンとチャネル入門#9 コルーチンのテスト

ソース記事は[こちら](https://play.kotlinlang.org/hands-on/Introduction%20to%20Coroutines%20and%20Channels/09_Testing)
コルーチンを使うコードのテスト方法について議論しよう。我々の解法をテストし、並列なコルーチンの解法が、`suspend`関数の解法よりも速く、チャネルの解法が、単純な”進捗”の解法よりも速いことが確認できればと思う。
それではGitHubサービスをモックし、このサービスが与えられたタイムアウトの後、結果を返すようにしよう。
“`
リポジトリ一覧要求 – 1000ms遅延以内で、答えを返す
repo-1 – 1000 ms 遅延
repo-2 – 1200 ms 遅延
repo-3 – 800 ms 遅延
“`
その後、`suspend`関数でのシーケンシャルな解法は、4000ms前後かかるはずである。
`4000 = 1000 + (1000 + 1200 + 800)`
そして並列の解法は、2200ms前後かかるはずである。
`2200 = 1000 + max(1

元記事を表示

Jetpack Compose で dp / px / sp の相互変換はどうやるのか

“`kotlin
val pxValue = with(LocalDensity.current) { 16.dp.toPx() }

// or

val pxValue = LocalDensity.current.run { 16.dp.toPx() }
“`
[How to convert Dp to pixels in Android Jetpack Compose? – Stack Overflow](https://stackoverflow.com/questions/65921799/how-to-convert-dp-to-pixels-in-android-jetpack-compose/65921800#65921800)

Kotlin スコープ系の関数で取得できる、というのだが気持ちが悪いです。

これは、以下でも同じ。

“`kotlin
val pxValue = 16.dp.value * LocalDensity.current.density
“`

さらに、その他、それぞれの変換もみてみます。

[?【Jetpack Compose】d

元記事を表示

Nrealでの録画機能について

# 動作環境
– macOS version 12.3.1 Monterey Intel Core i9
– Unity 2020.3.8f1
– NRSDKForUnityAndroid_1.8.0.unitypackage
– NrealLight モデル:NR-9101GGL
– Xperia 5 Ⅱ SOG02SLA
# 元からある録画機能
NRSDKForUnityAndroid_1.8.0.unitypackageをUnityにインポートすると、Assets/NRSDK/Demosの中にRGBCamera-Recordが作られており、これをbuildするとNrealのカメラから動画が取れる。
アプリを実行すると、録画の設定に関するパネルが表示されるので好きな設定を選んで、赤い丸をコントローラーでクリックする。