summaryrefslogtreecommitdiff
path: root/core/java/android
diff options
context:
space:
mode:
authorTreeHugger Robot <treehugger-gerrit@google.com>2018-01-29 19:30:42 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2018-01-29 19:30:42 +0000
commitea3ca9d72035429b04bda2a8872d753b7281eddc (patch)
treea06dff1a6320ea7b955d280317ae3acd6f6b5349 /core/java/android
parentcebf31276530fb765f363a8686ad9ea281cf05cf (diff)
parent49ca0244c9fa01dd667755cde6eb2342b8e2e05d (diff)
Merge "Introduce MeasuredText related perf tests"
Diffstat (limited to 'core/java/android')
-rw-r--r--core/java/android/text/MeasuredParagraph.java10
-rw-r--r--core/java/android/text/MeasuredText.java14
2 files changed, 24 insertions, 0 deletions
diff --git a/core/java/android/text/MeasuredParagraph.java b/core/java/android/text/MeasuredParagraph.java
index 45fbf6f58209..aafcf44a73fc 100644
--- a/core/java/android/text/MeasuredParagraph.java
+++ b/core/java/android/text/MeasuredParagraph.java
@@ -672,6 +672,13 @@ public class MeasuredParagraph {
return width;
}
+ /**
+ * This only works if the MeasuredParagraph is computed with buildForStaticLayout.
+ */
+ @IntRange(from = 0) int getMemoryUsage() {
+ return nGetMemoryUsage(mNativePtr);
+ }
+
private static native /* Non Zero */ long nInitBuilder();
/**
@@ -718,4 +725,7 @@ public class MeasuredParagraph {
@CriticalNative
private static native /* Non Zero */ long nGetReleaseFunc();
+
+ @CriticalNative
+ private static native int nGetMemoryUsage(/* Non Zero */ long nativePtr);
}
diff --git a/core/java/android/text/MeasuredText.java b/core/java/android/text/MeasuredText.java
index ff23395d92a5..bb7a9e0b7906 100644
--- a/core/java/android/text/MeasuredText.java
+++ b/core/java/android/text/MeasuredText.java
@@ -333,6 +333,20 @@ public class MeasuredText implements Spanned {
return getMeasuredParagraph(paraIndex).getWidth(start - paraStart, end - paraStart);
}
+ /**
+ * Returns the size of native MeasuredText memory usage
+ *
+ * Note that this may not be aculate. Must be used only for testing purposes.
+ * @hide
+ */
+ public int getMemoryUsage() {
+ int r = 0;
+ for (int i = 0; i < getParagraphCount(); ++i) {
+ r += getMeasuredParagraph(i).getMemoryUsage();
+ }
+ return r;
+ }
+
///////////////////////////////////////////////////////////////////////////////////////////////
// Spanned overrides
//