)]}'
{
  "commit": "7fd36d19e309ea515b4048cfaabb8035ceab7baf",
  "tree": "30db8688e29ada27b365300ed08014a220464517",
  "parents": [
    "d3905e654452c68390835e31fcb752884e57a67b"
  ],
  "author": {
    "name": "Seigo Nonaka",
    "email": "nona@google.com",
    "time": "Thu Feb 01 21:39:24 2018 -0800"
  },
  "committer": {
    "name": "Seigo Nonaka",
    "email": "nona@google.com",
    "time": "Mon Feb 12 20:50:41 2018 -0800"
  },
  "message": "Reorganize MeasuredText API\n\nThis CL changes the MeasuredText API:\n- Rename MeasuredText to PrecomputedText.\n- PrecomputedText is no longer a Spanned.\n- Introduce PrecomputedText.Param which holds all text layout parameters.\n- Add API to get PrecomputedText.Param from TextView.\n- Remove MeasuredText.Builder and add PrecomputedText.create method instead.\n- Remove setRange from MeasuredText since it is not for normal use case.\n  (It can not be used for TextView)\n\nHere is a performance scores: (median, walleye-userdebug, N\u003d20)\n\nStaticLayout creation time (w/o patch -\u003e w/ patch)\n PrecomputedText Balanced Hyphenation  :    743,615 -\u003e    737,145: (-0.9%)\n PrecomputedText Balanced NoHyphenation:    551,544 -\u003e    542,715: (-1.6%)\n PrecomputedText Greedy Hyphenation    :    500,343 -\u003e    499,601: (-0.1%)\n PrecomputedText Greedy NoHyphenation  :    497,987 -\u003e    492,587: (-1.1%)\n RandomText Balanced Hyphenation       : 19,100,592 -\u003e 19,135,289: (+0.2%)\n RandomText Balanced NoHyphenation     :  8,015,088 -\u003e  7,954,260: (-0.8%)\n RandomText Greedy Hyphenation         :  7,950,915 -\u003e  7,877,424: (-0.9%)\n RandomText Greedy NoHyphenation       :  7,939,337 -\u003e  7,863,471: (-1.0%)\n\nPrecomputedText creation time (w/o patch -\u003e w/ patch)\n NoStyled Hyphenation                  : 18,935,638 -\u003e 18,925,422: (-0.1%)\n NoStyled Hyphenation WidthOnly        : 18,469,726 -\u003e 18,978,413: (+2.8%)\n NoStyled NoHyphenation                :  7,940,792 -\u003e  7,919,127: (-0.3%)\n NoStyled NoHyphenation WidthOnly      :  7,463,230 -\u003e  7,922,643: (+6.2%)\n Styled Hyphenation                    : 14,822,501 -\u003e 14,809,017: (-0.1%)\n Styled Hyphenation WidthOnly          : 13,891,770 -\u003e 14,656,617: (+5.5%)\n Styled NoHyphenation                  : 14,511,134 -\u003e 14,301,503: (-1.4%)\n Styled NoHyphenation WidthOnly        : 13,495,345 -\u003e 14,264,314: (+5.7%)\n\nStaticLayout draw time (w/o patch -\u003e w/ patch)\n PrecomputedText NoStyled              :    663,974 -\u003e    661,610: (-0.4%)\n PrecomputedText NoStyled WithoutCache :    648,294 -\u003e    648,766: (+0.1%)\n PrecomputedText Styled                :    879,322 -\u003e    852,770: (-3.0%)\n PrecomputedText Styled WithoutCache   :  1,084,570 -\u003e  1,110,147: (+2.4%)\n RandomText NoStyled                   :    565,682 -\u003e    555,435: (-1.8%)\n RandomText NoStyled WithoutCache      :  9,070,533 -\u003e  9,064,825: (-0.1%)\n RandomText Styled                     :  2,955,202 -\u003e  2,962,008: (+0.2%)\n RandomText Styled WithoutCache        : 12,242,325 -\u003e 12,228,573: (-0.1%)\n\nBug: 67504091\nBug: 73091756\nTest: bit FrameworksCoreTests:android.text.\nTest: atest CtsWidgetTestCases:EditTextTest \\\n    CtsWidgetTestCases:TextViewFadingEdgeTest \\\n    FrameworksCoreTests:TextViewFallbackLineSpacingTest \\\n    FrameworksCoreTests:TextViewTest FrameworksCoreTests:TypefaceTest \\\n    CtsGraphicsTestCases:TypefaceTest CtsWidgetTestCases:TextViewTest \\\n    CtsTextTestCases\nChange-Id: I7db9e2ca4db68a16648cfb8fcf63555f501304c2\n",
  "tree_diff": [
    {
      "type": "rename",
      "old_id": "fc6302ea93942d30532e9d5ae185ead48eb31d78",
      "old_mode": 33188,
      "old_path": "apct-tests/perftests/core/src/android/text/MeasuredTextMemoryUsageTest.java",
      "new_id": "73e17242ae785749a839fbf1124c072ca3d45284",
      "new_mode": 33188,
      "new_path": "apct-tests/perftests/core/src/android/text/PrecomputedTextMemoryUsageTest.java",
      "score": 73
    },
    {
      "type": "rename",
      "old_id": "98f2bd5e573652d1feba4220546293bef82d1865",
      "old_mode": 33188,
      "old_path": "apct-tests/perftests/core/src/android/text/MeasuredTextPerfTest.java",
      "new_id": "1cd0ae13069bb42f3aefbd2b210ae41546edb25c",
      "new_mode": 33188,
      "new_path": "apct-tests/perftests/core/src/android/text/PrecomputedTextPerfTest.java",
      "score": 66
    },
    {
      "type": "modify",
      "old_id": "231aaf2ca074910077c537e634322594a47a8b7f",
      "old_mode": 33188,
      "old_path": "apct-tests/perftests/core/src/android/text/StaticLayoutPerfTest.java",
      "new_id": "8823af1df3509a26a0b0bd807a18a12d912fc212",
      "new_mode": 33188,
      "new_path": "apct-tests/perftests/core/src/android/text/StaticLayoutPerfTest.java"
    },
    {
      "type": "modify",
      "old_id": "54f0e15926a025463e8eb23dce560d173badc33c",
      "old_mode": 33188,
      "old_path": "api/current.txt",
      "new_id": "543d71c53bbddf15694bff4898350a5992314df3",
      "new_mode": 33188,
      "new_path": "api/current.txt"
    },
    {
      "type": "modify",
      "old_id": "6fa5312be5cce23f678dd7eaf2bcd512c1ae5cbf",
      "old_mode": 33188,
      "old_path": "core/java/android/text/BoringLayout.java",
      "new_id": "dbe415773899bb2adb0cc7b77318643e3fc5972b",
      "new_mode": 33188,
      "new_path": "core/java/android/text/BoringLayout.java"
    },
    {
      "type": "modify",
      "old_id": "18431cacbfaf3df9e5cf2b49c8d7d5e06276c891",
      "old_mode": 33188,
      "old_path": "core/java/android/text/DynamicLayout.java",
      "new_id": "10444f045d6f961305d0e160079fcab55f959c6c",
      "new_mode": 33188,
      "new_path": "core/java/android/text/DynamicLayout.java"
    },
    {
      "type": "modify",
      "old_id": "aa97b2aba749be306628f6343258f7a209ca8615",
      "old_mode": 33188,
      "old_path": "core/java/android/text/Layout.java",
      "new_id": "d5d35904031c090d44097dbe8908e5e9cf95e99e",
      "new_mode": 33188,
      "new_path": "core/java/android/text/Layout.java"
    },
    {
      "type": "delete",
      "old_id": "bb7a9e0b7906fb873580a13b7937e110720d5989",
      "old_mode": 33188,
      "old_path": "core/java/android/text/MeasuredText.java",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "39fc2bd52db47f610ce8801ef76ee756bfb15c3e",
      "new_mode": 33188,
      "new_path": "core/java/android/text/PrecomputedText.java"
    },
    {
      "type": "modify",
      "old_id": "e62f4216f33ac6aeae1cec73af76d2844316749c",
      "old_mode": 33188,
      "old_path": "core/java/android/text/StaticLayout.java",
      "new_id": "5869802e74e6150d60e81f9c39eb84fcaadde366",
      "new_mode": 33188,
      "new_path": "core/java/android/text/StaticLayout.java"
    },
    {
      "type": "modify",
      "old_id": "55367dcce47e24ac2e192352844d066ae2643cb0",
      "old_mode": 33188,
      "old_path": "core/java/android/text/TextLine.java",
      "new_id": "be5bb4d1809a5d54c2b4bd6775337db0a76ebf30",
      "new_mode": 33188,
      "new_path": "core/java/android/text/TextLine.java"
    },
    {
      "type": "modify",
      "old_id": "fbb862be54ef54e74f7850b39bf9e7ce4ca0ccf8",
      "old_mode": 33188,
      "old_path": "core/java/android/view/RecordingCanvas.java",
      "new_id": "fc7d828de12ef008f1cb68e84b30270217892f4a",
      "new_mode": 33188,
      "new_path": "core/java/android/view/RecordingCanvas.java"
    },
    {
      "type": "modify",
      "old_id": "5710db3ce8e0e4e9b7c3c14a60e2d0d85263ad01",
      "old_mode": 33188,
      "old_path": "core/java/android/widget/TextView.java",
      "new_id": "f6e771a9605ed2c214aa23d7afa443c63ddacaa5",
      "new_mode": 33188,
      "new_path": "core/java/android/widget/TextView.java"
    },
    {
      "type": "modify",
      "old_id": "482d028a67f35ad78e1dcb49f2caab7b5d1a490b",
      "old_mode": 33188,
      "old_path": "core/jni/android/graphics/Paint.cpp",
      "new_id": "2c05d0b976fc8b0b158b029a38d9164fb7ea99e3",
      "new_mode": 33188,
      "new_path": "core/jni/android/graphics/Paint.cpp"
    },
    {
      "type": "modify",
      "old_id": "eacb727099ed6a9a24437ed451f88ac7fe0dc2c7",
      "old_mode": 33188,
      "old_path": "graphics/java/android/graphics/BaseCanvas.java",
      "new_id": "07df0454362cb9356b98c416ad70c4a8a11821c0",
      "new_mode": 33188,
      "new_path": "graphics/java/android/graphics/BaseCanvas.java"
    },
    {
      "type": "modify",
      "old_id": "ed147e9e2ec7bb854930989108d02ccc1a221ed7",
      "old_mode": 33188,
      "old_path": "graphics/java/android/graphics/Paint.java",
      "new_id": "42dac38affba12dc8c37eb4b508dacdd348037dc",
      "new_mode": 33188,
      "new_path": "graphics/java/android/graphics/Paint.java"
    }
  ]
}
