Prepare NativeLineBreaker.LineBreaks to be public API
This is a ground work of making NativeLineBreaker/MeasuredParagraph
public.
This CL rename NativeLineBreaker.LineBreaks to NativeLineBreaker.Result.
This CL also moving array re-allocation logic from native code to Java in
StaticLayout. Ideally, we can remove array but this CL keeps array since
that introduces additional complexity.
Here is a raw perf test result:
android.text.StaticLayoutPerfTest:
create
PrecomputedText Balanced Hyphenation : 667 -> 810: (+143, +21.4%)
PrecomputedText Balanced NoHyphenation: 510 -> 594: ( +84, +16.5%)
PrecomputedText Greedy Hyphenation : 446 -> 530: ( +84, +18.8%)
PrecomputedText Greedy NoHyphenation : 448 -> 533: ( +85, +19.0%)
RandomText Balanced Hyphenation : 17,982 -> 18,176: (+194, +1.1%)
RandomText Balanced NoHyphenation : 7,348 -> 7,461: (+113, +1.5%)
RandomText Greedy Hyphenation : 7,293 -> 7,330: ( +37, +0.5%)
RandomText Greedy NoHyphenation : 7,289 -> 7,352: ( +63, +0.9%)
draw
PrecomputedText NoStyle : 645 -> 645: ( +0, +0.0%)
PrecomputedText Style : 941 -> 947: ( +6, +0.6%)
RandomText NoStyle : 541 -> 543: ( +2, +0.4%)
RandomText Style : 751 -> 753: ( +2, +0.3%)
android.widget.TextViewPrecomputedTextPerfTest:
newLayout
PrecomputedText : 839 -> 983: (+144, +17.2%)
PrecomputedText Selectable : 883 -> 1,053: (+170, +19.3%)
RandomText : 17,594 -> 17,761: (+167, +0.9%)
RandomText Selectable : 18,331 -> 18,695: (+364, +2.0%)
onDraw
PrecomputedText : 1,233 -> 1,385: (+152, +12.3%)
PrecomputedText Selectable : 1,164 -> 1,207: ( +43, +3.7%)
RandomText : 18,836 -> 19,042: (+206, +1.1%)
RandomText Selectable : 19,025 -> 19,092: ( +67, +0.4%)
onMeasure
PrecomputedText : 853 -> 991: (+138, +16.2%)
PrecomputedText Selectable : 1,077 -> 1,234: (+157, +14.6%)
RandomText : 17,613 -> 17,913: (+300, +1.7%)
RandomText Selectable : 18,696 -> 18,922: (+226, +1.2%)
setText
PrecomputedText : 133 -> 136: ( +3, +2.3%)
PrecomputedText Selectable : 190 -> 192: ( +2, +1.1%)
RandomText : 10 -> 11: ( +1, +10.0%)
RandomText Selectable : 49 -> 50: ( +1, +2.0%)
Bug: 112327179
Test: atest FrameworksCoreTests CtsGraphicsTestCases CtsWidgetTestCases
CtsTextTestCases
Change-Id: I25f41dacf73e00a859f43331bc53f8d123116192
3 files changed