)]}'
{
  "log": [
    {
      "commit": "d00c851e55a487d03e11ce48e58cba5ff65fa59b",
      "tree": "a01d99cd4906dc6f1dac035ee2f73d7d35f6bf91",
      "parents": [
        "73e4d170c542d0d68ed857e433d04b77dd12aff3",
        "b1005a8a2affd887b1503945fa94a4bc0240a42b"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Tue May 15 15:06:19 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue May 15 15:06:19 2018 -0700"
      },
      "message": "Merge \"Convert to Soong\" am: acbd94d76f\nam: b1005a8a2a\n\nChange-Id: If5cb26e0669f79240d8fee1d40aaa2162d8e611f\n"
    },
    {
      "commit": "4888b1f6f0f607de913fbd0dc5eaed6575464c06",
      "tree": "662ea285f420c21f406e8dc09b6fbf42b7b28880",
      "parents": [
        "5d58a302e3dc3e63c1d5cc87807f29863e89b2a9"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Wed May 09 20:30:33 2018 -0700"
      },
      "committer": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Mon May 14 16:47:02 2018 -0700"
      },
      "message": "Convert to Soong\n\nSee build/soong/README.md for more information.\n\nTest: m libframeworks_coretests_jni\nTest: m FrameworkCoreTests_install\nTest: m libshim_jni\nTest: m CtsShimPrivUpgrade\nTest: m libfilterfw\nTest: m PMTest_Java_dual\nTest: m libdefcontainer_jni\nTest: m libperftestscore_jni\nTest: m libpmtest32 libpmtest64\nTest: m libprintspooler_jni\nTest: m libsmartcamera_jni\nTest: m idmap\nTest: m libdrmframework_jni\nTest: m libdvr_loader com.google.vr.platform com.google.vr.platform.xml\nTest: m libfilterpack_imageproc libfilterpack_base\nTest: m libwebviewchromium_loader\nTest: m shared_mem_test\nTest: m test-touchlag\nChange-Id: I868561dd237fa28647896d59049ab9260373ada1\n"
    },
    {
      "commit": "3f3af617ae9fab797248a9a855fe396c0d2ab590",
      "tree": "aa3ea0144523b6d5255d0b7e0735fd798f4d7852",
      "parents": [
        "5e12ebfffd813fc7035c9eef60220914dc92482f"
      ],
      "author": {
        "name": "Fyodor Kupolov",
        "email": "fkupolov@google.com",
        "time": "Wed Apr 18 17:26:43 2018 -0700"
      },
      "committer": {
        "name": "Fyodor Kupolov",
        "email": "fkupolov@google.com",
        "time": "Fri Apr 20 16:12:41 2018 -0700"
      },
      "message": "Enabled aggregated per-uid stats collection by default\n\nEnabled collection of number of calls per-uid. It has relatively small\noverhead. Memory impact is minimal and cpu overhead is also small -\n250 ns vs 1500 ns with detailed tracking\n\nDetailed tracking is disabled by default. Controlled by\npersist.sys.binder_calls_detailed_tracking\n\nAdded commands to reset and enable/disable detailed stats:\ndumpsys binder_calls_stats --reset\ndumpsys binder_calls_stats --enable-detailed-tracking\ndumpsys binder_calls_stats --disable-detailed-tracking\n\nTest: manual\nBug: 75318418\nChange-Id: I7c1280c025001b6d2b46e4a37bad841712b6da2f\n"
    },
    {
      "commit": "eff3f442605baa51d834987bcfaf47d0ea02ed05",
      "tree": "7c5515cb6085966ffea02a6e25c156733e58c82b",
      "parents": [
        "8d8a35a90ec568da101f3e05dc8f12b58f99af5b"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Apr 06 09:20:33 2018 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Apr 06 09:20:33 2018 +0100"
      },
      "message": "Exempt two performance tests from hidden API checks.\n\nBug: 64382372\nBug: 74963051\nBug: 76162083\n\nTest: m\nChange-Id: I50f2c8993cfb8fc7b78dc8c87b2cd8d9ee92d98e\n"
    },
    {
      "commit": "3e0970566276039dbceed737bbc55e9094b53645",
      "tree": "6b3abc9238ca0dd67d9834244442b0b4f49e26ef",
      "parents": [
        "a210ef268756b80c4d09ee716d4a07c2e63bf75f"
      ],
      "author": {
        "name": "jdesprez",
        "email": "jdesprez@google.com",
        "time": "Thu Mar 29 12:17:50 2018 -0700"
      },
      "committer": {
        "name": "jdesprez",
        "email": "jdesprez@google.com",
        "time": "Thu Mar 29 12:17:50 2018 -0700"
      },
      "message": "Add the CorePerfTests and MultiUserPerfTests to APCT metrics\n\nAdd them to the suite version of APCT metric instrumentation.\n\nTest: atest CorePerfTests\nBug: 77280599\nChange-Id: Ia8f0c44fcb9fd21869ed64e54483aa87556a469d\n"
    },
    {
      "commit": "163a57d71e6844856b2c7a3a1dc9ce3b5e2100b5",
      "tree": "6581b5311bc6dbe5fe2217f496d97cb0903ebeda",
      "parents": [
        "96fd5d9ed2f5ff2d2944e843144d7f467fa8af7b",
        "ca34851eadffb3a557cb8d03a83d5c78eb35483a"
      ],
      "author": {
        "name": "Fyodor Kupolov",
        "email": "fkupolov@google.com",
        "time": "Wed Mar 21 23:02:58 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 21 23:02:58 2018 +0000"
      },
      "message": "Merge \"Added BinderCallsStatsService\" into pi-dev"
    },
    {
      "commit": "c3328d648e827c8a65f46ed3a8b0ec96076b5ebe",
      "tree": "fdf374969c3c618b43411eaafeadd737bbd9d573",
      "parents": [
        "3483bc7d648ad96916eb68203103dc9668dd0be7"
      ],
      "author": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Tue Mar 20 15:18:59 2018 -0700"
      },
      "committer": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Tue Mar 20 18:57:38 2018 -0700"
      },
      "message": "Stop creating PrecomputedText in StaticLayout\n\nNo performance regressions are expected\n\nandroid.text.PrecomputedTextPerfTest:\n  create NoStyled Hyphenation                  : 17,849,966 -\u003e 17,858,570: (+0.0%)\n  create NoStyled Hyphenation WidthOnly        : 17,814,338 -\u003e 17,801,205: (-0.1%)\n  create NoStyled NoHyphenation                :  7,123,449 -\u003e  7,068,308: (-0.8%)\n  create NoStyled NoHyphenation WidthOnly      :  7,108,169 -\u003e  7,074,908: (-0.5%)\n  create Styled Hyphenation                    : 12,179,203 -\u003e 12,131,020: (-0.4%)\n  create Styled Hyphenation WidthOnly          : 12,112,347 -\u003e 12,241,311: (+1.1%)\n  create Styled NoHyphenation                  : 11,870,126 -\u003e 11,880,442: (+0.1%)\n  create Styled NoHyphenation WidthOnly        : 11,836,742 -\u003e 11,860,292: (+0.2%)\n\nandroid.text.StaticLayoutPerfTest:\n  create PrecomputedText Balanced Hyphenation  :    697,713 -\u003e    691,148: (-0.9%)\n  create PrecomputedText Balanced NoHyphenation:    517,113 -\u003e    498,106: (-3.7%)\n  create PrecomputedText Greedy Hyphenation    :    468,243 -\u003e    455,015: (-2.8%)\n  create PrecomputedText Greedy NoHyphenation  :    479,514 -\u003e    461,617: (-3.7%)\n  create RandomText Balanced Hyphenation       : 17,183,044 -\u003e 17,049,811: (-0.8%)\n  create RandomText Balanced NoHyphenation     :  7,183,745 -\u003e  7,025,070: (-2.2%)\n  create RandomText Greedy Hyphenation         :  7,130,841 -\u003e  6,995,785: (-1.9%)\n  create RandomText Greedy NoHyphenation       :  7,122,398 -\u003e  7,037,074: (-1.2%)\n\n  draw PrecomputedText NoStyled                :    520,306 -\u003e    551,465: (+6.0%)\n  draw PrecomputedText NoStyled WithoutCache   :    545,773 -\u003e    566,956: (+3.9%)\n  draw PrecomputedText Styled                  :    826,044 -\u003e    838,979: (+1.6%)\n  draw PrecomputedText Styled WithoutCache     :    829,958 -\u003e    841,749: (+1.4%)\n  draw RandomText NoStyled                     :    537,079 -\u003e    545,428: (+1.6%)\n  draw RandomText NoStyled WithoutCache        :  6,473,166 -\u003e  6,445,194: (-0.4%)\n  draw RandomText Styled                       :    995,033 -\u003e  1,015,913: (+2.1%)\n  draw RandomText Styled WithoutCache          :  2,725,313 -\u003e  2,770,604: (+1.7%)\n\nandroid.widget.TextViewPrecomputedTextPerfTest:\n  newLayout PrecomputedText                    :    754,311 -\u003e    718,130: (-4.8%)\n  newLayout PrecomputedText Selectable         : 17,716,239 -\u003e 17,484,046: (-1.3%)\n  newLayout RandomText                         : 16,657,952 -\u003e 16,511,625: (-0.9%)\n  newLayout RandomText Selectable              : 17,675,222 -\u003e 17,520,653: (-0.9%)\n  onDraw PrecomputedText                       :  1,307,123 -\u003e  1,280,009: (-2.1%)\n  onDraw PrecomputedText Selectable            : 17,613,031 -\u003e 17,404,379: (-1.2%)\n  onDraw RandomText                            : 17,369,256 -\u003e 17,295,363: (-0.4%)\n  onDraw RandomText Selectable                 : 18,207,392 -\u003e 18,077,660: (-0.7%)\n  onMeasure PrecomputedText                    :    748,537 -\u003e    739,128: (-1.3%)\n  onMeasure PrecomputedText Selectable         : 17,842,953 -\u003e 17,784,459: (-0.3%)\n  onMeasure RandomText                         : 16,633,454 -\u003e 16,549,182: (-0.5%)\n  onMeasure RandomText Selectable              : 18,022,286 -\u003e 17,873,919: (-0.8%)\n  setText PrecomputedText                      :    120,769 -\u003e    119,496: (-1.1%)\n  setText PrecomputedText Selectable           :    162,411 -\u003e    150,809: (-7.1%)\n  setText RandomText                           :     11,096 -\u003e     10,956: (-1.3%)\n  setText RandomText Selectable                :     48,852 -\u003e     48,593: (-0.5%)\n\nBug: 72998298\nTest: atest CtsWidgetTestCases:EditTextTest\n    CtsWidgetTestCases:TextViewFadingEdgeTest\n    FrameworksCoreTests:TextViewFallbackLineSpacingTest\n    FrameworksCoreTests:TextViewTest FrameworksCoreTests:TypefaceTest\n    CtsGraphicsTestCases:TypefaceTest CtsWidgetTestCases:TextViewTest\n    CtsTextTestCases FrameworksCoreTests:android.text\n    CtsWidgetTestCases:TextViewPrecomputedTextTest\n\nChange-Id: I3af758ecc5a15975c4e59c6378faf7c14c3bd65b\n"
    },
    {
      "commit": "ca34851eadffb3a557cb8d03a83d5c78eb35483a",
      "tree": "9d33ab7b898ee70f87592d2bb4b6966623f56ef8",
      "parents": [
        "9531b70cae96e8e59d38bd91d636cbe084574f3a"
      ],
      "author": {
        "name": "Fyodor Kupolov",
        "email": "fkupolov@google.com",
        "time": "Wed Jan 10 18:05:53 2018 -0800"
      },
      "committer": {
        "name": "Fyodor Kupolov",
        "email": "fkupolov@google.com",
        "time": "Fri Mar 16 23:17:03 2018 +0000"
      },
      "message": "Added BinderCallsStatsService\n\nIt tracks binder calls into the system server and reports\nstatistics about CPU time spent per call on multiple dimensions,\ne.g. uid or call description.\n\nUsage: dumpsys binder_calls_stats\nOverhead: ~0.5% per binder call (if enabled)\n\nTest: manual\nBug: 75318418\nChange-Id: I13b854f67f8fd1c9f985b8e45f74dcba2e73b9cb\n"
    },
    {
      "commit": "b0f07d14901126d9b0606e9c34c99bab61f666b4",
      "tree": "f64f30a333fdedf47bc1a7e632565e89dbe81d42",
      "parents": [
        "216c28d4463e2891d08045de5442fcbd7302e93a"
      ],
      "author": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Wed Mar 14 14:38:32 2018 -0700"
      },
      "committer": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Thu Mar 15 00:15:58 2018 +0000"
      },
      "message": "Set span boundary at word boundary in perf test\n\nThe style span interval should be the same with word boundary. This\ngenerates weird test case.\n\nBug: 72998298\nTest: N/A\nChange-Id: Id1132a455c8b1dd74e21eaeb259703a33ac3b01f\n"
    },
    {
      "commit": "86db3b5c10eebe58fcac69fe85a41db533440b83",
      "tree": "4eeda4deb6bed126cf2575d4964ba960f01c81e0",
      "parents": [
        "7cadb341cf34a50eef9e914509e3a76c2d271924",
        "5346f19f9e536e8d08d89e79ef0c6ed16c6b55b7"
      ],
      "author": {
        "name": "Fyodor Kupolov",
        "email": "fkupolov@google.com",
        "time": "Wed Mar 14 17:16:12 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 14 17:16:12 2018 +0000"
      },
      "message": "Merge \"Added performance tests for SQLiteCursor iteration\" into pi-dev"
    },
    {
      "commit": "5346f19f9e536e8d08d89e79ef0c6ed16c6b55b7",
      "tree": "f819ce3e355cff1cae8423663c69359685e57de4",
      "parents": [
        "ee83dd2cd04387852997aa4c2cf66120612b9cb5"
      ],
      "author": {
        "name": "Fyodor Kupolov",
        "email": "fkupolov@google.com",
        "time": "Tue Mar 13 18:32:01 2018 -0700"
      },
      "committer": {
        "name": "Fyodor Kupolov",
        "email": "fkupolov@google.com",
        "time": "Tue Mar 13 18:32:01 2018 -0700"
      },
      "message": "Added performance tests for SQLiteCursor iteration\n\nTests forward/backfards iteration when dataset exceeds default\nwindow size.\n\nTest: atest frameworks/base/apct-tests/perftests/core/src/android/database/SQLiteDatabasePerfTest.java\nBug: 37095915\nBug: 64262688\nChange-Id: Icc4e4864de0d2c510f7f3da55a6ebf526d5a4506\n"
    },
    {
      "commit": "12f867ca9856749c164f12df4bbbdc6330921fac",
      "tree": "209e4ecad65e133db7896002313add5d084d41e4",
      "parents": [
        "0efaf2088d8e3ba8ec560aa5eb597ef456b5213e"
      ],
      "author": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Thu Mar 08 09:15:46 2018 -0800"
      },
      "committer": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Fri Mar 09 11:12:07 2018 -0800"
      },
      "message": "Add selectable text view perf test for random text\n\nThe performance characteristics are quite different if selection is\nenabled. Good to add selectable random text case for reference.\n\nThis CL also fixes makeMeasureSpec miss usage.\n\nandroid.widget.TextViewPrecomputedTextPerfTest:\n    newLayout_PrecomputedText           :    758,899\n    newLayout_PrecomputedText_Selectable: 17,923,065\n    newLayout_RandomText                : 17,059,504\n    newLayout_RandomText_Selectable     : 18,523,234\n    onDraw_PrecomputedText              :  4,097,640\n    onDraw_PrecomputedText_Selectable   : 17,733,448\n    onDraw_RandomText                   : 17,941,208\n    onDraw_RandomText_Selectable        : 18,948,912\n    onMeasure_PrecomputedText           :    781,546\n    onMeasure_PrecomputedText_Selectable: 18,423,652\n    onMeasure_RandomText                : 18,067,749\n    onMeasure_RandomText_Selectable     : 19,364,439\n    setText_PrecomputedText             :     91,383\n    setText_PrecomputedText_Selectable  :    161,088\n    setText_RandomText                  :     11,142\n    setText_RandomText_Selectable       :     54,596\n\nBug: 72998298\nTest: N/A\nChange-Id: I8c04fd972897eb804be42adff883df13d87bf11e\n"
    },
    {
      "commit": "d15f04ef69a61722ea35de2e91923e44118e503b",
      "tree": "dfa41b02c933c1922ad82a294d4b578a4c67f682",
      "parents": [
        "1e36211a9633c2f0a87701e0f9bf78291514da03"
      ],
      "author": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Tue Mar 06 19:13:42 2018 -0800"
      },
      "committer": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Wed Mar 07 11:34:54 2018 -0800"
      },
      "message": "Introduce new perf test for TextView with precomputed text\n\nHere is an example of perf test result:\n\nTextView new layout creation time:\n  PrecomputedText           :    740,173\n  PrecomputedText_Selectable: 17,727,649\n  RandomText                : 17,130,685\n\nTextView onDraw time:\n  PrecomputedText           :  1,471,075\n  PrecomputedText_Selectable: 31,971,393\n  RandomText                : 17,667,572\n\nTextView onMeasure time:\n  PrecomputedText           :    177,669\n  PrecomputedText_Selectable: 17,773,204\n  RandomText                :  6,296,358\n\nTextView setText (w/o layout creation) time:\n  PrecomputedText           :     91,858\n  PrecomputedText_Selectable:    152,665\n  RandomText                :     11,130\n\nBug: 72998298\nTest: ran perf test\nChange-Id: I69af74ba743499bc444c441c1472fb19878c2eec\n"
    },
    {
      "commit": "a3e79fbb8cdc9ef78e519f2d89e2f70e41864a1d",
      "tree": "e2bac4b9794e76f3923b096f5efb99d631a19c6a",
      "parents": [
        "e8b557bc08facb3d60b605f3e8cb26b31baaa28b"
      ],
      "author": {
        "name": "Anton Hansson",
        "email": "hansson@google.com",
        "time": "Fri Feb 23 12:57:51 2018 +0000"
      },
      "committer": {
        "name": "Anton Hansson",
        "email": "hansson@google.com",
        "time": "Wed Feb 28 17:15:21 2018 +0000"
      },
      "message": "frameworks/base: Set LOCAL_SDK_VERSION where possible.\n\nThis change sets LOCAL_SDK_VERSION for all packages where\nthis is possible without breaking the build, and\nLOCAL_PRIVATE_PLATFORM_APIS :\u003d true otherwise.\n\nSetting one of these two will be made required soon, and this\nis a change in preparation for that. Not setting LOCAL_SDK_VERSION\nmakes the app implicitly depend on the bootclasspath, which is\noften not required. This change effectively makes depending on\nprivate apis opt-in rather than opt-out.\n\nTest: make relevant packages\nBug: 73535841\nChange-Id: Ibcffec873a693d1c792ca210fb597d2bf37e9068\nMerged-In: I4233b9091d9066c4fa69f3d24aaf367ea500f760\n"
    },
    {
      "commit": "ab6ec61251786bf6b4d0407db3bc28aeefcb55db",
      "tree": "fbdb5c5bd38879440eac702018dd53c0ed639541",
      "parents": [
        "58c83fa7c8609059f3d66a5860abb302284c2981"
      ],
      "author": {
        "name": "Anton Hansson",
        "email": "hansson@google.com",
        "time": "Fri Feb 23 12:57:51 2018 +0000"
      },
      "committer": {
        "name": "Anton Hansson",
        "email": "hansson@google.com",
        "time": "Wed Feb 28 15:13:23 2018 +0000"
      },
      "message": "frameworks/base: Set LOCAL_SDK_VERSION where possible.\n\nThis change sets LOCAL_SDK_VERSION for all packages where\nthis is possible without breaking the build, and\nLOCAL_PRIVATE_PLATFORM_APIS :\u003d true otherwise.\n\nSetting one of these two will be made required soon, and this\nis a change in preparation for that. Not setting LOCAL_SDK_VERSION\nmakes the app implicitly depend on the bootclasspath, which is\noften not required. This change effectively makes depending on\nprivate apis opt-in rather than opt-out.\n\nTest: make relevant packages\nBug: 73535841\nChange-Id: I4233b9091d9066c4fa69f3d24aaf367ea500f760\n"
    },
    {
      "commit": "98e10b829de5746ad7bc0f81673e44505900e5fd",
      "tree": "4bb230138a70dfb0c1ff1912d96df38c29439ecf",
      "parents": [
        "5d108838257b60e344f1f34a0eb95bccdd115410",
        "3ffc6e7e0f3f473e9d9bf2d0e32d4948c809b8b8"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Feb 22 02:14:07 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 22 02:14:07 2018 +0000"
      },
      "message": "Merge \"Add 90th and 95th percentile to ManualBenchmarkState\""
    },
    {
      "commit": "1469365c38bc0da536c47a67d9b198301f8793ba",
      "tree": "b7e9ec9da16075130c285fb1f58eebba55f99c9f",
      "parents": [
        "e68ba070bbc68b6a336c1f7b02bbfdc02375defc"
      ],
      "author": {
        "name": "Kevin Cheng",
        "email": "kevcheng@google.com",
        "time": "Tue Feb 20 14:27:17 2018 -0800"
      },
      "committer": {
        "name": "Kevin Cheng",
        "email": "kevcheng@google.com",
        "time": "Tue Feb 20 14:51:13 2018 -0800"
      },
      "message": "Auto-gen AndroidTest.xml for CorePerfTests so atest can run it.\n\nBug: 68946306\nTest: atest CorePerfTests\nhttps://sponge.corp.google.com/target?id\u003d5238c8a7-0016-485f-9eb4-7a91fe86c454\u0026target\u003dCorePerfTests\u0026searchFor\u003d\u0026show\u003dALL\u0026sortBy\u003dSTATUS\nChange-Id: I4fe680dddb51151e17546704f554813a588e5f86\n"
    },
    {
      "commit": "beafa1f9d2845ee9b5ca352087de03ed0afe7db7",
      "tree": "fc74171bcb29ea1e720d9b16d195d344e998c310",
      "parents": [
        "c4c7f9bf1c93c7499240dacea7116786397ed76b"
      ],
      "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": "Fri Feb 16 19:42:00 2018 -0800"
      },
      "message": "Reorganize MeasuredText API (2nd)\n\nThis is 2nd attempt of I7db9e2ca4db68a16648cfb8fcf63555f501304c2\n\nThis CL changes the MeasuredText API:\n- Rename MeasuredText to PrecomputedText.\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\nBug: 67504091\nBug: 72861572\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\n\nChange-Id: Ie73bce52c6c673cda58973ddad04627a7cf2e5e9\n"
    },
    {
      "commit": "4e90fa262d57c1c1ee72166e2ddfce391696ca24",
      "tree": "0b38575786a462224d2cddd07355649c6c939015",
      "parents": [
        "acc788a9525ab1759fb1a81100b6161a22b5b97d"
      ],
      "author": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Tue Feb 13 21:40:01 2018 +0000"
      },
      "committer": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Wed Feb 14 17:03:16 2018 +0000"
      },
      "message": "Revert \"Reorganize MeasuredText API\"\n\nThe last change needs more discussion and found some edge cases. Revert and make small step-by-step changes.\n\nBug: 73091756\n\nThis reverts commit 7fd36d19e309ea515b4048cfaabb8035ceab7baf.\n\nChange-Id: I89ff52a70cf6a5d6c553afa20f83719e1f9eb726\n"
    },
    {
      "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"
    },
    {
      "commit": "793a823467f48ea8b92f0b53578b603f50a560ba",
      "tree": "04413bb262da8787bce83d8b5d41d314e71bf1fc",
      "parents": [
        "261a1077b3d0b31c2fbc24fd72b87f9291190803",
        "97314af57693edc85f99c4118c36f7d946a12886"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Feb 08 21:42:52 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 08 21:42:52 2018 +0000"
      },
      "message": "Merge \"Introduce perf tests for background text layout performance\""
    },
    {
      "commit": "3ffc6e7e0f3f473e9d9bf2d0e32d4948c809b8b8",
      "tree": "c39ff6cfa6edf4fd32c6206ac60f9b2248418207",
      "parents": [
        "c65eb444374cd4503d3ee39432ec71ed1d3357e3"
      ],
      "author": {
        "name": "Arthur Eubanks",
        "email": "aeubanks@google.com",
        "time": "Wed Feb 07 17:00:15 2018 -0800"
      },
      "committer": {
        "name": "Arthur Eubanks",
        "email": "aeubanks@google.com",
        "time": "Thu Feb 08 09:23:32 2018 -0800"
      },
      "message": "Add 90th and 95th percentile to ManualBenchmarkState\n\nTest: m ActivityManagerPerfTestsTestApp ActivityManagerPerfTests\nTest: adb install \\\n$OUT/data/app/ActivityManagerPerfTestsTestApp/ActivityManagerPerfTestsTestApp.apk\nTest: adb install \\\n$OUT/data/app/ActivityManagerPerfTests/ActivityManagerPerfTests.apk\nTest: adb shell am instrument -w -e class \\\ncom.android.frameworks.perftests.am.tests.BroadcastPerfTest \\\ncom.android.frameworks.perftests.amtests/android.support.test.runner.AndroidJUnitRunner\n\nBUG: 67460485\nChange-Id: I3da7079758b0f8c123d354780f310f357886543c\n"
    },
    {
      "commit": "97314af57693edc85f99c4118c36f7d946a12886",
      "tree": "02110cc7c8b8443db768079bf43d7d92eaad760d",
      "parents": [
        "8c04bd60a70cac35d49aef011afb652c67726823"
      ],
      "author": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Tue Feb 06 22:23:00 2018 -0800"
      },
      "committer": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Tue Feb 06 22:23:00 2018 -0800"
      },
      "message": "Introduce perf tests for background text layout performance\n\nHere is an example of perf score:\n\nStaticLayout creation time\n 1 Thread:  7,301,172\n 2 Thread: 13,842,641\n 4 Thread: 25,232,063\n\nBug: 37567215\nTest: See above\nChange-Id: I319abd5fe0861575649a1122c91f1949c6ad14d2\n"
    },
    {
      "commit": "8e44df2722f07684c05a914fcf4e28221ce74f02",
      "tree": "420837775feb92ead2ead2618de1fd9dfa5f07c2",
      "parents": [
        "c65eb444374cd4503d3ee39432ec71ed1d3357e3"
      ],
      "author": {
        "name": "Arthur Eubanks",
        "email": "aeubanks@google.com",
        "time": "Wed Jan 10 14:00:20 2018 -0800"
      },
      "committer": {
        "name": "Arthur Eubanks",
        "email": "aeubanks@google.com",
        "time": "Tue Feb 06 16:10:17 2018 -0800"
      },
      "message": "Add perf tests for PendingIntent\n\nTest: m CorePerfTests\nTest: adbi \"$OUT\"/data/app/CorePerfTests/CorePerfTests.apk\nTest: adb shell am instrument -w -e class \\\nandroid.app.PendingIntentPerfTest \\\ncom.android.perftests.core/android.support.test.runner.AndroidJUnitRunner\n\nBUG: 67460485\n\nChange-Id: I45bfc694454b466041d81e37a9010d58c170a4d3\n"
    },
    {
      "commit": "3fe3869dfebb39485365ef39191507162de370e3",
      "tree": "cf45014101c83c1b220c3178c8e9050383a0a8a6",
      "parents": [
        "fad69a64d9ff401c027d094bd00eaf0014b86971"
      ],
      "author": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Thu Feb 01 16:48:52 2018 -0800"
      },
      "committer": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Thu Feb 01 16:48:52 2018 -0800"
      },
      "message": "Fix wrong parameter for StaticLayoutPerfTest\n\nTest: N/A\nBug: N/A\nChange-Id: I598115d69fc6e59aa28b60644e6cb80794262c11\n"
    },
    {
      "commit": "ea3ca9d72035429b04bda2a8872d753b7281eddc",
      "tree": "a06dff1a6320ea7b955d280317ae3acd6f6b5349",
      "parents": [
        "cebf31276530fb765f363a8686ad9ea281cf05cf",
        "49ca0244c9fa01dd667755cde6eb2342b8e2e05d"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Jan 29 19:30:42 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jan 29 19:30:42 2018 +0000"
      },
      "message": "Merge \"Introduce MeasuredText related perf tests\""
    },
    {
      "commit": "49ca0244c9fa01dd667755cde6eb2342b8e2e05d",
      "tree": "0b7b7b1b5e276e0e0621f9d3d2d5b08ff3d010a2",
      "parents": [
        "783f961d2fa6f916009844dafeaa08ffaf96a4d3"
      ],
      "author": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Wed Jan 24 16:46:14 2018 -0800"
      },
      "committer": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Thu Jan 25 10:41:26 2018 -0800"
      },
      "message": "Introduce MeasuredText related perf tests\n\nThis CL adds two perf test for MeasuredText: the memory usage and\nconstruction time of MeasuredText.\n\nHere is an example output on walleye-userdebug:\n\nMemory Usage (in bytes)\nHyphenation            :    28,448\nHyphenation WidthOnly  :     8,856\nNoHyphenation          :    27,592\nNoHyphenation WidthOnly:     8,000\n\nMeasuredText creation time\nNoStyled Hyphenation            : 18,977,877\nNoStyled Hyphenation WidthOnly  : 18,510,041\nNoStyled NoHyphenation          :  7,771,936\nNoStyled NoHyphenation WidthOnly:  7,332,537\nStyled Hyphenation              : 13,514,428\nStyled Hyphenation WidthOnly    : 12,446,143\nStyled NoHyphenation            : 13,370,358\nStyled NoHyphenation WidthOnly  : 13,582,435\n\nBug: 72461923\nBug: 72462192\nTest: See above\n\nChange-Id: I7d326a9e70a29c38c940e0085da2bc4edf2a098a\n"
    },
    {
      "commit": "f80fa7d91d78363e67f166ada06070fc85de07ab",
      "tree": "7cb179e1da6eed54fd39e2b373bd32833aa7924a",
      "parents": [
        "6f6ff3cb5e32d5e036a157110d0e702365b11850",
        "52d3b672503c988858339181d5b7791179b09184"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Jan 22 19:07:30 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jan 22 19:07:30 2018 +0000"
      },
      "message": "Merge \"Add StaticLayoutPerfTest for drawing\""
    },
    {
      "commit": "52d3b672503c988858339181d5b7791179b09184",
      "tree": "385d7b3a65af2656335e4741ba4c5eee85366721",
      "parents": [
        "bd9b0cf9b0713d8ed9edd0729a8b8b0ca47cbbd3"
      ],
      "author": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Sat Jan 20 14:06:00 2018 -0800"
      },
      "committer": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Sat Jan 20 14:23:21 2018 -0800"
      },
      "message": "Add StaticLayoutPerfTest for drawing\n\nBug: 63897135\nTest: Here is the sample result on walleye-userdebug\n\ndraw MeasuredText NoStyled             :    714,657\ndraw MeasuredText NoStyled WithoutCache:  9,775,025\ndraw MeasuredText Styled               :  3,341,118\ndraw MeasuredText Styled WithoutCache  : 13,214,933\ndraw RandomText NoStyled               :    649,611\ndraw RandomText NoStyled WithoutCache  :  9,625,940\ndraw RandomText Styled                 :  3,296,206\ndraw RandomText Styled WithoutCache    : 13,735,996\n\nChange-Id: I9c784014ffda997fe60d667734d0e41975198265\n"
    },
    {
      "commit": "994b6908447d9f19ed704473828a72ba15f62833",
      "tree": "9fe57873a339f8ccc2d84d6e5cced539562c1fbd",
      "parents": [
        "e8caa3bc5c4aaa67f1f5b01b5995a045fe515c7c",
        "109057e07e5b576a8ab9dd55062e70b2444ddae5"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jan 19 22:54:28 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 19 22:54:28 2018 +0000"
      },
      "message": "Merge \"Add performance tests for query / get\""
    },
    {
      "commit": "109057e07e5b576a8ab9dd55062e70b2444ddae5",
      "tree": "d202bf8e5e8018902e64c0e29982b5aa10e338ff",
      "parents": [
        "4e588baaa472bb6f31f1df6797ba87a483c511bf"
      ],
      "author": {
        "name": "Todd Kennedy",
        "email": "toddke@google.com",
        "time": "Fri Jan 19 12:32:21 2018 -0800"
      },
      "committer": {
        "name": "Todd Kennedy",
        "email": "toddke@google.com",
        "time": "Fri Jan 19 12:32:21 2018 -0800"
      },
      "message": "Add performance tests for query / get\n\nBug: 68777480\nTest: m CorePerfTests\nTest: adb install CorePerfTests.apk\nTest: adb shell am instrument -w -e class android.os.PackageManagerPerfTest com.android.perftests.core/android.support.test.runner.AndroidJUnitRunner\nChange-Id: I047d9d2e84665fe641a7c354a9f1b16c40f7ff31\n"
    },
    {
      "commit": "f2829deea4f8203148d7e1436419c1aea224b171",
      "tree": "6d705f931a9eceabdf0a139bfa2cdda3053b3e41",
      "parents": [
        "633792e2d3fd0d09eebc4294119dcc9b1b1de970"
      ],
      "author": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Thu Jan 18 15:08:53 2018 -0800"
      },
      "committer": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Thu Jan 18 15:17:09 2018 -0800"
      },
      "message": "StaticLayoutPerfTest: Use fixed seed in each test case\n\nBug: None\nTest: run StaticLayoutPerfTest\nChange-Id: I49610b8098d67097569091e18d87eafb9911049b\n"
    },
    {
      "commit": "881a432d0802b67d4ea4fbf65b75bd2d0a066b09",
      "tree": "eed02f87a8f36d2f19d826b9f7486dc3ab908a09",
      "parents": [
        "67462296b1a18fc7aa65e0b7ae0e973e49e0a3ae",
        "87b1547c929190c77b6b2d779f1d992691f04d17"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jan 18 20:32:54 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 18 20:32:54 2018 +0000"
      },
      "message": "Merge \"Compute hyphenated word pieces in MeasuredText\""
    },
    {
      "commit": "87b1547c929190c77b6b2d779f1d992691f04d17",
      "tree": "9b5495ec7fbacf56654d5eb0261deed62b35c0d1",
      "parents": [
        "4fe359998771557a70555d06575790104c79c266"
      ],
      "author": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Fri Jan 12 14:06:29 2018 -0800"
      },
      "committer": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Thu Jan 18 18:30:02 2018 +0000"
      },
      "message": "Compute hyphenated word pieces in MeasuredText\n\nBug: 67504091\nTest: bit CtsTextTestCases:*\nChange-Id: Id1ff5abbf6d433a2d8baad364133fca98d1fe450\n"
    },
    {
      "commit": "ee0ec3093ce30058cc6f11854272eaf5acc3275b",
      "tree": "f73fcd7c1207b42fdd61c6d2bd3cc924d30100e8",
      "parents": [
        "217682248b25b375891bb55ca058a09b57c3417c",
        "d131348d090940442f884d500571c179af8e71c5"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jan 18 01:48:27 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 18 01:48:27 2018 +0000"
      },
      "message": "Merge \"Add performance test for Debug.getPss()\""
    },
    {
      "commit": "d131348d090940442f884d500571c179af8e71c5",
      "tree": "2e35a5e8f6f1f52defdbf456852d2dafabf37b5c",
      "parents": [
        "4ebcb57e5e07cd9bdf0bb894e01ac0a364737dc6"
      ],
      "author": {
        "name": "Arthur Eubanks",
        "email": "aeubanks@google.com",
        "time": "Mon Dec 18 13:27:51 2017 -0800"
      },
      "committer": {
        "name": "Arthur Eubanks",
        "email": "aeubanks@google.com",
        "time": "Wed Jan 17 14:28:06 2018 -0800"
      },
      "message": "Add performance test for Debug.getPss()\n\nTest: m CorePerfTests\nTest: adb install CorePerfTests.apk\nTest: adb shell am instrument -w -e class android.os.PssPerfTest \\\ncom.android.perftests.core/android.support.test.runner.AndroidJUnitRunner\n\nChange-Id: Ia8cacb86c14b9956c9d526195d90848c678da6a6\n"
    },
    {
      "commit": "b01e18c3eec608f737ab4dcc280224a389750ec1",
      "tree": "0edc385f2a5de87cc1477168ba1f012728d55d94",
      "parents": [
        "02c0e98600b6b0cdf912effea48877b5ddbafed9",
        "9d3bd08ebab564ed9231c8ee112e8085cda74ce8"
      ],
      "author": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Tue Jan 16 00:47:52 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 16 00:47:52 2018 +0000"
      },
      "message": "Merge \"Rename PremeasuredText to MeasuredText\""
    },
    {
      "commit": "eb0a68b29cd8b64b529b7f21d95c80120e0869a6",
      "tree": "4d9a01164a3163c8d22c7a38b88af61acfc7d41c",
      "parents": [
        "82e3a31f8158641b32ebf21771309834c873ce30",
        "34ccf9fcc39de3b1d6ddbaefd678c67152f8abc2"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jan 12 23:48:41 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 12 23:48:41 2018 +0000"
      },
      "message": "Merge \"Add Permission performance tests\""
    },
    {
      "commit": "263d674d598f77a1f91bdfc73be808efd3446133",
      "tree": "e61a0b9e50b4d85512a3ec13d06c42d3caef8982",
      "parents": [
        "8da513e8bfedae0316939768a826c55d34f123e0"
      ],
      "author": {
        "name": "Arthur Eubanks",
        "email": "aeubanks@google.com",
        "time": "Mon Dec 18 13:46:59 2017 -0800"
      },
      "committer": {
        "name": "Arthur Eubanks",
        "email": "aeubanks@google.com",
        "time": "Fri Jan 12 09:54:13 2018 -0800"
      },
      "message": "Add performance test for BroadcastReceiver\n\nThis is intended to be the first of multiple performance tests around\nActivityManager.\n\nThis also refactors some of the existing performance utils so that a\nBenchmarkState which accepts the elapsed time rather than measures it\ncan be added (ManualBenchmarkState).\n\nThis test measures the current time, sends a Broadcast, the target APK\nreceives it, measures the current time, and sends its measured time\nback to the test APK.\n\nTest: m ActivityManagerPerfTestsTestApp ActivityManagerPerfTests\nTest: adb install $OUT/data/app/ActivityManagerPerfTestsTestApp/ActivityManagerPerfTestsTestApp.apk\nTest: adb install $OUT/data/app/ActivityManagerPerfTests/ActivityManagerPerfTests.apk\nTest: adb shell am instrument -w -e class \\\ncom.android.frameworks.perftests.am.tests.BroadcastPerfTest \\\ncom.android.frameworks.perftests.amtests/android.support.test.runner.AndroidJUnitRunner\n\nBug: 67460485\n\nChange-Id: Ib1606ff60c6a845088bde5bd1a33294765b88b36\n"
    },
    {
      "commit": "9d3bd08ebab564ed9231c8ee112e8085cda74ce8",
      "tree": "1cf3f425d82f10a315227d04315f76bb2ed95069",
      "parents": [
        "11954f5060c12299041ec1efbb02411833322e1d"
      ],
      "author": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Thu Jan 11 10:02:12 2018 -0800"
      },
      "committer": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Thu Jan 11 11:33:32 2018 -0800"
      },
      "message": "Rename PremeasuredText to MeasuredText\n\nThere is already MeasuredText, so renamed existing MeasuredText to\nMeasuredParagraph, then renamed PremeasuredText to MeasuredText.\n\nBug: 67504091\nTest: bit CtsWidgetTestCases:android.widget.cts.TextViewTest\nTest: bit CtsTextTestCases:*\nChange-Id: Ie20bea9501b18fabb36f64d388a7851c4643d4c3\n"
    },
    {
      "commit": "34ccf9fcc39de3b1d6ddbaefd678c67152f8abc2",
      "tree": "c3880c8225e0687697ea82fbd8427a9a0be98709",
      "parents": [
        "8da513e8bfedae0316939768a826c55d34f123e0"
      ],
      "author": {
        "name": "Arthur Eubanks",
        "email": "aeubanks@google.com",
        "time": "Wed Jan 10 13:45:42 2018 -0800"
      },
      "committer": {
        "name": "Arthur Eubanks",
        "email": "aeubanks@google.com",
        "time": "Wed Jan 10 13:54:59 2018 -0800"
      },
      "message": "Add Permission performance tests\n\nTest: m CorePerfTests\nTest: adb install CorePerfTests.apk\nTest: adb shell am instrument -w -e class android.os.PermissionTest \\\ncom.android.perftests.core/android.support.test.runner.AndroidJUnitRunner\n\nChange-Id: Iad7b6c1d110c9188c51712925a4d9ffa7d46120e\n"
    },
    {
      "commit": "fbe63bddd6ea751cb1b82f6dfb5e896f4b7a7ef4",
      "tree": "346c3fe1de1ee2fccf8d48c66cc666f34f435b60",
      "parents": [
        "0d13717248cf34b4dfee9cd757c33ed7c57338d6"
      ],
      "author": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Sat Dec 02 19:28:05 2017 -0800"
      },
      "committer": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Mon Dec 11 18:55:12 2017 -0800"
      },
      "message": "Introduce PremeasuredText\n\nBy measuring the character widths beforehand, we can save at least 40%\nof the StaticLayout construction time which typically happens on UI\nthread.\nAlso verified this doesn\u0027t cause performance regression for not\npremeasured text.\n\nRaw performance score (Not premeasured -\u003e premeasured, median, N\u003d100)\n\nNo Style,   Greedy, Hyphenation OFF:  7,812,975 -\u003e    503,245 (-93.6%)\nNo Style, Balanced, Hyphenation OFF:  7,843,254 -\u003e    396,892 (-95.0%)\n\nNo Style,   Greedy, Hyphenation ON : 19,134,214 -\u003e 11,658,928 (-39.1%)\nNo Style, Balanced, Hyphenation ON : 19,348,062 -\u003e 11,634,942 (-39.9%)\n\nStyled,     Greedy, Hyphenation OFF: 14,353,673 -\u003e    572,840 (-96.0%)\n\nRaw performance score (w/o patch -\u003e w/ patch, median, N\u003d100):\n\nNo Style,   Greedy, Hyphenation OFF:  7,732,894 -\u003e  7,812,975 (+1.04%)\nNo Style, Balanced, Hyphenation OFF:  7,884,510 -\u003e  7,843,254 (-0.52%)\n\nNo Style,   Greedy, Hyphenation ON : 18,986,958 -\u003e 19,134,214 (+0.78%)\nNo Style, Balanced, Hyphenation ON : 19,232,791 -\u003e 19,348,062 (+0.60%)\n\nStyled,     Greedy, Hyphenation OFF: 14,319,690 -\u003e 14,353,673 (+0.24%)\n\nBug: 67504091\nTest: bit CtsTextTestCases:*\nTest: bit CtsGraphicsTestCases:*\nTest: bit CtsWidgetTestCases:*\nTest: FrameworksCoreTests:android.text.MeasuredTextTest\nChange-Id: I0b46f04b42cc012606a9c722eca0d51147a0dcc7\n"
    },
    {
      "commit": "b866307f99c35252dcb76e9269bb57d97c3c4b86",
      "tree": "ce8d4edc1cf2edbc48029214dfbde2213a3d9466",
      "parents": [
        "9d25218985ba8ea944b4a51d194744b5a85a1105"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Fri Dec 08 00:02:42 2017 +0000"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Fri Dec 08 00:07:17 2017 +0000"
      },
      "message": "Stop statically including legacy-android-test\n\nStatically including legacy-android-test leads to duplicate classes\nwhich causes build time problems (with Proguard) and runtime problems on\nolder SDK versions. This change:\n* Stops statically including legacy-android-test.\n* Adds compile time dependencies on andoid.test.base, android.test.mock\n  and android.test.runner where necessary.\n* Adds \u003cuses-library android:name\u003d\"android.test.runner\"/\u003e to any\n  affected package to ensure that the classes that were included by\n  legacy-android-test are still available at runtime. That also adds a\n  dependency on android.test.base and android.test.mock.\n\nThe following change descriptions were generated automatically and so\nmay be a little repetitive. They are provided to give the reviewer\nenough information to check the comments match what has actually been\nchanged and check the reasoning behind the changes.\n\n* apct-tests/perftests/core/Android.mk\n    Removed legacy-android-test from LOCAL_STATIC_JAVA_LIBRARIES\n    because statically including the classes in CorePerfTests results\n    in duplicate classes which leads to build time and compile time\n    issues.\n\n    Added \u0027android.test.base\u0027 to LOCAL_JAVA_LIBRARIES because\n    CorePerfTests\u0027s source depends on its classes and because of these\n    changes they are no longer present on the compilation path.\n\n* core/tests/ConnectivityManagerTest/Android.mk\n    Added \u0027android.test.base\u0027 to LOCAL_JAVA_LIBRARIES because\n    ConnectivityManagerTest\u0027s source depends on its classes and because\n    of these changes they are no longer present on the compilation\n    path.\n\n    Removed legacy-android-test from LOCAL_STATIC_JAVA_LIBRARIES\n    because statically including the classes in ConnectivityManagerTest\n    results in duplicate classes which leads to build time and compile\n    time issues.\n\n* core/tests/bandwidthtests/Android.mk\n    Added \u0027android.test.base\u0027 to LOCAL_JAVA_LIBRARIES because\n    BandwidthTests\u0027s source depends on its classes and because of these\n    changes they are no longer present on the compilation path.\n\n    Removed legacy-android-test from LOCAL_STATIC_JAVA_LIBRARIES\n    because statically including the classes in BandwidthTests results\n    in duplicate classes which leads to build time and compile time\n    issues.\n\n* core/tests/bluetoothtests/Android.mk\n    Added \u0027android.test.base\u0027 to LOCAL_JAVA_LIBRARIES because\n    BluetoothTests\u0027s source depends on its classes and because of these\n    changes they are no longer present on the compilation path.\n\n    Removed legacy-android-test from LOCAL_STATIC_JAVA_LIBRARIES\n    because statically including the classes in BluetoothTests results\n    in duplicate classes which leads to build time and compile time\n    issues.\n\n* core/tests/hosttests/test-apps/DownloadManagerTestApp/Android.mk\n    Removed legacy-android-test from LOCAL_STATIC_JAVA_LIBRARIES\n    because statically including the classes in DownloadManagerTestApp\n    results in duplicate classes which leads to build time and compile\n    time issues.\n\n    Added \u0027android.test.base\u0027 to LOCAL_JAVA_LIBRARIES because\n    DownloadManagerTestApp\u0027s source depends on its classes and because\n    of these changes they are no longer present on the compilation\n    path.\n\n* core/tests/hosttests/test-apps/ExternalSharedPerms/Android.mk\n    Removed legacy-android-test from LOCAL_STATIC_JAVA_LIBRARIES\n    because statically including the classes in\n    ExternalSharedPermsTestApp results in duplicate classes which leads\n    to build time and compile time issues.\n\n* core/tests/hosttests/test-apps/ExternalSharedPermsBT/Android.mk\n    Removed legacy-android-test from LOCAL_STATIC_JAVA_LIBRARIES\n    because statically including the classes in\n    ExternalSharedPermsBTTestApp results in duplicate classes which\n    leads to build time and compile time issues.\n\n* core/tests/hosttests/test-apps/ExternalSharedPermsDiffKey/Android.mk\n    Removed legacy-android-test from LOCAL_STATIC_JAVA_LIBRARIES\n    because statically including the classes in\n    ExternalSharedPermsDiffKeyTestApp results in duplicate classes\n    which leads to build time and compile time issues.\n\n* core/tests/hosttests/test-apps/ExternalSharedPermsFL/Android.mk\n    Removed legacy-android-test from LOCAL_STATIC_JAVA_LIBRARIES\n    because statically including the classes in\n    ExternalSharedPermsFLTestApp results in duplicate classes which\n    leads to build time and compile time issues.\n\n* core/tests/notificationtests/Android.mk\n    Added \u0027android.test.base\u0027 to LOCAL_JAVA_LIBRARIES because\n    NotificationStressTests\u0027s source depends on its classes and because\n    of these changes they are no longer present on the compilation\n    path.\n\n    Removed legacy-android-test from LOCAL_STATIC_JAVA_LIBRARIES\n    because statically including the classes in NotificationStressTests\n    results in duplicate classes which leads to build time and compile\n    time issues.\n\n* keystore/tests/Android.mk\n    Removed legacy-android-test from LOCAL_STATIC_JAVA_LIBRARIES\n    because statically including the classes in KeystoreTests results\n    in duplicate classes which leads to build time and compile time\n    issues.\n\n* media/mca/tests/Android.mk\n    Added \u0027android.test.base\u0027 to LOCAL_JAVA_LIBRARIES because\n    CameraEffectsTests\u0027s source depends on its classes and because of\n    these changes they are no longer present on the compilation path.\n\n    Removed legacy-android-test from LOCAL_STATIC_JAVA_LIBRARIES\n    because statically including the classes in CameraEffectsTests\n    results in duplicate classes which leads to build time and compile\n    time issues.\n\n* media/tests/MediaFrameworkTest/Android.mk\n    Added \u0027android.test.base\u0027 to LOCAL_JAVA_LIBRARIES because\n    mediaframeworktest\u0027s source depends on its classes and because of\n    these changes they are no longer present on the compilation path.\n\n    Removed legacy-android-test from LOCAL_STATIC_JAVA_LIBRARIES\n    because statically including the classes in mediaframeworktest\n    results in duplicate classes which leads to build time and compile\n    time issues.\n\n* nfc-extras/tests/Android.mk\n    Removed legacy-android-test from LOCAL_STATIC_JAVA_LIBRARIES\n    because statically including the classes in NfcExtrasTests results\n    in duplicate classes which leads to build time and compile time\n    issues.\n\n* packages/CarrierDefaultApp/tests/unit/Android.mk\n    Added \u0027android.test.base\u0027 to LOCAL_JAVA_LIBRARIES because\n    CarrierDefaultAppUnitTests\u0027s source depends on its classes and\n    because of these changes they are no longer present on the\n    compilation path.\n\n    Removed legacy-android-test from LOCAL_STATIC_JAVA_LIBRARIES\n    because statically including the classes in\n    CarrierDefaultAppUnitTests results in duplicate classes which leads\n    to build time and compile time issues.\n\n* packages/ExtServices/tests/Android.mk\n    Added \u0027android.test.base\u0027 to LOCAL_JAVA_LIBRARIES because\n    ExtServicesUnitTests\u0027s source depends on its classes and because of\n    these changes they are no longer present on the compilation path.\n\n    Removed legacy-android-test from LOCAL_STATIC_JAVA_LIBRARIES\n    because statically including the classes in ExtServicesUnitTests\n    results in duplicate classes which leads to build time and compile\n    time issues.\n\n* packages/MtpDocumentsProvider/tests/Android.mk\n    Added \u0027android.test.base\u0027 and \u0027android.test.mock\u0027 to\n    LOCAL_JAVA_LIBRARIES because MtpDocumentsProviderTests\u0027s source\n    depends on their classes and because of these changes they are no\n    longer present on the compilation path.\n\n    Removed legacy-android-test from LOCAL_STATIC_JAVA_LIBRARIES\n    because statically including the classes in\n    MtpDocumentsProviderTests results in duplicate classes which leads\n    to build time and compile time issues.\n\n* packages/SettingsLib/tests/integ/Android.mk\n    Added \u0027android.test.base\u0027 to LOCAL_JAVA_LIBRARIES because\n    SettingsLibTests\u0027s source depends on its classes and because of\n    these changes they are no longer present on the compilation path.\n\n    Removed legacy-android-test from LOCAL_STATIC_JAVA_LIBRARIES\n    because statically including the classes in SettingsLibTests\n    results in duplicate classes which leads to build time and compile\n    time issues.\n\n* packages/SettingsProvider/Android.mk\n    Removed legacy-android-test from LOCAL_STATIC_JAVA_LIBRARIES\n    because statically including the classes in SettingsProvider\n    results in duplicate classes which leads to build time and compile\n    time issues.\n\n* packages/SettingsProvider/AndroidManifest.xml\n    Add uses-library for android.test.runner because otherwise this\n    change would change the set of files available to SettingsProvider\n    at runtime.\n\n* packages/Shell/tests/Android.mk\n    Added \u0027android.test.base\u0027 and \u0027android.test.mock\u0027 to\n    LOCAL_JAVA_LIBRARIES because ShellTests\u0027s source depends on their\n    classes and because of these changes they are no longer present on\n    the compilation path.\n\n    Removed legacy-android-test from LOCAL_STATIC_JAVA_LIBRARIES\n    because statically including the classes in ShellTests results in\n    duplicate classes which leads to build time and compile time\n    issues.\n\n* packages/SystemUI/shared/tests/Android.mk\n    Removed legacy-android-test from LOCAL_STATIC_JAVA_LIBRARIES\n    because statically including the classes in SystemUISharedLibTests\n    results in duplicate classes which leads to build time and compile\n    time issues.\n\n* packages/SystemUI/tests/Android.mk\n    Removed legacy-android-test from LOCAL_STATIC_JAVA_LIBRARIES\n    because statically including the classes in SystemUITests results\n    in duplicate classes which leads to build time and compile time\n    issues.\n\n    Added \u0027android.test.base\u0027 to LOCAL_JAVA_LIBRARIES because\n    SystemUITests\u0027s source depends on its classes and because of these\n    changes they are no longer present on the compilation path.\n\n* packages/WAPPushManager/tests/Android.mk\n    Added \u0027android.test.base\u0027 to LOCAL_JAVA_LIBRARIES because\n    WAPPushManagerTests\u0027s source depends on its classes and because of\n    these changes they are no longer present on the compilation path.\n\n    Removed legacy-android-test from LOCAL_STATIC_JAVA_LIBRARIES\n    because statically including the classes in WAPPushManagerTests\n    results in duplicate classes which leads to build time and compile\n    time issues.\n\n* sax/tests/saxtests/Android.mk\n    Added \u0027android.test.base\u0027 to LOCAL_JAVA_LIBRARIES because\n    FrameworksSaxTests\u0027s source depends on its classes and because of\n    these changes they are no longer present on the compilation path.\n\n    Removed legacy-android-test from LOCAL_STATIC_JAVA_LIBRARIES\n    because statically including the classes in FrameworksSaxTests\n    results in duplicate classes which leads to build time and compile\n    time issues.\n\n* tests/BrowserPowerTest/Android.mk\n    Added \u0027android.test.base\u0027 to LOCAL_JAVA_LIBRARIES because\n    BrowserPowerTests\u0027s source depends on its classes and because of\n    these changes they are no longer present on the compilation path.\n\n    Removed legacy-android-test from LOCAL_STATIC_JAVA_LIBRARIES\n    because statically including the classes in BrowserPowerTests\n    results in duplicate classes which leads to build time and compile\n    time issues.\n\n* tests/CanvasCompare/Android.mk\n    Added \u0027android.test.base\u0027 to LOCAL_JAVA_LIBRARIES because\n    CanvasCompare\u0027s source depends on its classes and because of these\n    changes they are no longer present on the compilation path.\n\n    Removed legacy-android-test from LOCAL_STATIC_JAVA_LIBRARIES\n    because statically including the classes in CanvasCompare results\n    in duplicate classes which leads to build time and compile time\n    issues.\n\n* tests/CoreTests/android/Android.mk\n    Added \u0027android.test.base\u0027 to LOCAL_JAVA_LIBRARIES because\n    CoreTests\u0027s source depends on its classes and because of these\n    changes they are no longer present on the compilation path.\n\n    Removed legacy-android-test from LOCAL_STATIC_JAVA_LIBRARIES\n    because statically including the classes in CoreTests results in\n    duplicate classes which leads to build time and compile time\n    issues.\n\n* tests/DataIdleTest/Android.mk\n    Added \u0027android.test.base\u0027 to LOCAL_JAVA_LIBRARIES because\n    DataIdleTest\u0027s source depends on its classes and because of these\n    changes they are no longer present on the compilation path.\n\n    Removed legacy-android-test from LOCAL_STATIC_JAVA_LIBRARIES\n    because statically including the classes in DataIdleTest results in\n    duplicate classes which leads to build time and compile time\n    issues.\n\n* tests/FrameworkPerf/Android.mk\n    Added \u0027android.test.base\u0027 to LOCAL_JAVA_LIBRARIES because\n    FrameworkPerf\u0027s source depends on its classes and because of these\n    changes they are no longer present on the compilation path.\n\n    Removed legacy-android-test from LOCAL_STATIC_JAVA_LIBRARIES\n    because statically including the classes in FrameworkPerf results\n    in duplicate classes which leads to build time and compile time\n    issues.\n\n* tests/HierarchyViewerTest/Android.mk\n    Added \u0027android.test.base\u0027 to LOCAL_JAVA_LIBRARIES because\n    HierarchyViewerTest\u0027s source depends on its classes and because of\n    these changes they are no longer present on the compilation path.\n\n    Removed legacy-android-test from LOCAL_STATIC_JAVA_LIBRARIES\n    because statically including the classes in HierarchyViewerTest\n    results in duplicate classes which leads to build time and compile\n    time issues.\n\n* tests/ImfTest/tests/Android.mk\n    Added \u0027android.test.base\u0027 to LOCAL_JAVA_LIBRARIES because\n    ImfTestTests\u0027s source depends on its classes and because of these\n    changes they are no longer present on the compilation path.\n\n    Removed legacy-android-test from LOCAL_STATIC_JAVA_LIBRARIES\n    because statically including the classes in ImfTestTests results in\n    duplicate classes which leads to build time and compile time\n    issues.\n\n* tests/Internal/Android.mk\n    Removed legacy-android-test from LOCAL_STATIC_JAVA_LIBRARIES\n    because statically including the classes in InternalTests results\n    in duplicate classes which leads to build time and compile time\n    issues.\n\n* tests/MemoryUsage/Android.mk\n    Added \u0027android.test.base\u0027 to LOCAL_JAVA_LIBRARIES because\n    MemoryUsage\u0027s source depends on its classes and because of these\n    changes they are no longer present on the compilation path.\n\n    Removed legacy-android-test from LOCAL_STATIC_JAVA_LIBRARIES\n    because statically including the classes in MemoryUsage results in\n    duplicate classes which leads to build time and compile time\n    issues.\n\n* tests/NetworkSecurityConfigTest/Android.mk\n    Added \u0027android.test.base\u0027 to LOCAL_JAVA_LIBRARIES because\n    NetworkSecurityConfigTests\u0027s source depends on its classes and\n    because of these changes they are no longer present on the\n    compilation path.\n\n    Removed legacy-android-test from LOCAL_STATIC_JAVA_LIBRARIES\n    because statically including the classes in\n    NetworkSecurityConfigTests results in duplicate classes which leads\n    to build time and compile time issues.\n\n* tests/SoundTriggerTests/Android.mk\n    Removed legacy-android-test from LOCAL_STATIC_JAVA_LIBRARIES\n    because statically including the classes in SoundTriggerTests\n    results in duplicate classes which leads to build time and compile\n    time issues.\n\n    Added \u0027android.test.base\u0027 to LOCAL_JAVA_LIBRARIES because\n    SoundTriggerTests\u0027s source depends on its classes and because of\n    these changes they are no longer present on the compilation path.\n\n* tests/SurfaceComposition/Android.mk\n    Removed legacy-android-test from LOCAL_STATIC_JAVA_LIBRARIES\n    because statically including the classes in SurfaceComposition\n    results in duplicate classes which leads to build time and compile\n    time issues.\n\n    Added \u0027android.test.runner.stubs\u0027 to LOCAL_JAVA_LIBRARIES because\n    SurfaceComposition\u0027s source depends on its classes and because of\n    these changes they are no longer present on the compilation path.\n\n* tests/TtsTests/Android.mk\n    Removed legacy-android-test from LOCAL_STATIC_JAVA_LIBRARIES\n    because statically including the classes in TtsTests results in\n    duplicate classes which leads to build time and compile time\n    issues.\n\n    Added \u0027android.test.base\u0027 to LOCAL_JAVA_LIBRARIES because\n    TtsTests\u0027s source depends on its classes and because of these\n    changes they are no longer present on the compilation path.\n\n* tests/WindowAnimationJank/Android.mk\n    Removed legacy-android-test from LOCAL_STATIC_JAVA_LIBRARIES\n    because statically including the classes in WindowAnimationJank\n    results in duplicate classes which leads to build time and compile\n    time issues.\n\n* tests/permission/Android.mk\n    Added \u0027android.test.base\u0027 to LOCAL_JAVA_LIBRARIES because\n    FrameworkPermissionTests\u0027s source depends on its classes and\n    because of these changes they are no longer present on the\n    compilation path.\n\n    Removed legacy-android-test from LOCAL_STATIC_JAVA_LIBRARIES\n    because statically including the classes in\n    FrameworkPermissionTests results in duplicate classes which leads\n    to build time and compile time issues.\n\n* tests/testables/tests/Android.mk\n    Removed legacy-android-test from LOCAL_STATIC_JAVA_LIBRARIES\n    because statically including the classes in TestablesTests results\n    in duplicate classes which leads to build time and compile time\n    issues.\n\n    Added \u0027android.test.base\u0027 and \u0027android.test.mock\u0027 to\n    LOCAL_JAVA_LIBRARIES because TestablesTests\u0027s source depends on\n    their classes and because of these changes they are no longer\n    present on the compilation path.\n\nBug: 30188076\nTest: make checkbuild\nChange-Id: Iacfc939c97415314366ed61c5f3b7aa1a40f0ec9\n"
    },
    {
      "commit": "f0206bd9eb9de21ea50a123c11f0080c7d74b65d",
      "tree": "e1cb5d45053fe8f8019838ccc7df9aa704dfe3c3",
      "parents": [
        "f62c26562f150109d9498488ffb9798e4e2a84d8"
      ],
      "author": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Sat Dec 02 15:28:41 2017 -0800"
      },
      "committer": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Tue Dec 05 06:10:40 2017 +0000"
      },
      "message": "Add more test configuration to StaticLayoutPerfTest\n\nThis CL adds more perf test case for StaticLayout.\n\nThe \"testCreate\" and \"testCreateRandom\" is renamed to\n\"testCreate_FixedText_NoStyle_Greedy_NoHyphenation\" and\n\"testCreate_RandomText_NoStyled_Greedy_NoHyphenation\".\n\nThe test configuration is now constructed with underscores.\n\n- FixedText/RandomText\n  The text contents to be used for performing StaticLayout generation.\n  FixedText means using the same text.\n  RandmText means generating random text.\n  This configuration is mainly seeing how LayoutCache performs well.\n\n- NoStyle/Styled\n  The text styles to be used for performing StaticLayout generation.\n  NoStyle means using not styled text. (CharBuffer is used).\n  Styled means using randomly styled text.\n\n- Greedy/Balanced\n  The line breaking strategy to be used performing StaticLayout generation.\n  Greedy means using Greedy algorithm.\n  Balanced means that the line length is balanced.\n\n- Hyphenation/NoHyphenation\n  The word can be hyphenated for performing StaticLayout generation.\n  Hyphenation means enable hyphenation.\n  NoHyphenation means disable hyphenation.\n\nThis CL doesn\u0027t add all combination since some configuration doesn\u0027t\naffect others. For example, Styled/NoStyled and\nGreedy/Balanced/Hyphenation/NoHyphenation are independent.\n\nBug: N/A\nTest: N/A\nChange-Id: Ibd05a6c40b314e2db6a04459a9bfb32334d6e0c7\n"
    },
    {
      "commit": "ceb5dd0faf9609ab0b1da3d436a1f55d85d85915",
      "tree": "f188e4281d9c317e90d923ba824aee9d5e213ae9",
      "parents": [
        "9fdbc957c6d7b464fccfcfcd01a4771172f18c0e"
      ],
      "author": {
        "name": "Greg Hackmann",
        "email": "ghackmann@google.com",
        "time": "Tue Nov 28 18:35:46 2017 -0800"
      },
      "committer": {
        "name": "Greg Hackmann",
        "email": "ghackmann@google.com",
        "time": "Thu Nov 30 08:34:21 2017 -0800"
      },
      "message": "PaintMeasureTextTest: only pause/resume not_cached benchmarks\n\nPausing and resuming the benchmark timer isn\u0027t needed unless we plan to\nflush the text layout cache.  The cached benchmark runs are so fast on\nhigh-end devices, the overhead of these extra calls can be significant\ncompared to the actual code being measured.\n\nTest: run PaintMeasureTextTest on sailfish\n\nBug: 69634871\nChange-Id: If8246154e50451d82ac96e026036aa4a42eaed8d\nSigned-off-by: Greg Hackmann \u003cghackmann@google.com\u003e\n"
    },
    {
      "commit": "a81b8c0932fa6a2198558b164a1aebdad0fcecc3",
      "tree": "5f91be321f5c0d673f32948c725c1054120d0ee3",
      "parents": [
        "2a64dbce69cbea3a79c153596faa1bdd1de5f6eb"
      ],
      "author": {
        "name": "Fyodor Kupolov",
        "email": "fkupolov@google.com",
        "time": "Mon Nov 13 15:51:03 2017 -0800"
      },
      "committer": {
        "name": "Fyodor Kupolov",
        "email": "fkupolov@google.com",
        "time": "Tue Nov 14 14:31:32 2017 -0800"
      },
      "message": "Provide remote stack trace information\n\nThe stack is truncated up to 5 lines at parcel time. When unparceling,\na separate RemoteException will be created and set as a cause of the\nexception being thrown.\n\nPerformance results(in nanoseconds):\ntimeWriteExceptionWithStackTraceParceling  4168\ntimeWriteException                         2201\ntimeReadException                         15878\ntimeReadExceptionWithStackTraceParceling  23805\n\nTest: manual + ParcelPerfTest\nBug: 36561158\nChange-Id: I18b64a6c39c24ab067115874ddb5bd71f556a601\n"
    },
    {
      "commit": "4d15475cf3412cfb675c5b4d39650af6a5b9ee00",
      "tree": "06da625fe521dd49cf3b7023faaa2fbdff591ff8",
      "parents": [
        "cb3b87db37b2bc7ecaa6044c06999f8d33d6ed28",
        "bfd0498b866a8b47bb4959dc4bbd8f149a1489cd"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Oct 27 00:59:19 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Oct 27 00:59:19 2017 +0000"
      },
      "message": "Merge \"AccountManager#getAccounts bench\""
    },
    {
      "commit": "bfd0498b866a8b47bb4959dc4bbd8f149a1489cd",
      "tree": "1c40804103e93803e09f940580e13e05c82afa80",
      "parents": [
        "aaa64d0ac62755c2d60f99b3be9ab5e441596bbc"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Oct 23 13:11:04 2017 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Oct 23 13:11:11 2017 -0700"
      },
      "message": "AccountManager#getAccounts bench\n\nTest: this\nBug: 68150110\n\nChange-Id: Ic90817d6f1f0ed705b1894a2aac302ce302672a6\n"
    },
    {
      "commit": "714abd365ca764c4da9fa3302064006081da8a6a",
      "tree": "8716059fa044b1a07f685995271e9551f8397ab6",
      "parents": [
        "97868f233f2bf1ad34360855f3a79bc7242e7cfc"
      ],
      "author": {
        "name": "Kurt Nelson",
        "email": "kurtn@google.com",
        "time": "Tue Oct 17 15:34:07 2017 -0700"
      },
      "committer": {
        "name": "Kurt Nelson",
        "email": "kurtn@google.com",
        "time": "Fri Oct 20 22:01:46 2017 +0000"
      },
      "message": "Perftests for StrictMode\n\nAdd perf tests for:\n\n* Disk read thread policy violation\n* URI permission VM policy violation\n* Disk read across binder thread policy violation\n\nlunch walleye-userdebug\n\ntimeThreadViolation_mean\u003d293735\ntimeThreadViolation_median\u003d290845\ntimeThreadViolation_min\u003d285718\ntimeThreadViolation_standardDeviation\u003d8368\n\ntimeCrossBinderThreadViolationNoStrictMode_mean\u003d1327809\ntimeCrossBinderThreadViolationNoStrictMode_median\u003d1317313\ntimeCrossBinderThreadViolationNoStrictMode_min\u003d1260868\ntimeCrossBinderThreadViolationNoStrictMode_standardDeviation\u003d58085\n\ntimeCrossBinderThreadViolation_mean\u003d2754359\ntimeCrossBinderThreadViolation_median\u003d3170103\ntimeCrossBinderThreadViolation_min\u003d1773987\ntimeCrossBinderThreadViolation_standardDeviation\u003d704586\n\ntimeVmViolationNoStrictMode_mean\u003d10764979\ntimeVmViolationNoStrictMode_median\u003d9762317\ntimeVmViolationNoStrictMode_min\u003d5187496\ntimeVmViolationNoStrictMode_standardDeviation\u003d4099275\n\ntimeVmViolation_mean\u003d20003781\ntimeVmViolation_median\u003d21730129\ntimeVmViolation_min\u003d14321899\ntimeVmViolation_standardDeviation\u003d3837213\n\ntimeThreadViolationNoStrictMode_mean\u003d237276\ntimeThreadViolationNoStrictMode_median\u003d241457\ntimeThreadViolationNoStrictMode_min\u003d227193\ntimeThreadViolationNoStrictMode_standardDeviation\u003d8892\n\nBug: 65966451\nTest: adb shell am instrument -w -e class android.os.StrictModeTest \\\n    com.android.perftests.core/android.support.test.runner.AndroidJUnitRunner\n\nChange-Id: I97773e1060e21cf78649454973426985b33d3350\n"
    },
    {
      "commit": "026d82e07c1649c064a6e039711a97e6646d51c1",
      "tree": "8e5ff9b2e310ea71559ea70a6d5e974da006f93b",
      "parents": [
        "97bfdaa8e18fe2dea4d5e0549a0b82dffbc2fcc5"
      ],
      "author": {
        "name": "Fyodor Kupolov",
        "email": "fkupolov@google.com",
        "time": "Mon Oct 16 18:42:52 2017 -0700"
      },
      "committer": {
        "name": "Fyodor Kupolov",
        "email": "fkupolov@google.com",
        "time": "Tue Oct 17 17:38:57 2017 -0700"
      },
      "message": "Added perf test to measure bytes written\n\nBug: 64262688\nTest: SQLiteDatabaseIoPerfTest\nChange-Id: I00e14254cec0849cd054d91b5ae70684ce753902\n"
    },
    {
      "commit": "d41e4f0c340ba04215b5f032dd825f518e322607",
      "tree": "67b5883596c7207271803b0bb35901abeaf8efe9",
      "parents": [
        "0b57d2f5616f051cd43d96de5382631d2d46aea4"
      ],
      "author": {
        "name": "Fyodor Kupolov",
        "email": "fkupolov@google.com",
        "time": "Fri Oct 13 18:12:23 2017 -0700"
      },
      "committer": {
        "name": "Fyodor Kupolov",
        "email": "fkupolov@google.com",
        "time": "Mon Oct 16 13:10:23 2017 -0700"
      },
      "message": "Added APCT test for SQLiteDatabase\n\nIt measures typical CRUD operations and loading rows into the Cursor\n\nTest: SQLiteDatabasePerfTest\nBug: 64262688\nChange-Id: Id25f8fcea57a19a8c963c5458591262f4cabbb84\n"
    },
    {
      "commit": "1f84ea9f2d9b5df63460e88216f618ae5d1a8e1b",
      "tree": "b178c7760b123d73a4f452994cb36fd0ec013868",
      "parents": [
        "819206582e756e02f412f25ad8c133db6937a8db"
      ],
      "author": {
        "name": "Siyamed Sinir",
        "email": "siyamed@google.com",
        "time": "Tue Oct 10 13:20:47 2017 -0700"
      },
      "committer": {
        "name": "Siyamed Sinir",
        "email": "siyamed@google.com",
        "time": "Tue Oct 10 14:37:51 2017 -0700"
      },
      "message": "Update perf test labels for dashboard\n\nPerf dashboard cannot match test labels with empty space. This CL\nremoves -\u003cempty space\u003echars- from the test labels.\n\nTest: None\nBug: 67112217\nChange-Id: Id4f3a3b8340df2b691e5fe3ae4b10ddeae384b0a"
    },
    {
      "commit": "f8ef7ac694d3f216761fecf930a14c0d763ea032",
      "tree": "03f0c9aa216e2d02eea3d6f125df52cd8aa156c4",
      "parents": [
        "1334afec1f875209344a359c2836302b93a36831",
        "d0a5206dd8130611567acab92206eeecc222a65e"
      ],
      "author": {
        "name": "Siyamed Sinir",
        "email": "siyamed@google.com",
        "time": "Mon Oct 09 20:50:53 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Oct 09 20:50:53 2017 +0000"
      },
      "message": "Merge changes from topic \"text_perf_sep_2017\"\n\n* changes:\n  Reduce Text layout performance test combinations\n  Performance test for text layout/draw\n"
    },
    {
      "commit": "3de2b2e14e3af98cbaf0951ef5c786885d9b9d68",
      "tree": "dccdc1c92c6465ad3258b352cc0c0d5121ce8491",
      "parents": [
        "3aa4caab6042f3270fb7b06ecdd709eb7a68e4c6"
      ],
      "author": {
        "name": "Fyodor Kupolov",
        "email": "fkupolov@google.com",
        "time": "Thu Oct 05 12:46:21 2017 -0700"
      },
      "committer": {
        "name": "Fyodor Kupolov",
        "email": "fkupolov@google.com",
        "time": "Thu Oct 05 14:26:00 2017 -0700"
      },
      "message": "Wait for broadcast queue to become idle between test runs\n\nTest: bit MultiUserPerfTests:android.multiuser.UserLifecycleTests\nBug: 64165549\nChange-Id: I593885d737fab1ef717a166f6219129809ccfd99\n"
    },
    {
      "commit": "d0a5206dd8130611567acab92206eeecc222a65e",
      "tree": "29073e61606b1d0938fea3391fcd15ae9bcc2c47",
      "parents": [
        "af479b8c9743a1536d46f0985294c8bc0823a338"
      ],
      "author": {
        "name": "Siyamed Sinir",
        "email": "siyamed@google.com",
        "time": "Mon Oct 02 15:26:37 2017 -0700"
      },
      "committer": {
        "name": "Siyamed Sinir",
        "email": "siyamed@google.com",
        "time": "Mon Oct 02 16:55:04 2017 -0700"
      },
      "message": "Reduce Text layout performance test combinations\n\nWe have measured and identified important combinations for layout\nperformance tests. In order to reduce the number of tests logged, this\nCL removed some of the parameterized tests configurations.\n\nTest: bit CorePerfTests:android.text.PaintMeasureDrawPerfTest\nTest: bit CorePerfTests:android.text.BoringLayoutIsBoringPerfTest\nTest: bit CorePerfTests:android.text.BoringLayoutCreateDrawPerfTest\nTest: bit CorePerfTests:android.text.StaticLayoutCreateDrawPerfTest\nTest: bit CorePerfTests:android.text.TextViewSetTextMeasurePerfTest\n\nBug: 67112217\nChange-Id: I92a08f679a185595a519465450881a814f2b4feb"
    },
    {
      "commit": "af479b8c9743a1536d46f0985294c8bc0823a338",
      "tree": "44092c732f00d66fdcc1c0313a0eb870cb28ef1e",
      "parents": [
        "4c2e027d53e8c6d430c7d977e0e162f1a42486ee"
      ],
      "author": {
        "name": "Siyamed Sinir",
        "email": "siyamed@google.com",
        "time": "Tue Sep 26 22:52:07 2017 -0700"
      },
      "committer": {
        "name": "Siyamed Sinir",
        "email": "siyamed@google.com",
        "time": "Mon Oct 02 15:15:11 2017 -0700"
      },
      "message": "Performance test for text layout/draw\n\nTest: bit CorePerfTests:android.text.PaintMeasureDrawPerfTest\nTest: bit CorePerfTests:android.text.BoringLayoutIsBoringPerfTest\nTest: bit CorePerfTests:android.text.BoringLayoutCreateDrawPerfTest\nTest: bit CorePerfTests:android.text.StaticLayoutCreateDrawPerfTest\nTest: bit CorePerfTests:android.text.TextViewSetTextMeasurePerfTest\n\nBug: 67112217\nChange-Id: Ibb55431fb82a4fccba39c2bc250c83560dda0259"
    },
    {
      "commit": "5f6eda577d032d7419d9b1e3e53ca8745f46a04d",
      "tree": "bd7ba4d8317ac4f8b5aff9654613fda925ab8228",
      "parents": [
        "7f5fc650ae72fa375c91b9ce7452a5b3ff0f5216"
      ],
      "author": {
        "name": "Siyamed Sinir",
        "email": "siyamed@google.com",
        "time": "Tue Sep 26 22:57:31 2017 -0700"
      },
      "committer": {
        "name": "Siyamed Sinir",
        "email": "siyamed@google.com",
        "time": "Tue Sep 26 22:57:31 2017 -0700"
      },
      "message": "Refactor imports for text performance tests\n\nTest: None\nChange-Id: I6c60cd2d3c634750db12ab17236867f0660fd828\n"
    },
    {
      "commit": "749e57e5c333289814dcdf8efb2c82b00585d838",
      "tree": "6a88aa9b65b79d7e60579db8b5b77344cf66e1bb",
      "parents": [
        "add1dd4b0def821280aa24b5725e39b3a64917cc"
      ],
      "author": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Tue Aug 29 15:00:05 2017 -0700"
      },
      "committer": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Wed Aug 30 14:57:50 2017 -0700"
      },
      "message": "Implement LineBreaker callback and fix indent repeating.\n\nThe last indent should be repeated, so we need to pass an int array\ninstead of null even if the indent offset is out of array length.\n\nBug: 65024629\nTest: bit CtsTextTestCases:android.text.cts.StaticLayoutTest\nTest: bit CtsTextTestCases:android.text.cts.DynamicLayoutTest\nTest: bit CtsWidgetTestCases:android.widget.cts.TextViewTest\nBug: 65024629\n\nChange-Id: Ic1274d797db27ae1921135a27bab55e475369710\n"
    },
    {
      "commit": "938e884a1fcc385dba5a41475aad76d8b7189609",
      "tree": "82b62e00c04d34ec9b9118da40f78c6c666a4fee",
      "parents": [
        "3a58025684a8c379d64bd9968f6549bb11efe753"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Aug 24 13:41:59 2017 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Aug 24 16:15:58 2017 -0700"
      },
      "message": "Avoid setting high contrast in every view draw\n\nTest: high contrast text still works\nChange-Id: I6674d1aca8dddf7eb9725a5346aed12ef1dbc195\n"
    },
    {
      "commit": "737dfead64dd24a431beff85b685594dc0efb49a",
      "tree": "544614313b240caf09ed181859b57a6027f5b1fe",
      "parents": [
        "980d88d9a70451c8caec882e4488e38c90427c1f"
      ],
      "author": {
        "name": "Roozbeh Pournader",
        "email": "roozbeh@google.com",
        "time": "Thu Aug 10 11:32:24 2017 -0700"
      },
      "committer": {
        "name": "Roozbeh Pournader",
        "email": "roozbeh@google.com",
        "time": "Thu Aug 17 12:10:31 2017 -0700"
      },
      "message": "Support extra linespacing based on fallback fonts\n\n* Increase the ascent and descent of individual lines in StaticLayout\n  as needed, if any fallback fonts that end up getting used call for\n  it. For backward compatibility, this is hidden behind a builder\n  flag.\n* Document in Paint.java that the returned parameters are only for\n  the default font, and a layout may need more space based on\n  fallbacks used.\n\nAlso update for changes in minikin API:\n\n* MinikinFont now requires a method for getting vertical extents\n  (ascent, descent, and line gap).\n* minikin API now allows asking for vertical extents of laid out\n  text.\n* minikin API\u0027s LineBreaker now returns ascents and descents for each\n  line.\n\nFinally, added performances test for creating a StaticLayout.\nFollwing are the numbers on a marlin with a stable clock before and\nafter this CL.\n\nFor fixed text almost always hitting the cache:\nBefore: mean\u003d260684 median\u003d260188 min\u003d258532 standardDeviation\u003d1897\nAfter:  mean\u003d262432 median\u003d261509 min\u003d260429 standardDeviation\u003d2185\n\nFor random text almost never hitting the cache:\nBefore: mean\u003d5971827 median\u003d5991126 min\u003d5886871 standardDeviation\u003d83724\nAfter:  mean\u003d6337093 median\u003d6317010 min\u003d6311222 standardDeviation\u003d40213\n\nBug: 28963299\nBug: 29063863\nBug: 32057121\nBug: 37756858\nTest: bit FrameworksCoreTests:android.text.\nTest: bit CtsTextTestCases:*\nChange-Id: I482a98ff8f472e8bab4f0ba9d1d7b368858038ff\n"
    },
    {
      "commit": "917748ef5016c1f54875c35f999ba9bcda12557d",
      "tree": "9c8233e2997e30fa0917b3f15d2aa00f8f3014a4",
      "parents": [
        "a2a58679744e8b9470ec28d8ff64b281bf2d8b21"
      ],
      "author": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Thu Aug 03 17:42:28 2017 -0700"
      },
      "committer": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Fri Aug 04 17:21:06 2017 +0000"
      },
      "message": "Improve TextView.onMeasure() for multiline text.\n\nPreviously, measures all paragraph for deciding view width.\nHowever, in case AT_MOST measurment, we can stop calculating measure if\nthe measured paragraph already exceeds the upper limit.\n\nBug: 64389125\nTest: bit CtsWidgetTestCases:*\nTest: CorePerfTest. Here is a result before and after this patch.\n\nBefore:\nINSTRUMENTATION_STATUS: measure_AtMost_median\u003d50332114\nINSTRUMENTATION_STATUS: measure_Exactly_median\u003d28276317\nINSTRUMENTATION_STATUS: measure_Unspecified_median\u003d50193036\n\nAfter:\nINSTRUMENTATION_STATUS: measure_AtMost_median\u003d28475187\nINSTRUMENTATION_STATUS: measure_Exactly_median\u003d26944710\nINSTRUMENTATION_STATUS: measure_Unspecified_median\u003d50880088\n\nChange-Id: I2a39eb39817a8f845c4fa2e174a905a2d057096e\n"
    },
    {
      "commit": "2d0278b09f89a13a0ec4be91fdde2e7a682c1197",
      "tree": "b0dce49cd47117fc42710f7a1aa86ffe893719ec",
      "parents": [
        "363c238b5edf58029d46d3730ac78effe7f2b268"
      ],
      "author": {
        "name": "Sudheer Shanka",
        "email": "sudheersai@google.com",
        "time": "Wed Jul 12 18:12:31 2017 -0700"
      },
      "committer": {
        "name": "Sudheer Shanka",
        "email": "sudheersai@google.com",
        "time": "Wed Jul 12 18:15:02 2017 -0700"
      },
      "message": "Update user perf tests to report only mean.\n\nTest: bit MultiUserPerfTests:android.multiuser.UserLifecycleTests\nChange-Id: Ib70123217c54b469844ce65ec52b7e7ed5b5998d\n"
    },
    {
      "commit": "a319f8b35d7935cc12f83cc811fd685e7db22e7a",
      "tree": "0d87b9593200e43f0b8ec679e3dcf0572aefc1bf",
      "parents": [
        "1c005d1e80ae4ccd933b6ad6cf791d5dac4dd9d2"
      ],
      "author": {
        "name": "Sudheer Shanka",
        "email": "sudheersai@google.com",
        "time": "Tue Jul 11 15:28:48 2017 -0700"
      },
      "committer": {
        "name": "Sudheer Shanka",
        "email": "sudheersai@google.com",
        "time": "Tue Jul 11 15:28:48 2017 -0700"
      },
      "message": "Update test names in UserLifecycleTest.\n\nTest: bit MultiUserPerfTests:android.multiuser.UserLifecycleTest\nChange-Id: I49908f8da023a419b79124cc2f366f6d5e8a066d\n"
    },
    {
      "commit": "d49d82b4c10d69bab7483f5026bf80df38e385b9",
      "tree": "aebdd915353f65ae3fefd2b37b03416f2afed796",
      "parents": [
        "634a00269d21d5f42203b451785f9d042ced1c4f",
        "5f76e1fa85f5c189d57860b0b5b02cace139204b"
      ],
      "author": {
        "name": "Sudheer Shanka",
        "email": "sudheersai@google.com",
        "time": "Thu Jun 29 23:27:47 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 29 23:27:47 2017 +0000"
      },
      "message": "Merge \"Fix UserLifecycleTest.\""
    },
    {
      "commit": "5f76e1fa85f5c189d57860b0b5b02cace139204b",
      "tree": "37e7e46d1c00db830bf92b3ee3dfa11414f95e11",
      "parents": [
        "60be57d87fc124f241ce6e09e55071c04c32bcc9"
      ],
      "author": {
        "name": "Sudheer Shanka",
        "email": "sudheersai@google.com",
        "time": "Sun Jun 25 19:40:53 2017 -0700"
      },
      "committer": {
        "name": "Sudheer Shanka",
        "email": "sudheersai@google.com",
        "time": "Thu Jun 29 12:08:48 2017 -0700"
      },
      "message": "Fix UserLifecycleTest.\n\nBug: 62058707\nTest: bit MultiUserPerfTests:android.multiuser.UserLifecycleTest\nChange-Id: I8667190f001f609040a977a19aa956d7064ccc18\n"
    },
    {
      "commit": "b148b6c3c8547143946726a4f6143106406f2fd2",
      "tree": "c5138c228945e091a2792fbe2b03e9a8190dfc1b",
      "parents": [
        "7d2d194ec126edf882f34ad3cf0dc8f0e95d3a82"
      ],
      "author": {
        "name": "Makoto Onuki",
        "email": "omakoto@google.com",
        "time": "Tue Jun 27 13:38:38 2017 -0700"
      },
      "committer": {
        "name": "Makoto Onuki",
        "email": "omakoto@google.com",
        "time": "Wed Jun 28 09:03:09 2017 -0700"
      },
      "message": "Parcel: Use @CriticalNative when possible.\n\n- Change some methods from FastNative to CritcialNative\n- Change nativeGetBlobAshmemSize to CritcalNative\n\n- ParcelPerfTest.java (CorePerfTests)\nbullhead-userdebug + prep_buller.sh, mean(ns), changed methods only\n-- After\ntimeGetDataCapacity_mean    166 +39.16%\ntimeGetDataPosition_mean    169 +53.25%\ntimeReadByte_mean           296 +39.86%\ntimeReadLong_mean           284 +61.97%\ntimeSetDataPosition_mean    173 +34.10%\ntimeGetDataSize_mean        173 +37.57%\ntimeReadInt_mean            284 +57.04%\n\n-- Before\ntimeGetDataCapacity_mean    231\ntimeGetDataPosition_mean    259\ntimeReadByte_mean           414\ntimeReadLong_mean           460\ntimeSetDataPosition_mean    232\ntimeGetDataSize_mean        238\ntimeReadInt_mean            446\n\nBug: 62135986\nTest: bit CtsOsTestCases:android.os.cts.ParcelTest\nChange-Id: I8c7ede25c87017ef2c7a49beaa3ac781c08ea365\n"
    },
    {
      "commit": "716cf42552f91d2cd73324c51762c2e3bd1dca21",
      "tree": "df7a4fa17909a3ebaaee674edcffd789ecf41ff5",
      "parents": [
        "add919b1f5c86d1ea1c34ccf6936fb990d06b37b"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Jun 15 18:27:47 2017 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Jun 16 11:41:21 2017 -0700"
      },
      "message": "Add CursorWindow perf tests\n\nTest: adb install -r $OUT/data/app/CorePerfTests/CorePerfTests.apk \u0026\u0026 adb shell cmd package compile -m speed -f com.android.perftests.core \u0026\u0026 adb shell am instrument -w -e class android.database.CursorWindowPerfTest com.android.perftests.core/android.support.test.runner.AndroidJUnitRunner\n\nChange-Id: Ie4b128ad8c6bca08be7bf2b4fb0f9db3c7aa3288\n"
    },
    {
      "commit": "1062e533a947ac0ea595886e40f7d6d4936b23c5",
      "tree": "2c9916308092ca1b1a8741fe35955b4fb042c19f",
      "parents": [
        "5292e71f42187e8e2aeaaf6aaddfa4c2e9b2fdd5",
        "ec7c6963bd7c90e3628a24a6e69443e1aef6e8f4"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jun 01 11:44:11 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 01 11:44:17 2017 +0000"
      },
      "message": "Merge \"Increase the timeout and add stopping managed profile test\""
    },
    {
      "commit": "ec7c6963bd7c90e3628a24a6e69443e1aef6e8f4",
      "tree": "8b6f6384f0ff411ea7d8f53bb71a49ff5bc64d87",
      "parents": [
        "614636e9263c0d87c8c738dccf298bd16c5fec75"
      ],
      "author": {
        "name": "Tony Mak",
        "email": "tonymak@google.com",
        "time": "Fri May 26 15:38:09 2017 +0100"
      },
      "committer": {
        "name": "Tony Mak",
        "email": "tonymak@google.com",
        "time": "Wed May 31 16:06:02 2017 +0100"
      },
      "message": "Increase the timeout and add stopping managed profile test\n\nThe dashbaord suggests that multiple tests are always capped at the same\nvalue due to the timeout. To collect the actual metric, set a larger\ntimeout value, 10s for now.\n\nAlso, added a test to stop managed profile user. However, the test is\nstill finishing surprisingly fast because of the empty broadcast queue.\n\n\nBug: 62096041\n\nTest: adb shell am instrument -e class android.multiuser.UserLifecycleTest -w com.android.perftests.multiuser/android.support.test.runner.AndroidJUnitRunner\n\nChange-Id: Ia52db17525d9eb960c9a8c860cdb52c0f487e5f1\n"
    },
    {
      "commit": "c07169eddcfaff80f205eb918d58892b6e55573e",
      "tree": "1c0fb5c7267b447285001ad221300da3945147d3",
      "parents": [
        "61e164d1e1dbce34526f33f6557e86eb869bd213",
        "99c587a9b10f569c3257cdcf4fa35cefbb770dec"
      ],
      "author": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Thu May 18 23:54:24 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu May 18 23:54:24 2017 +0000"
      },
      "message": "Merge \"Introduce early exit path for non resource path.\" into oc-dev am: 01d5b3d2af\nam: 99c587a9b1\n\nChange-Id: I7e09b074f7fff0f273ca2be896439bae0c0c92d0\n"
    },
    {
      "commit": "2ea169a2ecbb7e589fcef78cb1486d007a8fb867",
      "tree": "bc9958b4719c1d704157b8179c0751322ff18836",
      "parents": [
        "9289faa163b2c4ea449cf466cd29dac061647b3e"
      ],
      "author": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Mon May 15 16:25:11 2017 -0700"
      },
      "committer": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Tue May 16 10:14:56 2017 -0700"
      },
      "message": "Introduce early exit path for non resource path.\n\nDeveloper can specify android:fontFamily with three ways, pre-defined\nfont family name, e.g. \"sans-serif\", path to the font file in resource\ndirectory, e.g. \"res/fonts/Roboto-Regular.ttf\", or path to the XML font\nfamily file, e.g. \"res/fonts/Roboto.xml\".\n\nResources.getFont treats font files and XML files but pre-defined family\nname is handled by TextView. Thus, we can early exit if the passed value\nis not likely resource path.\n\nThis improves the inflation performance.\nThe score without this patch:\ngfx-avg-frame-time-50: 6.9\ngfx-avg-frame-time-90: 9.4\ngfx-avg-frame-time-95: 10.4\ngfx-avg-frame-time-99: 16.7\n\nThe score with this patch:\ngfx-avg-frame-time-50: 7.0\ngfx-avg-frame-time-90: 8.9\ngfx-avg-frame-time-95: 9.7\ngfx-avg-frame-time-99: 16.5\n\nMeasured on bullhead-userdebug.\n\nThe APCT perf test improves from\nString FontFamily: 200,086 -\u003e 132,561\nFile FontFamily  : 199,256 -\u003e 161,843\nXML FontFamily   : 203,681 -\u003e 158,553\n\nMeasured on angler-userdebug.\n\nBug: 38232467\nTest: UiBenchmark\nChange-Id: Ia601ae7207ae8c60848c9efdbb9396267a57257c\n"
    },
    {
      "commit": "f3903e9f15ac141299e75aefe956c270959e3c64",
      "tree": "b2097e174e3e616b9735bed7c7825d549e09f2d2",
      "parents": [
        "f6d33e57c28fb8ff7cc58501ae4d1f014adb0603"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri May 12 17:12:54 2017 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri May 12 17:21:15 2017 -0700"
      },
      "message": "Fix regression in getSharedPreferences performance\n\nOnly do access checks if there\u0027s a cache miss. If there\u0027s\na cache hit then those checks have necessarily already\npassed once so we don\u0027t need to repeatedly do them\non every access.\n\nBefore:\ntimeCachedGetSharedPreferences_mean\u003d126084\n\nAfter:\ntimeCachedGetSharedPreferences_mean\u003d362\n\nTest: ran perf test\nChange-Id: I51f0186f8e66c05ea0e5a457930377d1460dea17\n"
    },
    {
      "commit": "52f6ba9a9da61c5839034a9cc25d98d6f460b31c",
      "tree": "6aeca1fd6801c5eb57f45dccbdf62dbf4acba03a",
      "parents": [
        "b70ef8d79b5b01a738f60c233c20c9d3e5861c1a"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Sun Feb 26 08:55:26 2017 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Feb 28 10:44:04 2017 -0800"
      },
      "message": "Move SystemPerfTest out of java.* namespace\n\ndx doesn\u0027t like classes in the java.* namespace unless it is compiling\na core library.  Move SystemPerfTest to\nandroid.perftests.SystemPerfTest.\n\nTest: builds\nChange-Id: I24951d2c9a71d8bb873763d1ccd2f1a67f2be64e\n"
    },
    {
      "commit": "ab18567419d8bd8b2c1bcbad771ebcbfbdab2ae8",
      "tree": "6ea5ec2fef6af9142b9e194f7d16d069e2c56efb",
      "parents": [
        "194f375979c6d92bf8ce54d21a342acccbfc7530"
      ],
      "author": {
        "name": "Andrei Stingaceanu",
        "email": "stg@google.com",
        "time": "Mon Feb 27 14:27:34 2017 +0000"
      },
      "committer": {
        "name": "Andrei Stingaceanu",
        "email": "stg@google.com",
        "time": "Mon Feb 27 15:17:46 2017 +0000"
      },
      "message": "AutoSize TextView (part 11) - fix final APIs\n\n* public attr \"autoSizeText\" becomes \"autoSizeTextType\"\n  (inlined with all other methods and naming)\n* documentation for autoSizetextType \"uniform\" re-worked:\n  \"The TextView scales text size both horizontally and\n  vertically to fit  within the container\"\n* converted comments into Javadoc for\n  TextView#AUTO_SIZE_TEXT_TYPE_NONE and\n  TextView#AUTO_SIZE_TEXT_TYPE_UNIFORM\n* better documented attr \"autoSizePresetSizes\" to specify\n  it is a resource array of dimensions\n* various small fixes in comments\n\nBug: 35755149\nBug: 35763485\nBug: 35764658\nBug: 32221168\nTest: run cts-dev -m CtsWidgetTestCases -t \\\n      android.widget.cts.TextViewTest\n\nChange-Id: I36afd399e005521b6e85922aa9e1e4418bb960e1\n"
    },
    {
      "commit": "fbfead24c2474bffde98c2c6acc5c42691dbb106",
      "tree": "a72d32c9b3bd2e9cf42b0061bce3b83d52bfd718",
      "parents": [
        "570661486882ab2690b62176e83c23a4b2d6a796"
      ],
      "author": {
        "name": "Andrei Stingaceanu",
        "email": "stg@google.com",
        "time": "Thu Feb 09 15:12:45 2017 +0000"
      },
      "committer": {
        "name": "Andrei Stingaceanu",
        "email": "stg@google.com",
        "time": "Thu Feb 09 15:30:02 2017 +0000"
      },
      "message": "AutoSize TextView (part 9) - sanitize APIs naming\n\nThis CL is no-op (cosmetics only)\n* renames autoSizeText type \"xy\" to \"uniform\"\n* renames attribute \"autoSizeStepSizeSet\" to \"autoSizePresetSizes\"\n* renames \"AUTO_SIZE_TEXT_TYPE_XY\" to \"AUTO_SIZE_TEXT_TYPE_UNIFORM\"\n* renames public TextView#getAutoSizeTextPresetSizes() to public\n  TextView#getAutoSizeTextAvailableSizes() because this method can\n  return either preset sizes or computed sizes (via min/max/step)\n\nBug: 34923754\nBug: 32221168\nTest: associated test renames in the same topic\nChange-Id: Ifacccf21ca014b6c0a07322fa02b7859ee53e387\n"
    },
    {
      "commit": "1d0244a846e1a12198a12c685048103a026f902d",
      "tree": "175a00c667a3d7662d1b99219e2b43de7a251116",
      "parents": [
        "3074c5ade869dde5b65676bccdfe0f2a3769f013"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Thu Jan 19 16:47:45 2017 +0000"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Fri Jan 20 09:00:33 2017 +0000"
      },
      "message": "Prepare for removal of legacy-test from default targets\n\nIn preparation for removing junit classes from the Android API\nthe legacy-test target will be removed from the\nTARGET_DEFAULT_JAVA_LIBRARIES. This change adds explicit\ndependencies on junit and/or legacy-android-test to ensure that\nmodules will compile properly once it is removed.\n\nBug: 30188076\nTest: make checkbuild\nChange-Id: If507b641624a2933e722f61e815890fcdf442265\n"
    },
    {
      "commit": "fc29424a3c6c710c0b27d5b59e115fbbb6365192",
      "tree": "3ab254f66848ebfeca62a22415a880fae9741225",
      "parents": [
        "2414e1b051326745e087a88cdfbf1fff8962edd3"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Dec 13 18:10:46 2016 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Dec 15 11:30:08 2016 -0800"
      },
      "message": "CriticalNative for RenderNode and DisplayListCanvas\n\nBug: 33460152\nTest:  adb shell am instrument -w -e class android.view.ViewShowHidePerfTest com.android.perftests.core/android.support.test.runner.AndroidJUnitRunner\n\n- Also FastNative for setDisplayList, simplifying upcall into field setter.\n\n- Also removes depth sweep parameter for ViewShowHideTests for now, they\u0027re not\nproviding much extra info.\n\nTogether with Outline/Path CL, about 25% faster visibility toggles\n\n960MHz Bullhead Before (prior to Outline/Path CL):\n\n$ adb shell am instrument -w -e class android.view.ViewShowHidePerfTest com.android.perftests.core/android.support.test.runner.AndroidJUnitRunner | grep min\nINSTRUMENTATION_STATUS: add[Factory:NestedLinearLayoutTree,depth:6]_min\u003d743505\nINSTRUMENTATION_STATUS: goneToVisible[Factory:NestedLinearLayoutTree,depth:6]_min\u003d332420\nINSTRUMENTATION_STATUS: invisibleToVisible[Factory:NestedLinearLayoutTree,depth:6]_min\u003d354154\nINSTRUMENTATION_STATUS: recordAfterAdd[Factory:NestedLinearLayoutTree,depth:6]_min\u003d1106095\nINSTRUMENTATION_STATUS: remove[Factory:NestedLinearLayoutTree,depth:6]_min\u003d1261290\nINSTRUMENTATION_STATUS: visibleToGone[Factory:NestedLinearLayoutTree,depth:6]_min\u003d356153\nINSTRUMENTATION_STATUS: visibleToInvisible[Factory:NestedLinearLayoutTree,depth:6]_min\u003d362149\n\nAfter (this CL + Outline/Path CL):\n\n$ adb shell am instrument -w -e class android.view.ViewShowHidePerfTest com.android.perftests.core/android.support.test.runner.AndroidJUnitRunner | grep min\nINSTRUMENTATION_STATUS: add[Factory:NestedLinearLayoutTree,depth:6]_min\u003d636061\nINSTRUMENTATION_STATUS: goneToVisible[Factory:NestedLinearLayoutTree,depth:6]_min\u003d267481\nINSTRUMENTATION_STATUS: invisibleToVisible[Factory:NestedLinearLayoutTree,depth:6]_min\u003d289433\nINSTRUMENTATION_STATUS: recordAfterAdd[Factory:NestedLinearLayoutTree,depth:6]_min\u003d976827\nINSTRUMENTATION_STATUS: remove[Factory:NestedLinearLayoutTree,depth:6]_min\u003d1207286\nINSTRUMENTATION_STATUS: visibleToGone[Factory:NestedLinearLayoutTree,depth:6]_min\u003d286148\nINSTRUMENTATION_STATUS: visibleToInvisible[Factory:NestedLinearLayoutTree,depth:6]_min\u003d292834\n\nChange-Id: Iaddfa9550bdbab807c662595d005126d98cdc277\n"
    },
    {
      "commit": "2414e1b051326745e087a88cdfbf1fff8962edd3",
      "tree": "fd3f31e244a0538d354f32777a4ba3afcab053a1",
      "parents": [
        "f5c05332dc0ddfa17828c9a2e7e600d196ea9d99"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Dec 12 13:56:15 2016 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Dec 13 16:52:08 2016 -0800"
      },
      "message": "Outline \u0026 Path perf improvements\n\nBug: 33460152\nTest: device boots, ViewShowHidePerfTests#add[Factory:NestedLinearLayoutTree,depth:6] 770us -\u003e 650us (userdebug 960MHz bullhead)\n\nImprove perf for outline \u0026 simple path methods\n\nnative_methodName -\u003e nMethodName in Path.java\n\nChange-Id: Id2374bbaca3256d2e4f19dae9abe67f794a171b3\n"
    },
    {
      "commit": "7a5ad2640625862533ed8cb7855fbe94fecc33b0",
      "tree": "66ebe4b2b7e97ebe2d6ea018517034a1989df336",
      "parents": [
        "3be8766edc965130413e92a414518e94b030e20a",
        "2cbbd8d3ab8de2937ffff753311876c786176b1b"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Dec 12 21:15:05 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Dec 12 21:15:09 2016 +0000"
      },
      "message": "Merge \"Add Outline/RenderNode perf tests\""
    },
    {
      "commit": "2cbbd8d3ab8de2937ffff753311876c786176b1b",
      "tree": "9ad2b121836afa5ac874d527aadf00c12c9e4bd7",
      "parents": [
        "c138a935d6961ab1ca01cccf17e510c5a0cfacce"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Dec 09 19:14:27 2016 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Dec 09 19:15:53 2016 -0800"
      },
      "message": "Add Outline/RenderNode perf tests\n\nBug: 33460152\nTest: benchmark CL. Ran new benchmarks.\n\nChange-Id: I6ad5fb3b72c731ef0fb57654191c4b9ac3f6922d\n"
    },
    {
      "commit": "3f7c6adeefe7237a46922cfda14731589d75de77",
      "tree": "4f07aa991b9b33fe98c15bc194b2c9dd51cd9647",
      "parents": [
        "c138a935d6961ab1ca01cccf17e510c5a0cfacce"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Dec 09 11:11:10 2016 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Dec 09 16:21:18 2016 -0800"
      },
      "message": "Add benchmarks for different ways to show/hide view subtrees\n\nBug: 33460152\nTest: benchmark CL. Ran new benchmarks.\n\nChange-Id: I7bdd8988543df821eee7b608ea439dfcf54464e5\n"
    },
    {
      "commit": "0178c2392be34ce4812a76458233d50a76fd4ad6",
      "tree": "1f0f06ef1c3c5b4bd802d988ecd02f1182488a9a",
      "parents": [
        "96444acc85e9e19e0b9d0b0c610c8d51821d7bb8"
      ],
      "author": {
        "name": "Andrei Stingaceanu",
        "email": "stg@google.com",
        "time": "Fri Nov 25 16:23:16 2016 +0000"
      },
      "committer": {
        "name": "Andrei Stingaceanu",
        "email": "stg@google.com",
        "time": "Tue Nov 29 11:51:04 2016 +0000"
      },
      "message": "AutoSize TextView (part 2) - benchmark number of sizes\n\nPerformance test for the number of sizes to choose from\nwhen autosizing.\n\nTests for 5, 10, 50, 100, 300, 500, 1000, 10000 and\n100000!!! different sizes.\n\nBug: 32740812\nBug: 32221168\nTest: this is the test\nChange-Id: I611bbf659e51d0236a2ddafb2e2498165cea07a0\n"
    },
    {
      "commit": "b2264c2bc5af19b53edc4708b5b86743f91ae8aa",
      "tree": "36c9a01127a2b0cf3269c336ea4b252a468fa0d9",
      "parents": [
        "7fdf38180c0de66111a8ba831e6bdb2ecd80a40f"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Nov 21 15:23:34 2016 -0800"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Nov 21 16:15:05 2016 -0800"
      },
      "message": "Add int[] JNI benchmarks\n\nTest: Ran benchmarks\nChange-Id: I5faf4236a431199976abb0719c56904dabbbf54d\n"
    },
    {
      "commit": "55fe2695a08741f42c8b1d6157343d5950c9e604",
      "tree": "543203b5852197f584c268b12480eb3edab54370",
      "parents": [
        "769ccdbc1e4f1acbc73a7c595fc5dbacf53a1702",
        "24e98b7667da2ba7718e111c4b6d5d739e67e4f4"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Nov 17 22:06:24 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Nov 17 22:06:27 2016 +0000"
      },
      "message": "Merge \"Add more complex View inflation bench\""
    },
    {
      "commit": "24e98b7667da2ba7718e111c4b6d5d739e67e4f4",
      "tree": "b3334d24ac77c64fad251dac52b022a8058a40da",
      "parents": [
        "ceb9ec6dbfb5bd26aad1280e9aeb28ca17b8fcf8"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Nov 15 09:24:36 2016 -0800"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Nov 17 09:03:31 2016 -0800"
      },
      "message": "Add more complex View inflation bench\n\nTest: ran ViewPerfTest#testTwelveKeyInflate\n\nChange-Id: I644e1f77fa1108dcd2d54216d1e740b112a2e21b\n"
    },
    {
      "commit": "dc589ac82b5fe2063f4cfd94c8ae26d43d5420a0",
      "tree": "9021de8b2f115316bfe52185ef0768946e981b45",
      "parents": [
        "8c053ae1f6ffd531fc2b6070094202b59efe3818"
      ],
      "author": {
        "name": "Sudheer Shanka",
        "email": "sudheersai@google.com",
        "time": "Thu Nov 10 15:30:17 2016 -0800"
      },
      "committer": {
        "name": "Sudheer Shanka",
        "email": "sudheersai@google.com",
        "time": "Mon Nov 14 11:27:12 2016 -0800"
      },
      "message": "Update usage of ActivityManagerNative.\n\n- Remove references to ActivityManagerProxy.\n- Add isSystemReady to ActivityManager.\n\nBug: 30977067\nTest: cts/hostsidetests/services/activityandwindowmanager/util/run-test android.server.cts\n      adb shell am instrument -e class com.android.server.am.ActivityManagerTest,com.android.server.am.TaskStackChangedListenerTest \\\n          -w com.android.frameworks.servicestests/android.support.test.runner.AndroidJUnitRunner\nChange-Id: I07390b6124fb1515821f5c0b37baf6ae74adc8fa\n"
    },
    {
      "commit": "3acf0382da22cda88234e599cd81b1ff5441cc35",
      "tree": "bc7726502fc2fb9bda4504d15c051a14c35ccc54",
      "parents": [
        "99449eea6cfe174eba269b3cfff06e6533d6314e"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Nov 02 11:14:47 2016 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Nov 02 14:49:51 2016 -0700"
      },
      "message": "Add benchmarks for View inflation\n\nAlso speed up RenderNode creation:\n\nUse finalizer() instead of NativeAllocationRegistry, this\nshaves ~3us off of creation currently\n\nAvoid instanceof, instead have SurfaceView explicitly ask\nfor updates.\n\nRemove unused method call.\n\nTest: ran benchmarks\nChange-Id: I3117fdf72313a4e6a9965baca9f2a8b855c19b34\n"
    },
    {
      "commit": "60bf972d4826bbf3c19bb2123e4d5007644f0e03",
      "tree": "623e458f127748821289e2dcd4383d08d586a13a",
      "parents": [
        "68fbb5e1c9fd338376f723fd77df76abd752a59f",
        "c1d6ba4053b4d5f7a9c3c255073d22fbe4af392f"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Oct 18 20:27:37 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Oct 18 20:27:41 2016 +0000"
      },
      "message": "Merge \"Fix pause/resume timing\""
    },
    {
      "commit": "306928c49d271f55eecac7d7686295d2a12f905c",
      "tree": "4ec68bbaf24ac6bf23917b8d84df9fbe305568b2",
      "parents": [
        "c93a7ef9cbba1afe1c1c24b500c3ebf67d4ef9b1"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Oct 17 15:18:26 2016 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Oct 17 15:29:17 2016 -0700"
      },
      "message": "Port Parcel benchmarks to APCT\n\nTest: ran benchmarks\nChange-Id: I5b4fad7e1183c8634df4f02bd71701b37fdbc3be\n"
    },
    {
      "commit": "c1d6ba4053b4d5f7a9c3c255073d22fbe4af392f",
      "tree": "85db120f684c137cd56b0767bc91adf97db858ac",
      "parents": [
        "c93a7ef9cbba1afe1c1c24b500c3ebf67d4ef9b1"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Oct 14 15:05:05 2016 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Oct 17 13:49:16 2016 -0700"
      },
      "message": "Fix pause/resume timing\n\nTest: run SystemPerfTest#testPauseResumeOverhead\n\nChange-Id: Icc34355e29f3a6ba8f7d73a904bf549d2685eee4\n"
    },
    {
      "commit": "295f9af9a87d1a201f6771ac5bc73ecf4939d753",
      "tree": "c2277b287609b730867a07c4cef8016322d6964c",
      "parents": [
        "156254da9512f929edf418327c98e1156ea86a34"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Oct 14 14:57:34 2016 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Oct 14 14:57:52 2016 -0700"
      },
      "message": "Add a couple simple canvas benchmarks\n\nTest: Manual, run the benchmark\n\nChange-Id: I944b0e958e5df800f493af9e41a6202308301fc1\n"
    },
    {
      "commit": "62e5fea8554aa61bbf691e8084b8ddd68e69c78e",
      "tree": "f80e58e2e5db5ec5b162aaf6cc0482bfb9da8219",
      "parents": [
        "ccbc5c183067ae988f57725cfafda855bafa47ec"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Oct 12 15:27:52 2016 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Oct 13 08:41:35 2016 -0700"
      },
      "message": "Greatly reduce BenchmarkState overhead\n\nCL reduces BenchmarkState to minimal levels. It also adds\na warmup loop to get things going first before starting measurements.\n\nWith this change with clocks /not/ locked on bullhead the test for\nRenderNodeJniOverhead is showing a stable (0ns std dev) result\nof 54ns, which is approximately the expected amount.\n\nTest: Ran a few perf benchmarks\n\nChange-Id: If01e455884711ebd9cfb89f076efa19dc0b5436d\n"
    },
    {
      "commit": "82d9e15a8f56e0475316d671e3fe1f2886004b32",
      "tree": "e255ed1694b36eaceb9d2c3c47f3bce5432afc2f",
      "parents": [
        "b3dcc2256e56d66373059464f50a27cdcb8a3bee",
        "578f47149d9cc674fd5a0e7f7ce8453cb54d8979"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Oct 12 18:01:28 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Oct 12 18:01:31 2016 +0000"
      },
      "message": "Merge \"Switch APCT Perf test to JUnit 4.11 friendly\""
    },
    {
      "commit": "578f47149d9cc674fd5a0e7f7ce8453cb54d8979",
      "tree": "9e6eccdba4514ac6a7474b015d0467d3d478b908",
      "parents": [
        "275f6bc8abff305325d1a052646b057248ae169d"
      ],
      "author": {
        "name": "Teng-Hui Zhu",
        "email": "ztenghui@google.com",
        "time": "Tue Oct 11 14:10:36 2016 -0700"
      },
      "committer": {
        "name": "Teng-Hui Zhu",
        "email": "ztenghui@google.com",
        "time": "Tue Oct 11 15:39:05 2016 -0700"
      },
      "message": "Switch APCT Perf test to JUnit 4.11 friendly\n\nb/31928255\n\nTest: run LayoutPerfTest VectorDrawablePerfTest before and after the change\n      data is consistent.\n\nChange-Id: I30de1f09b1df571479009048d621fef57b94f316\n"
    },
    {
      "commit": "eb22e31f7f372af423de6cdfa2be878ddcdb2264",
      "tree": "84cd5767473dbcbba33ef803c000922f59dd16cc",
      "parents": [
        "c50495c4bbb2f15f0ddc1dfcd2df3b11a9cb3a1d"
      ],
      "author": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Mon Oct 03 19:51:24 2016 +0900"
      },
      "committer": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Mon Oct 03 19:58:02 2016 +0900"
      },
      "message": "Introduce Typeface.createXX performance tests.\n\nBUG:29142734\nTest: Performed following commands\nmmma -j1024 ./frameworks/base/apct-tests/perftests/core/\nadb install -r $OUT/data/app/CorePerfTests/CorePerfTests.apk\nadb shell am instrument -w \\\ncom.android.perftests.core/android.support.test.runner.AndroidJUnitRunner\n\nChange-Id: I8e5ef3bf729f981d20dc88736d8a1a3d6b972c55\n"
    },
    {
      "commit": "42ed4974161990d2ffab15f670a723b4c32e3f82",
      "tree": "2e7ea31bd5029af51552d204032f06ba51dee4ee",
      "parents": [
        "d9eb6ce22aa631699fb3ca9af5bfc037ca3f3733",
        "2c4522cc1bf3a3d0178688427a33b860ddfe4bba"
      ],
      "author": {
        "name": "Sudheer Shanka",
        "email": "sudheersai@google.com",
        "time": "Sat Sep 24 01:11:57 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Sep 24 01:12:01 2016 +0000"
      },
      "message": "Merge \"Add usermanager related perf tests - part2\""
    },
    {
      "commit": "36e0f128929ca2cdcd51dcb1d0c1fc6557414875",
      "tree": "37c53fafe299e03e9cfcd545639e53bfcb59c8ce",
      "parents": [
        "1fd68ad92c56b59a4b2550c351e87e819f3486f9"
      ],
      "author": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Fri Sep 16 11:08:00 2016 +0900"
      },
      "committer": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Fri Sep 16 12:13:30 2016 +0900"
      },
      "message": "Fix test failure due to out of UI thread runnning.\n\nAfter Ie8c42d60a0bff7636795a958a475058798061fe5,\nActivityTestRule is no longer a subclass of UiThreadTestRule, and looks\nlike the new UiThreadTest annotation is not working for Parameterized\ntest. As a temporary fix, use runOnUiThread instead of @UiThreadTest.\n\nChange-Id: I69d035864259c1f0765d52ebc53634d3ef8ef84a\n"
    },
    {
      "commit": "2c4522cc1bf3a3d0178688427a33b860ddfe4bba",
      "tree": "70c8d7cf9d0e7280dcae14fe499b890e7e1b638f",
      "parents": [
        "9af92f3cca4894190f2638dce21aef334c032ccd"
      ],
      "author": {
        "name": "Sudheer Shanka",
        "email": "sudheersai@google.com",
        "time": "Sat Aug 27 20:53:28 2016 -0700"
      },
      "committer": {
        "name": "Sudheer Shanka",
        "email": "sudheersai@google.com",
        "time": "Thu Sep 08 13:30:34 2016 -0700"
      },
      "message": "Add usermanager related perf tests - part2\n\n- Add onLockedBootComplete callback to UserSwitchObserver.\n\nBug: 30948225\nTest: adb shell am instrument -e class android.multiuser.UserLifecycleTest -w com.android.perftests.multiuser/android.support.test.runner.AndroidJUnitRunner\nChange-Id: I87533094805a81fbd85d4f492e637b3304ecd5e2\n"
    },
    {
      "commit": "fe1a3b6f037825417e01b2255bc26a439cc2d91e",
      "tree": "3496dd90ab77fcbbd65c269433a935fc4d60e967",
      "parents": [
        "9612120965bc5f52b8833999cfdaee9eea1cdda3",
        "f5af4a344e086efa87740a0154cace064465fe54"
      ],
      "author": {
        "name": "Keisuke Kuroyanagi",
        "email": "ksk@google.com",
        "time": "Thu Sep 08 04:37:15 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 08 04:37:17 2016 +0000"
      },
      "message": "Merge changes from topic \u0027ksk_long_text_edit\u0027\n\n* changes:\n  Always redraw text that protrude from line bounds.\n  Lazy RenderNode creation to improve performance.\n"
    },
    {
      "commit": "9612120965bc5f52b8833999cfdaee9eea1cdda3",
      "tree": "9e7182f80064782ee3fe7f387102663ca1a1892c",
      "parents": [
        "f098c262b1afcdb576d721361de3db3ef2f96fe1",
        "b7ff1333fe4e5d37ccf5d5b8860bf21235d38a1b"
      ],
      "author": {
        "name": "Keisuke Kuroyanagi",
        "email": "ksk@google.com",
        "time": "Thu Sep 08 04:37:15 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 08 04:37:17 2016 +0000"
      },
      "message": "Merge \"Edit long text performance test.\""
    }
  ],
  "next": "f5af4a344e086efa87740a0154cace064465fe54"
}
