Sunday, March 13, 2016

How much Android Non-Promoted Apps Earn?

UPDATED part of article begins "UPDATE"  section below.

This article will be short and straight to what a developer must know. If you come across articles like “how I earned millions and blah blah” then in many cases they are doing their marketing only. In business many people don't want to create competitors for free and one making such money will not make noise every place like spammer. Most people publish such articles just to attract people do some affiliate marketing, get visits/installs or sell their contents by making you dream high.


When one says “some of our people earn millions” truly means only some of them earn. Some can even be only one. What this article is about? Well by seeing the figures you can judge yourself how much real money comes even after publishing 5-10+ apps with ads. I came to see even much more poor stats for paid apps.

Lets look at the stats, screen-shot of Adsense Mobile app -










This is screen-shot of income from 5+ apps in total. Looking at stats you might feel how disastrous the income is? You are right, it is disastrous to shut down anyone's career. I used to make 200x than this in Nokia Ovi store. I will not disclosure the exact links of apps and detailed income report.


The screen-shot shows LifeTime 27,709 Ads shown in screen and made $47+. Great thing is that this will still be deducted when Google will take 30% of this and then US government will deduct taxes and Indian Government will deduct taxes. I have rough estimate that will result in total real income in hand ~$20-25. With this anyone can buy 1+ Birthday cakes. So what do you think where is the problem? It is not in Ads. It is in lesser number of downloads. So how much is less? Let me tell how much these apps got producing above income. Out of ~8 apps 4 didn't got any downloads to be shared here. Without giving names I am sharing stats: Puzzle Game - ~950 Downloads in 3yrs. Action Game - ~6000 downloads in 9 months. App 1 - ~250 downloads in 2yrs. 3 Apps launched in December 2015 - < 50 downloads (Were utilities like Fake SMS, Notification tool etc). Some more apps recently launched which have crossed 100+ downloads in less time with zero promotion.



At present all downloads I get are from organic users by nearly zero promotion. I don't have enough money for promotion. Most apps don't even cross 50 downloads in months. I was talking about how much daily downloads is less. Well I am sharing how much do I get then you take average of how much these numbers make money. Last year I was getting around ~80 downloads daily for my Bestial Kungfu game. It used to make ~$0.2+ daily. Today all apps get 30-100 daily downloads and earn always less than ~$0.2.

If they get downloaded 100x more then income becomes $20 daily. That means 500+ daily downloads are absolute minimum. Rest calculation is up to you. I can give one important tip which is its useless to make lots of apps. Quantity will not work. I tried making FakeSMS, Gallery, Notification tool, File Monitoring app, runner 2d games, 3d games like Temple Run, 3D tools etc. This article does not means there is no money. I know many are making great money from very simple apps. What really matters is timing. If some app is not there it can be you to build it. I am working on those apps and focusing on website more than before.



UPDATE

I have got more stats to share. My app imagesizereducer. From past 2-3 months gets 500+ downloads daily. Sometimes 750+. From all apps i get ~1000 downloads a day. I use Banner ads on above app and users mostly come from Asia. The daily income is still not USD 1 a day. Sometimes it goes 1+ but on average its not even $1.








Saturday, March 12, 2016

Compiling GraphicsMagick (1.3.23) using Android NDK

Compiling GraphicsMagick (1.3.23) using Android NDK


Before starting read this common guide how to build libpng with Android NDK  for most of 
building process as it will be re-writing of same stuff if I write here as well.

After above guide understood and ensured the NDK and other tools are correctly setup.
Follow these step to build GraphicsMagick 1.3.23.
 

Setup:
  • Create directory GM and extract GraphicsMagick 1.3.23 contents inside it. Go inside extracted GM directory.
  • Create directories "prefix" and "dependencies". Instead of prefix you can give names like bin, binaries etc.
  • Copy lib****.a files in GM/dependencies directory. libjasper.a liblzma.a libtiff.a libfreetype.a libjpeg.a libpng.a libwebp.a. If you don't have these libraries then with help of above libpng, webp, FreeType etc guide you can make them.
  • Create GM/dependencies/include directory and copy APIs i.e. headers from all above libraries inside it.
Below is the script to build GraphicsMagick. It does not build c++ apis.


Android Script

# AndroidBuild.sh START
#!/bin/sh
# http://www.ourinnovativemind.in
# http://www.gamesgreh.in

# use custom build environment
export DEPENDENCIES="`pwd`/dependencies"
export INC_DEPENDENCIES=${DEPENDENCIES}/include
export INC_JPEG=${INC_DEPENDENCIES}/jpeg
export INC_PNG=${INC_DEPENDENCIES}/png
export INC_TIFF=${INC_DEPENDENCIES}/tiff
export INC_WEBP=${INC_DEPENDENCIES}/webp
export INC_TTF=${INC_DEPENDENCIES}/ttf
export INC_JASPER=${INC_DEPENDENCIES}/jasper
export INC_LZMA=${INC_DEPENDENCIES}/lzma


export EXTRA_INCLUDES="-I${INC_DEPENDENCIES} -I${INC_JPEG} -I${INC_PNG} -I${INC_TIFF} -I${INC_WEBP} -I${INC_TTF} -I${INC_JASPER} -I${INC_LZMA}"
export EXTRA_LIBS=$DEPENDENCIES


export CONFIGURATION_OPTIONS="--disable-largefile --disable-openmp --without-magick-plus-plus --disable-installed --without-threads --without-x --without-perl --disable-shared --without-gslib"



# use custom build environment

# installation directory
export PREFIX="`pwd`/prefix"

# Path of NDK. For simplicity make symlinks in home directories
export NDK=/home/bindesh/bin/ndk

# processor specific libraries and includes.
# Suffix for arch-???. arch-arm  arch-arm64  arch-mips  arch-mips64  arch-x86  arch-x86_64
export ARCH=arm

# compiler for processor
export CROSS_COMPILE=arm-linux-androideabi

# Android platform version
export PLATFORM=android-8

# GCC compiler version
export GCC_VERSION=4.8


# Getting toolchain directory inside NDK from variables set above
# Hardcoded for linux running on x86 cpu 64-Bit
export ANDROID_PREFIX="${NDK}/toolchains/$CROSS_COMPILE-$GCC_VERSION/prebuilt/linux-x86_64"

# SYSROOT. usr dir i.e. usr/include, usr/lib
export SYSROOT="${NDK}/platforms/$PLATFORM/arch-$ARCH"
export CROSS_PATH="${ANDROID_PREFIX}/bin/${CROSS_COMPILE}"

# Some compiler and binutils. More might be needed depending on source. 
export CPP=${CROSS_PATH}-cpp
export AR=${CROSS_PATH}-ar
export AS=${CROSS_PATH}-as
export NM=${CROSS_PATH}-nm
export CC=${CROSS_PATH}-gcc
export CXX=${CROSS_PATH}-g++
export LD=${CROSS_PATH}-ld
export RANLIB=${CROSS_PATH}-ranlib

# for C++ extra libs
export CXX_SYSROOT=${NDK}/sources/cxx-stl/gnu-libstdc++/${COMPILER_VERSION}  # standard template library
export CXX_BITS_INCLUDE=${CXX_SYSROOT}/libs/armeabi/include

export PKG_CONFIG_PATH=${PREFIX}/lib/pkgconfig


# Flags for compiler
export CFLAGS="${CFLAGS} --sysroot=${SYSROOT} -I${SYSROOT}/usr/include -I${ANDROID_PREFIX}/include ${EXTRA_INCLUDES}"
export CPPFLAGS="${CFLAGS}"
export LDFLAGS="${LDFLAGS} -L${SYSROOT}/usr/lib -L${ANDROID_PREFIX}/lib -L${EXTRA_LIBS}"


./configure --host=${CROSS_COMPILE} --with-sysroot=${SYSROOT} --prefix=${PREFIX} "$@" $CONFIGURATION_OPTIONS
make
make install
# AndroidBuild.sh END


Copy all lines above and paste in a new file AndroidBuild.sh and save. Then change the 
variables valid for your system. Create folder prefix or whatever name you like. 
Change NDK variable and compiler related values as per your system.
This script copied from web can cause error due to removal of newlines for strange reasons.
Ensure # is ahead of comments. 
 Now run sh AndroidBuild.sh. It should end without errors. This will install all built files
in prefix directory. Now we can copy libpng16.a renamed to libpng.a and headers directory.


Links:

Script file
http://txt.do/5ns57 or http://textuploader.com/5ns57