)]}'
{
  "log": [
    {
      "commit": "97250d5c4ab5c36dc4f7cf1d9d48157ed934615d",
      "tree": "e1075093796bc528940a2159adc557e20c3b1edb",
      "parents": [
        "054e3d5e17378bc3419c8f80c3f204b270d733e8",
        "e24901d3adb28fff72821d4e8e2ccc25b2184550"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jul 07 09:14:57 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jul 07 09:14:57 2010 -0700"
      },
      "message": "am e24901d3: am 68267415: Add new native Looper API.\n\nMerge commit \u0027e24901d3adb28fff72821d4e8e2ccc25b2184550\u0027\n\n* commit \u0027e24901d3adb28fff72821d4e8e2ccc25b2184550\u0027:\n  Add new native Looper API.\n"
    },
    {
      "commit": "682674154e3fe88f6061245145f934f25f1a2eb8",
      "tree": "a105ce9f0ae4d88732bfc8fb1a52d4474f17bc86",
      "parents": [
        "8ecfb60a8e74dfcd51bbf3f236d5f414a4d5ac7d"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Jul 02 18:52:01 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Jul 02 18:57:02 2010 -0700"
      },
      "message": "Add new native Looper API.\n\nThis allows us to avoid exposing the file descriptor of\nthe event queue; instead, you attach an event queue to\na looper.  This will also should allow native apps to be\nwritten without the need for a separate thread, by attaching\nthe event queue to the main thread\u0027s looper and scheduling\ntheir own messages there.\n\nChange-Id: I38489282635895ae2cbfacb88599c1b1cad9b239\n"
    },
    {
      "commit": "4847e630e5e740f6bf0e87b3cccbb655346edcb7",
      "tree": "42008f8882311fe1b984009bcc0247d055ebdb07",
      "parents": [
        "cc08bb8884d7ab720296cc63f8098249659c48b1",
        "39c921c6e5316696d8c61d1ee465f9b5f894c4ed"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jul 01 19:26:57 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jul 01 19:26:57 2010 -0700"
      },
      "message": "am 39c921c6: am 8ae5a8e7: Get to the point of being able to do native drawing.\n\nMerge commit \u002739c921c6e5316696d8c61d1ee465f9b5f894c4ed\u0027\n\n* commit \u002739c921c6e5316696d8c61d1ee465f9b5f894c4ed\u0027:\n  Get to the point of being able to do native drawing.\n"
    },
    {
      "commit": "8ae5a8e7c04c7b204b739dfcd5da9e2e0f83e1eb",
      "tree": "3967411cd4a849e239a6c79425e90de101c0caf4",
      "parents": [
        "f520411a35db5248934a4b50859ca72e3f865593"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jul 01 18:44:46 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jul 01 18:44:46 2010 -0700"
      },
      "message": "Get to the point of being able to do native drawing.\n\nA little cleanup.\n\nChange-Id: I37ef0557abf330d91d6fe47e81d062206b3bc346\n"
    },
    {
      "commit": "738639ccd0f12b06d17df3d3b3ee68f506311331",
      "tree": "b8a1c104c9683f03dfa1408e1467478531ff4e39",
      "parents": [
        "3cd310f18dd5e8dc451583319c67270bac4e4b4f",
        "58f35ff41601769ca4f357575a9385f16c01b991"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jul 01 16:04:02 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jul 01 16:04:02 2010 -0700"
      },
      "message": "am 58f35ff4: am 54a181b1: Make real API for native code to get its window.\n\nMerge commit \u002758f35ff41601769ca4f357575a9385f16c01b991\u0027\n\n* commit \u002758f35ff41601769ca4f357575a9385f16c01b991\u0027:\n  Make real API for native code to get its window.\n"
    },
    {
      "commit": "54a181b1a2b1517a9479b21fbf7705a688232faf",
      "tree": "90bf20d8f5f818d357c677cb713e964b920dea67",
      "parents": [
        "65c83b906d01c3c1493d0547757dbb16d4c3722a"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jun 30 18:35:14 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jul 01 14:43:23 2010 -0700"
      },
      "message": "Make real API for native code to get its window.\n\nAdded implementation to use ANativeWindow and provide\nit to a NativeActivity.\n\nChange-Id: I890d71b6e15d4af71e6cf81b327961d7061ec1c2\n"
    },
    {
      "commit": "efcd77407b321498a43ca380c8f67b84eb5a2d6e",
      "tree": "7860ab6884ca2ed8911c4108cfa88f82c63718ea",
      "parents": [
        "01959f65520a69537a2d93f4e543b03705694ad9",
        "177c405a242e811b1010bd8382b5807ab8df31a8"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jun 30 16:11:21 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jun 30 16:11:21 2010 -0700"
      },
      "message": "am 177c405a: am c6e1d880: Merge \"Introduce official public NativeWindow type.\" into gingerbread\n\nMerge commit \u0027177c405a242e811b1010bd8382b5807ab8df31a8\u0027\n\n* commit \u0027177c405a242e811b1010bd8382b5807ab8df31a8\u0027:\n  Introduce official public NativeWindow type.\n"
    },
    {
      "commit": "25a98b8e21f7840ae582ce0a4cde21694c4c94ec",
      "tree": "f7599e13f67ffaba8b1b888cbd62f420a5a87ebe",
      "parents": [
        "b6643d90e615b871c6d9e41d932a9fcf0d7d2156",
        "7f6c6e8ffa3c6e036bf8037012a930e52f54e296"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jun 30 15:44:58 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jun 30 15:44:58 2010 -0700"
      },
      "message": "resolved conflicts for merge of 7f6c6e8f to master\n\nChange-Id: Id9dddb78c51f16ff8c4b60339421c94fde506db2\n"
    },
    {
      "commit": "8b49bd1a2f8117e1c22884f0150e72cbcf838f32",
      "tree": "ec6e43ed118268b09cbb61c8eed02c757e9602ed",
      "parents": [
        "3c80a4a044865bdf1289c7896baffa1c082d835c"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jun 30 13:56:17 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jun 30 15:32:04 2010 -0700"
      },
      "message": "Introduce official public NativeWindow type.\n\nNot yet hooked up to anything in the NDK, but requires renaming\nthe existing android_native_window_t type everywhere.\n\nChange-Id: Iffee6ea39c93b8b34e20fb69e4d2c7c837e5ea2e\n"
    },
    {
      "commit": "3c80a4a044865bdf1289c7896baffa1c082d835c",
      "tree": "557c89a685e672e44f90f55660da1f989d00a113",
      "parents": [
        "92dbad8ab0c8e242c4c3e52c339ed3296ae7901c"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jun 29 19:20:40 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jun 30 10:49:40 2010 -0700"
      },
      "message": "Implement default key handling for native code.\n\nThe native code now maintains a list of all keys that may use\ndefault handling.  If the app finishes one of these keys\nwithout handling it, the key will be passed back off to Java\nfor default treatment.\n\nChange-Id: I6a842a0d728eeafa4de7142fae573f8c11099e18\n"
    },
    {
      "commit": "639061d9c29fb97646c083f719a26992a7d24d85",
      "tree": "19de773a4ae2f75d4171581be3913091a672140e",
      "parents": [
        "f42c181ecece995e23f91ac13d67f1a597340e98",
        "b5f05d0018d72531e40c2afadfee90e9bc0c8893"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jun 29 12:21:16 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jun 29 12:21:16 2010 -0700"
      },
      "message": "am b5f05d00: am 0934fbb6: Merge \"Update native activity \u0026 event APIs to follow correct conventions.\" into gingerbread\n\nMerge commit \u0027b5f05d0018d72531e40c2afadfee90e9bc0c8893\u0027\n\n* commit \u0027b5f05d0018d72531e40c2afadfee90e9bc0c8893\u0027:\n  Update native activity \u0026 event APIs to follow correct conventions.\n"
    },
    {
      "commit": "2e9f93e8db509d5236229dc8540e0904c5dbb9f5",
      "tree": "9aa6aa2c4a59b808dd99604afb23eb5a0096d9a2",
      "parents": [
        "059f009d970fb37ac4e408dcf8e1d2d2cdcf0a84"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Jun 28 15:27:30 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jun 29 10:43:54 2010 -0700"
      },
      "message": "Update native activity \u0026 event APIs to follow correct conventions.\n\nChange-Id: Ie64fb3a9c68bc9c117fa5621b75d1f609e304e0e\n"
    },
    {
      "commit": "320742b15a710ede57862eee170945da26ef0172",
      "tree": "5c4b08874acac30f86b217af59938d0254688bc1",
      "parents": [
        "a58a7aecf44a5c818b9519240a2129e27ffdf294",
        "e3e2883f2232007174ead562610eb01201890d9b"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jun 23 10:32:25 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jun 23 10:32:25 2010 -0700"
      },
      "message": "am e3e2883f: am e24a60aa: Merge \"First stab at attaching native event dispatching.\" into gingerbread\n\nMerge commit \u0027e3e2883f2232007174ead562610eb01201890d9b\u0027\n\n* commit \u0027e3e2883f2232007174ead562610eb01201890d9b\u0027:\n  First stab at attaching native event dispatching.\n"
    },
    {
      "commit": "a95e4cb62f3642cb190d032dbf7dc40d9ecc6973",
      "tree": "ae4437444a3d3ebeff48dabfd1e9c11fc14620ac",
      "parents": [
        "ef730e6ececa96a3e0576140eea707f7c48cd66c"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Jun 18 18:09:33 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jun 22 11:21:50 2010 -0700"
      },
      "message": "First stab at attaching native event dispatching.\n\nProvides the basic infrastructure for a\nNativeActivity\u0027s native code to get an object representing\nits event stream that can be used to read input events.\n\nStill work to do, probably some API changes, and reasonable\ndefault key handling (so that for example back will still\nwork).\n\nChange-Id: I6db891bc35dc9683181d7708eaed552b955a077e\n"
    },
    {
      "commit": "4e74ae3d5b27d917ea26d0929015f9fdc64af412",
      "tree": "228cc5893a99c7def050024be582e53ad644a3d3",
      "parents": [
        "733c6f2e9bff13e24dcb468dd05219ec6ea8aa96",
        "42bb545a54d89f0ddbb230d7a01ea4210c0f6c00"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Jun 17 13:32:45 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jun 17 13:32:45 2010 -0700"
      },
      "message": "am 42bb545a: am 5c225b16: Even more native input dispatch work in progress.\n\nMerge commit \u002742bb545a54d89f0ddbb230d7a01ea4210c0f6c00\u0027\n\n* commit \u002742bb545a54d89f0ddbb230d7a01ea4210c0f6c00\u0027:\n  Even more native input dispatch work in progress.\n"
    },
    {
      "commit": "5c225b1680e696ae8bbf505a1997d6f720672f74",
      "tree": "932326fd02ee91d8a64adfcc9415027646c56563",
      "parents": [
        "3a0146cd29fae3c5bc29d8d535d67826284f8cc9"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Jun 16 01:53:36 2010 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Jun 17 13:27:16 2010 -0700"
      },
      "message": "Even more native input dispatch work in progress.\n\nAdded more tests.\nFixed a regression in Vector.\nFixed bugs in pointer tracking.\nFixed a starvation issue in PollLoop when setting or removing callbacks.\nFixed a couple of policy nits.\n\nModified the internal representation of MotionEvent to be more\nefficient and more consistent.\n\nAdded code to skip/cancel virtual key processing when there are multiple\npointers down.  This helps to better disambiguate virtual key presses\nfrom stray touches (such as cheek presses).\n\nChange-Id: I2a7d2cce0195afb9125b23378baa94fd2fc6671c\n"
    },
    {
      "commit": "8e03b7566c42621fda01186b66b019142eb84fbf",
      "tree": "17c45ea04288d2d57053ea740ae1cf332a4308c8",
      "parents": [
        "5ddd127d5a38d80c0d8087d1770f41f61f84f048",
        "9e660c8201ab9aeead5d78a75c2bbfecc374858f"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sun Jun 13 19:16:55 2010 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sun Jun 13 19:16:55 2010 -0700"
      },
      "message": "resolved conflicts for merge of 9e660c82 to master\n\nChange-Id: Ic4bd85cbaa5b9a10dcb474a0dad46490bf967e43\n"
    },
    {
      "commit": "46b9ac0ae2162309774a7478cd9d4e578747bfc2",
      "tree": "46ad021a41e25ca9f1250b709a29b724dc6b504d",
      "parents": [
        "f62c57d684b83df7d2817db976c0afdb500ae92a"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Apr 22 18:58:52 2010 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sun Jun 13 17:42:16 2010 -0700"
      },
      "message": "Native input dispatch rewrite work in progress.\n\nThe old dispatch mechanism has been left in place and continues to\nbe used by default for now.  To enable native input dispatch,\nedit the ENABLE_NATIVE_DISPATCH constant in WindowManagerPolicy.\n\nIncludes part of the new input event NDK API.  Some details TBD.\n\nTo wire up input dispatch, as the ViewRoot adds a window to the\nwindow session it receives an InputChannel object as an output\nargument.  The InputChannel encapsulates the file descriptors for a\nshared memory region and two pipe end-points.  The ViewRoot then\nprovides the InputChannel to the InputQueue.  Behind the\nscenes, InputQueue simply attaches handlers to the native PollLoop object\nthat underlies the MessageQueue.  This way MessageQueue doesn\u0027t need\nto know anything about input dispatch per-se, it just exposes (in native\ncode) a PollLoop that other components can use to monitor file descriptor\nstate changes.\n\nThere can be zero or more targets for any given input event.  Each\ninput target is specified by its input channel and some parameters\nincluding flags, an X/Y coordinate offset, and the dispatch timeout.\nAn input target can request either synchronous dispatch (for foreground apps)\nor asynchronous dispatch (fire-and-forget for wallpapers and \"outside\"\ntargets).  Currently, finding the appropriate input targets for an event\nrequires a call back into the WindowManagerServer from native code.\nIn the future this will be refactored to avoid most of these callbacks\nexcept as required to handle pending focus transitions.\n\nEnd-to-end event dispatch mostly works!\n\nTo do: event injection, rate limiting, ANRs, testing, optimization, etc.\n\nChange-Id: I8c36b2b9e0a2d27392040ecda0f51b636456de25\n"
    },
    {
      "commit": "01f2f960e73701633a169fbb2b777a4915a5b12c",
      "tree": "6dac2d44f0b9df824a9fe3912e6b89d5066f7c42",
      "parents": [
        "28d01123754b10dc467a344650238ba583159ec9"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Thu May 20 16:57:34 2010 -0700"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Fri Jun 11 18:02:51 2010 -0700"
      },
      "message": "Improved native TTS interface header.\n\nThe purpose of this patch is to add a C-based ABI that can be exposed by the NDK\nfor developers wanting to write a TTS Engine. This replaces the C++ ABI that is\ncurrently under frameworks/base/include/tts/TtsEngine.h but is *binary* compatible\nwith it.\n\nAs a consequence, the svox pico plugin under external/svox/pico/tts/, which\nlinks against tts/TtsEngine.h can be loaded by the TTS service properly.\n\nAnother patch would modify the pico tts to use \u003candroid/tts.h\u003e, then we will\nbe able to get rid of \u003ctts/TtsEngine.h\u003e in the source tree.\n\nChange-Id: I16844cef9b5b006cc32655a29e4f9f193c8c1a91\n"
    },
    {
      "commit": "74323fd1ab8eb11beea286d5c213c63e4b803141",
      "tree": "6c3108b7da5b5fb32d2b05ff3126b102a138b6d8",
      "parents": [
        "4ec730cabb68ee8347c6aa5dc929b09651275aca"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue May 18 17:56:23 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue May 18 18:16:35 2010 -0700"
      },
      "message": "Update NativeActivity to allow direct surface access.\n\nNo actual native API for using a surface, but it\u0027s a step.\n\nChange-Id: I627f26b705abc7a05edf9117411abfacf0fae64a\n"
    },
    {
      "commit": "dc8a7f69d7df5f1ca29763995a0d55acf7936fc6",
      "tree": "8a136169f8ff4548bfabadf95e3305589ff21677",
      "parents": [
        "400907086ac1a304daa50a72013ac27a9c63b26b"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon May 10 11:29:34 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue May 18 10:46:33 2010 -0700"
      },
      "message": "Add new API to take over a window\u0027s Surface.\n\nChange-Id: Iad6245faadc95f19ea63c8e229a1c02e9188f69e\n"
    },
    {
      "commit": "ea5477c85445d743284b365b90171c867315ec48",
      "tree": "4f18d74733461452991c54d71c82a34348815d65",
      "parents": [
        "73bbcc4d025bd64401517943200f46c0dfecdf99",
        "89ad07b048ff035394596d6a8916f639f3f0b868"
      ],
      "author": {
        "name": "Dan Bornstein",
        "email": "danfuzz@android.com",
        "time": "Thu May 06 12:43:52 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu May 06 12:43:52 2010 -0700"
      },
      "message": "am 89ad07b0: am 42ee86e6: Merge \"For issue #2651381, allow library prelinking.\" into froyo\n\nMerge commit \u002789ad07b048ff035394596d6a8916f639f3f0b868\u0027 into kraken\n\n* commit \u002789ad07b048ff035394596d6a8916f639f3f0b868\u0027:\n  For issue #2651381, allow library prelinking.\n"
    },
    {
      "commit": "782e9fd7492e607f2f71c13da5d86ee99ae03544",
      "tree": "69ff4ee3d04d46b3601ad2f3d96d71df25b7c4f7",
      "parents": [
        "2d315667ab733375d8c696f8c2f155bc1de9e4a2"
      ],
      "author": {
        "name": "Dan Bornstein",
        "email": "danfuzz@android.com",
        "time": "Wed May 05 18:23:05 2010 -0700"
      },
      "committer": {
        "name": "Dan Bornstein",
        "email": "danfuzz@android.com",
        "time": "Wed May 05 18:23:05 2010 -0700"
      },
      "message": "For issue #2651381, allow library prelinking.\n\nChange-Id: I1cb467a158e21fc02cac6af585ac8d27c2bf42de\n"
    },
    {
      "commit": "69969e48f2bca9339662dddfacff0bbf6374ed7f",
      "tree": "073be8188794a4542611e624a05fbbefaef98fc3",
      "parents": [
        "f24e66dbb99b52e3ef8e56b66c807ff1d5129fca"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue May 04 11:40:40 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed May 05 15:17:26 2010 -0700"
      },
      "message": "First pass at NativeActivity.\n\nThis is a rough sketch of the new pure-native API, which you can\nuse through a NativeActivity in your manifest (no Java code in\nthe .apk needed!).\n\nIntentionally no docs yet, the API is still being seriously\nmessed with.  But it works.\n\nChange-Id: I0e916d58a0d159ecaf3689e41834eb8dc681c0c0\n"
    },
    {
      "commit": "3227631fe99c271a47f9f5135c4ffe1bec3e72f0",
      "tree": "f8b018711c55c14b6ef364b580d7f14ccbad31dd",
      "parents": [
        "3c4a1ebc19abba06af565071c243e55ba6eef585"
      ],
      "author": {
        "name": "Dima Zavin",
        "email": "dima@android.com",
        "time": "Thu Feb 04 12:15:09 2010 -0800"
      },
      "committer": {
        "name": "Dima Zavin",
        "email": "dima@android.com",
        "time": "Thu Feb 04 15:31:19 2010 -0800"
      },
      "message": "Move the NDK graphics wrapper (libjnigraphics) to frameworks/base/native\n\nChange-Id: I2a5adde9f8e4683c4b4526a29ad276c3e581e029\nSigned-off-by: Dima Zavin \u003cdima@android.com\u003e\n"
    }
  ]
}
