)]}'
{
  "log": [
    {
      "commit": "fe75d62eba3935d2d1a4a7790fc7459ded241ad3",
      "tree": "71054bce03f3a52e59fb5dc4af890f93da50a259",
      "parents": [
        "80a6b33be276eb6c808fce13debb4bb7a489cdad"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Mar 19 14:08:58 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Mar 19 14:08:58 2012 -0700"
      },
      "message": "Use qsort_r_compat() as a portable wrapper for qsort_r().\n\nChange-Id: Ie79f81625947f4e95122047605d994c86e872e74\n"
    },
    {
      "commit": "46fc395386f2277a0425b2c46be08fd91f6554f4",
      "tree": "fd748e51bea1b40e081d66332034f0a8fc3b5a60",
      "parents": [
        "5db7bc6eea9c9c7c84ae21a7cc0069ceee08a6d4"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Mar 19 11:48:12 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Mar 19 11:50:02 2012 -0700"
      },
      "message": "Fix build break on glibc hosts.\n\nChange-Id: Ida70bec6ea972d042982428353cbbc33cde25136\n"
    },
    {
      "commit": "c9fd9263feedac32e4f5b1f13a3246347efdc25f",
      "tree": "034a4002a842eae595f59f5d78d982e6316fb13d",
      "parents": [
        "61361f376b47d45966b1ca0d24d51622304c93c3"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Mar 16 19:25:20 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Mar 16 22:25:15 2012 -0700"
      },
      "message": "Use quicksort to sort the string pool.\n\nThe current implementation of Vector::sort uses insertion sort\non the assumption that the data is mostly sorted.  It isn\u0027t.\n\nThis change brings the total time spent sorting packages by config\ndown to 500ms from about 93 seconds.\n\nBug: 6186278\nChange-Id: Iec8da11e09297acd6c73733d063b0fa9dacf69f7\n"
    },
    {
      "commit": "61361f376b47d45966b1ca0d24d51622304c93c3",
      "tree": "b634bf9370932e1b4c9296156b9c85777d87d01c",
      "parents": [
        "bf02b984738f6be5cc2e2d66b12aff7af99eb79e"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Mar 16 15:25:17 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Mar 16 22:24:54 2012 -0700"
      },
      "message": "Add some comments about StringPool sort order.\n\nChange-Id: I57f24d46328a6bfef883819eaf95c03114d573bb\n"
    },
    {
      "commit": "345b7eb8749d6954942fd4e961fff9f2f854934c",
      "tree": "9357978bf60889db44adb838760e261265a5d839",
      "parents": [
        "8a9cfcc85260eadcc2c17c4a8911c6d93b642f39"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Mar 16 15:25:17 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Mar 16 15:25:17 2012 -0700"
      },
      "message": "Remove dead code in StringPool.\n\nThe sorted string pool option was no longer used.\nNeither were strings with associated identifiers.\n\nChange-Id: Ic5f6368637fbeedfda873d63f4ad0f3ea9d0d603\n"
    },
    {
      "commit": "db6e67d8ec081f43bcf14155741e268a38915719",
      "tree": "143c9d8b2324d6d7d662dbbd31c5f83bcdb6dbae",
      "parents": [
        "42f23b3cfe2c4fa45c7c9ca4b60a6724aea31621"
      ],
      "author": {
        "name": "Ben Gruver",
        "email": "bgruv@google.com",
        "time": "Wed Mar 07 21:19:16 2012 -0800"
      },
      "committer": {
        "name": "Ben Gruver",
        "email": "bgruv@google.com",
        "time": "Wed Mar 07 21:19:16 2012 -0800"
      },
      "message": "Fix an issue where a non-styled string could be made into a styled string\n\nIf a styled version of an otherwise identical string is encountered before\na non-styled version, aapt merges the two, effectively making the\nnon-styled string have a spurious style.\n\nChange-Id: I424a61c0c83c59e0b9c8939e457402efd06a7a4f\n"
    },
    {
      "commit": "6c997a9e880e08c354ffd809bd62df9e25e9c4d4",
      "tree": "593504e8a7d67bf57e0799daff1e8eb9e4797857",
      "parents": [
        "2247e3f0dc00762b44ef6adcbb2a91c8bbc1be58"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jan 31 11:27:43 2012 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jan 31 15:41:30 2012 -0800"
      },
      "message": "aapt now sorts the strings in the resource string pool.\n\nIn our current environment with very many translations, this can\nsave a lot of RAM -- for example over 200K in Gmail just by sorting\nthe strings in the Gmail .apk (not the framework).\n\nAlso add a new aapt command to print the contents of the resource\ntable string pool.\n\nChange-Id: I1da037b3e2c377b890833ff57ab158965314ac48\n"
    },
    {
      "commit": "f51125d8429ffa71c57ba6fbdca9effc72642a9b",
      "tree": "f94891383e3cd48374f02bff435b0a3ca783bd90",
      "parents": [
        "e87d2da0b4e44051edbee4a4339f846eba9d3a36"
      ],
      "author": {
        "name": "Raphael",
        "email": "raphael@google.com",
        "time": "Thu Oct 27 17:01:31 2011 -0700"
      },
      "committer": {
        "name": "Raphael",
        "email": "raphael@google.com",
        "time": "Thu Oct 27 17:11:21 2011 -0700"
      },
      "message": "AAPT fix printf %zd crash on Windows.\n\nThere\u0027s no printf %zd on Mingw/Cygwin so the verbose\nprintf crashes aapt.\n\nSDK bugs: 20395, 20986\n\nChange-Id: I5b8ac36749263205a19f1448b1aaca90d5a2e06d\n"
    },
    {
      "commit": "ddb76c4644756b31be948d70aaa8ee541dd94999",
      "tree": "782d260d2da982941148be7c1a0a0780749cdfdc",
      "parents": [
        "8028a951c3aa74990907efb9376d1093d84084af"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Nov 24 12:56:06 2010 -0800"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Dec 08 11:21:30 2010 -0800"
      },
      "message": "Change assets to use 64-bit API\n\nThe asset system and supporting libraries were using off_t instead of\noff64_t to access files larger than 2GB (32-bit signed). This change\nreplaces all off_t with off64_t and lseek64.\n\nThere is a new utils/Compat.h added for Mac OS compatibility.\n\nAlso fixed some size-related compiler warnings.\n\nBug: 3205336\nChange-Id: I9097b3cb7a602e811fe52f245939d8975da55e9e\n"
    },
    {
      "commit": "f1ff21ac62a51f5ba8ca0821ea8a90f70957e25d",
      "tree": "93b20482d80f3008a887e0c89eaa9a7cd3ad61ca",
      "parents": [
        "b5c49c8bb1e830ba934c7fbceec9409b89ead4a9"
      ],
      "author": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Mon Jun 14 17:34:04 2010 +0100"
      },
      "committer": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Fri Jun 25 11:02:15 2010 +0100"
      },
      "message": "Fixes a few minor problems with AAPT\n\n- Fixes casting problems with stricter compilers\n- Adds a couple of missing ifdef guards\n\nThis is a first step toward being able to generate APKs on the fly on the device.\n\nBug: 2766918\nChange-Id: Icaaee5a4032afa313256add321b447443861dd85\n"
    },
    {
      "commit": "780d2a1b714724d85227141c76b3c64f543f00b4",
      "tree": "3bd5411acce1ae663e4509c812b3aaa6100c6a41",
      "parents": [
        "cfe79e9220c996ed9f60fbc00eebb23e7faba2f0"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Mon Feb 22 22:36:26 2010 -0800"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue Feb 23 10:02:20 2010 -0800"
      },
      "message": "Use UTF-8 strings to avoid duplicate caching, part 1\n\nStringBlock instances containing UTF-8 strings use a cache to convert\ninto UTF-16, but using that cache and then using a JNI call to NewString\ncauses the UTF-8 string as well as two copies of the UTF-16 string to\nbe held in memory. Getting the UTF-8 string directly from the StringPool\neliminates one copy of the UTF-16 string being held in memory.\n\nThis is part 1. Part 2 will include ResXMLParser optimizations.\n\nChange-Id: Ibd4509a485db746d59cd4b9501f544877139276c\n"
    },
    {
      "commit": "2fee0ed6eb99b211efa06f095a41268a2021214a",
      "tree": "bc7ce3df25a1d7ec1f61fb85ef56899dab5eb66b",
      "parents": [
        "7188f946521d64ea21121939d2a4c279f33fe910"
      ],
      "author": {
        "name": "Jeff Hamilton",
        "email": "jham@android.com",
        "time": "Wed Jan 06 15:46:38 2010 -0600"
      },
      "committer": {
        "name": "Jeff Hamilton",
        "email": "jham@android.com",
        "time": "Mon Feb 01 18:47:01 2010 -0600"
      },
      "message": "Add the --rename-manifest-package option to aapt.\n\nIt allows you to force override the manifest\npackage listed in the AndroidManifest.xml when\ncreating an APK file.\n\nChange-Id: I7eac7943c4e56610b65728ae54773a273634fd9d"
    },
    {
      "commit": "19138468caf7050d482dc15f35a344eab11bb756",
      "tree": "ea1f96c5bcab356355ab05d315abfa66a7f888c4",
      "parents": [
        "6be01bf207077ffbdcd3879250171a26ec805835"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Dec 04 09:38:48 2009 -0800"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Mon Dec 07 15:14:15 2009 -0800"
      },
      "message": "Optional use of UTF-8 strings in resource bundles\n\nAllows the use of UTF-8 for packing resources instead of the\ndefault of UTF-16 for Java. When strings are extracted from the\nResStringPool, they are converted to UTF-16 and the result is\ncached for subsequent calls.\n\nWhen using aapt to package, add in the \"-8\" switch to pack the\nresources using UTF-8. This will result in the value, key, and\ntype strings as well as the compiled XML string values taking\nsignificantly less space in the final application package in\nmost scenarios.\n\nChange-Id: I129483f8b3d3b1c5869dced05cb525e494a6c83a\n"
    },
    {
      "commit": "88721afe2f161ae23de952b790aaa8b4d3560ba8",
      "tree": "0f1cc4e39be75305bb9007c6d9b3cd09e23ede09",
      "parents": [
        "8280c2b15f6875b2d387c05df23d264864eb9cd5"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kenny@the-b.org",
        "time": "Fri Aug 21 15:23:45 2009 -0500"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Dec 04 13:40:54 2009 -0800"
      },
      "message": "Fix bitmask in aapt\u0027s StringPool length construction\n\nThe StringPool indicates the length of a string with a 16-bit\ninteger. If the length of the string is greater than 0x7FFF,\nit splits it into two 16-bit integers with the first one\nhaving the high bit set.\n\nThe length calculation has a small bug that masks off the\n19 bits instead of the first 15 bits as intended.\n"
    },
    {
      "commit": "9066cfe9886ac131c34d59ed0e2d287b0e3c0087",
      "tree": "d88beb88001f2482911e3d28e43833b50e4b4e97",
      "parents": [
        "d83a98f4ce9cfa908f5c54bbd70f03eec07e7553"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 19:31:44 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 19:31:44 2009 -0800"
      },
      "message": "auto import from //depot/cupcake/@135843\n"
    },
    {
      "commit": "d83a98f4ce9cfa908f5c54bbd70f03eec07e7553",
      "tree": "4b825dc642cb6eb9a060e54bf8d69288fbee4904",
      "parents": [
        "076357b8567458d4b6dfdcf839ef751634cd2bfb"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 18:28:45 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 18:28:45 2009 -0800"
      },
      "message": "auto import from //depot/cupcake/@135843\n"
    },
    {
      "commit": "54b6cfa9a9e5b861a9930af873580d6dc20f773c",
      "tree": "35051494d2af230dce54d6b31c6af8fc24091316",
      "parents": [],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Oct 21 07:00:00 2008 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Oct 21 07:00:00 2008 -0700"
      },
      "message": "Initial Contribution\n"
    }
  ]
}
