android.rst
author Oleksandr Gavenko <gavenkoa@gmail.com>
Mon, 22 Feb 2016 12:46:36 +0200
changeset 1905 fba288d59662
parent 1856 07eb6c32d9ea
child 1912 8b81a8f0f692
permissions -rw-r--r--
Include only local subsections into TOC. This prevent duplication of TOC when build single page HTML document. Also this make unnecessary CSS hack to hide document title as top level section.

.. -*- coding: utf-8; -*-
.. include:: HEADER.rst

==========
 Android.
==========
.. contents::
   :local:

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 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"

List partition.
===============

List partitions (with sizes)::

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

List mounted file systems::

  android# mount
  android# df

Controlling Android from PC.
============================

 * http://code.google.com/p/androidscreencast/
 * http://code.google.com/p/android-screen-monitor/
 * http://androidwebkey.com/

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.