• After 15+ years, we've made a big change: Android Forums is now Early Bird Club. Learn more here.

RAM consumption with empty application

mraklbrw

Lurker
Good afternoon.
Moto G5S, Android 8.1, 3GB RAM
An application has been created that displays " Hello, World "in the center of the screen.
Java:
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello World!"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent" />
</android.support.constraint.ConstraintLayout>

package com.example.debugtest1;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
}
At startup, the Profiler shows 32.8 MB of RAM:
Others: 1.5
Code: 5
Stack: 0.3
Graphics: 14.7
Native: 7.4
Java: 3.9
Allocated: N/A

Given that this app is actually empty, is this normal?
Is it possible to reduce memory consumption?
 
To be honest this is expected. Your app will consume a certain amount of memory even before your code is executed. There are services going on in the background, and system resources that are essential for your app. This all gets managed by the runtime framework.
So I don't believe there's anything much you can do about the default memory consumption for your app.
 
Added 2 activity to the project with text labels in the center, and on the main activity - 2 buttons to open them. Now RAM consumption averages 44 MB with peaks during window switching at 49 MB. How to develop applications for Android GO with the requirement of maximum memory consumption of 50Mb?
 
If minimising memory consumption is your priority, then I would suggest that a memory managed language such as Java isn't the right solution. You may be better off coding this as a native application in C or C++.
That way you have much more control over the memory allocation, and you don't incur the vast overhead of the VM runtime.
A native app will have a much smaller memory footprint.
 
Back
Top Bottom