ビデオをストリームする私のアプリケーションにヘルパーメソッドisLowRamDevice
を使いたかったのです。 APIレベル15のデバイスをサポートしているので、私はActivityManagerCompat.isLowRamDevice()
を使用しなければなりませんでした。 私は本当に古いデバイスを使用していても、いつも偽を返すということは本当に混乱していました。次に、メソッド自体をチェックし、これを見ました:私のAndroid 4.0.4デバイスで常にfalseを返すのは不思議ではありません。しかし、私にとってこれは絶対に意味がありません。または私は何かを逃していますか?ActivityManagerCompat.isLowRamDeviceは役に立たず、常にfalseを返します
0
A
答えて
2
だから、常にfalse
を返すのも不思議ではそれは常にfalse
を返しません。
Android 4.3以降を実行している端末では、常にfalse
が返されます。これは、低RAMデバイスであるためのシステムフラグがそれ以前に存在しなかったためです。アンドロイド4.4以上を実行しているデバイスで
、これは、低RAMデバイスであるか否かのシステムフラグの値を返す:
/**
* Returns true if this is a low-RAM device. Exactly whether a device is low-RAM
* is ultimately up to the device configuration, but currently it generally means
* something in the class of a 512MB device with about a 800x480 or less screen.
* This is mostly intended to be used by apps to determine whether they should turn
* off certain features that require more RAM.
*/
public boolean isLowRamDevice() {
return isLowRamDeviceStatic();
}
/** @hide */
public static boolean isLowRamDeviceStatic() {
return "true".equals(SystemProperties.get("ro.config.low_ram", "false"));
}
(the ActivityManager
source codeから)
私の知る限り、低RAMデバイスはほとんどAndroid Oneデバイスになります。デバイスを入手する場所によっては、そのうちの1つに遭遇することはありません。
関連する問題
- 1. openssl_decryptは常にfalseを返します
- 2. jqgrid:getCellは常にfalseを返します
- 3. IsPostBackは常にfalseを返します
- 4. @MockBeanは常にfalseを返します
- 5. strposは常にfalseを返します
- 6. XMLAttributeは常にfalseを返します
- 7. IsStreetsideSupportedは常にfalseを返します
- 8. User.Identity.IsAuthenticatedは常にfalseを返します
- 9. getLatLongは常にfalseを返します
- 10. IsPostBackは常にfalseを返します
- 11. VisualStateManager.GoToStateは常にfalseを返します
- 12. form.is_valid常にfalseを返します
- 13. .Equalsまたは== falseを返します。常に
- 14. Dictionary.ContainsKey常にFalseを返す
- 15. PHPで役に立つエラーメッセージを返す
- 16. XML検証に失敗しました.SignedXml.CheckSignatureは常にfalseを返します
- 17. Starscreamのsocket.isConnectedは常にfalseを返す
- 18. 条件は常にfalseを返す(RUBY)
- 19. BLE readCharacteristicsは常にfalseを返します。またはgetvalueがnullです
- 20. FancyboxがIEに読み込まれず、falseを返すfalse
- 21. Laravel 4 Auth :: attempt()は常にfalseを返します
- 22. Yepnopeのコールバックは常に 'result = false'を返します
- 23. rawQueryの戻り値は常にfalseを返します
- 24. Ajax関数は常にfalseを返します
- 25. MembershipUser IsOnlineは常にfalseを返します
- 26. なぜ私の関数は常にfalseを返しますか?
- 27. サービス上のOnBind()は常にFalseを返します - Android
- 28. FileUpload.Hasファイルは常にupdatepanel内でfalseを返します
- 29. ブール値は常にfalseを返します
- 30. form.is_valid()は常にviews.pyでfalseを返します。
確かにAndroid 4.3以降を搭載しているデバイスはlowRamDevicesです。では、なぜ彼らはサポートlib経由で古いデバイスでこの方法を利用できるようにしたのですか?これはまったく意味がありません。 – JensJensen
@ JensJensen:Android 4.3以降を搭載したデバイスの方がlowRamDevicesの可能性が高いです。低RAMデバイスのGoogleの定義によるものではありません。 "なぜ彼らはサポートlib経由で古いデバイスでこの方法を利用できるようにしたのですか?" - ほとんどの '... Compat'で終わるすべてのクラスはこのように動作します。互換性のあるデバイスの実際の実装にコールし、古いデバイスのスタブを返します。時々、スタブはより洗練されています。この場合、実際のデバイスRAMに基づいて値を導出する必要があることに同意します。 – CommonsWare
実装は他のサポートライブラリと一貫しています。古いデバイスをlow-ramとして扱うように思えるので、呼び出しを抽象化し、APIバージョンとisLowRamDevice()フラグを一緒にチェックする方がよいと言います。 –