Android Wear 2.0内存泄漏

Android Wear 2.0内存泄漏,android,wear-os,android-wear-2.0,Android,Wear Os,Android Wear 2.0,我在Android Studio中创建了一个空白的Android Wear 2.0独立应用程序项目。我注意到,当我在我的手表上运行空白应用程序时,似乎有一个内存泄漏如下。是否还有其他人遇到此问题 我正在测试的设备是LG手表,运行Android Wear 2.0 这是一个空白项目,代码如下: MainActivity.java AndroidManifest.xml 这看起来不像是内存泄漏。如果您确实发生了泄漏,那么使用的内存总量将随着时间的推移而不断增加,最终导致非常缓慢的体验和/或OutOfM

我在Android Studio中创建了一个空白的Android Wear 2.0独立应用程序项目。我注意到,当我在我的手表上运行空白应用程序时,似乎有一个内存泄漏如下。是否还有其他人遇到此问题

我正在测试的设备是LG手表,运行Android Wear 2.0

这是一个空白项目,代码如下:

MainActivity.java

AndroidManifest.xml


这看起来不像是内存泄漏。如果您确实发生了泄漏,那么使用的内存总量将随着时间的推移而不断增加,最终导致非常缓慢的体验和/或OutOfMemoryException。您在这里看到的是创建对象的循环,然后是垃圾收集

您仍然可以做一些事情来改进这一点,因为频繁的垃圾收集可能会导致打嗝/延迟


我的建议是看一看经常在原始和类似事物上执行的方法,并确保您没有在其中创建对象。如果这对你没有帮助,你可以使用Android Profiler进行更深入的挖掘,找出正在创建的内容。关于你是如何创建这些内容的详细信息可以找到,例如:

你可以发布你的清单和活动代码吗?发布!这是一个空白的android wear项目,这就是为什么我发现内存使用图令人困惑的原因。你能添加到项目中并重新测试吗?我已经发布了代码。您可能是对的,这不是内存泄漏,但对于一个什么都不做的空白项目的内存使用模式,我感到困惑。上面的屏幕截图来自Android档案,这确实是一个非常空白的项目尝试在探查器中记录其中一个周期内的内存分配,并查看是否可以跟踪正在创建的对象类型以及从何处创建的对象。但是,如果你的代码中没有这个功能,你可能就无能为力了……这似乎是Android Wear 2.0的一个问题。我已经在这里向他们报告了错误:
import android.os.Bundle;
import android.support.wearable.activity.WearableActivity;

public class MainActivity extends WearableActivity {


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

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

    <uses-feature android:name="android.hardware.type.watch"/>

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@android:style/Theme.DeviceDefault">
        <uses-library
            android:name="com.google.android.wearable"
            android:required="false"/>

        <activity
            android:name=".MainActivity"
            android:label="@string/app_name"
            android:theme="@android:style/Theme.DeviceDefault.Light">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>

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

</manifest>
apply plugin: 'com.android.application'

android {
    compileSdkVersion 25
    buildToolsVersion "26.0.0"
    defaultConfig {
        applicationId "com.mc.memorytester"
        minSdkVersion 25
        targetSdkVersion 25
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.google.android.support:wearable:2.0.3'
    compile 'com.google.android.gms:play-services-wearable:11.0.4'
    provided 'com.google.android.wearable:wearable:2.0.3'
}