Android
 Computer >> コンピューター >  >> プログラミング >> Android

【Android】ヒープウォッチ制限(Heap Watch Limit)を設定する方法を解説


この記事では、Androidアプリでヒープウォッチ制限(Heap Watch Limit)を設定する方法を、サンプルコードを交えながら詳しく解説します。

ヒープウォッチ制限とは?

ヒープウォッチ制限とは、アプリのメモリ使用量に対して監視用のしきい値を設定できる機能です。ActivityManagerクラスのsetWatchHeapLimit()メソッドを使うことで、指定した値を超えた時点でシステムがメモリ状態を監視できるようになります。なお、このAPIはAndroid 7.0(APIレベル24/Nougat)以降でのみ利用可能なため、コードには@RequiresApi(api = Build.VERSION_CODES.N)によるバージョン指定が必要です。

実装手順

ステップ1:新規プロジェクトを作成する

まずはAndroid Studioで新しいプロジェクトを作成します。メニューバーから「File」⇒「New Project」を選択し、必要な項目をすべて入力してプロジェクトを作成しましょう。

ステップ2:res/layout/activity_main.xml にコードを追加する

続いて、以下のコードを res/layout/activity_main.xml に追加します。

<?xml version = "1.0" encoding = "utf-8"?>
<LinearLayout xmlns:android = "https://schemas.android.com/apk/res/android"
   xmlns:app = "https://schemas.android.com/apk/res-auto"
   xmlns:tools = "https://schemas.android.com/tools"
   android:layout_width = "match_parent"
   android:gravity = "center"
   android:layout_height = "match_parent"
   tools:context = ".MainActivity">
   <TextView
      android:id = "@+id/text"
      android:textSize = "30sp"
      android:layout_width = "match_parent"
      android:layout_height = "match_parent" />
</LinearLayout>

上記のレイアウトでは、ヒープの状態を表示するためのTextViewを1つ配置しています。

ステップ3:src/MainActivity.java にコードを追加する

最後に、以下のコードを src/MainActivity.java に追加します。

package com.example.myapplication;
import android.app.ActivityManager;
import android.app.admin.DevicePolicyManager;
import android.content.Context;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
import android.os.Build;
import android.os.Bundle;
import android.support.annotation.RequiresApi;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
   TextView textView;
   DevicePolicyManager deviceManger;
   ActivityManager activityManager;
   @RequiresApi(api = Build.VERSION_CODES.N)
   @Override
   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
      textView = findViewById(R.id.text);
      deviceManger = (DevicePolicyManager)getSystemService(Context.DEVICE_POLICY_SERVICE);
      activityManager = (ActivityManager)getSystemService(Context.ACTIVITY_SERVICE);
      activityManager.setWatchHeapLimit(4096);
      textView.setText("Set watch heaplimit to 4096");
   }
}

ここで重要なのは activityManager.setWatchHeapLimit(4096); の一行です。このコードでヒープウォッチ制限を4096に設定し、その結果をTextViewに表示しています。

アプリを実行して確認する

それでは、実際にアプリを起動してみましょう。実機のAndroidスマートフォンをパソコンに接続していることを確認し、Android Studioでプロジェクト内のアクティビティファイルを開いて、ツールバーの「Run」アイコンをクリックします。デバイス選択画面で自分のスマートフォンを選ぶと、端末の画面に結果が表示されます。

【Android】ヒープウォッチ制限(Heap Watch Limit)を設定する方法を解説


  1. Androidで通話の自動転送を設定する方法|標準機能・ダイヤルコード・おすすめアプリ

    通話転送は、忙しいビジネスパーソンにとって欠かせない電話機能の一つです。プロのコツとしては、転送先にいる相手が電話に出られる状態であり、転送設定をしていることを事前に把握しておくこと。これだけで、後々の気まずいやり取りを大幅に減らせます。近年、優れた通話転送アプリを見つけるのは以前より難しくなっていますが、今回は徹底的に調査した上で、厳選したアプリをご紹介します。さらに、サードパーティ製アプリを使わずに通話転送を設定する方法も解説します。Androidの標準機能で通話転送を設定する外部アプリをインストールする前に、まずお使いのAndroidスマートフォンに内蔵の転送機能がないか確認しましょう。

  2. Androidでデータ使用制限を設定する方法|通信量オーバーを防ぐ手順を解説

    Androidスマートフォンでモバイルデータの使用制限(上限)を設定したいと思ったことはありませんか?契約プランが使い放題(無制限)でない場合、アプリやサービスの通信を制限しないままでは、データ使用量の管理はなかなか難しいものです。仕事でインターネットが必要な方にとっては、モバイルデータなしで過ごすのはさらに大変でしょう。それでも、月間のデータ残量を使い切ってしまったときには、何らかの対策を取らざるを得ません。多くの通信キャリアでは、規定量をわずかに超えただけでも高額な追加料金が請求されることがあります。そこで本記事では、Android端末でデータ使用制限を設定する方法をご紹介します。事前に上