为什么一段简单的服务会在一段时间后使用更多内存?

时间:2016-09-28 10:28:19

标签: android memory service

我创建了一个简单的服务示例。当我启动该服务时,它使用 6.6MB 或更多。一段时间后,它会自动增加。我检查了this链接但没找到解决方法。如何确认RAM使用量增加了多少?

Service used ram

服务类

public class MyTestService extends Service {
public MyTestService() {
}

@Override
public void onCreate() {
    super.onCreate();
    Log.e("MyTestService", "onCreate");
}

@Override
public void onLowMemory() {
    super.onLowMemory();
    Log.e("MyTestService", "onLowMemory");
}

@Override
public IBinder onBind(Intent intent) {
    Log.e("MyTestService", "onBind");
    throw new UnsupportedOperationException("Not yet implemented");
}

@Override
public int onStartCommand(Intent intent, int flags, int startId) {
    Log.e("MyTestService", "onStartCommand");
    return START_NOT_STICKY;
}

@Override
public void onDestroy() {
    super.onDestroy();
    Log.e("MyTestService", "onDestroy");
}
}

活动类我只在这里开始&停止服务

1。 OnStartService

startService(new Intent(this, MyTestService.class));

2。 OnStopService

stopService(new Intent(this, MyTestService.class));

最佳文件

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.sample.service">

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    <activity
        android:name=".ServiceCheckActivity"
        android:screenOrientation="portrait">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

    <service
        android:name=".MyTestService"
        android:enabled="true"
        android:exported="true"></service>
</application>

1 个答案:

答案 0 :(得分:1)

内存使用率通常会因为延迟对象而增加,这些对象尚未收集垃圾,导致ddms中的锯齿状图。 Android管理服务的生命周期,所以如果它是空的,也许你不应该担心它。为避免考虑使用“Flyweight”设计模式,如果需要创建大量临时对象。