ok,i will try

On 10월13일, 오후1시31분, Kumar Bibek <[email protected]> wrote:
> Well, I would say, that System.gc() won't help you much. Since the purpose
> of yours is to stream an image from the internet, the best approach would
> probably be to write that stream into a file first. When that is done, you
> can create a Bitmap from this file.
>
>
>
> On Wed, Oct 13, 2010 at 9:32 AM, DanH <[email protected]> wrote:
> > I'm guessing it has to do with the bitmap size here:
> > > Out of memory: Heap Size=5639KB, Allocated=3134KB, Bitmap Size=18669KB
>
> > The Android has a mysterious and troublesome bitmap caching scheme,
> > and sometimes this requires the explicit issuance of "System.gc"
> > calls, even though the Java book says that should never be necessary.
> > And the programmer can exacerbate the situation by not "cleaning up"
> > old images properly, though I'm a babe in the woods in terms of
> > understanding that snake pit.
>
> > On Oct 12, 9:58 pm, n2v2rda2 <[email protected]> wrote:
> > > below is my code to make bitmap from network-jpeg-stream whose size
> > > is 360*288
> > > i don't know how to handle it ,
>
> > ---------------------------------------------------------------------------------------------------------------
> > >         private void makeImage() {
> > >                 try {
> > >                         System.arraycopy(BA.toByteArray(), 0,
> > temporaryBA, 0, BA.length());
> > >                         int tempBALength = BA.length();
>
> > >                         if (BA.byteAt(startJpeg) == (byte) 0xff &&
> > BA.byteAt(startJpeg + 1)
> > > == (byte) 0xD8) {
> > >                                 if ((BA.byteAt(endJpeg - 1) == (byte)
> > 0xff && BA.byteAt(endJpeg)
> > > == (byte) 0xD9)
> > >                                                 || (BA.byteAt(endJpeg -
> > 2) == (byte) 0xff && BA.byteAt(endJpeg -
> > > 1) == (byte) 0xD9)) {
>
> > >                                         BitmapFactory.Options options =
> > new BitmapFactory.Options();
> > >                                         options.inSampleSize = 2;
> > >                                         options.inTempStorage = new
> > byte[256];
>
> > >                                         Bitmap orgBitmap =
> > BitmapFactory.decodeByteArray(temporaryBA,
> > > startJpeg, endJpeg - startJpeg +1,options);
> > >                                         Bitmap bitmap =
> > Bitmap.createScaledBitmap(orgBitmap, width,
> > > (height / 2) , true);
> > >                                         if (bitmap != null) {
> > >                                                 screenshot = new
> > byte[endJpeg - startJpeg +1];
>
> > System.arraycopy(temporaryBA, startJpeg, screenshot, 0, endJpeg
> > > - startJpeg +1);
>
> > >                                                 Message msg =
> > Message.obtain(handler, 0, current_ch, 0, bitmap);
> > >                                                 handler.sendMessage(msg);
> > >                                         } else {
> > >                                                 BA.clear();
> > >                                         }
> > >                                 }else{
> > >                                         BA.clear();
> > >                                 }
> > >                         }else {
> > >                                 BA.clear();
> > >                         }
> > >                         BA.clear();
> > >                         BA.setLength(0);
> > >                         BA.append(temporaryBA, iEndMarkIndex,
> > tempBALength -
> > > iEndMarkIndex);
> > >                 } catch (IllegalArgumentException e) {
> > >                         BA.clear();
> > >                 } catch (OutOfMemoryError om) {
> > >                         BA.clear();
> > >                 } catch (NullPointerException np) {
> > >                         BA.clear();
> > >                 } catch (IndexOutOfBoundsException io) {
> > >                         BA.clear();
> > >                 }
> > >         }
> > > ---------------------------------------logcat -
> > > error----------------------------------------------------
>
> > > 10-13 11:22:03.472: ERROR/dalvikvm-heap(6060): 384000-byte external
> > > allocation too large for this process.
> > > 10-13 11:22:03.472: ERROR/dalvikvm(6060): Out of memory: Heap
> > > Size=5639KB, Allocated=3134KB, Bitmap Size=18669KB
> > > 10-13 11:22:03.472: ERROR/(6060): VM won't let us allocate 384000
> > > bytes
> > > 10-13 11:22:03.582: INFO/DEBUG(5641): *** *** *** *** *** *** *** ***
> > > *** *** *** *** *** *** *** ***
> > > 10-13 11:22:03.582: INFO/DEBUG(5641): Build fingerprint: 'skt_kr/
> > > htc_bravo/bravo/bravo:2.1-update1/ERE27/171460:user/release-keys'
> > > 10-13 11:22:03.582: INFO/DEBUG(5641): pid: 6060, tid: 6081  >>>  rams
> > > <<<
> > > 10-13 11:22:03.582: INFO/DEBUG(5641): signal 11 (SIGSEGV), fault addr
> > > 00000000
> > > 10-13 11:22:03.582: INFO/DEBUG(5641):  r0 003d48d0  r1 00000000  r2
> > > 00000000  r3 003d48f4
> > > 10-13 11:22:03.582: INFO/DEBUG(5641):  r4 003d48d0  r5 00000000  r6
> > > 00000000  r7 00000000
> > > 10-13 11:22:03.582: INFO/DEBUG(5641):  r8 483b3d08  r9 42ea2ed4  10
> > > 483b3e38  fp 42ea2ed4
> > > 10-13 11:22:03.582: INFO/DEBUG(5641):  ip 003d48d0  sp 483b3ae8  lr
> > > 00000000  pc ac04ab2c  cpsr 60000010
> > > 10-13 11:22:03.612: INFO/DEBUG(5641):          #00  pc 0004ab2c  /
> > > system/lib/libskia.so
> > > 10-13 11:22:03.612: INFO/DEBUG(5641):          #01  pc 0004abf0  /
> > > system/lib/libskia.so
> > > 10-13 11:22:03.612: INFO/DEBUG(5641):          #02  pc 000689d4  /
> > > system/lib/libskia.so
> > > 10-13 11:22:03.622: INFO/DEBUG(5641):          #03  pc 00064154  /
> > > system/lib/libskia.so
> > > 10-13 11:22:03.622: INFO/DEBUG(5641):          #04  pc 0004446c  /
> > > system/lib/libandroid_runtime.so
> > > 10-13 11:22:03.622: INFO/DEBUG(5641): code around pc:
> > > 10-13 11:22:03.622: INFO/DEBUG(5641): ac04ab1c 0a00001a e1a06005
> > > ebffff9f e1a0c004
> > > 10-13 11:22:03.622: INFO/DEBUG(5641): ac04ab2c e8b6000f e8ac000f
> > > e8b6000f e8ac000f
> > > 10-13 11:22:03.622: INFO/DEBUG(5641): ac04ab3c e8960003 e88c0003
> > > e5950004 e3500000
> > > 10-13 11:22:03.622: INFO/DEBUG(5641): code around lr:
> > > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> > > 10-13 11:22:03.892: INFO/DEBUG(5641): debuggerd committing suicide to
> > > free the zombie!
>
> > --
> > You received this message because you are subscribed to the Google
> > Groups "Android Developers" group.
> > To post to this group, send email to [email protected]
> > To unsubscribe from this group, send email to
> > [email protected]<android-developers%[email protected]>
> > For more options, visit this group at
> >http://groups.google.com/group/android-developers?hl=en
>
> --
> Kumar Bibekhttp://techdroid.kbeanie.comhttp://www.kbeanie.com

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to