TIF: Improve android.media.tv.TvContract.Programs.Genres#decode

test results:
 random string(1000 channels) decode 1000 times on Nexus Player
 6.8 seconds => 1.4 seconds

Bug: 23307587
Change-Id: If309b0819d705d791c8fa9b177e6d2bd0019102e
diff --git a/media/java/android/media/tv/TvContract.java b/media/java/android/media/tv/TvContract.java
index 7cd086e..e97df78 100644
--- a/media/java/android/media/tv/TvContract.java
+++ b/media/java/android/media/tv/TvContract.java
@@ -30,6 +30,7 @@
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.StringTokenizer;
 
 /**
  * The contract between the TV provider and applications. Contains definitions for the supported
@@ -1318,7 +1319,13 @@
              * @return canonical genre strings.
              */
             public static String[] decode(String genres) {
-                return genres.split("\\s*,\\s*");
+                StringTokenizer st = new StringTokenizer(genres, "\\s*,\\s*");
+                String[] result = new String[st.countTokens()];
+                int i = 0;
+                while (st.hasMoreTokens()){
+                    result[i++] = st.nextToken();
+                }
+                return result;
             }
 
             /**