)]}'
{
  "log": [
    {
      "commit": "86d67df8d57b9537666f9b54a9ca563779a2288b",
      "tree": "d7498429238104f724b28ff68a84e7deeebef8af",
      "parents": [
        "a9285db08883dbbe7b5eb9276cb52b7e01b42aa3"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Jan 31 13:47:27 2017 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Feb 01 15:28:23 2017 -0800"
      },
      "message": "AAPT2: Support CtsContentTestCases build\n\n- Add \u003cfeature-group\u003e to ManifestFixer.\n- Support \u003cmeta-data\u003e in \u003cinstrumentation\u003e\n- Add support for \u003cbag\u003e and type\u003d\"configVarying\". Some CTS tests use this\n  old notation, we need to support it (even though configVarying isn\u0027t\n  anything supported by the framework convention).\n\nChange-Id: I6946fa633ce513ea8437c1496db883cf27dcf6de\nTest: make aapt2_tests\n"
    },
    {
      "commit": "d5083f6f6b9bc76bbe64052bcec639eee752a321",
      "tree": "29b5dfb74c7e9b12164ced408315b0ad8d5cf527",
      "parents": [
        "04e7b6c6de620406348142ba9dd65bad094e264b"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Jan 16 15:07:21 2017 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Jan 17 18:55:51 2017 -0800"
      },
      "message": "Move StringPiece to libandroidfw\n\nlibandroidfw needs to make use of StringPiece, so\nmove it to libandroidfw and update all code referencing\nStringPiece in aapt2.\n\nTest: make libandroidfw_tests libaapt2_tests\nChange-Id: I68d7f0fc7c651b048d9d1f5e7971f10ef5349fa1\n"
    },
    {
      "commit": "ce5e56e243d262a9b65459c3bd0bb9eaadd40628",
      "tree": "cf0ecea98883d090d8d2856fc6d32046c7e3d9e8",
      "parents": [
        "0f7cc4dc2c49a30c072cbc7aa6c0c5d5c31496d4"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Oct 21 17:56:45 2016 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Oct 26 19:30:23 2016 -0700"
      },
      "message": "AAPT2: Rename to match new style\n\nUse Google3 naming style to match new\nprojects\u0027 and open source google projects\u0027 style.\n\nPreferred to do this in a massive CL so as to avoid\nstyle inconsistencies that plague legacy code bases.\nThis is a relatively NEW code base, may as well keep\nit up to date.\n\nTest: name/style refactor - existing tests pass\nChange-Id: Ie80ecb78d46ec53efdfca2336bb57d96cbb7fb87\n"
    },
    {
      "commit": "cacb28f2d60858106e2819cc7d95a65e8bda890b",
      "tree": "c8ac4af72b0a9599983567029e5680c40f9883a3",
      "parents": [
        "733f0bc08ea0c93d095016a791c2914658d0cdde"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Oct 19 12:18:14 2016 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Oct 19 12:18:14 2016 -0700"
      },
      "message": "Use Google3 style guide with .clang-format\n\nTest: style change only, builds ok\nChange-Id: I885180e24cb2e7b58cfb4967c3bcb40058ce4078\n"
    },
    {
      "commit": "8c3f31f022f7e094fd227ef0c2987e0846cb3e43",
      "tree": "d9550e3643a3eea0d0e323d3234edb52274a96fc",
      "parents": [
        "43321e02bc3553bdd7ea5f2af823080414d59b54"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Sep 07 13:45:13 2016 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Sep 07 13:45:13 2016 -0700"
      },
      "message": "AAPT2: Fix issue with styled string indices\n\nStyled strings use spans to denote which part\nis styled (\u003cb\u003e, \u003ci\u003e, etc). Spans are simply a range\nof indices into the original string.\n\nIn Java, we use String and its internal representation, meaning\nwe must encode the indices using UTF16 lengths.\n\nWhen the internal AAPT2 representation of strings switched to UTF8,\nthe indices also began to index into the UTF8 string.\n\nThis change reverts the indices to use UTF16 lengths.\n\nBug:31170115\nChange-Id: I07b8b5b67d2542c7e0a855b601cdbd3ac4ebffb0\n"
    },
    {
      "commit": "58a20a6482a56a262fd83a617482641e3a981db1",
      "tree": "3b15075837740f6079496a2f2e4ca071de6fab9f",
      "parents": [
        "bf0bd0f9ac1ffa0231cff0f6591dede48b3c6d52"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Jul 25 17:56:58 2016 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Jul 25 17:56:58 2016 -0700"
      },
      "message": "AAPT2: Change accepted notation for resource names in tests\n\nPreviously the way to name resources in tests was to use reference\nnotation (@[package:][type/]name). Now we use name notation (no @).\n\nChange-Id: I68f0a36562d89cc78c582d128f370d9556c58707\n"
    },
    {
      "commit": "d0f116b619feede0cfdb647157ce5ab4d50a1c46",
      "tree": "5b2a8663602ba2b267890ff85d3cf5618ac922b5",
      "parents": [
        "aaac91f4a00a9968ef107ea143e6f2f669f762f1"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Jul 08 15:00:32 2016 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Jul 13 17:45:28 2016 -0700"
      },
      "message": "AAPT2: Remove usage of u16string\n\nFor legacy reasons, we kept around the use of UTF-16 internally\nin AAPT2. We don\u0027t need this and this CL removes all instances of\nstd::u16string and StringPiece16. The only places still needed\nare when interacting with the ResTable APIs that only operate in\nUTF16.\n\nChange-Id: I492475b84bb9014fa13bf992cff447ee7a5fe588\n"
    },
    {
      "commit": "e4bb9eb5af5b0899dc0921d5580220b20e15bd5a",
      "tree": "d522014811735f3bdba1f916d83dc699189a14b9",
      "parents": [
        "59e04c6f92da584b322c87072f18e6cab4de4c60"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Feb 12 22:18:51 2016 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Feb 12 22:21:48 2016 -0800"
      },
      "message": "AAPT2: Introduce notion of \u0027product\u0027 to ResourceTable\n\nThis allows us to preserve the various product definitions during the compile\nphase, and allows us to select the product in the link phase.\n\nThis allows compiled files to remain product-independent, so that they do not need\nto be recompiled when switching targets.\n\nBug:25958912\nChange-Id: Iaa7eed25c834b67a39cdc9be43613e8b5ab6cdd7\n"
    },
    {
      "commit": "52364f7ae31716d7827ea8f8566f4a28bd30a921",
      "tree": "ce146fb6dc5e9f9b1166964b77273b6481f8258b",
      "parents": [
        "d901155166983adde84d9da2a6b265371191068a"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Jan 11 13:10:24 2016 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Jan 13 18:48:24 2016 -0800"
      },
      "message": "AAPT2: Variety of small fixes to get the build working\n\n- Add option to rename package in AndroidManifest.xml\n- Support default versionName and versionCode\n- Accept True and False as valid booleans\n\nChange-Id: I400e350b9dcd0fd1c197d1929144299c7823617d\n"
    },
    {
      "commit": "7751afc796842bbb24bfbb19bd0fee4a7b7c8a4e",
      "tree": "fad12506e9f244038a186dd8dbe31e87f6bafafe",
      "parents": [
        "198ce1a5e6fbe2cb84263e427032e9715e27379f"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Jan 06 15:45:28 2016 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Jan 06 16:18:40 2016 -0800"
      },
      "message": "AAPT2: Fix product support\n\nPreviously the default product wasn\u0027t tried if \u0027default\u0027 wasn\u0027t specified on the command line.\nAlso adds support for multiple products.\n\nChange-Id: I1e4872b34bb8d609b6444841a4e7e4dbb3bbb76b\n"
    },
    {
      "commit": "24b8ff0faf7c59323d0171cdd825ca09e712aa1e",
      "tree": "f1350009e8e3aa03ab93b088619635991aeb989a",
      "parents": [
        "7ff3ee19f4b831a526baf4b928d1ac172d070d82"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Dec 16 14:01:57 2015 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Dec 17 11:01:55 2015 -0800"
      },
      "message": "AAPT2: Fix references to private parent\n\nChange-Id: Id4697551b6c8cb6167f562de593006ae3c6158c0\n"
    },
    {
      "commit": "7ff3ee19f4b831a526baf4b928d1ac172d070d82",
      "tree": "6b80cd676d4d9d3e98f4382090011834be106228",
      "parents": [
        "36a832dd128c18628783cc629b89b2ae399db4f8"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Dec 14 16:08:50 2015 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Dec 17 11:01:55 2015 -0800"
      },
      "message": "AAPT2: Respect format attribute of \u003citem\u003e tag\n\nAn \u003citem\u003e is a general tag that can override certain behavior. For\ninstance, this is allowed:\n\n    \u003citem name\u003d\"foo\" type\u003d\"integer\" format\u003d\"float\"\u003e0.4\u003c/item\u003e\n\nEven though without the format attribute, this would be illegal.\n\nChange-Id: I8133ce59e14719a70d7476a1464c3f564c435289\n"
    },
    {
      "commit": "a6fe345be955368a13aea76aefb4db821aad11df",
      "tree": "c5385f798a6e1fb674f6f13c0f323726258618ca",
      "parents": [
        "01655232371d7c7ea5b58ccf66ad99917072018a"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Dec 09 15:20:52 2015 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Dec 10 16:24:15 2015 -0800"
      },
      "message": "AAPT2: Fix overlay support\n\nSupports the \u003cadd-resource\u003e tag and mimics old AAPT behavior of\nnot allowing new resources defined unless \u003cadd-resource\u003e was used\nor --auto-add-overlay was specified.\n\nChange-Id: I9b461137357617ade37fd7045b418b8e6450b9c4\n"
    },
    {
      "commit": "a587065721053ad54e34f484868142407d59512d",
      "tree": "57efbb55d03b5e68610802da8e469d5d48a29078",
      "parents": [
        "78de1bcbbdad03d893d0b1df5372732cf6d0d934"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Nov 20 15:32:30 2015 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Nov 23 12:01:15 2015 -0800"
      },
      "message": "AAPT2: Verify min/max attr fields\n\nIntegers are now checked to see if they fall in the range\nof min/max for the attribute they are assigned.\n\nChange-Id: I42c435b15fd3f0bd23691c83efccce4ad5973276\n"
    },
    {
      "commit": "467f171315f9c2037fcd3eb5edcfabc40671bf7b",
      "tree": "3b14762e3d9e42a660479d0d5722883b391f835b",
      "parents": [
        "abf83cbe4f63cd76043aab89cd0e08525560fea2"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Nov 16 17:35:44 2015 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Nov 19 14:46:53 2015 -0800"
      },
      "message": "AAPT2: Fail compiling when private symbols are referenced\n\nAlso moved some XML specific stuff into its own directory,\nand refactored ReferenceLinker a bit.\n\nChange-Id: I912247a82023c1bbf72dc191fbdaf62858cbec0c\n"
    },
    {
      "commit": "fa10505ceaf9d4c41b76bb1b32f257926e96e441",
      "tree": "2976196a52ac3a06e16e2f36afd36092bde536ea",
      "parents": [
        "83f2255f69729e0e97539e96e5e6161843e85823"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Sat Nov 07 13:34:39 2015 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Sat Nov 07 13:34:39 2015 -0800"
      },
      "message": "AAPT2: Accept aliases defined for external resource types\n\nResource types that are typically stored outside of the resource table\n(like layout, xml, drawable) can only have aliases (reference to another\nresource).\n\nChange-Id: Idb768801f02bb142e5be5e438904f221499bd756\n"
    },
    {
      "commit": "27afb9e8894b512b21fcca6ce142f40f1ee16cbb",
      "tree": "a3980c54d8f44831bc342738cfaff1373f223a62",
      "parents": [
        "b274e35abfbbd09e0fce983a215c11522c56cce2"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Nov 06 18:25:04 2015 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Nov 06 18:25:04 2015 -0800"
      },
      "message": "AAPT2: Add support for clearer in-progress public attributes\n\nBefore, the ID assigned to a public resource without an explicitly set id\nwas more difficult to figure out. It would be the next available ID.\n\nAAPT2 introduces a new way to specify public attributes in progress.\n\n\u003cpublic-group type\u003d\"attr\" first-id\u003d\"0x0101047f\"\u003e\n  \u003cpublic name\u003d\"foo\" /\u003e\n  \u003cpublic name\u003d\"bar\" /\u003e\n  ...\n\u003c/public-group\u003e\n\nThe IDs assigned to each resource is auto-incremented starting from `first-id`.\nThis also keeps resource\u0027s with the same type grouped together so that\nthe auto-incrementing nature is evident.\n\nAlso, due to how AAPT2 was implemented, this is required :P\n\nChange-Id: I95ea92ad0405e87ed0b1766879bb2f1d9d0b636e\n"
    },
    {
      "commit": "9f22204c3a9ddac4f92573c9ab098e6cf3ed1cb4",
      "tree": "7146efe6062b17d4a5fb63230ac3e8d64b1f2e17",
      "parents": [
        "08322c2152131979a846d399ca6b9bebdbdc0355"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Nov 04 13:51:45 2015 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Nov 05 10:56:32 2015 -0800"
      },
      "message": "AAPT2: Fix small issue with detecting translatable resources\n\nChange-Id: Idd21b5de4d20be06c6f8c8eb5a22ccd68afc4927\n"
    },
    {
      "commit": "ca5638fd85098c3d0a699492751043545f75553a",
      "tree": "9ede79caee33fc201b2d5a2da994a77fa25a7c2c",
      "parents": [
        "030cfd3da697d51bf1bffd076881c12acedd851e"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Oct 21 14:42:43 2015 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Oct 30 13:51:11 2015 -0700"
      },
      "message": "AAPT2: Support generating Manifest.java\n\nThis includes comments from AndroidManifest.xml.\n\nChange-Id: I412d9ecb12bad20a49a683d6b3bea4a0be1235ae\n"
    },
    {
      "commit": "e78fd617ec60139a973a01925fa7adad31febb39",
      "tree": "b64f9590b16dfb2e6e9ea8bf2eb5d54a02230b0a",
      "parents": [
        "3b7acbb86207df78eccfeb40aabcc8543703a58f"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Oct 22 12:48:43 2015 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Oct 22 16:35:47 2015 -0700"
      },
      "message": "AAPT2: Move comments and source into Value\n\nValues are closely related to where they were defined, so\nthis information should live inside the Value.\n\nThis also enables comments to be attached to nested Values.\n\nChange-Id: Ic7481b5a5f26d0ef248d638e2e29252f88154581\n"
    },
    {
      "commit": "9ba47d813075fcb05c5e1532c137c93b394631cb",
      "tree": "1eb9f7adc315ab8ad640249f8ac1888951520f3f",
      "parents": [
        "072c5bdff77e354bdf333c0c1d460cdd1c2e76ae"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Oct 13 11:37:10 2015 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Oct 16 15:50:58 2015 -0700"
      },
      "message": "Filter products during compile phase\n\nUnfortunately there is no good way to deal with products in the link phase.\nProducts are like preprocessor defines in that they are processed early\nand change the composition of the compiled unit.\n\nChange-Id: I6d5e15ef60d29df8e83e059ba857c09333993779\n"
    },
    {
      "commit": "1ab598f46c3ff520a67f9d80194847741f3467ab",
      "tree": "4846790211599fdd7a9bb35ec94df4a6ec4839d6",
      "parents": [
        "547c346bb34878b691fd53e54aa3a88efcc5dc6f"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Aug 14 14:26:04 2015 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Oct 16 12:13:08 2015 -0700"
      },
      "message": "AAPT2: Separate out the various steps\n\nAn early refactor. Some ideas became clearer as\ndevelopment continued. Now the various phases are much\nclearer and more easily reusable.\n\nAlso added a ton of tests!\n\nChange-Id: Ic8f0a70c8222370352e63533b329c40457c0903e\n"
    },
    {
      "commit": "dfa5e0705ff82f15e228ba076bc192893bcbe118",
      "tree": "10dbca8e4feeefc96019fcab8fa08c7943b8c97e",
      "parents": [
        "d13fb249865703901b77f48c5fed1864f06e1c63"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue May 12 21:42:59 2015 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue May 12 21:56:43 2015 -0700"
      },
      "message": "AAPT2: Fix issue where @null was wrongly encoded\n\n@null must be encoded as TYPE_REFERENCE with a value of\n0. TYPE_NULL is used by the runtime as a placeholder when resolving\nstyle attributes. If we set a style attribute to TYPE_NULL,\nthe runtime will throw. The runtime will convert a TYPE_REFERENCE\nwith value 0 to a proper null value.\n\nChange-Id: Id983ca7e1fbee3124dddafe32f1b5741b824225b\n"
    },
    {
      "commit": "bdaa092a193d8ddccbd9ad8434be97878e6ded59",
      "tree": "04310ae0b932078409147cbfa8332d96e76555d1",
      "parents": [
        "330edcdf1316ed599fe0eb16a64330821fd92f18"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri May 08 20:16:23 2015 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue May 12 20:41:31 2015 -0700"
      },
      "message": "AAPT2: inferred style parent processing\n\nChange-Id: I8fbc4feef16b6039cf4c526fcfb767dc75a9c131\n"
    },
    {
      "commit": "24aad163bc88cb10d2275385e9afc3de7f342d65",
      "tree": "361fc0b3fbef5f68a16f357ae9d2bed5e93efbf5",
      "parents": [
        "ab2581398c812917145088590bd18eb83f3a2ea6"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Apr 24 19:19:30 2015 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon May 04 16:43:24 2015 -0700"
      },
      "message": "Add namespace handling in attribute values\n\nPreviously, you could only reference namespace prefixes in attribute names:\n\n\u003cView xmlns:appcompat\u003d\"http://schemas.android.com/apk/res/android.support.v7.appcompat\"\n      appcompat:name\u003d\"hey\"\n      ...\n\nNow you can also reference them in resource names within an attribute value:\n\n      ...\n      android:text\u003d\"@appcompat:string/confirm\"\n      ...\n\nWhich will be treated as \"@android.support.v7.appcompat:string/confirm\".\n\nChange-Id: Ib076e867a990c80cf877a704eb77cd1ef0b23b52\n"
    },
    {
      "commit": "769de98f2dd41bfe39a1c9f76aefd1ad58942733",
      "tree": "3d79143b08f02dfb61158689f51e01eeb1bb371e",
      "parents": [
        "9310e4285b3fc951c3524d040726d1161015562c"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Apr 10 19:43:55 2015 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Apr 15 19:56:59 2015 -0700"
      },
      "message": "AAPT2: Add library support\n\nChange-Id: I307f56d9631784ab29ee4156d94886f9b2f25b30\n"
    },
    {
      "commit": "6f6ceb7e1456698b1f33e04536bfb3227f9fcfcb",
      "tree": "0a1f8e354c4714f162f849b09a5d5da757c6d5b8",
      "parents": [
        "041ca26d028ae314d416cb107721ea7267af6aca"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Nov 14 14:48:12 2014 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Apr 02 17:02:48 2015 -0700"
      },
      "message": "AAPT2\n\nFirst checking of AAPT2. The individual phases of AAPT2 work, but there\nare some missing pieces.\n\nFor early testing we are missing:\n- Need to properly mark file references and include them in package\n- Need to package into zip\n\nFinal AAPT for apps we are missing:\n- Need to crush PNGs\n- Need to parse 9-patches\n- Need to validate all of AndroidManifest.xml\n- Need to write align method to align resource tables for splits.\n\nFinal AAPT for apps + system we are missing:\n- Need to handle overlays\n- Need to store comments for R file\n- Need to handle --shared-lib (dynamic references too).\n\nNew AAPT features coming:\n- Need to import compiled libraries\n    - Name mangling\n    - R file generation for library code\n\nChange-Id: I95f8a63581b81a1f424ae6fb2c373c883b72c18d\n"
    }
  ]
}
