{ "id": "94307", "key": "TIMOB-9859", "fields": { "issuetype": { "id": "2", "description": "A new feature of the product, which has yet to be developed.", "name": "New Feature", "subtask": false }, "project": { "id": "10153", "key": "TIMOB", "name": "Titanium SDK/CLI", "projectCategory": { "id": "10100", "description": "Titanium and related SDKs used in application development", "name": "Client" } }, "fixVersions": [], "resolution": { "id": "2", "description": "The problem described is an issue which will never be fixed.", "name": "Won't Fix" }, "resolutiondate": "2013-10-17T08:37:44.000+0000", "created": "2012-07-02T12:19:20.000+0000", "priority": { "name": "High", "id": "2" }, "labels": [ "androidbuild", "ay-verified", "cb-verified", "core", "insight" ], "versions": [ { "id": "13271", "description": "Release 2.1.0", "name": "Release 2.1.0", "archived": false, "released": true, "releaseDate": "2012-06-29" } ], "issuelinks": [ { "id": "31380", "type": { "id": "10002", "name": "Duplicate", "inward": "is duplicated by", "outward": "duplicates" }, "outwardIssue": { "id": "118996", "key": "AC-1788", "fields": { "summary": "Android: App won't run on emulator due to Failure [INSTALL_FAILED_INSUFFICIENT_STORAGE]", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false } } } }, { "id": "28141", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "outwardIssue": { "id": "91507", "key": "TIMOB-9028", "fields": { "summary": "CLI: \"build\" command for Android apps", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "priority": { "name": "Critical", "id": "1" }, "issuetype": { "id": "6", "description": "gh.issue.epic.desc", "name": "Epic", "subtask": false } } } }, { "id": "30728", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "outwardIssue": { "id": "118135", "key": "TIMOB-14784", "fields": { "summary": "CLI: Create ADB Library", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "priority": { "name": "Critical", "id": "1" }, "issuetype": { "id": "2", "description": "A new feature of the product, which has yet to be developed.", "name": "New Feature", "subtask": false } } } }, { "id": "29123", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "inwardIssue": { "id": "112303", "key": "TIMOB-13430", "fields": { "summary": "Android runtime fails to load with attach of thread 'Binder Thread #3' failed", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "priority": { "name": "High", "id": "2" }, "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false } } } } ], "assignee": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "updated": "2017-03-22T17:50:01.000+0000", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "components": [ { "id": "13103", "name": "CLI", "description": "Node-based command line interface" }, { "id": "10207", "name": "Tooling" } ], "description": "h2. Expected results:\r\n\r\nI should be able to build and install more than a few Ti apps to an Android emulator.\r\n\r\nh2. Actual results:\r\n\r\nDue to defaults defined in builder.py, I can fit only a couple of Ti apps before the emulator runs out of storage space. This results in a [FAILED_INSUFFICIENT_STORAGE] error. I can delete other apps to free space. However, if I need to work on multiple apps, I end up having to delete/install frequently.\r\n\r\nh2. Fix\r\n\r\nIn builder.py (in my version, line 491) increase the partition size value. Current value is 128 (MB). I suggest at least 1024.\r\n\r\n\r\n", "attachment": [], "flagged": false, "summary": "Android: increase AVD storage size to reduce [FAILED_INSUFFICIENT_STORAGE] errors", "creator": { "name": "skypanther", "key": "skypanther", "displayName": "Tim Poulsen", "active": true, "timeZone": "America/New_York" }, "subtasks": [], "reporter": { "name": "skypanther", "key": "skypanther", "displayName": "Tim Poulsen", "active": true, "timeZone": "America/New_York" }, "environment": null, "comment": { "comments": [ { "id": "201291", "author": { "name": "ngupta", "key": "ngupta", "displayName": "Neeraj Gupta", "active": true, "timeZone": "America/Los_Angeles" }, "body": "We should expose a configurable parameter. ", "updateAuthor": { "name": "ngupta", "key": "ngupta", "displayName": "Neeraj Gupta", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2012-07-02T18:26:58.000+0000", "updated": "2012-07-02T18:26:58.000+0000" }, { "id": "226331", "author": { "name": "ingo", "key": "ingo", "displayName": "Ingo Muschenetz", "active": true, "timeZone": "America/Los_Angeles" }, "body": "We should take care of this in the new CLI.", "updateAuthor": { "name": "ingo", "key": "ingo", "displayName": "Ingo Muschenetz", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2012-11-06T18:48:17.000+0000", "updated": "2012-11-06T18:48:17.000+0000" }, { "id": "268272", "author": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "body": "We have decided to NOT increase the size of the AVD, but rather improve installation errors when there's insufficient space (TIMOB-14701).", "updateAuthor": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "created": "2013-08-27T00:12:00.000+0000", "updated": "2013-08-27T00:12:00.000+0000" }, { "id": "268341", "author": { "name": "skypanther", "key": "skypanther", "displayName": "Tim Poulsen", "active": true, "timeZone": "America/New_York" }, "body": "Gaahhh! Curse you Perry the Platypus!", "updateAuthor": { "name": "skypanther", "key": "skypanther", "displayName": "Tim Poulsen", "active": true, "timeZone": "America/New_York" }, "created": "2013-08-27T13:43:08.000+0000", "updated": "2013-08-27T13:43:08.000+0000" }, { "id": "268343", "author": { "name": "ingo", "key": "ingo", "displayName": "Ingo Muschenetz", "active": true, "timeZone": "America/Los_Angeles" }, "body": "[~cbarber] Wait...what about the idea of adding a configurable parameter? That would be very important for Studio users who could choose a new default.", "updateAuthor": { "name": "ingo", "key": "ingo", "displayName": "Ingo Muschenetz", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-08-27T13:46:58.000+0000", "updated": "2013-08-27T13:46:58.000+0000" }, { "id": "268345", "author": { "name": "bitshftr", "key": "bitshftr", "displayName": "Shawn Lipscomb", "active": true, "timeZone": "America/New_York" }, "body": "Yes! Thank you Ingo!\r\n\r\nWhen I'm using the emulator, I just want to be able to install all/any of my apps, and keep their data intact.", "updateAuthor": { "name": "bitshftr", "key": "bitshftr", "displayName": "Shawn Lipscomb", "active": true, "timeZone": "America/New_York" }, "created": "2013-08-27T13:56:48.000+0000", "updated": "2013-08-27T13:56:48.000+0000" }, { "id": "268346", "author": { "name": "sfeather", "key": "sfeather", "displayName": "Stephen Feather", "active": true, "timeZone": "America/New_York" }, "body": "if we aren't going to make it configurable, at least document your build scripts so we know where to start hacking again. Have hacked build scripts for 3+ years to build a decent sized AVD or sdcard image to work with.", "updateAuthor": { "name": "sfeather", "key": "sfeather", "displayName": "Stephen Feather", "active": true, "timeZone": "America/New_York" }, "created": "2013-08-27T13:58:03.000+0000", "updated": "2013-08-27T13:58:03.000+0000" }, { "id": "268349", "author": { "name": "ingo", "key": "ingo", "displayName": "Ingo Muschenetz", "active": true, "timeZone": "America/Los_Angeles" }, "body": "[~skypanther] Would you suggest those be command-line flags, or just changes in how we create the defaults? Also, do you think that 1024 MB really is the bare minimum now?", "updateAuthor": { "name": "ingo", "key": "ingo", "displayName": "Ingo Muschenetz", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-08-27T14:30:29.000+0000", "updated": "2013-08-27T14:30:29.000+0000" }, { "id": "268359", "author": { "name": "skypanther", "key": "skypanther", "displayName": "Tim Poulsen", "active": true, "timeZone": "America/New_York" }, "body": "From private comment, orientation/accelerometer and keyboard emulation should be enabled by default. As for AVD size, average development-version APK size is running around 50 MB these days. So, 10 apps would be ~512MB. I'd say that's the bare minimum.\n\nPerhaps the better way to handle this is to:\n\n- Create a basic AVD using the defaults I listed\n\n- Add a command-line flag (expose in Studio UI too) that lets the developer target a specific AVD that he/she has created manually. The Android tooling lets you create AVDs that emulate specific devices or include various hardware emulations. ", "updateAuthor": { "name": "skypanther", "key": "skypanther", "displayName": "Tim Poulsen", "active": true, "timeZone": "America/New_York" }, "created": "2013-08-27T15:21:27.000+0000", "updated": "2013-08-27T15:21:27.000+0000" }, { "id": "268360", "author": { "name": "sfeather", "key": "sfeather", "displayName": "Stephen Feather", "active": true, "timeZone": "America/New_York" }, "body": "Tim's math is based upon 10 unique apps pushed x number of times to the emulator. \r\n\r\nADB doesn't always clean up after itself on an install (sometimes at all/sometimes slowly). \r\nIf the original apk is locked myapp(1).apk then when the update is pushed myapp(2).apk the first one may not be deleted.\r\nThis occurs less often with newer android tooling and new titanium tooling.\r\nHowever, you could have a single app, built multiple times, fill a 64-512mb with as few as 1-10 failed pushes.\r\n\r\n(and lord knows with the android emulator, there aren't enough chickens or pentagrams to keep those failures at bay)\r\n\r\nI won't even bring up the 50+mb debugging logs that adb can accumulate without cleaning up after itself.\r\n\r\n", "updateAuthor": { "name": "sfeather", "key": "sfeather", "displayName": "Stephen Feather", "active": true, "timeZone": "America/New_York" }, "created": "2013-08-27T15:32:23.000+0000", "updated": "2013-08-27T15:32:23.000+0000" }, { "id": "268445", "author": { "name": "ingo", "key": "ingo", "displayName": "Ingo Muschenetz", "active": true, "timeZone": "America/Los_Angeles" }, "body": "[~sfeather] We were curious--what hacking did you do on the build scripts?", "updateAuthor": { "name": "ingo", "key": "ingo", "displayName": "Ingo Muschenetz", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-08-27T20:48:53.000+0000", "updated": "2013-08-27T20:48:53.000+0000" }, { "id": "268555", "author": { "name": "skypanther", "key": "skypanther", "displayName": "Tim Poulsen", "active": true, "timeZone": "America/New_York" }, "body": "In case Stephen doesn't respond, I used to do the same thing: edit the AVD definition command in the python script. I had to re-apply the fix with each new release of the SDK. But it was worth the trouble. \n\nFollowing up on Stephen's comment about ADB not cleaning itself up: I'm debugging interapp communication on Android, which requires two apps. I can install both once. But any subsequent builds for the second app give me the insufficient space error -- buried within a ton of other Android console output. It's easy to miss the fact that you're not really running the new version which didn't get installed because there wasn't space. I have to delete the second app after each test run, then build the new version.\n\nADB not cleaning up is obviously not our problem. But, a larger AVD size and better error messaging, would lessen the impact of ADB's failings.", "updateAuthor": { "name": "skypanther", "key": "skypanther", "displayName": "Tim Poulsen", "active": true, "timeZone": "America/New_York" }, "created": "2013-08-28T13:11:00.000+0000", "updated": "2013-08-28T13:11:00.000+0000" }, { "id": "268573", "author": { "name": "ingo", "key": "ingo", "displayName": "Ingo Muschenetz", "active": true, "timeZone": "America/Los_Angeles" }, "body": "One discussion we had was that by upping the size of every AVD, that could consume significant additional space. An alternate approach was for us to reuse the existing AVDs that come with the Android SDK rather than creating new ones ourselves. Thoughts?", "updateAuthor": { "name": "ingo", "key": "ingo", "displayName": "Ingo Muschenetz", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-08-28T14:51:48.000+0000", "updated": "2013-08-28T14:51:48.000+0000" }, { "id": "268575", "author": { "name": "ingo", "key": "ingo", "displayName": "Ingo Muschenetz", "active": true, "timeZone": "America/Los_Angeles" }, "body": "[~skypanther] And you're editing approximately line https://github.com/appcelerator/titanium_mobile/blob/eb183c0991900c73c01513c0c4861c9498519ecf/support/android/builder.py#L603?", "updateAuthor": { "name": "ingo", "key": "ingo", "displayName": "Ingo Muschenetz", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-08-28T14:54:18.000+0000", "updated": "2013-08-28T14:54:30.000+0000" }, { "id": "268580", "author": { "name": "bitshftr", "key": "bitshftr", "displayName": "Shawn Lipscomb", "active": true, "timeZone": "America/New_York" }, "body": "> One discussion we had was that by upping the size of every AVD, \r\n> that could consume significant additional space.\r\n\r\n\"Additional space\" where? On my hard drive? I've got hundreds of GB free.", "updateAuthor": { "name": "bitshftr", "key": "bitshftr", "displayName": "Shawn Lipscomb", "active": true, "timeZone": "America/New_York" }, "created": "2013-08-28T15:00:55.000+0000", "updated": "2013-08-28T15:00:55.000+0000" }, { "id": "268582", "author": { "name": "ingo", "key": "ingo", "displayName": "Ingo Muschenetz", "active": true, "timeZone": "America/Los_Angeles" }, "body": "[~bitshiftr] You do, but not everyone does, and I don't like making the assumption that I could grab an extra 10 GB off someone's SSD. That's why I'd prefer to it be a preference of some kind over a stock value.", "updateAuthor": { "name": "ingo", "key": "ingo", "displayName": "Ingo Muschenetz", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-08-28T15:05:35.000+0000", "updated": "2013-08-28T15:05:35.000+0000" }, { "id": "268585", "author": { "name": "skypanther", "key": "skypanther", "displayName": "Tim Poulsen", "active": true, "timeZone": "America/New_York" }, "body": "Ingo, yes, line 603 that you referenced.\n\nReusing existing AVDs would be great. Keep in mind that none are created by default with a new install. Still, having the option to use one I define myself would be wonderful. It could be a build option.", "updateAuthor": { "name": "skypanther", "key": "skypanther", "displayName": "Tim Poulsen", "active": true, "timeZone": "America/New_York" }, "created": "2013-08-28T15:11:25.000+0000", "updated": "2013-08-28T15:11:25.000+0000" }, { "id": "268587", "author": { "name": "bitshftr", "key": "bitshftr", "displayName": "Shawn Lipscomb", "active": true, "timeZone": "America/New_York" }, "body": "Agreed about the additional HD/SSD space. I'm still a fan of the idea of making it a Ti Studio preference. Then if I want to up the size of every AVD, I can do it.", "updateAuthor": { "name": "bitshftr", "key": "bitshftr", "displayName": "Shawn Lipscomb", "active": true, "timeZone": "America/New_York" }, "created": "2013-08-28T15:16:14.000+0000", "updated": "2013-08-28T15:16:14.000+0000" }, { "id": "275396", "author": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "body": "In Titanium SDK 3.2.0, we no longer create AVDs. You must create your own AVDs. This way you can reuse emulators, configure them as you see fit, and avoid creating a dozen \"titanium_*\" AVDs.\r\n\r\nAs apart of TIMOB-14701, we now display a helpful error message when there's insufficient space.", "updateAuthor": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "created": "2013-10-17T08:37:44.000+0000", "updated": "2013-10-17T08:37:44.000+0000" }, { "id": "414810", "author": { "name": "lmorris", "key": "lmorris", "displayName": "Lee Morris", "active": false, "timeZone": "America/Los_Angeles" }, "body": "Closing ticket as the issue will not fix and with reference to the above comments. ", "updateAuthor": { "name": "lmorris", "key": "lmorris", "displayName": "Lee Morris", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2017-03-22T17:50:01.000+0000", "updated": "2017-03-22T17:50:01.000+0000" } ], "maxResults": 22, "total": 22, "startAt": 0 } } }