(by @andrestaltz)
If you prefer to watch video tutorials with live-coding, then check out this series I recorded with the same contents as in this article: Egghead.io - Introduction to Reactive Programming.
/** | |
* * New version: 30/May/2017 | |
* * Made it more kotlin-like with same functionality ^^ | |
* | |
* based on: https://gist.github.com/RomansBermans/6f3836188427fbd3b1efcf7e6418f06d | |
* Fancy ID generator that creates 20-character string identifiers with the following properties: | |
* | |
* 1. They're based on timestamp so that they sort *after* any existing ids. | |
* 2. They contain 72-bits of random data after the timestamp so that IDs won't collide with other clients' IDs. | |
* 3. They sort *lexicographically* (so the timestamp is converted to characters that will sort properly). |
(by @andrestaltz)
If you prefer to watch video tutorials with live-coding, then check out this series I recorded with the same contents as in this article: Egghead.io - Introduction to Reactive Programming.
#!/bin/sh | |
if test $# -lt 1 ; then | |
echo "Usage: download_apk.sh <GooglePlayPackageName>" | |
exit 1 | |
fi | |
PACKAGE=$1 | |
APK_PATH=`adb shell pm list packages -f -3 | grep $PACKAGE | cut -d'=' -f 1 | cut -c9-` | |
echo "Pulling $APK_PATH from device" | |
echo `adb pull ${APK_PATH} ./${PACKAGE}.apk` |
System directories
Method | Result |
---|---|
Environment.getDataDirectory() | /data |
Environment.getDownloadCacheDirectory() | /cache |
Environment.getRootDirectory() | /system |
External storage directories