Android Goの低メモリデバイスには、デフォルトで有効になっていない複数のアニメーションまたは機能があります
たとえば、アプリケーションのウィンドウ処理機能、
res / values-zh-rCN / strings.xml:4323:
<string msgid = "3557117039415422481" name = "disabled_feature_reason_slow_down_phone"> "この機能は電話の速度を低下させるため、この機能はオフになっています" </ string>
res / layout / manage_applications_apps_unsupported.xml:43:
android:text = "@ string / disabled_feature_reason_slow_down_phone"
src / com / android / settings / applications / manageapplications / ManageApplications.java:337:
@オーバーライド
public View onCreateView(LayoutInflater inflater、ViewGroup container、
バンドルsavedInstanceState){
if(mListType == LIST_TYPE_OVERLAY &&!Utils.isSystemAlertWindowEnabled(getContext())){
mRootView = inflater.inflate(R.layout.manage_applications_apps_unsupported、null);
setHasOptionsMenu(偽);
mRootViewを返します。
}
……
查看packages / apps / Settings / src / com / android / settings / Utils.java
/ **
* SYSTEM_ALERT_WINDOW権限が利用可能な場合はtrueを返します。
* Q以降、RAMの少ない電話ではSYSTEM_ALERT_WINDOWが無効になります。
* /
public static boolean isSystemAlertWindowEnabled(Context context){
// SYSTEM_ALERT_WINDOWは、Qから始まる低RAMデバイスでは無効になっています
ActivityManager am =(ActivityManager)context.getSystemService(Context.ACTIVITY_SERVICE);
return!(am.isLowRamDevice()&&(Build.VERSION.SDK_INT> = Build.VERSION_CODES.Q));
}
メモによると、Android Q以降、SYSTEM_ALERT_WINDOWシステムポップアップウィンドウはメモリの少ないデバイスでは禁止されています
frameworks / base / core / java / android / app / ActivityManager.java
プライベート静的最終ブール DEVELOPMENT_FORCE_LOW_RAM =
SystemProperties.getBoolean( "debug.force_low_ram"、false);
/ **
*これが低RAMデバイスの場合、trueを返します。デバイスが低RAMであるかどうか
*最終的にはデバイス構成次第ですが、現在は一般的に
* RAMが1GB以下のもの。これは主にアプリが使用することを意図しています
*より多くのRAMを必要とする特定の機能をオフにするかどうかを決定します。
* /
public boolean isLowRamDevice(){
isLowRamDeviceStatic();を返します。
}
/ ** @非表示* /
@UnsupportedAppUsage
public static boolean isLowRamDeviceStatic(){
RoSystemPropertiesを返します。CONFIG_LOW_RAM ||
(ビルド。IS_DEBUGGABLE && DEVELOPMENT_FORCE_LOW_RAM);
}
frameworks / base / core / java / com / android / internal / os / RoSystemProperties.java
public static final boolean CONFIG_LOW_RAM =
SystemProperties.getBoolean( "ro.config.low_ram"、false);
frameworks / base / core / java / android / os / Build.java
/ **
*「user-debug」や「eng」などのデバッグビルドを実行している場合はtrueを返します。
* @非表示
* /
public static final boolean IS_DEBUGGABLE =
SystemProperties.getInt( "ro.debuggable"、0)== 1;
上記の低メモリバージョンに関連するプロパティSystemProperties設定