OMMONSWAREC
TheBusyCoder'sGuide to
Android
Development
MarkL.Murphy
Version
8.2
SupportsThrough
Android7.1!
The Busy Coder's Guide to Android Development
by Mark L. Murphy
The Busy Coder's Guide to Android Development
!!"#
$#%#&'(
$)*
+* , -&./*0010
2# 3.#45#6# ####'
#'(##'("7
2 #89 ''# ''
'(#
Table of Contents
$)".!*-(// $) )&<#.&# #1 #)" .$) /# './1 -.$*)E
R - !
◦ '*( /*/# **&H EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE 3'$$$
◦ # **&K./-0/0- EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE 3'$$$
◦ ",#&- :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 2�
◦ *0//# +/ . EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE '
◦ ".?-1#(,-#)(N:H> ::::::::::::::::::::::::::::::::::::::::::::::::::::::::: &
◦ - .-$+/$*) EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE '
◦ *0//# $/$*) EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE '$
◦ **&0"*0)/4 EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE '$$
◦ *0- * )/.$ ). EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE '$$$
◦ ,.#0)'')(-(.")/,<.)<,BJHC/,(. :::::: �
◦ &)*2' "( )/. EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE '$1
R 4)-*$*) +/.
◦ )-*$++'$/$*). EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE b
◦ )-*$ 1$ . EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE h
◦ *)K/ - EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE bb
R #**.$)"*0- 1 '*+( )/**'#$)
◦ )-*$/0$* EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE bd
◦ '$+. EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE bd
◦ )/ ''$ EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE be
◦ )''(<#(/#&-0#,& ),(,)# :::::::::::::::::::::::::: GJ
◦ //# -'/ -)/$1 . EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE be
◦ .F)#$.**& EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE bf
◦ #/ - */*1 -$)" EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE bf
R 0/*-$'`bG)./''$)"/# **'.
◦ 0/$-./B*( */ .*0/)-*$K.(0'/*- EEEEEEEEEEEEEEEEEEEEEEEEEEEEE bh
◦ .*EG9"%#(!)/,,1, ::::::::::::::::::::::::::::::::::::::::::::: GN
◦ / +`cD //$)"+1)dcG$/$)030++*-/ EEEEEEEEEEEEEEEEEEEEEEEEEEE bj
◦ .*EI9(-.&&(,)#./#) ::::::::::::::::::::::::::::::::::::::::::::::::: GO
◦ / +`eD)./''/# .)G). EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE cb
◦ )0- 3/+$.* F EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE db
R )-*$)-*% /.
◦ )'')()(*.- :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: II
◦ ,)$.-((,)#./#) :::::::::::::::::::::::::::::::::::::::::::::::::::: IJ
◦ /-/ --*% / ) -/*-. EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE eb
i
R 0/*-$'`cG- /$)"/0-*% /
◦ *0/0-0/*-$'-*% / EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE ed
◦ *0//# ./*!/# 0/*-$'. EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE ee
◦ *0/0-**'. EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE ee
◦ / +`bD- /$)"/# -*% / EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE ee
◦ / +`cD / 4!*-/# 3ig(0'/*- EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE eh
◦ / +`dD /+/# EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE ei
◦ / +`eD /+/# 1$ EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE fe
◦ / +`fD0))$)"/# -*% / EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE fj
◦ )0- 3/+$.* F EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE ga
R //$)"-*0))-*$/0$*
◦ 0#!.#(!",)$.2*&),, :::::::::::::::::::::::::::::::::::::::::::::: LG
◦ 0))$)"-*% /. EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE ge
◦ #1#(!/.*/. :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: LL
◦ ..$)")-*$**'. EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE gi
◦ )-*$/0$*) ' . #)) '. EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE hb
◦ $.$//# -$'.H EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE hc
R *)/ )/.*!)-*$-*% /.
◦ ".)/.8((,& ::::::::::::::::::::::::::::::::::::::::::::::::::::::::: MI
◦ ")(.(.-) ((,)#./#),)$. ::::::::::::::::::::::::::::: MK
◦ # *)/ )/.*!)'$+. G/4' -*% / EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE hh
◦ #/*0 /0/!/ EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE hi
R )/-*0$)"-' )/# )$! ./
◦ -' D# $"0 ./$*). EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE hj
◦ /$)$)"-' EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE ic
◦ -.$*).*!-' )/# )-*$'0"$)!*--' EEEEEEEEEEEEEEEEEEEE ie
◦ -' )1$-*)( )/-$' . EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE if
◦ 2'#(#(!.",&#&- :::::::::::::::::::::::::::::::::::::::::::::::::::::: NK
◦ )/-*0$)"/# )$! ./ EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE ii
◦ "#(!-()'')(.1(."(# -.(,& :::::::::::: NN
◦ /# --' / (.*!*/ EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE jc
◦ # - K./# I EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE je
◦ # ./*!/# )$! ./ EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE je
◦ -)$)"*- *0/-' EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE jg
◦ #-#..",#&-= ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: OM
R 0/*-$'`dG)$! ./#)" .
◦ *( */ .*0/ '/$1 /#. EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE jj
◦ .*EG9/**),.#(!,(- :::::::::::::::::::::::::::::::::::::::::::::::::::::: OO
◦ .*EH9&)%#(!%/*- :::::::::::::::::::::::::::::::::::::::::::::::::::::: GFF
◦ / +`dD")*-$)"$)/ EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE baa
◦ (/,2.*#-); :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: GFH
ii