Author Topic: Silent collection of device info  (Read 2859 times)

Offline Paul

  • Administrator
  • double
  • *****
  • Posts: 3499
  • Developer
    • View Profile
    • PaulsCode.Com
Silent collection of device info
« on: May 17, 2013, 06:05:56 PM »
I've been toying with the idea of writing a simple rest interface that is called from the app once upon starting the GL context, which collects the hardware string from cpuinfo and the renderer string from GL.  The goal would be to start collecting this output in large quantities to see if there is a correlation in the profiles we know about (to hopefully automate the profile matching rather than requiring the current manual process).  Any thoughts on what data should be collected, or if this sounds too invasive?  The shortage of testers is a fairly serious issue, and seems like some of the data collection we require could be automated silently in the background.
Device: Samsung Galaxy Nexus i515
CPU: TI OMAP4460, 1.2 GHz (dual core, ARM Cortex-A9)
GPU: PowerVR SGX540, 307 MHz
RAM: 1 GB
Resolution: 720 x 1280
Rom: omni-4.4.4-20141014-toro-FML KitKat 4.4.4, rooted

Device: Eee PC 1015PEM
CPU: Intel Atom N550, 1.5 GHz (dual core, x86)
GPU: Intel GMA 3150, 200 MHz (dual core)
RAM: 2GB
Resolution: 1024 x 600
Rom: android-x86-4.3-20130725 Jelly Bean 4.3, rooted

Offline littleguy

  • Moderator
  • double
  • *****
  • Posts: 1945
    • View Profile
Re: Silent collection of device info
« Reply #1 on: May 17, 2013, 07:39:07 PM »
Yes that info would certainly help a lot.  But the first thing that comes to mind is google TOS.  It would also raise a lot of red flags with users that could do more harm than good.  It would also be really easy for guys like Brad Geng to tweak the code to do something malicious.

With that in mind, I'd recommend treading carefully.  Require users to volunteer the info, even if you only collect a tiny fraction of data.  Maybe push the data using HTTP GET or something that's really obvious.  And rather than silently sending the data, just pop up a browser with the address pre-populated, so all they have to do is click OK in their browser.  Or make the page a form whose fields are pre-populated by the app.

On the nuts and bolts side, I would suggest collecting the GL renderer string in-game but persisting it to the AppData class or something.  Then the data could be sent at any time (or sent with crash reports in the custom entries), so as not to interrupt game play.  You could start by just making a top-level menuitem to send the data, and if the data is a trickle you could step it up by adding a nag dialog or something on the next release.

On the server side, a few thoughts.  Might be easy to use google docs/forms for the backend.  Or maybe your forum here has a way to catch data.  Could be something custom, or if the forum supports polls you might be able to bend that to your will.  Another option might be the new Google Play Game Services.  You could create achievements or something to motivate voluntary submissions, and/or use it to do the actual data collection.  Like a nugget is stored in the user profile or something.

Back to google TOS, another thought would be to put the data collection thing only in the apk version posted here on the forum.
2012 Nexus 7, rooted stock Lollipop
Samsung Galaxy Victory, rooted stock Jelly Bean
Xperia PLAY, stock Gingerbread
OUYA, retail version

Offline Kris

  • Developer
  • int
  • *****
  • Posts: 91
    • View Profile
Re: Silent collection of device info
« Reply #2 on: May 17, 2013, 07:56:07 PM »
GL info is on gfxbench.com formerly glbenchmark.com
« Last Edit: May 17, 2013, 07:59:19 PM by Kris »

Offline littleguy

  • Moderator
  • double
  • *****
  • Posts: 1945
    • View Profile
Re: Silent collection of device info
« Reply #3 on: May 17, 2013, 08:05:47 PM »
Wow, didn't realize my Tegra3 was so sh1tty.......
2012 Nexus 7, rooted stock Lollipop
Samsung Galaxy Victory, rooted stock Jelly Bean
Xperia PLAY, stock Gingerbread
OUYA, retail version

Offline littleguy

  • Moderator
  • double
  • *****
  • Posts: 1945
    • View Profile
Re: Silent collection of device info
« Reply #4 on: May 17, 2013, 08:24:02 PM »
So anyone want to look up these devices using pages like this and correlating against the GL Renderer found on pages like this?
2012 Nexus 7, rooted stock Lollipop
Samsung Galaxy Victory, rooted stock Jelly Bean
Xperia PLAY, stock Gingerbread
OUYA, retail version