)]}'
{
  "log": [
    {
      "commit": "26d244281a62c909acfd7527da256a9413241122",
      "tree": "604db48636694e35f1f60ce41fd3e07542e12cc2",
      "parents": [
        "2cfdc6bed2ae9c1267570537a6a9521d69c2cb05"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Mar 19 16:14:13 2010 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Mar 19 16:16:43 2010 -0700"
      },
      "message": "libutils Condition are now PRIVATE by default\n\nCondition must be initialized with SHARED for the old behavior, where\nthey can be used accross processes.\n\nUpdated the two places android that require SHARED conditions.\n\nPRIVATE conditions (and mutexes) use more efficient syscalls.\n\nChange-Id: I9a281a4b88206e92ac559c66554e886b9c62db3a\n"
    },
    {
      "commit": "82fecb01df67f5e3321618df29079b9ce56a30e4",
      "tree": "28fb3a80711a00d385d75d5e9b78b9a5edd0b096",
      "parents": [
        "080b8a84d98b94984bd3762cb9318f49793476b6"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Mar 09 15:00:30 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Mar 09 17:18:05 2010 -0800"
      },
      "message": "Add ability for some manifest attributes to reference resources.\n\nThis loosens our restriction on many manifest attributes requiring\nliteral string values, to allow various ones to use values from\nresources.  This is only allowed if the resource value does not change\nfrom configuration changes, and the restriction is still in place\nfor attributes that are core to security (requesting permissions) or\nmarket operation (used libraries and features etc).\n\nChange-Id: I4da02f6a5196cb6a7dbcff9ac25403904c42c2c8\n"
    },
    {
      "commit": "2856c5b19a9e62a32a835c84a87a24b324c799fe",
      "tree": "158cbec3bca0103f5c7257d3692eba99f00c039b",
      "parents": [
        "51edc0fb698513719fac2da33f95f521493ca103"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Mar 04 18:41:49 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Mar 05 10:57:47 2010 -0800"
      },
      "message": "Refactor car mode.\n\nExtract all UI behavior from dock observer and ACTION_DOCK_EVENT.\n\nAlso introduce a desk type to go along with the car type all through\nthe resource system, since we now need to have corresponding high-level\nbroadcasts for desk dock mode.  As part of that I also reworked some\nof the logic for switching modes to all funnel through a single\nupdate() call that looks all of the current state to decide what to\ndo next, and fixed various locking issues.\n\nIn addition I found there were bugs in the configuration change\nhandling causing us to only switch into the car mode config and\nthen never get out of it.  Unfortunately now that we are actually\nchanging the configuration for each mode change, the transitions\nbetween them are really crummy as we restart all kinds of\nactivities. :(\n"
    },
    {
      "commit": "8eca036d24f2e7865ab5ccb057b043e2c32b75bf",
      "tree": "c95da74a8ebd8ccb839d9657532a41df906a1eda",
      "parents": [
        "7a0f7e233ac9507d71e4b9c5abf8b8923817aa23"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Mar 01 17:43:39 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Mar 01 20:42:14 2010 -0800"
      },
      "message": "Fix issue #2448075: aapt doesn\u0027t fix up activity-alias android:targetActivity links\n\nAnd related:\n\n- The aapt tool now sets a resource configurations sdk level to match any configs\n  that have been set (for example if you specify density your sdk level will be\n  at least 4).\n- New option to modify the targetPackage attribute of instrumentation.\n- Clean up of aapt options help.\n- Fix of UI type values to leave 0 for \"unspecified\".\n- Make the UI mode config APIs public.\n"
    },
    {
      "commit": "9e333ab42c5ca09632f56cd5d8e5349e06a632b7",
      "tree": "3f9e1b8b26a302f72ebe08468f2fec8ad3a5029a",
      "parents": [
        "fc10cf951a0f12315b96e35a7e8d360748eea302"
      ],
      "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": "98e71ddaede9a0bfb681fd237bec1f66c6c53193",
      "tree": "b99491347832c92e1e5af62d11d3a9baf946dd18",
      "parents": [
        "e4f5055ad281096e5b89c4240be29d2c95a43b65"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Feb 11 17:30:52 2010 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Sun Feb 21 23:27:25 2010 -0800"
      },
      "message": "remove a dependency of GraphicBuffer (libui) on Parcel (libbinder).\n\nAdd a Flattenable interface to libutils which can be used to flatten\nan object into bytestream + filedescriptor stream.\nParcel is modified to handle Flattenable. And GraphicBuffer implements\nFlattenable.\n\nExcept for the overlay classes libui is now independent of libbinder.\n"
    },
    {
      "commit": "0d88e7a8d7c436e8375a749aac77d34eb95356c8",
      "tree": "d3fb3f0d27908fd3185032499f11b109e76743e7",
      "parents": [
        "053c9e928bc8aa569572aea97430a63cb8fdc109"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Feb 12 14:09:24 2010 -0800"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Feb 12 14:37:42 2010 -0800"
      },
      "message": "Totally remove Unicode.cpp and rely on ICU\n\nUnicode.cpp used a packed data table for character data that essentially\nduplicated ICU\u0027s functionality.\n\nChange-Id: Ia68fe4ac94e89dc68d9a3f45f33f6e648a5500b7\n"
    },
    {
      "commit": "196e3207345baa4ba5af93646f2ca1b67a438aeb",
      "tree": "2738aede10416d2418222aa6d611d27fe1e74838",
      "parents": [
        "fe7a18c4e17a179a0f26e139d3eae20393c1a8ae"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Feb 12 13:01:16 2010 -0800"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Feb 12 13:01:16 2010 -0800"
      },
      "message": "Excise code from Unicode.cpp that was dead\n\nRemove some utility functions for discovering character data\nthat ICU probably took over a while ago.\n\nChange-Id: I97abe4de2f51eb2bf48679941258bc501184c3dc\n"
    },
    {
      "commit": "70fa84f6ab15936b265986c507cf00fd2cbf9db1",
      "tree": "a70782e021c85bdd8eccc83b222eff40ae4b2fbc",
      "parents": [
        "6ecdf9757703173153bb993de5dad30e5bd5afff"
      ],
      "author": {
        "name": "Tobias Haamel",
        "email": "haamel@google.com",
        "time": "Tue Feb 09 23:09:17 2010 +0100"
      },
      "committer": {
        "name": "Tobias Haamel",
        "email": "haamel@google.com",
        "time": "Thu Feb 11 21:25:58 2010 +0100"
      },
      "message": "Introduce special UI modes for night and car usage.\n\nThe device mode is now called ui mode. Furthermore is the order of\nprecedence for the resources now in such a way that the ui mode needs\nto be specified after the orientation and before the density.\n\nThe ui mode can be set, like it is done for the locale, as follows:\n\nIActivityManager am \u003d ActivityManagerNative.getDefault();\nConfiguration config \u003d am.getConfiguration();\nconfig.uiMode \u003d Configuration.UI_MODE_TYPE_CAR | Configuration.UI_MODE_NIGHT_ANY;\nam.updateConfiguration(config);\n\nTo allow users to disable the car mode and set the night mode the IUiModeManager\ninterface is used.\n\nThe automatic night mode switching will be added in a separate change.\n"
    },
    {
      "commit": "ccb5b89029ca3f653fbfa32a7b6ed82bf227541c",
      "tree": "e9309127a1fd7077222e8068817bf94829dd2736",
      "parents": [
        "07b4185c7494744d0886115c7d8a6a389210bea3"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Dec 10 14:20:15 2009 -0800"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Dec 10 14:22:08 2009 -0800"
      },
      "message": "Add string resource type inspection\n\nAllows \"aapt dump --values resource\" to print out whether a string in a\nResStringPool is in UTF-8 or UTF-16 encoding.\n\nChange-Id: I6478884a70a3b46fee862dece6cb33454fc34843\n"
    },
    {
      "commit": "eb318fd88d16053010da554ba565eaaf3355a58e",
      "tree": "d7c8601e2d6b708be77335c0a1b151893008b2c0",
      "parents": [
        "ea3ec40a5da415c07569f4c35c516da5e1e8d23e",
        "92f5984d2c2cd73b6b9f68c02c147877d1e2fc46"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Dec 08 13:41:38 2009 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Dec 08 13:41:38 2009 -0800"
      },
      "message": "Merge change I129483f8 into eclair-mr2\n\n* changes:\n  Optional use of UTF-8 strings in resource bundles\n"
    },
    {
      "commit": "8c6cedc9bc9a4b69616a79a95449f6f6b08c7bf1",
      "tree": "b1bbc3748af558bc7a56d7ac4fb96ca059cc845b",
      "parents": [
        "d56352bddd717d2e45f1f3ee7fb52ef7f593f950"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Dec 07 17:59:37 2009 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Dec 07 19:11:14 2009 -0800"
      },
      "message": "Propagate background scheduling class across processes.\n\nThis is a very simply implementation: upon receiving an IPC, if the handling\nthread is at a background priority (the driver will have taken care of\npropagating this from the calling thread), then stick it in to the background\nscheduling group.  Plus an API to turn this off for the process, which is\nused by the system process.\n\nThis also pulls some of the code for managing scheduling classes out of\nthe Process JNI wrappers and in to some convenience methods in thread.h.\n"
    },
    {
      "commit": "92f5984d2c2cd73b6b9f68c02c147877d1e2fc46",
      "tree": "fa3930192e29c22b91af41ba4b20adf4286b2217",
      "parents": [
        "bd3b0114893ed5fc24fd92955f59354b838041e1"
      ],
      "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": "c2a04c3f2df99527e4ad4ca19b2e559df90b4b4d",
      "tree": "2bc191b67fa37b46d7b1a3c540064c91c2ba6a31",
      "parents": [
        "a248b0f5b8b6153b9cf9e09b39f72bc20a5c6908"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sun Nov 01 21:16:59 2009 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sun Nov 01 21:16:59 2009 -0800"
      },
      "message": "Fix issue #2226370: Resource versions match with equality\n\nAlso fixed turned-around increment of version number for resources. :(\n\nChange-Id: I604137272da984bcd69cee4f174e6b7f2c786e46\n"
    },
    {
      "commit": "b5df6d801cc154899e9f52328eb1e40e90720fa4",
      "tree": "91fd9e12967fd772589f6cc084b718a237b9b05b",
      "parents": [
        "f2f2787391cf91c1bc215d159e41c67709c30d6d"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Sep 15 22:50:40 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Sep 15 22:50:40 2009 -0700"
      },
      "message": "Implement issue #1780928: Need support hiding nav keys.\n\nThis implements support for devices whose hardware can hide\ntheir navigation keys.  It works much like the existing keyboardHidden\nconfiguration, and for compatibility uses the same configuration\nchange bit.\n\nAlso add FLAG_TURN_ON_SCREEN for windows, which has the system\ncause the screen to be turned on when the window is displayed.\nGreat fun when used with FLAG_SHOW_WHEN_LOCKED!\n\nChange-Id: I0b867f19af85cfd8786a14cea194b34f7bdd9b7a\n"
    },
    {
      "commit": "c101e04abb2c3bf4f48b185b454e94fade223653",
      "tree": "3af2ae736c8bcab15db8b9c2ef85f7f6046676b5",
      "parents": [
        "7b8ce0127dd40d5a39617204d91de1be6048beb2"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Sat Sep 12 10:10:37 2009 -0700"
      },
      "committer": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Sat Sep 12 10:48:03 2009 -0700"
      },
      "message": "process: Switch to common cutils sched_policy api\n\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n"
    },
    {
      "commit": "9410f98e78622d962b3fb1c520af53d5351a65c5",
      "tree": "a418bc34575e74fbc48bf278058a61a4b2de5f73",
      "parents": [
        "476a3aef5e133756b773f8946251747d26b787f2"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Tue Sep 08 20:28:35 2009 -0700"
      },
      "committer": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Thu Sep 10 15:09:38 2009 -0700"
      },
      "message": "Process: Add support for using scheduler policies instead of cgroups.\nPreference is given to cgroups if available.\n\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n"
    },
    {
      "commit": "4de4ebf6a25b5cf1819809ffcedea331d79823e0",
      "tree": "39c110d7cae1d3690c7454be7b3379dd58ceab80",
      "parents": [
        "454ea681398a23a45e2a9c4f3b12d7c30fec8e3c"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Sep 09 02:38:13 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Sep 09 02:45:26 2009 -0700"
      },
      "message": "use broadcast() instead of signal() when signaling the condition-variable Thread::RequestExitAndWait() is waiting for\n\nwe could have several thread waiting on the condition and they all need to wake-up.\nalso added a debug \"mTid\" field in the class, which contains the tid of the thread (as opposed to pthread_t), this\nis useful when debugging under gdb for instance.\n"
    },
    {
      "commit": "cbb288bfe89f585bf48371bd31b2d4aafa32f32e",
      "tree": "73d20f36910dcab8c17c686cdd7014cee285bc39",
      "parents": [
        "f0780974fc31ae88135d1dcb67cb5fd86bb6deb6"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Sep 07 16:32:45 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Sep 07 16:32:45 2009 -0700"
      },
      "message": "fix [2068105] implement queueBuffer/lockBuffer/dequeueBuffer properly\n\nRewrote SurfaceFlinger\u0027s buffer management from the ground-up.\nThe design now support an arbitrary number of buffers per surface, however the current implementation is limited to four. Currently only 2 buffers are used in practice.\n\nThe main new feature is to be able to dequeue all buffers at once (very important when there are only two). \n\nA client can dequeue all buffers until there are none available, it can lock all buffers except the last one that is used for composition. The client will block then, until a new buffer is enqueued.\n\nThe current implementation requires that buffers are locked in the same order they are dequeued and enqueued in the same order they are locked. Only one buffer can be locked at a time.\n\neg. Allowed sequence:   DQ, DQ, LOCK, Q, LOCK, Q\neg. Forbidden sequence: DQ, DQ, LOCK, LOCK, Q, Q\n\n"
    },
    {
      "commit": "84a6d041e2c69d4d0b69269a0b59e725c9f119a3",
      "tree": "6841d5b1d696e27f66c30ede34c73d30cf5cc5c3",
      "parents": [
        "7f87b14a5b569b5526725fcf2d942156948d064c"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Aug 17 13:33:27 2009 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Aug 17 15:31:25 2009 -0700"
      },
      "message": "Support for marshalling pointers / intptr_t in Parcel.\n\nSome refactoring to eliminate code duplication in Parcel implementation.\n"
    },
    {
      "commit": "878d647b5b77f040cdae810e7e05be23a105e1eb",
      "tree": "d8f23c6bf57d7f57680df75a8eb38201c8f04483",
      "parents": [
        "fac300462060a69dc5aa83b493f8cbdd28ea7d27",
        "f2c6fe29bbfab1db743a3ccce327d3d920643629"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Aug 12 12:36:12 2009 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Aug 12 12:36:12 2009 -0700"
      },
      "message": "am b8546001: Merge change 20878 into donut\n\nMerge commit \u0027b8546001701405a76dad7e6235046e592296fac2\u0027\n\n* commit \u0027b8546001701405a76dad7e6235046e592296fac2\u0027:\n  Fix issue #2048263: More debugging information\n"
    },
    {
      "commit": "e868513287c50caec4bcc83be3c49e12dfbeac72",
      "tree": "6d718266a3587e3ce5f99cf717edb0e02eccd003",
      "parents": [
        "7e78445103b25c05b49d22ecfeb2704215f41010"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Aug 11 18:56:41 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Aug 11 18:56:41 2009 -0700"
      },
      "message": "Fix issue #2048263: More debugging information\n\nWe now hopefully do better about generating the anr reports, and include\ninformation about the malloc loaded assets in meminfo.\n"
    },
    {
      "commit": "ff1dcc2cf9043c4d128cf8498b58e956e9ee965f",
      "tree": "ec026a8c308b3b171dda76f8536f2c4ea5496419",
      "parents": [
        "c76696a27662e6fda2c27fd6fb648ad9ddc78779",
        "62cbdad4011db8081eaf1030b044c10de20a13d3"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jul 30 16:05:27 2009 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jul 30 16:05:27 2009 -0700"
      },
      "message": "am 25dff70f: Merge change 9039 into donut\n\nMerge commit \u002725dff70f153529b87f5ad4a92f4de21e8950b1de\u0027\n\n* commit \u002725dff70f153529b87f5ad4a92f4de21e8950b1de\u0027:\n  Fix #2018814: System cannot correctly render assets with \"wrap_content\" attribute in QVGA\n"
    },
    {
      "commit": "3945ae5065ec62ed267e1aaf4cfc160c5eb6a79e",
      "tree": "09e0a70b87f84d145fb74c607455695488eaf1ac",
      "parents": [
        "d8475b75e6fc33416b892c44136ee9c16f79ed81"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jul 29 15:41:19 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jul 29 19:44:01 2009 -0700"
      },
      "message": "Fix #2018814: System cannot correctly render assets with \"wrap_content\" attribute in QVGA\n\nIt turns out we were not returning the density for anything retrieved from a\nTypedArray...  which basically means any bitmap references from a layout or style...!!!\n\nThis is now fixed.\n\nAlso fiddle with the density compatibility mode to turn on smoothing in certain situations,\nhelping the look of things when they need to scale and we couldn\u0027t do the scaling at\nload time.\n"
    },
    {
      "commit": "351b6f926e06355079669f170a97a729537932ed",
      "tree": "0d779cee2a916404e9c423eb337d4e38d78ab997",
      "parents": [
        "297bde4328124db768b90cd11e38d5e23ca152ba",
        "7a0847196cc33a0f1ee563d2009393c88c618b30"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jul 21 19:03:53 2009 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jul 21 19:03:53 2009 -0700"
      },
      "message": "am 9fc20b0e: Merge change 8126 into donut\n\nMerge commit \u00279fc20b0e381b5fe00b7049ef357c839cd05a33bf\u0027\n\n* commit \u00279fc20b0e381b5fe00b7049ef357c839cd05a33bf\u0027:\n  First pass at reworking screen density/size APIs.\n"
    },
    {
      "commit": "60cde60e89373b03f1c645c51f825c7898f62d9e",
      "tree": "11203fd1998828f47f97f07de1114a0f54790a39",
      "parents": [
        "0e09083649e526196637b5763532418278e10de8"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jul 21 17:46:02 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jul 21 18:28:42 2009 -0700"
      },
      "message": "First pass at reworking screen density/size APIs.\n\nThis changes the names of the directories in aapt, to what you see\nin the list of DpiTest resources.  Also adds a new \"long\" configuration\nfor wide screens, which the platform sets appropriate, and introduces\na new kind of resizeability for not large but significantly larger\nthan normal screens which may have compatibility issues.\n"
    },
    {
      "commit": "89fbf845390322eb486632bae9108191803d4b9e",
      "tree": "2e64185b7d2fb3c7a1e71b59daf5dfab92a28dde",
      "parents": [
        "9d4f889870310bd5399d895867a6bc52c4bdbd49",
        "64feb0889aac117a7f0ff397ba2088cf2b0e7901"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun Jul 19 20:28:49 2009 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sun Jul 19 20:28:49 2009 -0700"
      },
      "message": "am aad0fcc9: Merge change 7783 into donut\n\nMerge commit \u0027aad0fcc9619eb72c18a6afff48ebc9d4011f0f54\u0027\n\n* commit \u0027aad0fcc9619eb72c18a6afff48ebc9d4011f0f54\u0027:\n  Add \"nodpi\" density, and expose a bunch of density-related APIs.\n"
    },
    {
      "commit": "b3e8103538c4a487c20238a2da86159381a688d7",
      "tree": "d96c81afd5836abc2d076af112734bca0f174607",
      "parents": [
        "a596331bd3a95dee8951950219d873c99180470e"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Jul 17 11:13:48 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Jul 17 16:59:08 2009 -0700"
      },
      "message": "Add \"nodpi\" density, and expose a bunch of density-related APIs.\n\nAlso update the DpiTest app to use nodpi images, and try to have a mode\nwhere it turns off compatibility though it\u0027s not quite working.\n"
    },
    {
      "commit": "eb9fd685f8c02384305d57d17b1bca428c7b2dd9",
      "tree": "c51aec2db43e9c53229feed8f532a1703863f68c",
      "parents": [
        "b8eccd86603448a618978a92727a9b948d9f62ed"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Jul 13 21:59:37 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Jul 13 22:06:36 2009 -0700"
      },
      "message": "add a ctor to Mutex to specify the type, which can be shared. This is used by sf and af an soon will allow some optimization in the kernel for non shared mutexes\n"
    },
    {
      "commit": "ec0f1f6720cd7ecffab54b0dfc2553b55a38e50f",
      "tree": "58c51e2660462c6573f8a18e47b41f2460d5d1ea",
      "parents": [
        "98b34b3fffe50e8e4e62d76631c79edaa0b28b70"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Sun Jul 12 23:11:20 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Jul 13 15:14:23 2009 -0700"
      },
      "message": "implement Mutex and Condition with pthread instead of calling futex directly.\n\ninternally pthread uses futex. the implementation consists of simple inlines\nthere are no implementation files anymore.\n"
    },
    {
      "commit": "1b85080b2a5a3199d5c335ced779d52c813595ac",
      "tree": "a1703c652bba12b59d3a418df663bf4cd1ba5050",
      "parents": [
        "06e30d949eef2f849c62fbacdf6683f141492b9b",
        "0d5eee378489cee3f69c38fb5e039441518cb7af"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jul 09 12:48:56 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Jul 09 12:48:56 2009 -0700"
      },
      "message": "am 8a715b4b: Merge change 5510 into donut\n\nMerge commit \u00278a715b4b791db4390d12e0ded02280592634a424\u0027\n\n* commit \u00278a715b4b791db4390d12e0ded02280592634a424\u0027:\n  Add useful functions to String8, which enables users to convert between UTF-8 and UTF-32\n"
    },
    {
      "commit": "9f220247f64d7db8a36532851cff087f5a6e4070",
      "tree": "d76583dc0ed65ba846f9570f5473902bc910c7a4",
      "parents": [
        "820fe3c750b2b70202f35b91dfa370f0a61e05d5"
      ],
      "author": {
        "name": "Daisuke Miyakawa",
        "email": "dmiyakawa@google.com",
        "time": "Tue Jun 30 20:40:42 2009 +0900"
      },
      "committer": {
        "name": "Daisuke Miyakawa",
        "email": "dmiyakawa@google.com",
        "time": "Thu Jul 09 09:06:13 2009 +0900"
      },
      "message": "Add useful functions to String8, which enables users to convert between UTF-8 and UTF-32\nIt will be used in SQL functions in external/sqlite/android.\nSee https://android-git.corp.google.com/g/Gerrit#change,5511 for example.\n\nRelated internal bug id: 1707173\n"
    },
    {
      "commit": "f460f19510f9119d7b441403f8f6ba0b7f5fc267",
      "tree": "19c0adcfcd1ad563a062f4e4753bb263ad5f8438",
      "parents": [
        "f6476d6967e3e5c46e1ea1e5096c31ad0fd528d1"
      ],
      "author": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Tue Jul 07 10:01:12 2009 -0700"
      },
      "committer": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Tue Jul 07 10:01:12 2009 -0700"
      },
      "message": "Fix sim build.\n\nLooks like older gcc (4.1.x) doesn\u0027t properly handle templated\nfanciness.  Apparently that\u0027s what we have on the build server.\n"
    },
    {
      "commit": "0f7f88db2771ec6b08df1354f1d85290f93227d5",
      "tree": "63ed23a46b8a32f1f21c734cd430fc88033dc925",
      "parents": [
        "af54ab9d889c574b44786e81696e47bdbc9dffd4",
        "d1d016be5fefc74977b4fe71c0166f7fd5b1172a"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Jul 06 14:16:55 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Jul 06 14:16:55 2009 -0700"
      },
      "message": "Merge commit \u0027goog/master\u0027 into merge_master\n"
    },
    {
      "commit": "1a16ea88edefc0d80126090f7ad239dbf5231751",
      "tree": "430cee5364aa7c0e970184d5d7a14462c196cb3e",
      "parents": [
        "893ad7ed50c3eb1d0120c901dba516fc79e51deb",
        "71de29ce124d00a8b3f3b3556820532778d96903"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jul 06 14:10:36 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Mon Jul 06 14:10:36 2009 -0700"
      },
      "message": "am 991eec03: Merge change 6252 into donut\n\nMerge commit \u0027991eec03a73f8803d0f8c80b418480ea25293cfb\u0027\n\n* commit \u0027991eec03a73f8803d0f8c80b418480ea25293cfb\u0027:\n  Don\u0027t re-parse the framework resources all the time.\n"
    },
    {
      "commit": "0f253efba5552db81bf942705b1e5525fc1f0c90",
      "tree": "f1c043150036981385e5e7d2f70a6451e8d26bd1",
      "parents": [
        "88008f1955ba005fbe4936e54758aedfffbe37b0"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Jul 06 11:07:40 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Jul 06 11:12:37 2009 -0700"
      },
      "message": "Don\u0027t re-parse the framework resources all the time.\n\nA small optimization to the resource code, to not re-parse the framework\nresources every time we build a new AssetManager.  Instead, you can now\nconstruct a ResTable from a previously created one...  of course, like the\nexisting code for using the data in-place, you can\u0027t delete the original\nResTable until you have deleted the one that has been constructed from it.\n"
    },
    {
      "commit": "47a1a39ce9422c6468c0bd87c121658f385d2d8f",
      "tree": "f361aa77d7e5e7a4c611a1f04eaf8a8a9ef01175",
      "parents": [
        "49a09200fcfd7f32f1b689395b54fe5238aad684",
        "faeef8ede670c2c51f97c0a331551e2a0db3d5f9"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 01 22:43:58 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Jul 01 22:43:58 2009 -0700"
      },
      "message": "am 6e1647a2: Merge change 5829 into donut\n\nMerge commit \u00276e1647a212317f4ee8bcc23948b6621a59172954\u0027\n\n* commit \u00276e1647a212317f4ee8bcc23948b6621a59172954\u0027:\n  Fix issue #1673793: Theme styles don\u0027t apply.\n"
    },
    {
      "commit": "84d1f7a09827fe195dd08b647b8c5092d03516f7",
      "tree": "3ae98a01683005e0fd44a5ca58d9cb453172157e",
      "parents": [
        "2dd6727c46120f2164f7ac447281f485ece9bc72",
        "9ff0fe07b6a93c1dbf967298dbba50e136bc4162"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jul 01 18:33:18 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jul 01 18:33:18 2009 -0700"
      },
      "message": "Merge commit \u0027goog/master\u0027 into merge_master\n"
    },
    {
      "commit": "e3562924674927d6faf85fb4adf522b6fa80f140",
      "tree": "f326a981ceb776e5ce452dece47ae575b6dd1eab",
      "parents": [
        "3c65483b327a80caf5398b3fd49d9afded1b41b2"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jun 30 13:27:30 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jun 30 13:27:30 2009 -0700"
      },
      "message": "Fix issue #1673793: Theme styles don\u0027t apply.\n\nIt turns out this was not a problem in the resource code at all.  Rather,\nthe system process has a cache of pre-loaded attributes it uses to avoid\ncontinually reloading things as it needs them.  Well it turns out this\ncache wasn\u0027t flushed after a package was uninstalled or a configuration\nchanged, so you could re-install an app where you change its style resources\nso its theme now points to one that is inconsistent in the cache.\n\nThis is mostly a problem for developers, where they continually install\nnew versions of an app where resources have changed.  This could possibly\nshow up when updating an app on a normal phone, although the problem would\neventually correct itself since this cache uses weak references.\n\nAnyway, the cache is now reworked to be flushed appropriately.\n\nThis change also includes an update to aapt to be able to dump the\ncontents of bags in resources.\n"
    },
    {
      "commit": "b9c8a7349671ed003f40f70412ed0bbacab90931",
      "tree": "2b844d47e2f1ae943a3ab7b4e75bb266d7ad55bc",
      "parents": [
        "1e10e6434b7cb9e119992ce3b9c712091812e9d1",
        "899543b030082ffb034d85943a1635b9b4b84f8c"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jun 29 16:37:17 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Mon Jun 29 16:37:17 2009 -0700"
      },
      "message": "am 72eb0aca: Merge change 5483 into donut\n\nMerge commit \u002772eb0acad5cffc57ce5006f6deab29ee259e461e\u0027\n\n* commit \u002772eb0acad5cffc57ce5006f6deab29ee259e461e\u0027:\n  Expand support for different screen sizes.\n"
    },
    {
      "commit": "21342c5c19c1768fe98a30155bfa97fa4138dc80",
      "tree": "37ffbb81e46542c2387e96be46ec5a2a1a9952b6",
      "parents": [
        "955a6690f49e670ef0e03857f118f1ce79ace91e"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jun 25 19:48:04 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Jun 26 13:37:05 2009 -0700"
      },
      "message": "Expand support for different screen sizes.\n\nApplications can now declare that they support small, normal, or\nlarge screens.  Resource selection can also be done based on these\nsizes.  By default, pre-Donut apps are false for small and large,\nand Donut or later apps are assumed to support all sizes.  In either\ncase they can use \u003csupports-screens\u003e in their manifest to declare\nwhat they actually support.\n"
    },
    {
      "commit": "694fcc5d1d3505c034a2cb89b6150214e7cea0fd",
      "tree": "f6227f22f57d9d1d5fe0d82edc2fc75ba3c9dd20",
      "parents": [
        "39e0745497bfe09b251ce57c41717b382d328b5c",
        "a54d053e79794f4fde5508eae0fdd792e08a31db"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 25 15:11:09 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Jun 25 15:11:09 2009 -0700"
      },
      "message": "am c44989d6: Merge change 5350 into donut\n\nMerge commit \u0027c44989d6c7bcc761fb37f54fd37aac2070ba8e5e\u0027\n\n* commit \u0027c44989d6c7bcc761fb37f54fd37aac2070ba8e5e\u0027:\n  move ui/Time.cpp to core/jni, since this is the only place it is used\n"
    },
    {
      "commit": "a8664df810ad46ce33c0ea28d4e648c067112db8",
      "tree": "53c63e4eb2709b2100586f1a13118a4e750824fa",
      "parents": [
        "d654ae6d7eadd919b8e5983fabd3e60c9e04bdf5"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jun 24 23:12:06 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Jun 25 14:39:56 2009 -0700"
      },
      "message": "move ui/Time.cpp to core/jni, since this is the only place it is used\n"
    },
    {
      "commit": "4c4b387afb2e775fcac3b81a249bb7646515dffa",
      "tree": "893af3f7521ad4aa204449dc58132b21177e41fb",
      "parents": [
        "2e123245811a1f31c080a29728fcc1655045f011",
        "6ebed6600464d507a651d99792baa3a23a4f0766"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jun 24 18:31:21 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jun 24 18:31:21 2009 -0700"
      },
      "message": "merge master in master_gl\n"
    },
    {
      "commit": "6ef6895b03881d565643077c5d86591c5a3f4951",
      "tree": "e6768fdce462c506c237caeddf7e6febdb171106",
      "parents": [
        "21c7d43004d4bef58848f2da8232a96b1569b474",
        "b6ab1e901092072ca9a933a6eff2bcb9969cdc4b"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 24 15:45:20 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Jun 24 15:45:20 2009 -0700"
      },
      "message": "am df65b60c: Merge change 5243 into donut\n\nMerge commit \u0027df65b60ce33e5a56815864f8f0713e25378fa649\u0027\n\n* commit \u0027df65b60ce33e5a56815864f8f0713e25378fa649\u0027:\n  Only report \"unknown metadata\" once per restore helper\n"
    },
    {
      "commit": "bd95c1d3af82e329ada195876348383b7859ce85",
      "tree": "4cec70ab5bc29efff8cfaaabcf36db4f8a7ae6e2",
      "parents": [
        "6441a76b2ed24eddcadc6a0763dd674c3aa38c46"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Wed Jun 24 13:57:29 2009 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Wed Jun 24 13:57:29 2009 -0700"
      },
      "message": "Only report \"unknown metadata\" once per restore helper\n\nAlso removes the auto-free object, replacing it with direct memory manipulation.\n"
    },
    {
      "commit": "2d1db86e4587a919742c2f18223f7cf408263f7d",
      "tree": "1aec243aede8da34f70387b98618aed1e3a36830",
      "parents": [
        "a69409d45f06b229e39279c9f5e0f5f7687feec9",
        "ab2e9e81e187d427b22ac969f47900d3de041264"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Tue Jun 23 13:28:41 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Jun 23 13:28:41 2009 -0700"
      },
      "message": "am 11b15779: Add file mode to the file-backup saved state blobs\n\nMerge commit \u002711b157790234d3d2f116ce4c7ed1d3d00fb78bc3\u0027\n\n* commit \u002711b157790234d3d2f116ce4c7ed1d3d00fb78bc3\u0027:\n  Add file mode to the file-backup saved state blobs\n"
    },
    {
      "commit": "ab2e9e81e187d427b22ac969f47900d3de041264",
      "tree": "8e455d00eed9db3596d4c0cbe5ff3e72624e43d4",
      "parents": [
        "e9107fd74515b46f774aa31f391dceeaeff887d3"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Tue Jun 23 13:03:00 2009 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Tue Jun 23 13:07:47 2009 -0700"
      },
      "message": "Add file mode to the file-backup saved state blobs\n\nThis change puts the file\u0027s access mode into the saved-state blob used by the\nfile backup helpers.  The tests have been updated for the new blob content\nformat.\n\nWhat this change *doesn\u0027t* do is actually backup/restore the file mode.  This\nchange is a prerequisite for that, but mode preservation in backup/restore will\nrequire adding metadata to the backup data stream itself, so will be approached\na bit more carefully.\n\n(Also fixed one outright bug in the test program: ReadEntityData() had been\nchanged to return a ssize_t union of either a byte-count or a negative number\nindicating error, but the test program was still assuming that nonzero \u003d\u003d error,\nand was spuriously failing.)\n"
    },
    {
      "commit": "d056f2d08771091b100bed8cb36946dfc421de24",
      "tree": "36fb624e6c26040ea228803055cb143a282f8f9a",
      "parents": [
        "fe3c1e0ba0d7bee05da75104cf44c104c5329448",
        "cfb991d1f860e5233d383a40967b252793677469"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jun 22 14:03:17 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Mon Jun 22 14:03:17 2009 -0700"
      },
      "message": "am 72be4049: Merge change 4910 into donut\n\nMerge commit \u002772be40490951d3f9d0ada16fcf5288d0c3306d88\u0027\n\n* commit \u002772be40490951d3f9d0ada16fcf5288d0c3306d88\u0027:\n  fix warnings that will show up with GCC 4.4 (in master)\n"
    },
    {
      "commit": "cfb991d1f860e5233d383a40967b252793677469",
      "tree": "a941930f1aaf211eb032a6cd0f5788c8ec71fc12",
      "parents": [
        "7412caaa8c7f43256155df216be70177919c81ec",
        "52ed26a78b77e559555622a006f888a70cd84a0a"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jun 22 14:01:25 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jun 22 14:01:25 2009 -0700"
      },
      "message": "Merge change 4910 into donut\n\n* changes:\n  fix warnings that will show up with GCC 4.4 (in master)\n"
    },
    {
      "commit": "2a84f2e369e144ff1fbd6eb0867ebaa608bfaf6a",
      "tree": "50f63e5a92db342520afa6f6fb28c4067f39dbba",
      "parents": [
        "924852ec65b1f791869bec34aac4c1981cd0e89e",
        "2e69f210fd7a9cd0466defa78ae9e5920d29c26f"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jun 22 13:20:31 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Mon Jun 22 13:20:31 2009 -0700"
      },
      "message": "am 856dd8a6: Merge change 4952 into donut\n\nMerge commit \u0027856dd8a60a70a5b7dca2bf2114872ce063e2ad60\u0027\n\n* commit \u0027856dd8a60a70a5b7dca2bf2114872ce063e2ad60\u0027:\n  Helper API cleanup.  Allows multiple helpers to function,\n"
    },
    {
      "commit": "9cda3e02c6154422abec1c3215b93cc6bb70d76a",
      "tree": "1ee13094dcc54121c3c1096d0ec0b9540813e941",
      "parents": [
        "292ae4f642709eb42974d9c1a26ab80921518c54"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Thu Jun 18 20:10:37 2009 -0700"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Mon Jun 22 13:02:24 2009 -0700"
      },
      "message": "Helper API cleanup.  Allows multiple helpers to function,\nbecause they\u0027ll always go in the same order, and this lets\nus not have to write headers to keep them paired.\n"
    },
    {
      "commit": "52ed26a78b77e559555622a006f888a70cd84a0a",
      "tree": "f195b8e67b014890ab40ed3fa262ac85f8130cd9",
      "parents": [
        "5fff2075c4de0d2abbcc1af8ccfa13fcfbc0b8e1"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Jun 22 02:35:32 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Jun 22 02:35:32 2009 -0700"
      },
      "message": "fix warnings that will show up with GCC 4.4 (in master)\n"
    },
    {
      "commit": "5f28411a856e47f86e3b0c7c031a6c0e0fa1dba0",
      "tree": "03fa00a09e37bcd669832a39fcf8a2dacd1a2260",
      "parents": [
        "8e56914aab569c58a2942ef11c732f469109bb24"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Jun 22 01:17:46 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Jun 22 02:31:07 2009 -0700"
      },
      "message": "improve Vector\u003c\u003e with types that can be trivially moved and remove some unused code.\n\nThis optimization applies to sp\u003c\u003e and wp\u003c\u003e which should now perform about the same as regular pointers when placed in to Vector\u003c\u003e.\n"
    },
    {
      "commit": "cca6b4267d2e3910b9808aa45e69206e06ef353e",
      "tree": "e4e3dfc9a0ef163099ab30cba0d202eb73578f0e",
      "parents": [
        "f9d932774e06d5122c48b47d8cabd791783f56d2",
        "f84dda74d51258b28a8b17a22544d9984dfeb05b"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Jun 19 17:41:14 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Jun 19 17:41:14 2009 -0700"
      },
      "message": "Merge commit \u0027goog/master\u0027 into merge_master\n"
    },
    {
      "commit": "03428fcc8bfb43968f9e9cbd3c6c1fd23290439b",
      "tree": "09daf4c8be976298969439ab8c987d4641ead3b4",
      "parents": [
        "f5702d01b9a7ded2e935374b27002ac2a32fb502",
        "4018f35e274e5c8c005623ac3f724686dc8299d3"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jun 19 16:44:07 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Jun 19 16:44:07 2009 -0700"
      },
      "message": "am 1585bd24: Merge change 4828 into donut\n\nMerge commit \u00271585bd24c10d16351f89e32dddbfa799f18db6bd\u0027\n\n* commit \u00271585bd24c10d16351f89e32dddbfa799f18db6bd\u0027:\n  Report densities in badging, debugging for nine patch bug.\n"
    },
    {
      "commit": "be1bc0a1f969dd874d4a4d10c70f8d585b21a214",
      "tree": "b6e168923feee89f7e50bc16d2d0683d418ea1f7",
      "parents": [
        "03868d319572696939368207d7caec014feaf38f"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Jun 19 15:13:28 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Jun 19 15:13:28 2009 -0700"
      },
      "message": "Report densities in badging, debugging for nine patch bug.\n\nThe aapt tool now reports all available densities like it already did\nfor locales.  Also this includes more resource data output, which I\nwas using to examine bug #1867049 (which at this point I am unable to\nreproduce).\n"
    },
    {
      "commit": "4910dc62561c90c75d953a04f75b31f16e0c0e9c",
      "tree": "4244157c729b78b8900cf455a2f274905fa317e2",
      "parents": [
        "0388b513418f0e1eb45bcb554f866e160cd475da",
        "c62834b9faafdccc56439bdb62a63ffcdfbcb4c4"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 18 19:04:56 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Jun 18 19:04:56 2009 -0700"
      },
      "message": "am 5502f04c: Merge change 4709 into donut\n\nMerge commit \u00275502f04c1dcf2b1918858bacb99fb0480a711707\u0027\n\n* commit \u00275502f04c1dcf2b1918858bacb99fb0480a711707\u0027:\n  backup stuff\n"
    },
    {
      "commit": "0388b513418f0e1eb45bcb554f866e160cd475da",
      "tree": "eb5e1caf7ffc8478dc0d2de23e8993f1cb71613b",
      "parents": [
        "bb4818d155a2797a34f2a557a6bc21794ebcf5fc",
        "1c5550974f75ff455175e390b8b3b7f49ac7ff75"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 18 19:04:50 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Jun 18 19:04:50 2009 -0700"
      },
      "message": "am 16ce3504: Merge change 4708 into donut\n\nMerge commit \u002716ce3504c5bf98d95d5c36001f755bb4b15253c9\u0027\n\n* commit \u002716ce3504c5bf98d95d5c36001f755bb4b15253c9\u0027:\n  Make RestoreHelper and friends also write out the snapshot state.\n"
    },
    {
      "commit": "6bda7fd5564a1a88daef7a00890b3eaa191b8854",
      "tree": "0bdda15863c0e050672738f8acb819ef7fb2e2c1",
      "parents": [
        "da1430be269b2b20920b6cb27616f54e2b83a973"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Thu Jun 18 18:23:43 2009 -0700"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Thu Jun 18 18:41:11 2009 -0700"
      },
      "message": "backup stuff\n"
    },
    {
      "commit": "da1430be269b2b20920b6cb27616f54e2b83a973",
      "tree": "a262f22df1bf4797e25bfe2209416dbcfe465f1b",
      "parents": [
        "fa1cf39b803d71ac22af606ce0dd9dd81d512325"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Thu Jun 18 13:11:18 2009 -0700"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Thu Jun 18 18:41:11 2009 -0700"
      },
      "message": "Make RestoreHelper and friends also write out the snapshot state.\n"
    },
    {
      "commit": "00ea06792b76f30b7e1ee450f0915edb5df75e42",
      "tree": "be4ebf3ab853ee4af8dbc003607f1f779459c740",
      "parents": [
        "14b8f4ccc671a5cbac4a91b9f167f9ccaffb5eba",
        "e272cd8e4cd7f695c1f368e6cd995f37efa3e3c3"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 17 21:49:21 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Jun 17 21:49:21 2009 -0700"
      },
      "message": "am de72697b: Merge change 4524 into donut\n\nMerge commit \u0027de72697b771d33738c5f9d6c28087504e0796622\u0027\n\n* commit \u0027de72697b771d33738c5f9d6c28087504e0796622\u0027:\n  FileRestoreHelper and RestoreHelperDispatcher work.\n"
    },
    {
      "commit": "f509f669cfde367b4591b027d95512accbd2ccef",
      "tree": "62ca6fc3dcb6c4e2f005d95422ec32a59cb1cca5",
      "parents": [
        "74b00231cc0ecca02a76cf7d2ee20db05fa2309e"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Wed Jun 17 16:20:55 2009 -0700"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Wed Jun 17 16:20:55 2009 -0700"
      },
      "message": "FileRestoreHelper and RestoreHelperDispatcher work.\n"
    },
    {
      "commit": "f757bd07108267d37a7944353d2cf2a40d68e115",
      "tree": "93f20b722f646402831336429999e8603aed6afb",
      "parents": [
        "ae13d759db51d5d31cffc632570fb262ae56508d",
        "03aa8d7d04428b9c7981f9bada5acf1e808b0056"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Wed Jun 17 15:38:08 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Jun 17 15:38:08 2009 -0700"
      },
      "message": "am 5f15d151: checkpoint BackupDatAInput / RestoreHelper\n\nMerge commit \u00275f15d151b5101fadfe6cba1e8f4aa6367e8c603e\u0027\n\n* commit \u00275f15d151b5101fadfe6cba1e8f4aa6367e8c603e\u0027:\n  checkpoint BackupDatAInput / RestoreHelper\n"
    },
    {
      "commit": "03aa8d7d04428b9c7981f9bada5acf1e808b0056",
      "tree": "a1a5e71e6912eb35a5cf10d1a0fe5b156bcd82da",
      "parents": [
        "4d86bc379151050bf6b76da54b683cab7afff00e"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Tue Jun 16 16:31:35 2009 -0400"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Tue Jun 16 18:46:50 2009 -0700"
      },
      "message": "checkpoint BackupDatAInput / RestoreHelper\n"
    },
    {
      "commit": "b6822d7a3ea86b729a8c716a5fc9ad7a02532bfe",
      "tree": "ff13fe6883ce554cd7266dc38cd3e8ad4886630a",
      "parents": [
        "375f56363a8737119ce2222dcfaacbe1cf733fc0",
        "ecbcd559f027ca6e7c6c8c9df3cafe8f09588f7d"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Jun 16 12:38:55 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Jun 16 12:38:55 2009 -0700"
      },
      "message": "Merge commit \u0027goog/master\u0027 into merge_master\n"
    },
    {
      "commit": "a08c7b6759075c3076e6f2c52df71dd7da894c15",
      "tree": "d722056a833b931e1c63195cd552c3d83f1db078",
      "parents": [
        "854e909cac151233d254d2389a2d0fe488eff717",
        "fcff1ffa541e0076df6adeb437ba79bb4c3fa35d"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jun 12 08:26:05 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Jun 12 08:26:05 2009 -0700"
      },
      "message": "am 78f0f8cb: Merge changes 3953,3954 into donut\n\nMerge commit \u002778f0f8cb2efe9410127c39201e240f6d438eb53c\u0027\n\n* commit \u002778f0f8cb2efe9410127c39201e240f6d438eb53c\u0027:\n  Make the file backup helper not crash if a file you requested\n  Fix SharedPrefsBackupHelper so it doesn\u0027t hard code the paths to the files.\n"
    },
    {
      "commit": "1a9e19a73e12f5e4891557de64cab5b9b7ae1ac5",
      "tree": "a8ac144dc38834a992ff8a07fed46a51755ba8a1",
      "parents": [
        "0ad6120dadc1665f394e73330d30e949066c77e1"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Thu Jun 11 11:27:16 2009 -0700"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Thu Jun 11 14:51:45 2009 -0700"
      },
      "message": "Make the file backup helper not crash if a file you requested\ncan\u0027t be stated.  This means you don\u0027t need to know if the files\nyou are backing up exist or not -- we\u0027ll figure it out for you.\n"
    },
    {
      "commit": "0ad6120dadc1665f394e73330d30e949066c77e1",
      "tree": "2bdfbd1b67328716af81e2dd8ec37cc41690c249",
      "parents": [
        "67182a34f0268dcda9442f0a211f88e12626aa3b"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Wed Jun 10 17:07:15 2009 -0700"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Thu Jun 11 11:29:57 2009 -0700"
      },
      "message": "Fix SharedPrefsBackupHelper so it doesn\u0027t hard code the paths to the files.\n\nThis took quite a bit of refactoring.\n"
    },
    {
      "commit": "1a0c4cd5d83facd9653c45db1d2b9725c2e060b0",
      "tree": "afe90f777b212eb54b54ac09f88c5d482dbf0945",
      "parents": [
        "0c97ed3a2ecc4a5b49bfb26674a9f4a5ac361024",
        "4fcd9c700368f08117aa1e2264f56eeb6b8af832"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Jun 05 15:45:39 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Jun 05 15:45:39 2009 -0700"
      },
      "message": "Merge commit \u0027goog/master\u0027 into merge_master\n"
    },
    {
      "commit": "4fcd9c700368f08117aa1e2264f56eeb6b8af832",
      "tree": "210a453c29ea11b03a0e1b08850cb3c1ac83785d",
      "parents": [
        "32ca56e23b8f14748421dcd678da244b4a05aef7"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Jun 05 15:11:23 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Jun 05 15:11:23 2009 -0700"
      },
      "message": "get rid of LogSocket which wasn\u0027t even implemented (enabled)\n"
    },
    {
      "commit": "7e83f043d9c7afc42b632aa9567ecc17e901068c",
      "tree": "dd7065f0a211813617e7d392f3b17af2030082c3",
      "parents": [
        "25cf68b1f8d79192e6ce08ad73ac4e561860a96c"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Jun 05 14:56:35 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Jun 05 14:56:35 2009 -0700"
      },
      "message": "break dependency on utils/ZipEntry.h and utils/ZipFile.h, get rid of inet_address.h and Socket.h which were not used\n"
    },
    {
      "commit": "861aa2f0c9136298380496bd78d6a18e69331c53",
      "tree": "27e1508d0451bc6c93d191cb81d8910836a3c4b0",
      "parents": [
        "6fb4be4f76e2c784d1fab76eca742d2f90507540"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Jun 05 01:26:23 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Jun 05 01:26:23 2009 -0700"
      },
      "message": "rename string_array.h to StringArray.h and move the implementation from the header file to a new cpp file.\n\nStringArray is used in two places in framework/base and in the Sim. Ideally we should get rid of it and use Vector\u003cString8\u003e instead of creating new code.\n"
    },
    {
      "commit": "0c97ed3a2ecc4a5b49bfb26674a9f4a5ac361024",
      "tree": "6dd0377a829e6e53f79f4a4831913ee907b35231",
      "parents": [
        "3d57964a81cd631d80aa9575647e1ce35b5e82d5"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Jun 04 23:29:29 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Jun 04 23:29:29 2009 -0700"
      },
      "message": "cleanup Debug.h a bit\n"
    },
    {
      "commit": "6d2bc14d2420689d9789fadc3058bfc1191a8e72",
      "tree": "c369a5ee2db4cf277eab898bfd1322c7fe886583",
      "parents": [
        "cd1a14fdfb5e7cd736e346229727081c45c59d0f",
        "e0074ad3cea369497f9a8a5b1ad2a81a293f1169"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 04 22:44:18 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Jun 04 22:44:18 2009 -0700"
      },
      "message": "am 2a318867: Merge change 3203 into donut\n\nMerge commit \u00272a3188672ab2b65c0ce7c9c598a463e382c47696\u0027\n\n* commit \u00272a3188672ab2b65c0ce7c9c598a463e382c47696\u0027:\n  rename a few files to camel-case, add copyright notices\n"
    },
    {
      "commit": "f446ba9dcb7df59f886be2f15d83ed3814a556f7",
      "tree": "56fef80823c51f03029cf3cf154ec431fa951443",
      "parents": [
        "b2d4ba5bb25c7cfe5c81ebd16b124db328d0d735"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Jun 04 13:53:57 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Jun 04 13:53:57 2009 -0700"
      },
      "message": "rename a few files to camel-case, add copyright notices\n"
    },
    {
      "commit": "6457359fa5df7869d5881acee80b34dfc760a5bf",
      "tree": "ef8f648559e4bb622173959721c6e24c05a19a58",
      "parents": [
        "e839d826804b36b86839cb4c080f2541e9977438",
        "d23399d0fffcc87bb1f7b56c246fc696cbb6fb89"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Jun 01 14:30:08 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Jun 01 14:30:08 2009 -0700"
      },
      "message": "Merge commit \u0027goog/master\u0027 into merge_master\n"
    },
    {
      "commit": "c6a5a5183b2a3b42285aba68b1c76291ac569a91",
      "tree": "1f146c06cc23423086c8f91530c2da68da20b78e",
      "parents": [
        "b20e25a624da84cdc610c2c65ede326afff83dcd"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Jun 01 13:59:42 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Jun 01 14:06:02 2009 -0700"
      },
      "message": "move utils/Pipe.h to the simulator\n"
    },
    {
      "commit": "294423e148c62b413788945be00cedde3cb3acec",
      "tree": "1f4cc3035a7ee6aa1c73b12d440aa5568f800638",
      "parents": [
        "3b7294521fae1a3075a112e0e3bd315cfe0155df"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Jun 01 13:55:28 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Jun 01 13:55:28 2009 -0700"
      },
      "message": "get rid of TimerProbe which is never used\n"
    },
    {
      "commit": "1bc9c93faff43eeffe61fc371674159da83f1690",
      "tree": "f997ea48f9a576dd9e61b8ad98c420694147a96c",
      "parents": [
        "ad736fb1658b2a96530c518ade7cf44ee6f088f9"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Sun May 31 23:29:06 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Sun May 31 23:45:01 2009 -0700"
      },
      "message": "get rid of sleepForInterval() which didn\u0027t seem to be used anywhere in the source tree. Also get rid of ported.h which seem to be used only (possibly) in the sim. moved the implementation there.\n"
    },
    {
      "commit": "e0c322049ab2be291c1fc40f79702543d4e77934",
      "tree": "e3e672f4f4fdd72b465cc0f39fb95c7711814122",
      "parents": [
        "d07f2a523f43051a681683657f7c0da2c49f46a4"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Sun May 31 19:13:00 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Sun May 31 19:13:00 2009 -0700"
      },
      "message": "get rid of utils.h\n"
    },
    {
      "commit": "d07f2a523f43051a681683657f7c0da2c49f46a4",
      "tree": "0fc8fa94f88ce0ff6a45885860d1cd9f1d012494",
      "parents": [
        "8ae930e70693e6117d1f45c9958ec2700845f919"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Sun May 31 18:49:44 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Sun May 31 18:49:44 2009 -0700"
      },
      "message": "get rid of utils/executablepath.h, which now lives in the simulator\n"
    },
    {
      "commit": "0669fbb12a89c80b4cbb64e91fd3110c2965a20f",
      "tree": "ceaa253840f98e73cc3f132ce34e239efd891075",
      "parents": [
        "1c4ec71612bae05467fedbbebce37f5330a2b18c"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu May 28 12:31:31 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu May 28 12:31:31 2009 -0700"
      },
      "message": "force explicit instantiation of Singleton\u003c\u003e objects\n"
    },
    {
      "commit": "723ec00af46d1f95d69fe5af53e0a5d09f01a7d6",
      "tree": "ef596c117b8f11f8025770c52baeac04b2e4551a",
      "parents": [
        "310f8da0c3122ed5419db8f12a6e98d3188325b2",
        "39afd5f7daaa525adaf38caf4a48d2cb22e0a41d"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed May 27 14:34:50 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed May 27 14:34:50 2009 -0700"
      },
      "message": "Merge commit \u0027goog/master\u0027 into merge_master\n\nConflicts:\n\tinclude/ui/Rect.h\n\tlibs/ui/ISurfaceComposer.cpp\n"
    },
    {
      "commit": "83c0446f27b9542d6c2e724817b2b2d8d1f55085",
      "tree": "a5a1a310070cad89ee8aaa86d3b1b874f9d29610",
      "parents": [
        "5f2397488ab700674d059a001e917de28a1b0a0c"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri May 22 19:00:22 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue May 26 16:12:20 2009 -0700"
      },
      "message": "some work to try to reduce the code size of some native libraries\n\n- make sure that all binder Bn classes define a ctor and dtor in their respective library.\n  This avoids duplication of the ctor/dtor in libraries where these objects are instantiated.\n  This is also cleaner, should we want these ctor/dtor to do something one day.\n\n- same change as above for some Bp classes and various other non-binder classes\n\n- moved the definition of CHECK_INTERFACE() in IInterface.h instead of having it everywhere.\n\n- improved the CHECK_INTERFACE() macro so it calls a single method in Parcel, instead of inlining its code everywhere\n\n- IBinder::getInterfaceDescriptor() now returns a \"const String16\u0026\" instead of String16, which saves calls to String16 and ~String16\n\n- implemented a cache for BpBinder::getInterfaceDescriptor(), since this does an IPC. HOWEVER, this method never seems to be called.\n  The cache makes BpBinder bigger, so we need to figure out if we need this method at all.\n"
    },
    {
      "commit": "310f8da0c3122ed5419db8f12a6e98d3188325b2",
      "tree": "0f3435d35e7fe8fca8dc2b347ff46276a8c351c8",
      "parents": [
        "20f68782a4ea71c6a977d7f87d8288d3daa265ec",
        "bdbf6b094d61f694f162a5a5279caededcb1f0a5"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri May 22 01:27:01 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri May 22 02:16:08 2009 -0700"
      },
      "message": "merge master to master_gl\n"
    },
    {
      "commit": "53f6f3c7998fca1a7e1eb277d0ee0fc556be3f35",
      "tree": "6c724b8ae809dd67cc52262441562c84aaec016a",
      "parents": [
        "e55a957bdf9e8cd0968d5652378b74cfb9625cd9"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed May 20 14:33:23 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed May 20 14:33:23 2009 -0700"
      },
      "message": "bring the native_handle stuff back from master_gl\n"
    },
    {
      "commit": "c5b2c0bf8007562536b822eb060fc54a01f8e08b",
      "tree": "da6084f542177972cf72a985b5d2c10330f87de3",
      "parents": [
        "208059f67ed2dd9fa025e07fcb6954d3cb61c79e"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue May 19 19:08:10 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed May 20 12:55:03 2009 -0700"
      },
      "message": "move libbinder\u0027s header files under includes/binder\n"
    },
    {
      "commit": "473b6e2d2de9f204e020c87b63a4e9b665641f45",
      "tree": "6509039f5cea6ff967a424672004b3be64742c32",
      "parents": [
        "307738da27d460cadaf9e8e3c8dfc3e77e169009"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Tue May 19 13:41:21 2009 -0700"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Wed May 20 11:24:20 2009 -0700"
      },
      "message": "Hook up the backup data writer, and add a utility to read the backup data files.\n"
    },
    {
      "commit": "7a5798596271cfe43a2cb8383ba9abda55ea9a7f",
      "tree": "8bc72118144386053c3551a02db29141f3abda63",
      "parents": [
        "7754d161d22d507f19b5b4d2e599acd63c331f73"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon May 18 15:22:00 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon May 18 15:22:00 2009 -0700"
      },
      "message": "Update aapt badging for native code, configs, density, etc.\n"
    },
    {
      "commit": "ac2dda7e0e99917f40a771a92390f73a5da7c89e",
      "tree": "98f1c135baeab7572c684b0ced6cba09afb17d39",
      "parents": [
        "d717598616910b5454b56429dec3bfad2757bd52",
        "0ea7ade6302b3683924fb22dce32d0310343aa53"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri May 15 15:44:41 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri May 15 15:44:41 2009 -0700"
      },
      "message": "Merge branch \u00272514\u0027 into merge_master\n"
    },
    {
      "commit": "d502f05c6b355a0520781e6609dc8a2a5ce89f9e",
      "tree": "3577384dd6228cbbba95566f5a9b463c400cbb9f",
      "parents": [
        "8d626d6a48871fdb62b8adeea98e1299eca61184"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Fri May 15 18:20:19 2009 -0400"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Fri May 15 18:20:19 2009 -0400"
      },
      "message": "Add the backup data file writer C++ class.\n"
    },
    {
      "commit": "8d626d6a48871fdb62b8adeea98e1299eca61184",
      "tree": "bd7acdb12c4c33debf1e579be311b524713cce59",
      "parents": [
        "dff73b85fef1000571f558314ca5161ed1b67ac0"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Fri May 15 09:07:06 2009 -0400"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Fri May 15 10:37:10 2009 -0400"
      },
      "message": "Implement the C++ class to write the backed up file data.\n"
    },
    {
      "commit": "d717598616910b5454b56429dec3bfad2757bd52",
      "tree": "c2271b0f7e475c4ac1cf520bcecd6f35e002d99a",
      "parents": [
        "5958661507b39cd59e68e9bc2b54399af92847c4",
        "757a434f81895ddcad2481a5912ff1eb0de8a0d6"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu May 14 22:44:23 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu May 14 22:44:23 2009 -0700"
      },
      "message": "Merge commit \u0027goog/master\u0027 into merge_master\n\nConflicts:\n\topengl/libagl/Android.mk\n\topengl/libs/Android.mk\n\topengl/libs/egl_impl.h\n"
    },
    {
      "commit": "c7bbc69ed501a7d194c1cbb9c41e2681d3004bd9",
      "tree": "2db88e9f1a42bf5dfbbe01580a6e8071666179e9",
      "parents": [
        "289ab2c5d17d0d4214ee4f274d411b086116b7d6"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Wed May 13 18:57:29 2009 -0400"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Thu May 14 09:39:32 2009 -0400"
      },
      "message": "Get the backup calling through to the file backup helper.\n\nThis includes some cleanup to make the parameters match\nbetween BackupService.onBackup and FileBackupHelper.performBackup.\n"
    },
    {
      "commit": "2a98fb9fb1eda1f18cf1555634a7c33f3147234c",
      "tree": "9bc7f08736492bedcd162cd85c4c8dae7335ce2a",
      "parents": [
        "bed158f1def27bf7f5b89cf6f98dff365cf4660a"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Wed May 06 12:55:46 2009 -0400"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Fri May 08 09:33:19 2009 -0700"
      },
      "message": "fix the sim build.  disables the tests for now.\n"
    },
    {
      "commit": "15e3747012fb2dc1b2656b0c7c8812c5bc3c6e31",
      "tree": "0d23784eb5df3afeb2422f93f0ad7ec876c03e79",
      "parents": [
        "1e16b13857809eaa9bd17fb60ac0a471dc92844b",
        "375cfea26ba97ebafa65a17e967e3c9ef58287a4"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu May 07 17:46:45 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu May 07 17:46:45 2009 -0700"
      },
      "message": "Merge commit \u0027goog/master\u0027 into merge_master\n"
    },
    {
      "commit": "081b070f6ffc938ec1582916edf3e019eac36ebf",
      "tree": "d86b393c81582c96de28810a84ae4e6b36aa47b8",
      "parents": [
        "703b1bb1252c32f4d9a4bc1e9a262f2cb834b862"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Wed May 06 12:55:46 2009 -0400"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Wed May 06 12:55:46 2009 -0400"
      },
      "message": "fix the sim build.  disables the tests for now.\n"
    },
    {
      "commit": "0c4863b2669867cfc76ea9b50ea3f9b1fecfb9a4",
      "tree": "4944927123cae9802b2dc08962144db681a31c83",
      "parents": [
        "512ec5aae12c9c5c2f0ad64e8b467a33217e835c"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Tue May 05 11:50:51 2009 -0700"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Tue May 05 13:45:25 2009 -0700"
      },
      "message": "Add some C++ code to do raw files for backup\n"
    },
    {
      "commit": "0926f50664c739eaee60341f8e8c694dc9a4f3eb",
      "tree": "642597de2cc52f7636ae74f1a88f3706e3e54a4a",
      "parents": [
        "7be3e5d2d8101a8f5e12bbdf650431a734f88eba"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon May 04 14:17:04 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon May 04 14:17:04 2009 -0700"
      },
      "message": "update surfaceflinger, libui and libagl to the new gralloc api\n\n- Currently the lock/unlock path is naive and is done for each drawing operation (glDrawElements and glDrawArrays). this should be improved eventually.\n- factor all the lock/unlock code in SurfaceBuffer.\n- fixed \"showupdate\" so it works even when we don\u0027t have preserving eglSwapBuffers().\n- improved the situation with the dirty-region and fixed a problem that caused GL apps to not update.\n- make use of LightRefBase() where needed, instead of duplicating its implementation\n- add LightRefBase::getStrongCount()\n- renamed EGLNativeWindowSurface.cpp to FramebufferNativeWindow.cpp\n\n- disabled copybits test, since it clashes with the new gralloc api\n\n- Camera/Video will be fixed later when we rework the overlay apis\n"
    }
  ],
  "next": "7be3e5d2d8101a8f5e12bbdf650431a734f88eba"
}
