• Stars
    star
    420
  • Rank 102,781 (Top 3 %)
  • Language
    Ruby
  • Created almost 12 years ago
  • Updated over 9 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Google Play Crawler

PlayDrone

This repository contains the code used in the following paper:

A Measurement Study of Google Play

The talk can be watched on Youtube: http://youtu.be/xS0lyL_0OAM

The slides are available here: http://viennot.com/playdrone-slides.pdf

The paper can be downloaded here: http://viennot.com/playdrone.pdf


November 2014 Market Snapshot

archive.org has deployed PlayDrone to capture a few days worth of data.

Instructions on how to get this dataset can be found on https://archive.org/details/android_apps.

PlayDrone Code

The code is research quality code. It's poorly documented, and have no test suite.

Most of the code lies in lib/ and app/models/.

I strongly discourage you to run the code and encourage you to use it only as a reference, but if you must, here are the basic steps to process an app in dev mode:

  1. Make sure you have Ruby and Java installed

  2. Make sure you have Elasticsearch and Redis running

  3. Run bundle install

  4. Run rails c

  5. Add a google account with Account.create(:email => 'email', :password => 'password', :android_id => 'id'). An android id can be generated with Android Checkin.

  6. Running Account.first_usable should not block, but return something.

  7. Run Stack.process_app(:app_id => 'com.facebook.katana').

  8. You should see the facebook app repo in the repos directory.


If you want to go in production and launch the crawler, you can use the PlayDrone Kitchen.

Follow the instructions, edit deploy/settings.rb and run cap deploy:setup and cap deploy.

If everything works out (good luck), you'll be able to kick of jobs from a rails console. Try Stack.process_app(:app_id => 'com.facebook.katana'), and PlayDrone should discover at least half of the market by looking at related apps. Note that to increase the throughput, you may need to add more Google accounts.

Here's what you can expect to see once everything is running in the graphite dashboard:

Dashboard


GET ALL THE APPS!

PlayDrone is released under the MIT license.

More Repositories

1

core-to-core-latency

Measures the latency between CPU cores
Jupyter Notebook
1,078
star
2

stm32-emulator

Rust
358
star
3

jd-core-java

Java Library for JD-Core, a java decompiler
Java
257
star
4

turbo-resin

Open-source firmware for resin printers
Rust
210
star
5

irb-config

Enhances your Ruby REPL. Supports rails, mongoid, rspec and cucumber
Ruby
139
star
6

android-checkin

Pretends to be a phone to get a legit android_id
Java
133
star
7

rspec-console

Run RSpec tests in your rails console
Ruby
101
star
8

reversing-mono4k

Reverse engineering of the Anycubic Mono 4K
BASIC
79
star
9

easy-finance

Personal finance accounting tool
JavaScript
79
star
10

vim-config

The Vim config I use
Vim Script
46
star
11

tmux-config

The tmux config I use
Makefile
45
star
12

mongoid_lazy_migration

Lazy Migrate your MongoDB documents to avoid downtime
Ruby
34
star
13

playdrone-kitchen

Kitchen for the Google Play Crawler cluster
Ruby
27
star
14

nginx-tcp-keepalive

Nginx TCP Keepalive configuration module
C
21
star
15

zsh-vim-plugin

Shell
20
star
16

tinyusb-sys-rs

Rust wrapper for the TinyUSB library
Rust
17
star
17

objc-tracer

Objective-C method call tracer
C
15
star
18

libscribe

Scribe user-space library
C
12
star
19

py-scribe

Scribe python bindings and Scribe userspace tools
Python
9
star
20

run_as_exe

C
8
star
21

tests-scribe

Test suite for Scribe
C
6
star
22

youtube-audio

Web service to stream the audio out of a youtube video in real time
Ruby
4
star
23

symbol_decoration

Support for Ruby symbol decorations such as where(:field.in => [1,2,3])
Ruby
3
star
24

stm32-gpio-monitor

Monitor the GPIO of a STM32 live
Rust
3
star
25

cflat

C Flat compiler
OCaml
3
star
26

cucumber-console

Run Cucumber tests in your console
Ruby
3
star
27

rails-env-switcher

Switch from a Rails environment to another
Ruby
3
star
28

thesis

My PhD thesis
TeX
2
star
29

abricot

Fast cloud command dispatcher tool with Redis pub/sub
Ruby
2
star
30

libssh

fork of libssh (bug fixes)
C
2
star
31

candy-crusher

Bot for candy crush
Ruby
2
star
32

edeliver-build-docker

docker image for edeliver
2
star
33

velvetpulse

My blog
CSS
1
star
34

mongoid-colors

Colorize your Mongoid traces
Ruby
1
star
35

synapse-benchmark

Ruby
1
star