https://a.storyblok.com/f/270183/1368x665/fd3704a54c/25sep_dev-blog_android-memory.jpg

Android開発者の皆様へ:16 KB メモリページサイズの更新

最終更新日 September 18, 2025

所要時間:1 分

はじめに

グーグルは Android開発者にとって非常に重要なAndroid開発者にとって非常に重要な発表があった。Android 15以上のデバイスをターゲットとするすべての新規アプリと既存アプリのアップデートは、2025年11月1日以降、64ビットデバイスで16KBのメモリ・ページ・サイズをサポートする必要がある。 2025年11月1日以降、64ビット端末では16KBのメモリ・ページ・サイズをサポートする必要がある。.これまでは4KBのメモリ・ページ・サイズしかサポートする必要がなかった。

この投稿では、変更の内容や理由を説明するだけでなく、以下のSDKを使用するAndroidアプリケーションのアップデート方法についても説明します。 Vonage Client SDKを使用するAndroidアプリケーションをアップデートする方法を説明します。.また、Android 14デバイスでの音声録音に関する修正についても説明します。

注: Vonage Video Client SDKは、16 KBのメモリページサイズをサポートしています。 v2.30.0現在.

何を、なぜ

Androidはシステムレベルでのメモリ管理方法を変更しつつあり、あなたのアプリに影響を与える可能性があります。これはあなたのアプリに影響を与える可能性がある:

ページサイズとは?ページとは、デバイスのオペレーティング・システムがアプリに割り当てるメモリの固定ブロックのことです。標準サイズの輸送用コンテナのようなもので、アプリのメモリはこのコンテナに詰め込まれる必要があります。現在、Androidは4KBページ(小さなコンテナのようなもの)を使用していますが、新しいデバイスでは16KBページ(より大きなコンテナ)を使用します。

アプリに20MBのRAMが必要な場合、システムは現在5,120個の小さなコンテナ(各4KB)を提供している。16KBのページがあれば、代わりに1,280個の大きなコンテナが手に入る。

なぜアンドロイドはこのような変更を行うのでしょうか?ページサイズが大きくなると、いくつかの利点があります:

  • 消費電力を抑え、アプリの起動を高速化

  • デバイスの起動時間の短縮

  • システム全体のパフォーマンスの向上

これは私のアプリに影響しますか?この変更は、主に ネイティブコード- という意味です:

  • Android NDKを使用したアプリ

  • ネイティブ・ライブラリ(C/C++コード)を使用したアプリ

  • ネイティブコンポーネントを含むサードパーティSDKを使用するアプリ(たとえば クライアントSDK)

もしあなたのアプリがネイティブ依存のない純粋なJava/Kotlinであれば、おそらく問題ないので、ここで読むのをやめても構わない。

どのような問題が発生する可能性がありますか?ネイティブコードを使用したアプリで発生する可能性があります:

  • クラッシュの原因となるメモリ・アライメントの問題

  • 古いネイティブ・ライブラリとの互換性の問題

  • メモリ割り当て時の予期せぬ動作

どうすればいいのか?Google Playは、アプリを16KBのページサイズに対応させることを要求します。準備すること

  1. 以下のガイドに従って、Vonage Client SDKの実装を更新してください。

  2. ネイティブ・ライブラリを16KBページをサポートするバージョンにアップデートする。

  3. 16KBのページを持つデバイス(またはこのように設定されたエミュレータ)でアプリをテストする。

  4. NDKコードにハードコードされたページサイズの仮定がないか確認する。

この要件により、ページサイズ16KBのデバイスが市場に初めて登場した際にも、アプリがスムーズに動作することが保証される。

アプリケーションの更新

前提条件

  • GradleをセットアップしたAndroidプロジェクト。

  • アクセス Vonage Client SDKへのアクセス.

  • コンパイルおよびターゲットSDKとして最小限のAndroid API 36。

1.Vonage Android SDKバージョンを更新する

まず、新しいSDKとターゲットAndroid API 36を使用するようにGradleの設定を更新します。

あなたの app/build.gradleファイルに

android {
    ...
    compileSdk 36
    defaultConfig {
        ...
        targetSdk 36
        ...
    }
}

dependencies {
    ...
    // Vonage Client SDK
    implementation("com.vonage:client-sdk-voice:2.1.0")
}

2.Android 14+ Audio Hotfixを適用する

APIレベル34(Android 14)から、Androidは、アプリがフォアグラウンドにある場合でも、オーディオを録音するためにフォアグラウンドサービス(FGS)が必要になりました。

これを遵守するには、発信または着信コールを処理するたびに、FGSを開始します。

アウトバウンドコール

アウトバウンドコールをかける場合:

client.serverCall(context) { err, callId ->
    err?.let {
        println("Error starting outbound call: $it")
    } ?: callId?.let {
        println("Start outbound Call success: $it")
        requireActivity().getSharedPreferences("legid", Context.MODE_PRIVATE).edit().apply {
            putString("legid", it)
            apply()
        }
        activeCallId = it
        telecomHelper.startOutgoingCall(it, "SERVER-CALL")        

        // Required on API 34+: Start FGS for audio recording
        startForegroundService(requireContext())
    }
}

インバウンドコール

着信に対応するとき:

client.setCallInviteListener { callId, from, type ->
    activeCallId = callId
    println("Call from: $from, via channel $callId, channelType: $type")
    telecomHelper.startIncomingCall(callId, from, type)

    // Required on API 34+: Start FGS for audio recording
    startForegroundService(requireContext())
}

3.通知機能付きフォアグラウンドサービスの追加

Androidでは、オーディオを録音するFGSは、録音がアクティブであることをユーザーに知らせる永続的な通知を表示する必要があります。

を実装する必要がある。 AudioRecorderService.リファレンス実装はこちら: AudioRecorderService.kt (GitHub)

概要

Vonage Client SDKでAndroid 16KBメモリ・ページ・サイズをサポートする:

  1. API36をターゲットとし、最新のSDKバージョンを含むようにGradleを更新します。

  2. アンドロイド14歳以上対象:

    • コール処理時にフォアグラウンド・サービスを開始する。

    • サービスが音声録音に関する通知を投稿することを確認する。

これにより、Androidの新しいポリシーへの準拠が保証され、通話中の音声問題を防ぐことができる。

ありがとう ネイサンそして サルバトーレClient SDKチームのNathanとSalvatoreに感謝します。16KBのメモリ・ページ・サイズをサポートするアプリケーションをすでに更新したり、新しく作成したりしましたか?その経験はいかがでしたか?私たちの 開発者コミュニティ.

シェア:

https://a.storyblok.com/f/270183/384x384/1a06993970/dwanehemmings.png
Dwane HemmingsJavaScript開発者支援