Thursday, July 12, 2012

Advanced ACRA 1: OS Version reporting

Assumption: ACRA is set and running.

Here's how to display in which Android OS version you get the most exceptions. If the exceptions distribution are different from Android OS distribution in the market - the issues might be OS version dependent.

You can use Google Visualization API as described here.

but there's a simpler solution - create a summary with-in the Google Docs spreadsheet.

1. Open an active ACRA reporting spreadsheet (containing data).
2. On the main menu: 'Data' -> 'Pivot table report'
3. In the 'Report Editor' do:
3.1. Select: 'Rows' -> 'Add field' and select ANDROID_VERSION
3.2. Select (Optional): 'Columns' -> 'Add field' and select APP_VERSION_NAME
3.3. Select: 'Values' -> 'Add field' and select 'Timestamp'. Click on 'Summarize by' and select COUNT.
3.4. Select (Optional): 'Filter' -> 'Add field' and select APP_VERSION_NAME, and select which app versions to display

Wednesday, July 11, 2012

Few tips for Android (game) developer

Alternative title: What to do to NOT get NOT featured on Google Play

Here are the main headlines from Google I/O 2012 - Ten Things Games Developers Should Know talk.
  1. Very that your app works on the latest version of Android & high-res devices. Verify you're using relevant features for the latest version (not comparability mode).
  2. Try to stop pirates & vampires.
    Pirate - steal software. Google solution: use LVL - License Verification Library.
    Vampire - steal bandwidth. Google solution: don't download large resource files - use APK expansion files.
  3. Don't mess with the buttons. Make the 'Back' button behave as the user expect.
  4. Respect the life cycle. When a device is locked/exited/etc - pause your game. When your game is paused, don't play music.
  5. Minimize permissions. Bad permissions: (1) change wifi settings, (2) Receive boot completed, (3) Query running tasks, (4) Obtain fine location, (5) Read system log, (6) Directly call phone numbers, (7) Read/write contacts/calendar, (8) Read/write bookmarks, (9) Display system level alerts & (10) Send/receive SMS.
  6. Conserve resources. Minimize battery, memory, storage, bandwidth. Use the APK expansion files in-place, don't unpack them & delete (the Google Play will re-download it).
  7. Play by the rules of Google Play. (1) No payment providers other than Google Play, (2) Don't upload an app that downloads another app (e.g. alternative app store), (3) Don't bribe customers for 5-stars reviews.
  8. In app payments problems. For example: you app is asleep when the billing message arrives. The correct way for in-app billing: the in-app billing service should directly persist the purchase information to a storage, and your app will read it from the storage.
  9. Testing: Input devices, Form factor, OS Version. Driver stack & GPU hardware.
  10. Play listings. Problem with the listings, images that do no fit small screens (small subtitles).