From 9d46a01e044696eb4d101778992fed4966520251 Mon Sep 17 00:00:00 2001 From: Mark Wei Date: Thu, 17 Oct 2013 13:50:19 -0700 Subject: Trace without reflection. Avoid crashing on ICS. Change-Id: Ic75143a38d252278329a6f775c137ff1321eaf28 --- .../src/com/example/bitmapsample/BitmapView.java | 7 ++- .../src/com/example/bitmapsample/MainActivity.java | 1 - src/com/android/bitmap/util/Trace.java | 55 +++++++++------------- 3 files changed, 29 insertions(+), 34 deletions(-) diff --git a/sample/src/com/example/bitmapsample/BitmapView.java b/sample/src/com/example/bitmapsample/BitmapView.java index 8b5bd69..ac17441 100644 --- a/sample/src/com/example/bitmapsample/BitmapView.java +++ b/sample/src/com/example/bitmapsample/BitmapView.java @@ -17,6 +17,7 @@ package com.example.bitmapsample; import android.content.Context; +import android.os.Build; import android.util.AttributeSet; import android.view.View; @@ -54,7 +55,11 @@ public class BitmapView extends View { public void initialize(BitmapCache cache) { mBitmapDrawable = new BasicBitmapDrawable(getResources(), cache); - setBackground(mBitmapDrawable); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) { + setBackground(mBitmapDrawable); + } else { + setBackgroundDrawable(mBitmapDrawable); + } } } \ No newline at end of file diff --git a/sample/src/com/example/bitmapsample/MainActivity.java b/sample/src/com/example/bitmapsample/MainActivity.java index 78b2ec6..6db2bc5 100644 --- a/sample/src/com/example/bitmapsample/MainActivity.java +++ b/sample/src/com/example/bitmapsample/MainActivity.java @@ -37,7 +37,6 @@ public class MainActivity extends Activity { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); - Trace.init(); mListView = (ListView) findViewById(R.id.list); mListView.setAdapter(new MyAdapter()); } diff --git a/src/com/android/bitmap/util/Trace.java b/src/com/android/bitmap/util/Trace.java index e303d72..63d02cd 100644 --- a/src/com/android/bitmap/util/Trace.java +++ b/src/com/android/bitmap/util/Trace.java @@ -16,45 +16,36 @@ package com.android.bitmap.util; -import java.lang.reflect.Method; +import android.os.Build; -public class Trace { - - private static Method sBegin; - private static Method sEnd; - - public static void init() { - if (sBegin != null && sEnd != null) { - return; - } - try { - final Class cls = Class.forName("android.os.Trace"); - sBegin = cls.getMethod("beginSection", String.class); - sEnd = cls.getMethod("endSection"); - } catch (Exception e) { - e.printStackTrace(); - } - } +/** + * Stand-in for {@link android.os.Trace}. + */ +public abstract class Trace { + /** + * Begins systrace tracing for a given tag. No-op on unsupported platform versions. + * + * @param tag systrace tag to use + * + * @see android.os.Trace#beginSection(String) + */ public static void beginSection(String tag) { - if (sBegin == null) { - return; - } - try { - sBegin.invoke(null, tag); - } catch (Exception e) { - e.printStackTrace(); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) { + android.os.Trace.beginSection(tag); } } + /** + * Ends systrace tracing for the most recently begun section. No-op on unsupported platform + * versions. + * + * @see android.os.Trace#endSection() + */ public static void endSection() { - if (sEnd == null) { - return; - } - try { - sEnd.invoke(null, (Object[]) null); - } catch (Exception e) { - e.printStackTrace(); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) { + android.os.Trace.endSection(); } } + } -- cgit v1.2.3