1fb81e09002d1d611168b204fc50d259fc15f27b2Jeff Brown/* 2fb81e09002d1d611168b204fc50d259fc15f27b2Jeff Brown * Copyright (C) 2014 The Android Open Source Project 3fb81e09002d1d611168b204fc50d259fc15f27b2Jeff Brown * 4fb81e09002d1d611168b204fc50d259fc15f27b2Jeff Brown * Licensed under the Apache License, Version 2.0 (the "License"); 5fb81e09002d1d611168b204fc50d259fc15f27b2Jeff Brown * you may not use this file except in compliance with the License. 6fb81e09002d1d611168b204fc50d259fc15f27b2Jeff Brown * You may obtain a copy of the License at 7fb81e09002d1d611168b204fc50d259fc15f27b2Jeff Brown * 8fb81e09002d1d611168b204fc50d259fc15f27b2Jeff Brown * http://www.apache.org/licenses/LICENSE-2.0 9fb81e09002d1d611168b204fc50d259fc15f27b2Jeff Brown * 10fb81e09002d1d611168b204fc50d259fc15f27b2Jeff Brown * Unless required by applicable law or agreed to in writing, software 11fb81e09002d1d611168b204fc50d259fc15f27b2Jeff Brown * distributed under the License is distributed on an "AS IS" BASIS, 12fb81e09002d1d611168b204fc50d259fc15f27b2Jeff Brown * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13fb81e09002d1d611168b204fc50d259fc15f27b2Jeff Brown * See the License for the specific language governing permissions and 14fb81e09002d1d611168b204fc50d259fc15f27b2Jeff Brown * limitations under the License. 15fb81e09002d1d611168b204fc50d259fc15f27b2Jeff Brown */ 16fb81e09002d1d611168b204fc50d259fc15f27b2Jeff Brown 17fb81e09002d1d611168b204fc50d259fc15f27b2Jeff Brownpackage android.support.v4.app; 18fb81e09002d1d611168b204fc50d259fc15f27b2Jeff Brown 19fb81e09002d1d611168b204fc50d259fc15f27b2Jeff Brownimport android.app.ActivityManager; 20fb81e09002d1d611168b204fc50d259fc15f27b2Jeff Brownimport android.os.Build; 21fb81e09002d1d611168b204fc50d259fc15f27b2Jeff Brownimport android.support.annotation.NonNull; 22fb81e09002d1d611168b204fc50d259fc15f27b2Jeff Brown 23fb81e09002d1d611168b204fc50d259fc15f27b2Jeff Brown/** 24fb81e09002d1d611168b204fc50d259fc15f27b2Jeff Brown * Helper for accessing features in {@link android.app.ActivityManager} 25fb81e09002d1d611168b204fc50d259fc15f27b2Jeff Brown * introduced after API level 4 in a backwards compatible fashion. 26fb81e09002d1d611168b204fc50d259fc15f27b2Jeff Brown */ 27fb81e09002d1d611168b204fc50d259fc15f27b2Jeff Brownpublic final class ActivityManagerCompat { 28fb81e09002d1d611168b204fc50d259fc15f27b2Jeff Brown private ActivityManagerCompat() { 29fb81e09002d1d611168b204fc50d259fc15f27b2Jeff Brown } 30fb81e09002d1d611168b204fc50d259fc15f27b2Jeff Brown 31fb81e09002d1d611168b204fc50d259fc15f27b2Jeff Brown /** 32fb81e09002d1d611168b204fc50d259fc15f27b2Jeff Brown * Returns true if this is a low-RAM device. Exactly whether a device is low-RAM 33fb81e09002d1d611168b204fc50d259fc15f27b2Jeff Brown * is ultimately up to the device configuration, but currently it generally means 34fb81e09002d1d611168b204fc50d259fc15f27b2Jeff Brown * something in the class of a 512MB device with about a 800x480 or less screen. 35fb81e09002d1d611168b204fc50d259fc15f27b2Jeff Brown * This is mostly intended to be used by apps to determine whether they should turn 36fb81e09002d1d611168b204fc50d259fc15f27b2Jeff Brown * off certain features that require more RAM. 37fb81e09002d1d611168b204fc50d259fc15f27b2Jeff Brown */ 38fb81e09002d1d611168b204fc50d259fc15f27b2Jeff Brown public static boolean isLowRamDevice(@NonNull ActivityManager am) { 39fb81e09002d1d611168b204fc50d259fc15f27b2Jeff Brown if (Build.VERSION.SDK_INT >= 19) { 40fb81e09002d1d611168b204fc50d259fc15f27b2Jeff Brown return ActivityManagerCompatKitKat.isLowRamDevice(am); 41fb81e09002d1d611168b204fc50d259fc15f27b2Jeff Brown } 42fb81e09002d1d611168b204fc50d259fc15f27b2Jeff Brown return false; 43fb81e09002d1d611168b204fc50d259fc15f27b2Jeff Brown } 44fb81e09002d1d611168b204fc50d259fc15f27b2Jeff Brown} 45