背景大时模拟低内存异常

时间:2019-07-13 16:03:18

标签: android android-viewpager fragment drawable low-memory

我有一个正在生产的应用程序,但是一些用户报告说我的一项活动中的背景未加载,我猜这是由于在某些手机中渲染应用程序时内存不足所致。

应用程序的结构如下:

有一个活动,里面有一个ViewPager,并且ViewPager的每个页面都是一个具有以下布局的片段,我的问题是android:background="@drawable/bg_back_port"中的背景加载不正确,某些语音没有加载。背景是一个.jpg文件,大小为23KB,分辨率为800x1023

    <android.support.v4.widget.DrawerLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/drawer_layout"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >

        <!-- The main content view -->

        <FrameLayout
            android:background="@drawable/bg_back_port"
            android:id="@+id/content_frame"
            android:layout_width="match_parent"
            android:layout_height="match_parent" >


            <RelativeLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent" >


                <ScrollView
                    android:id="@+id/contentView"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:layout_below="@id/titleBar"
                    android:fillViewport="true" >
                    <!--android:background="@drawable/bg_inside_port"-->

                    <LinearLayout
                        android:id="@+id/linearLayoutRoot"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:orientation="vertical"
                        android:paddingTop="20dp"
                        tools:context=".ActivityDisplayPage" >

                    </LinearLayout>
                </ScrollView>

                <ProgressBar
                    android:id="@+id/progressBar1"
                    style="?android:attr/progressBarStyleLarge"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_centerInParent="true"
                    android:visibility="gone" />

                <ImageView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:id="@+id/imvStarred"
                    android:src="@drawable/paper_locked"
                    android:layout_centerVertical="true"
                    android:layout_centerHorizontal="true" />
            </RelativeLayout>

        </FrameLayout>
        <!-- The navigation drawer -->

        <ListView
            android:id="@+id/left_drawer"
            android:layout_width="240dp"
            android:layout_height="match_parent"
            android:layout_gravity="start"
            android:background="#F0999999"
            android:choiceMode="singleChoice"
            android:divider="@android:color/transparent"
            android:dividerHeight="0dp"
            android:paddingBottom="10dp" />
    </android.support.v4.widget.DrawerLayout>

</RelativeLayout>

我无法模拟情况,我不确定为什么某些手机上没有显示背景。

我在模拟器上施加了不同的约束,但是这种情况并没有出现,所以我可以修复该错误。

是否有任何方法可以模拟这种情况或在模拟器或测试环境中向应用程序施加低内存?

1 个答案:

答案 0 :(得分:0)

您是否尝试过使用数量非常有限的ram创建新的android虚拟设备?

您可以通过转到工具-> AVD管理器->创建虚拟设备->新硬件配置文件并创建新设备配置文件,在此处enter image description here更改RAM值来实现此目的

希望这至少可以让您了解在内存不足的设备上会发生什么