First step is to find out your cpu architecture.
You can do that using adb with the following command:
adb shell getprop ro.product.cpu.abi

Non-Rooted Android:
To prepare your phone/tablet to use John the following steps are needed:

1. transfer all the source files  to you android device:
	adb push \user\. /data/local/tmp/
	adb push \libs\your_cpu_arch\john /data/local/tmp/

2. open shell on your device:
	adb shell
	
3. fix the permissions: 
	chmod -R 0755 /data/local/tmp/

3. start john as you usually do, e.g. 'john --test' to see benchmarks.

Rooted Android:
Since Android mounts /mnt/sdcard with the 'noexec' mount option the
included binary is more usable on so-called "rooted" systems.

To prepare your phone/tablet to use John the following steps are needed:

1. unpack the provided archive (likely, it's already done since this
   file is a part of the archive);

2. transfer both the content of the archive to your Android device;

3. on your Android device launch some terminal application
	and become root (by executing 'su');

4. remount /system read-write: mount -o remount,rw /system

5. copy 'john' from the supplied 'libs' directory (based on your cpu-arch) to /system/xbin/:
   cp /mnt/sdcard/<where_you_transferred_the_content>/libs/your_cpu_arch/john /system/xbin/

6. fix the permissions: chmod 0755 /system/xbin/john

7. remount /system to be read-only: mount -o remount,ro /system

8. drop root's privileges by exiting the shell.

Now, to execute john, all you need is to:

1. start your terminal application;

2. change directory to the uploaded 'user' directory (you can rename it
to whatever you want, BTW);

3. start john as you usually do, e.g. 'john --test' to see benchmarks.
-- 
(Internal-Error)

Based on http://www.openwall.com/lists/john-users/2011/07/17/1
by (GalaxyMaster)