title: Android Package manager has died with TransactionTooLargeException
body: <p>My app reads the list of all installed APK files, and then loop through the list to read the APK info, however it throws a TransactionTooLargeException exception.</p>
  
  <p>From what I have read here <a href="http://developer.android.com/reference/android/os/TransactionTooLargeException.html">http://developer.android.com/reference/android/os/TransactionTooLargeException.html</a>, google recommends to break large transactions into smaller transactions. However it seems this happens in the middle when looping through the APK list. If I catch the exception and continue it, the rest all works fine. Is there a way to reduce the memory usage while calling the getPackageInfo? Does that call hold some thing even after it already returned.</p>
  
  <p>Here is the trace when it happened:</p>
  
  <pre><code>at android.app.ApplicationPackageManager.getPackageInfo(ApplicationPackageManager.java:89)
  at com.myapp.appreader.getAppDetails(Appreader.java:207)
  at com.myapp.appreader.collectData(Appreader.java:99)
  at com.myapp.appreader.AppDataCollectionTask.run(AppDataCollectionTask.java:26)
  at com.myapp.appreader.service.AppDataTaskExecutor$AppDataAsyncTask.executeTask(AppDataTaskExecutor.java:439) 
  at com.myapp.appreader.service.AppDataTaskExecutor$AppDataAsyncTask.doInBackground(AppDataTaskExecutor.java:327)
  at com.myapp.appreader.service.AppDataTaskExecutor$AppDataAsyncTask.doInBackground(AppDataTaskExecutor.java:1)
  at android.os.AsyncTask$2.call(AsyncTask.java:287)
  at java.util.concurrent.FutureTask.run(FutureTask.java:234)
  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
  at java.lang.Thread.run(Thread.java:856)\nCaused by: android.os.TransactionTooLargeExceptionat android.os.BinderProxy.transact(Native Method)
  at android.content.pm.IPackageManager$Stub$Proxy.getPackageInfo(IPackageManager.java:1538)
  at android.app.ApplicationPackageManager.getPackageInfo(ApplicationPackageManager.java:84)
  </code></pre>