标签: android-memory

Android镜像调整错误内存大小

我有一个旋转图像的方法,但我总是收到一个OutMemoryError,但我在相册中的图像是从相机拍摄的,尺寸宽度是5000~手机

我将照片调整为宽度1280和高度960

我的第一个显示和调整图像的方法是

    public static Boolean ShowImagesCapture(Context context, Uri PATH_IMAGE, ImageCropView view,int width, int height){

    int orientation=0;
    Boolean success = true;
    try {
        Bitmap bitmap =null;

        if (Build.VERSION.SDK_INT < 19) {
            String selectedImagePath = getPath(PATH_IMAGE,context);
            bitmap = BitmapFactory.decodeFile(selectedImagePath);
            orientation=GetPhotoOrientation(context,getRealPathFromURI(context,PATH_IMAGE));
        }

        else {
            ParcelFileDescriptor parcelFileDescriptor;

            try {
                parcelFileDescriptor = context.getContentResolver().openFileDescriptor(PATH_IMAGE, "r");
                FileDescriptor fileDescriptor = parcelFileDescriptor.getFileDescriptor();
                bitmap = BitmapFactory.decodeFileDescriptor(fileDescriptor);
                parcelFileDescriptor.close();
                orientation=GetPhotoOrientation(context,getRealPathFromURI(context,PATH_IMAGE));

            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        switch (orientation) {

            case ExifInterface.ORIENTATION_ROTATE_180:
                bitmap=rotateBitmap(bitmap,3,width,height);
                view.setImageBitmap(bitmap);

                break;
      break;
            case ExifInterface.ORIENTATION_ROTATE_90:
                bitmap=rotateBitmap(bitmap,8,width,height);
                view.setImageBitmap(bitmap); …
Run Code Online (Sandbox Code Playgroud)

java android android-camera android-memory

5
推荐指数
1
解决办法
277
查看次数

方向改变后,片段对mActivity的引用变为null.片段状态维护无效

我的应用程序包含几个片段.到目前为止,我已将它们的引用存储在自定义的Application对象中,但我开始认为我做错了.

当我意识到我的片段对mActivity的所有引用在方向改变后变为null时,我的问题就开始了.因此,当我在方向更改后调用getActivity()时,会抛出NullPointerException.我已经检查过我的片段的onAttach()在调用getActivity()之前被调用,但它仍然返回null.

以下是我的MainActivity的剥离版本,它是我的应用程序中唯一的活动.

public class MainActivity extends BaseActivity implements OnItemClickListener,
        OnBackStackChangedListener, OnSlidingMenuActionListener {

    private ListView mSlidingMenuListView;
    private SlidingMenu mSlidingMenu;

    private boolean mMenuFragmentVisible;
    private boolean mContentFragmentVisible;
    private boolean mQuickAccessFragmentVisible;

    private FragmentManager mManager;

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

        /*
         * Boolean variables indicating which of the 3 fragment slots are visible at a given time
         */
        mMenuFragmentVisible = findViewById(R.id.menuFragment) != null;
        mContentFragmentVisible = findViewById(R.id.contentFragment) != null;
        mQuickAccessFragmentVisible = findViewById(R.id.quickAccessFragment) != null;

        if(!savedInstanceState != null) {
            if(!mMenuFragmentVisible && mContentFragmentVisible) { …
Run Code Online (Sandbox Code Playgroud)

android android-lifecycle android-fragments android-memory

4
推荐指数
1
解决办法
6872
查看次数

在Android SQLite中,直接使用Cursor比创建模型对象更节省内存?

在大多数Android示例代码中,从SQLite数据库填充ListView有两种方式,

  1. 预取数据,以列表-执行查询,对于每一行创建模型对象,然后将其添加到列表关闭光标,然后填充ListView控件列表.

  2. 没有List和Model对象 -执行查询并按照Cursor使用moveToFirst,moveToLast,move,根据需要填充ListView.

现在我想知道,在Android中,上述哪种方法的内存效率更高?

android android-listview android-cursor android-sqlite android-memory

4
推荐指数
1
解决办法
1051
查看次数

adb shell 命令查找设备 RAM

我正在尝试使用 adb shell 命令查找设备 RAM(512 MB 或 1GB)。

以下命令提供有关可用、已用和总内存的更多详细信息。但是如何找到设备的总体RAM呢?

adb shell "cat /proc/meminfo"
adb shell dumpsys meminfo
adb shell procrank
Run Code Online (Sandbox Code Playgroud)

performance android adb android-memory

4
推荐指数
1
解决办法
2万
查看次数

读取和写入可移动SD卡的文件

如何在Android中读取和写入可移动SD卡的文件?

我想将Android Id存储在文本文件中.应在外部SD卡上创建文本文件.

码:

PackageManager m = getPackageManager();
String s = getPackageName();
PackageInfo p = m.getPackageInfo(s, 0);
s = p.applicationInfo.dataDir;
File myFile = new File(s + "/MyDoople.txt");
myFile.createNewFile();
FileOutputStream fOut = new FileOutputStream(myFile);
OutputStreamWriter myOutWriter = new OutputStreamWriter(fOut);
myOutWriter.append(TxtS.getText());
myOutWriter.close();
fOut.close();
Toast.makeText(getBaseContext(),"Text Updated",Toast.LENGTH_SHORT).show();
Run Code Online (Sandbox Code Playgroud)

第二是

 File sdCard = new File("file:///mnt/external_sd/");
 File myFile = new File(sdCard, "test.txt");
 FileWriter writer = new FileWriter(myFile); 
 writer.append(TESTSTRING);
 writer.flush(); 
 writer.close();
Run Code Online (Sandbox Code Playgroud)

android android-memory

3
推荐指数
1
解决办法
9960
查看次数

Android应用程序中的内存管理

我有Android应用程序在我的应用程序中使用12个选项卡.每个标签大约有10个viewpager.我的内存有问题,因为如果我打开活动标签,应用程序将创建新的活动实例.当所有标签打开时,速度变慢,我得到了(应用程序无响应)(ANR).

当我打开所有标签时,它会不断发生.我还是不知道如何处理内存.我想处理最近打开的选项卡,但我不知道如何在Android中执行此操作.

有人可以帮我解决这个问题吗?

android android-memory

3
推荐指数
1
解决办法
2113
查看次数

如何在Android设备中获得当前可用的RAM

在我们进入的设备中Manage apps- > running tab然后在底部我们看到使用的内存和可用内存实时改变它们的值.

我们如何将其编码到我的应用程序以显示相同的统计信息?

谢谢

android android-memory

3
推荐指数
1
解决办法
4652
查看次数

Android在App上抛出OutOfMemoryError

我正在制作一个Android应用程序,可以将视频从服务器流式传输到Android移动设备.我有正确的图像流和工作,但15秒后应用程序崩溃.我设法跟踪到Throwing OutOfMemoryError.我尝试回收位图后,我传递一个接口,将其带到线程显示它,但我收到错误"无法重用再循环的位图".我不知道如何解决这个错误,即使斜倚也会修复它.

                    int read_count = 1;
                    long start_time = System.currentTimeMillis();
                    long timeout = 10000;
                    boolean timed_out = false;

                    byte[] data = new byte[size + 1];
                    while (read_count < size && !timed_out)
                    {
                        int len = in.read(data, read_count, size - read_count);
                        read_count += len;
                        timed_out = (System.currentTimeMillis() - start_time) >= timeout;
                    }
                    data[0] = (byte)0x89;

                    if (read_count == size)
                    {
                        final boolean is_left = (side == 0);
                        final byte[] tmp = data;
                        Bitmap Image_data = null;
                        System.out.println(tmp.length);
                        if (Listener != null) …
Run Code Online (Sandbox Code Playgroud)

sockets android bitmap android-memory google-cardboard

3
推荐指数
1
解决办法
4513
查看次数

设备之间的应用程序内存使用情况不同

我在两个不同的设备中运行我的应用程序,并从 Android Studio 的 Memroy 选项卡检查应用程序分配的内存。当应用程序在三星设备中运行时,分配的内存约为 60 MB。当应用程序在摩托罗拉设备中运行时,分配的内存约为 40 MB。

是什么导致了内存分配的这种差异?

设备:Android 版本 5.0.1 的 Samsung Galaxy S4

摩托罗拉 Moto G2 安卓 5.0.2 版本

android memory-management android-memory

3
推荐指数
1
解决办法
831
查看次数

在Android中编写ByteArrayOutputStream时出现内存不足错误

我有一个很大的问题,我正在从一个存储在Sdcard中的视频文件中读取2 ^ 21个字节,但是当我们在ByteArrayOutputStream中写入相同内容时,它会抛出一个Exception as Out of Memory,我不知道为什么?请建议我正确的解决方案.

提前致谢.

错误堆栈:

11-03 19:24:23.193: ERROR/AndroidRuntime(28258): FATAL EXCEPTION: main
11-03 19:24:23.193: ERROR/AndroidRuntime(28258): java.lang.OutOfMemoryError
11-03 19:24:23.193: ERROR/AndroidRuntime(28258):     at java.io.ByteArrayOutputStream.expand(ByteArrayOutputStream.java:93)
11-03 19:24:23.193: ERROR/AndroidRuntime(28258):     at java.io.ByteArrayOutputStream.write(ByteArrayOutputStream.java:218)
11-03 19:24:23.193: ERROR/AndroidRuntime(28258):     at com.example.TestCryptoActivity.onCreate(TestCryptoActivity.java:42)
11-03 19:24:23.193: ERROR/AndroidRuntime(28258):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
11-03 19:24:23.193: ERROR/AndroidRuntime(28258):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
11-03 19:24:23.193: ERROR/AndroidRuntime(28258):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
11-03 19:24:23.193: ERROR/AndroidRuntime(28258):     at android.app.ActivityThread.access$2300(ActivityThread.java:125)
11-03 19:24:23.193: ERROR/AndroidRuntime(28258):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
11-03 19:24:23.193: ERROR/AndroidRuntime(28258):     at android.os.Handler.dispatchMessage(Handler.java:99)
11-03 19:24:23.193: ERROR/AndroidRuntime(28258):     at android.os.Looper.loop(Looper.java:123)
11-03 19:24:23.193: ERROR/AndroidRuntime(28258):     at android.app.ActivityThread.main(ActivityThread.java:4627)
11-03 19:24:23.193: ERROR/AndroidRuntime(28258):     at java.lang.reflect.Method.invokeNative(Native Method) …
Run Code Online (Sandbox Code Playgroud)

android out-of-memory bytearrayoutputstream android-memory

2
推荐指数
1
解决办法
1万
查看次数