)]}'
{
  "log": [
    {
      "commit": "3915bb845b032dc184dba5e60970b803390ca3ed",
      "tree": "198a47c1d4ada990ef04d563b5e0caaec35abc18",
      "parents": [
        "60029771d26ca3c51288c3d92cab1d3537147acd"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Nov 05 15:02:16 2010 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Nov 08 12:49:43 2010 -0800"
      },
      "message": "Tell system server whether the app handled input events.\n\nRefactored ViewRoot, NativeActivity and related classes to tell the\ndispatcher whether an input event was actually handled by the application.\n\nThis will be used to move more of the global default key processing\ninto the system server instead of the application.\n\nChange-Id: If06b98b6f45c543e5ac5b1eae2b3baf9371fba28\n"
    },
    {
      "commit": "bff26d156d23e55e2428e19b3fb7f52acf03f79f",
      "tree": "b0993306b63215d4db6559a86f02bcdb5ff22c55",
      "parents": [
        "4924aee9cb1c5988359f3162b6e89689c5b101e1",
        "86f1b643d10e0b5b17ae01db3b81020db87b3295"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Oct 21 20:27:15 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Oct 21 20:27:15 2010 -0700"
      },
      "message": "am 86f1b643: am bf5efba2: Merge \"Fix issue #3117918: No way to finish a native activity\" into gingerbread\n\nMerge commit \u002786f1b643d10e0b5b17ae01db3b81020db87b3295\u0027\n\n* commit \u002786f1b643d10e0b5b17ae01db3b81020db87b3295\u0027:\n  Fix issue #3117918: No way to finish a native activity\n"
    },
    {
      "commit": "db28a94d499f995b467b07cee5c9b9119f538b1c",
      "tree": "f720143b3b6a9813d26fdbc210bec10a0780f0b0",
      "parents": [
        "7dc08fb070ff7455e794fc81645ccb4349cd152f"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Oct 21 17:22:30 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Oct 21 19:07:37 2010 -0700"
      },
      "message": "Fix issue #3117918: No way to finish a native activity\n\nChange-Id: Ic53e712f7ab5412d72a31b96ecba252344b91644\n"
    },
    {
      "commit": "49478536b6b8b28f33398393bed5e939085af7af",
      "tree": "a83f41bc6da9dd267005ad23b0b32c6f40f860d0",
      "parents": [
        "a5ab8ce602ecfd897805e185c89a6eff0c78aabe",
        "14bc6b5d0677e5c454a67775c852f90389bb4567"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Sep 15 12:32:29 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Sep 15 12:32:29 2010 -0700"
      },
      "message": "am 14bc6b5d: am 09340a4b: Merge \"Replace epoll() with poll() and rename PollLoop to Looper.\" into gingerbread\n\nMerge commit \u002714bc6b5d0677e5c454a67775c852f90389bb4567\u0027\n\n* commit \u002714bc6b5d0677e5c454a67775c852f90389bb4567\u0027:\n  Replace epoll() with poll() and rename PollLoop to Looper.\n"
    },
    {
      "commit": "4fe6c3e51be77e35f40872cdbca6c80f8f8b7ecb",
      "tree": "5cbcfad147ad1bf26deb384e41d27f4e6bfcdb80",
      "parents": [
        "c891d2b3529b9cf24ef4781a585cd4784815e711"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Sep 13 23:17:30 2010 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Sep 14 01:59:45 2010 -0700"
      },
      "message": "Replace epoll() with poll() and rename PollLoop to Looper.\n\nAs part of this change, consolidated and cleaned up the Looper API so\nthat there are fewer distinctions between the NDK and non-NDK declarations\n(no need for two callback types, etc.).\n\nRemoved the dependence on specific constants from sys/poll.h such as\nPOLLIN.  Instead looper.h defines events like LOOPER_EVENT_INPUT for\nthe events that it supports.  That should help make any future\nunder-the-hood implementation changes easier.\n\nFixed a couple of compiler warnings along the way.\n\nChange-Id: I449a7ec780bf061bdd325452f823673e2b39b6ae\n"
    },
    {
      "commit": "347262622b86410ff8a4ff3530ab3688b6a20b21",
      "tree": "f596d33ff54ab5169a7c52e19319b63d0e200e63",
      "parents": [
        "7dea769319701f4e883fc448507967b806b9b245",
        "a1205f07a6f0c745e8f42f16fe38c06af04143c7"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Sep 07 18:52:06 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Sep 07 18:52:06 2010 -0700"
      },
      "message": "am a1205f07: am 2d3739d4: Merge \"Modify native ALooper to take an explicit ident.\" into gingerbread\n\nMerge commit \u0027a1205f07a6f0c745e8f42f16fe38c06af04143c7\u0027\n\n* commit \u0027a1205f07a6f0c745e8f42f16fe38c06af04143c7\u0027:\n  Modify native ALooper to take an explicit ident.\n"
    },
    {
      "commit": "42c03e579aade011b451e2a13ea3f44a2ef0056a",
      "tree": "1716fbd88e2beb816d303c3d3fa0ca1785b8db61",
      "parents": [
        "6e86915e8f5dfffa60ae5d1a4ca9aa74912fd026"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Sep 07 15:28:30 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Sep 07 15:46:55 2010 -0700"
      },
      "message": "Modify native ALooper to take an explicit ident.\n\nThe ALooper API now uses an explicit \"identifier\" for the integer\nthat is returned rather than implicitly using the fd.  This allows\nthe APIs that had the fd to be a little more sane.\n\nChange-Id: I8507f535ad484c0bdc4a1bd016d87bb09acd7ff0\n"
    },
    {
      "commit": "7b6d0d99b6904b511996267efae215fe9cb5e98f",
      "tree": "85c1f63b5ba66ec77d5c9ecd5a2b44229ed67699",
      "parents": [
        "ea65ec23f6dc18e978ab6dcf23d3c2b27a0c2109",
        "679ac09a5c22175354f3a04b28456b323839530e"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Aug 11 00:50:56 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Aug 11 00:50:56 2010 -0700"
      },
      "message": "am 679ac09a: am a5ae50cd: Merge \"More native work.\" into gingerbread\n\nMerge commit \u0027679ac09a5c22175354f3a04b28456b323839530e\u0027\n\n* commit \u0027679ac09a5c22175354f3a04b28456b323839530e\u0027:\n  More native work.\n"
    },
    {
      "commit": "08d5b8fad8d46ccb64db2fdcb4d66972ec87bf48",
      "tree": "7e2e67603ec8a2ca164548301b65a2b733df76a0",
      "parents": [
        "091c5238a00ca51dc69b8b09459e6ac88e1eb077"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Aug 04 11:12:40 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Aug 11 00:29:59 2010 -0700"
      },
      "message": "More native work.\n\nImplement save/restore of state, and add native APIs for\nconfiguration information.\n\nChange-Id: I2a3ddc2ba605db58d7c8b2b31b9215fb323f90b5\n"
    },
    {
      "commit": "3c7c351a6217ac48b741740167c201a679a0ca65",
      "tree": "f539d70e0a46249f01dd6fb45563f1ebc4bed706",
      "parents": [
        "cde66df44240cfe5a7bec12ac52464c3bf26c14f"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Aug 04 15:44:39 2010 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Aug 04 23:47:38 2010 -0700"
      },
      "message": "Tracking merge of dalvik-dev to gingerbread\n\ngit cherry-pick --no-commit f77cf7f0\ngit cherry-pick --no-commit c8f503b5285e30c1a881d0ba860ba9021f57d113\ngit cherry-pick --no-commit 570bb561\ngit cherry-pick --no-commit e2417541\ngit cherry-pick --no-commit e4d81f25bd4dc1a5c909b56ab56a56406290da30\ngit cherry-pick --no-commit 5e8a587d\n\nChange-Id: I101a385d43f3e0f4ce5352217f92ef67a3908c88\n"
    },
    {
      "commit": "e4d81f25bd4dc1a5c909b56ab56a56406290da30",
      "tree": "8bb0db495a1bb2037299022e7fce2a2eae59ee09",
      "parents": [
        "01301d31a4c2e8745a3e12c9a441d2448e63d775"
      ],
      "author": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Wed Jul 14 16:02:20 2010 -0700"
      },
      "committer": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Fri Jul 30 10:57:47 2010 -0700"
      },
      "message": "Add support for dalvik.vm.extra-opts property.\n\nThe goal here is to avoid the dalvik.vm.* property explosion by\nhaving a single property that takes an arbitrary collection of Dalvik\ncommand-line options.  This is intended for testing of various\nconfigurations by the Dalvik team, not industrial use.\n\nOptions should be separated by spaces, e.g.\n\n  adb shell setprop dalvik.vm.extra-opts \"-showversion -Xmx4m\"\n\nwill print the version banner and set the heap max to 4MB, which won\u0027t\nget you very far.\n\nThe extra-opts options will appear last, which allows them to override\nvalues set earlier (like the heap max).\n\nBug 2838629.\n\n(cherry-pick from dalvik-dev branch)\n\nChange-Id: Ibcbb1b62367cf2152798583e8722ef7e461ad19a\n"
    },
    {
      "commit": "781d34747941f3534b2a985ff57368ad89855d7d",
      "tree": "d7a87b96737fa8dfe18bb3d2b2985a77898123c2",
      "parents": [
        "fb4e1e24a93c7e6bc0fcdb3f5cfadfbc19503cd8",
        "9c37e5add9d7678a29b4e0d1e178fe78a13db961"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Jul 16 09:12:29 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jul 16 09:12:29 2010 -0700"
      },
      "message": "am 9c37e5ad: am 75a91389: Merge \"Implement native key pre-dispatching to IMEs.\" into gingerbread\n\nMerge commit \u00279c37e5add9d7678a29b4e0d1e178fe78a13db961\u0027\n\n* commit \u00279c37e5add9d7678a29b4e0d1e178fe78a13db961\u0027:\n  Implement native key pre-dispatching to IMEs.\n"
    },
    {
      "commit": "2c6081ce3593712f30dacd990a97209c791d6ced",
      "tree": "4808bc521c207ea11ec0daceb98f77a6b47b00a0",
      "parents": [
        "c5ed5910c9ef066cec6a13bbb404ec57b1e92637"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jul 15 17:44:53 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jul 15 22:05:33 2010 -0700"
      },
      "message": "Implement native key pre-dispatching to IMEs.\n\nThis significantly re-works the native key dispatching code to\nallow events to be pre-dispatched to the current IME before\nbeing processed by native code.  It introduces one new public\nAPI, which must be called after retrieving an event if the app\nwishes for it to be pre-dispatched.\n\nCurrently the native code will only do pre-dispatching of\nsystem keys, to avoid significant overhead for gaming input.\nThis should be improved to be smarted, filtering for only\nkeys that the IME is interested in.  Unfortunately IMEs don\u0027t\ncurrently provide this information. :p\n\nChange-Id: Ic1c7aeec8b348164957f2cd88119eb5bd85c2a9f\n"
    },
    {
      "commit": "2388ad9eef109fa7f63c196c819c83f0376f0645",
      "tree": "19c965b6d7efb893604fc448cebc9380ebb60fb6",
      "parents": [
        "fc6d300f408959b11f86623ea7a0ce547ded3563",
        "f8d9379bd834573feca085284970cf686993c330"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jul 13 19:50:36 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jul 13 19:50:36 2010 -0700"
      },
      "message": "am f8d9379b: am d76b67c3: IME events are now dispatched to native applications.\n\nMerge commit \u0027f8d9379bd834573feca085284970cf686993c330\u0027\n\n* commit \u0027f8d9379bd834573feca085284970cf686993c330\u0027:\n  IME events are now dispatched to native applications.\n"
    },
    {
      "commit": "d76b67c340d1564abf8d14d976fdaf83bf2b3320",
      "tree": "59c0fff396681a622480a84f4f9c74d188970a11",
      "parents": [
        "fd03582995e0fce963dd0fa0669e3211b74c0dd7"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jul 13 17:48:30 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jul 13 18:36:46 2010 -0700"
      },
      "message": "IME events are now dispatched to native applications.\n\nAnd also:\n\n- APIs to show and hide the IME, and control its interaction with the app.\n- APIs to tell the app when its window resizes and needs to be redrawn.\n- API to tell the app the content rectangle of its window (to layout\n  around the IME or status bar).\n\nThere is still a problem with IME interaction -- we need a way for the\napp to deliver events to the IME before it handles them, so that for\nexample the back key will close the IME instead of finishing the app.\n\nChange-Id: I37b75fc2ec533750ef36ca3aedd2f0cc0b5813cd\n"
    },
    {
      "commit": "8445ca6c3ba9b7cee6d20f5919e3b3ba8e6b8c96",
      "tree": "9d91e1020e2f75baf83cd9b9b4934c81fe7025d6",
      "parents": [
        "3a70b20ee5aa2c0d451f1d2a5701bf9c43c8ca6f",
        "b14f325a0118ffce286155caaabaae149653462c"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Jul 09 17:05:23 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jul 09 17:05:23 2010 -0700"
      },
      "message": "am b14f325a: am 289b9b62: Add ANativeWindow API for directly drawing to the surface bits.\n\nMerge commit \u0027b14f325a0118ffce286155caaabaae149653462c\u0027\n\n* commit \u0027b14f325a0118ffce286155caaabaae149653462c\u0027:\n  Add ANativeWindow API for directly drawing to the surface bits.\n"
    },
    {
      "commit": "289b9b62372ef52a06113b83dfb870e2c2fb325a",
      "tree": "e444446a331fdbe9b936a0c2570a609675468d05",
      "parents": [
        "2aaa9e9fc5ddc05cedbe530c7a41eca0e3a62b7a"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Jul 09 11:44:11 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Jul 09 16:58:19 2010 -0700"
      },
      "message": "Add ANativeWindow API for directly drawing to the surface bits.\n\nAlso other cleanup and fixes:\n\n- We now properly set the default window format to 565.\n- New APIs to set the window format and flags from native code.\n- Tweaked glue for simpler handling of the \"destroy\" message.\n- Um, other stuff.\n\nChange-Id: Id7790a21a2fa9a19b91854d225324a7c1e7c6ade\n"
    },
    {
      "commit": "81ea83d10883886013bc95eac2fe032acf1e7aa9",
      "tree": "0c7e032f99dab7739bd7ca2b2efc5b852e50de44",
      "parents": [
        "767c5e4be0a4bddc815efe5a4cb2cd0fdd584429"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Wed Jun 30 17:49:41 2010 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Wed Jun 30 17:54:10 2010 -0400"
      },
      "message": "Move MTP JNI code from libandroid_runtime to libmedia_jni\n\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n\nChange-Id: I0c54bbe4e6146beba7d22e782e02ded420f50dbd\n"
    },
    {
      "commit": "f602d362ba4bb3adbf1eb4e38a794fb14274293a",
      "tree": "d2b5da88fbc52e10a2c9b09f9027b32c539c5022",
      "parents": [
        "07ccf5ad7edfeeebb79208ad3e8a52917fe038a8"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Sun Jun 20 14:28:16 2010 -0700"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Jun 22 09:26:41 2010 -0400"
      },
      "message": "GPS: remove GpsEventThread from GpsLocationProvider\n\nRather than polling for events from the native code in an event thread,\nwe now require the GPS HAL libraries to call our callbacks from a thread\nthat is registered with the JVM to call directly into Java.\nThis eliminates a thread from our code and removes one step in the chain\nof message passing from the GPS to the Location Manager client.\n\nChange-Id: I2745a157690310ba9a699a8369f54a7366c6b1ba\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "0795272aa226f4e965968a03daddc53ce30b7cda",
      "tree": "6b4e8ba5e57c5dcf2dd770c24e14c43eda42fdd7",
      "parents": [
        "25ba5b6564224dceefa086b5c439ef28dad530ca"
      ],
      "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": "f70188aa4716625781d9952c6b883180528d4644",
      "tree": "daa7aa337f93976ad2382601a261c5543813c1ca",
      "parents": [
        "7474a5acbe5b73342e4cf129d39cd3bc1195292c"
      ],
      "author": {
        "name": "Andy McFadden",
        "email": "",
        "time": "Tue Mar 31 15:52:13 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 31 15:52:13 2009 -0700"
      },
      "message": "AI 143840: Split VM initialization out into a separate function.\n  This makes the code marginally more readable, and cuts about 500 bytes\n  off the size of the main thread\u0027s stack.\n\nAutomated import of CL 143840\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"
    }
  ]
}
