[ About | Licence | Contacts ]
Written by Oleksandr Gavenko (AKA gavenkoa), compiled on 2017-01-30 from rev ccaa2f364422+.

Android.

Official docs.

http://developer.android.com/sdk/index.html
Get the Android SDK
http://developer.android.com/guide/index.html
Introduction to Android
https://android.googlesource.com/platform/system/core/+/master/init/readme.txt
init.rd file syntax.

Android API levels.

http://developer.android.com/guide/topics/manifest/uses-sdk-element.html
"Platform Version / API Level" table.

Package repositories.

https://play.google.com/
Google package repository.
https://f-droid.org/
Free software repository.
http://www.appbrain.com/
AppBrain, alternative catalog to Google Play. Packages is backed via lisnk to Google Play.

Link to package description page:

https://play.google.com/store/apps/details?id=com.google.android.talk

See also:

http://android.stackexchange.com/questions/216/what-are-the-alternative-android-app-markets/
What are the alternative Android app markets?

Mods.

http://xda-university.com/
How to mod.
http://www.cyanogenmod.org/about
CyanogenMod
https://www.clockworkmod.com/
ClockworkMod

Connect to Android via USB by adb.

Add udev rule for fix permission issues:

$ cat /etc/udev/rules.d/90-android.rules

# Standard Google device.
SUBSYSTEM=="usb", ATTR{idVendor}=="0bb4", ATTR{idProduct}=="0c03", MODE="0666", GROUP="plugdev"
# China N101 II
SUBSYSTEM=="usb", ATTR{idVendor}=="2207", ATTR{idProduct}=="0010", MODE="0666", GROUP="plugdev"

Reload udev rules and re-plug device via USB:

$ sudo service udev force-reload

See:

http://developer.android.com/tools/device.html
Setting up a Device for Development.

Recovery.

To enter phone to recovery mode press VolumeDown``+``Power button or:

adb reboot recovery

See:

http://teamw.in/project/twrp2
Custom recovery built.

ADB tips.

List available devices:

$ adb devices

Install application from .apk file:

$ adb install -r /path/to/application.apk

List installed package names (with path to .apk files!):

$ adb shell 'pm list packages -f'

Uninstall application by its package name:

$ adb uninstall PACKAGE_NAME

Disable/enable application:

$ adb shell pm disable PACKAGE_NAME
$ adb shell pm enable PACKAGE_NAME

List of disabled packages:

$ adb shell pm list packages -d

List of application properties (version, permissions, etc):

$ adb shell dumpsys package $PKG

List currently run activities:

$ adb shell 'dumpsys activity'

Find activities from package:

$ adb shell 'pm list packages -f'
$ adb pull APK_FROM_LIST
$ aapt dump badging APK_FILE

Start an activity:

$ adb shell am start PACKAGE_NAME/ACTIVITY_IN_PACKAGE
$ adb shell am start PACKAGE_NAME/FULLY_QUALIFIED_ACTIVITY

Start an activity with action filter:

android# am start -a com.example.ACTION_NAME -n com.package.name/com.package.name.ActivityName

List of running processes:

$ adb shell ps

or (supported arguments user,group,comm,args,pid,ppid,pgid,etime,nice,rgroup,ruser,time,tty,vsz,stat,rss):

$ adb shell
% ps -o pid,user,group,rss,vsz,args

To kill process:

$ adb shell ps | grep $REGEX
$ adb shell kill $PID

To stop application:

$ adb shell am kill com.google.android.contacts
$ adb shell am force-stop com.google.android.contacts

Take a screenshort:

$ adb shell screencap -p | perl -pe 's/\x0D\x0A/\x0A/g' > screen.png

Power button:

$ adb shell input keyevent 26

Unlock screen:

$ adb shell input keyevent 82

Show system log:

$ adb logcat
$ adb logcat "*:W"

dumpsys

Info from all services:

$ adb shell dumpsys

List of available services:

$ adb shell service list

Info from concrete service:

$ adb shell dumpsys phone
$ adb shell dumpsys diskstats
$ adb shell dumpsys usb
$ adb shell dumpsys activity
$ adb shell dumpsys package
$ adb shell dumpsys display
$ adb shell dumpsys gfxinfo
$ adb shell dumpsys power
$ adb shell dumpsys battery
$ adb shell dumpsys batteryinfo
$ adb shell dumpsys cpuinfo
$ adb shell dumpsys dbinfo
$ adb shell dumpsys meminfo
$ adb shell dumpsys account
$ adb shell dumpsys netstats

List partition.

List partitions (with sizes):

android# cat /proc/partitions
android# cat /proc/mtd

List mounted file systems:

android# mount
android# df

Remount /system as RW

Usually with:

$ adb remount

If you have root but above command fail:

$ adb shell
android# su
android# mount | grep /system
...
android# mount -o remount,rw /system

Working with apk files

Getting package name, version, API requirements and permissions:

$ aapt dump badging $FILE.apk

Controlling Android from PC.

Show screencast from Android.

http://droid-at-screen.ribomation.com/
Easily show the screen of an Android device on a computer/laptop (PC, Mac, Linux, ...) and then project the desktop using a LCD-projector.