Apr
MAY
Jun
16
2020
2021
2022
About this capture
T h e W a y b a c k M a c h i n e - h t t p : / / w e b . a r c h i v e . o r g / w e b / 2 0 2 1 0 5 1 6 0 0 1 9 0 6 / h t t p s : / / d e v e l o p e r . a n d r o i d . c o m / t r a i n i n g / g e s t u r e s / v i e w g r o u p
P l a t f o r m
A n d r o i d S t u d i o
G o o g l e P l a y
J e t p a c k
K o t l i n
D o c s
N e w s
●
D o c u m e n t a t i o n
O v e r v i e w
G u i d e s
R e f e r e n c e
S a m p l e s
D e s i g n & Q u a l i t y
●
P l a t f o r m
●
A n d r o i d S t u d i o
●
G o o g l e P l a y
●
J e t p a c k
●
K o t l i n
●
D o c s
●
O v e r v i e w
●
G u i d e s
●
R e f e r e n c e
●
S a m p l e s
●
D e s i g n & Q u a l i t y
●
N e w s
A p p B a s i c s
● I n t r o d u c t i o n
B u i l d y o u r f i r s t a p p
● O v e r v i e w
● C r e a t e a n A n d r o i d p r o j e c t
● R u n y o u r a p p
● B u i l d a s i m p l e u s e r i n t e r f a c e
● S t a r t a n o t h e r a c t i v i t y
● A p p f u n d a m e n t a l s
A p p r e s o u r c e s
● O v e r v i e w
● H a n d l e c o n f i g u r a t i o n c h a n g e s
●
L o c a l i z a t i o n
● L o c a l i z e y o u r a p p
● T e s t y o u r a p p w i t h p s e u d o l o c a l e s
● U n i c o d e a n d i n t e r n a t i o n a l i z a t i o n s u p p o r t
● L a n g u a g e a n d l o c a l e r e s o l u t i o n
● C o m p l e x X M L r e s o u r c e s
●
R e s o u r c e t y p e s
● O v e r v i e w
● A n i m a t i o n
● C o l o r s t a t e l i s t
● D r a w a b l e
● L a y o u t
● M e n u
● S t r i n g
● S t y l e
● F o n t
● M o r e t y p e s
A p p m a n i f e s t f i l e
● O v e r v i e w
● < a c t i o n >
● < a c t i v i t y >
● < a c t i v i t y - a l i a s >
● < a p p l i c a t i o n >
● < c a t e g o r y >
● < c o m p a t i b l e - s c r e e n s >
● < d a t a >
● < g r a n t - u r i - p e r m i s s i o n >
● < i n s t r u m e n t a t i o n >
● < i n t e n t - f i l t e r >
● < m a n i f e s t >
● < m e t a - d a t a >
● < p a t h - p e r m i s s i o n >
● < p e r m i s s i o n >
● < p e r m i s s i o n - g r o u p >
● < p e r m i s s i o n - t r e e >
● < p r o f i l e a b l e >
● < p r o v i d e r >
● < q u e r i e s >
● < r e c e i v e r >
● < s e r v i c e >
● < s u p p o r t s - g l - t e x t u r e >
● < s u p p o r t s - s c r e e n s >
● < u s e s - c o n f i g u r a t i o n >
● < u s e s - f e a t u r e >
● < u s e s - l i b r a r y >
● < u s e s - n a t i v e - l i b r a r y >
● < u s e s - p e r m i s s i o n >
● < u s e s - p e r m i s s i o n - s d k - 2 3 >
● < u s e s - s d k >
D e v i c e s
D e v i c e c o m p a t i b i l i t y
● O v e r v i e w
● S c r e e n c o m p a t i b i l i t y o v e r v i e w
● S u p p o r t d i f f e r e n t p i x e l d e n s i t i e s
● S u p p o r t d i s p l a y c u t o u t s
● D e c l a r e r e s t r i c t e d s c r e e n s u p p o r t
●
M u l t i p l e A P K s u p p o r t
● O v e r v i e w
● C r e a t e m u l t i p l e A P K s f o r d i f f e r e n t A P I l e v e l s
● C r e a t e m u l t i p l e A P K s f o r d i f f e r e n t s c r e e n s i z e s
● C r e a t e m u l t i p l e A P K s f o r d i f f e r e n t G L t e x t u r e s
● C r e a t e m u l t i p l e A P K s w i t h s e v e r a l d i m e n s i o n s
● S u p p o r t d i f f e r e n t l a n g u a g e s a n d c u l t u r e s
● S u p p o r t d i f f e r e n t p l a t f o r m v e r s i o n s
● F i l t e r s o n G o o g l e P l a y
T a b l e t s , L a r g e s c r e e n s , a n d F o l d a b l e s
● R e s p o n s i v e l a y o u t s f o r t a b l e t s , l a r g e s c r e e n s , a n d f o l d a b l e s
● S u p p o r t d i f f e r e n t s c r e e n s i z e s
● M u l t i - w i n d o w s u p p o r t
● B u i l d i n g a p p s f o r f o l d a b l e s
W e a r
● O v e r v i e w
●
A d d i n g w e a r a b l e f e a t u r e s t o n o t i f i c a t i o n s
● O v e r v i e w
● C r e a t i n g a n o t i f i c a t i o n
● N o t i f i c a t i o n s t y l e s
● B r i d g i n g m o d e f o r n o t i f i c a t i o n s
● M a i n t a i n i n g c o m p a t i b i l i t y
●
C r e a t i n g w e a r a b l e a p p s
● O v e r v i e w
● C r e a t i n g a n d r u n n i n g a w e a r a b l e a p p
● W e t M o d e
● I n d e p e n d e n t v e r s u s d e p e n d e n t W e a r O S a p p s
● C r e a t i n g c u s t o m l a y o u t s
● K e e p i n g y o u r a p p v i s i b l e
● A u t h e n t i c a t i o n i n W e a r
● V o i c e i n p u t
● P a c k a g i n g a n d d i s t r i b u t i n g W e a r a p p s
● D e b u g g i n g a W e a r a p p
● C a p t u r i n g W e a r U I s c r e e n s h o t s
● C r e a t i n g W e a r a p p s f o r C h i n a
●
C r e a t i n g c u s t o m U I s
● O v e r v i e w
● D e f i n i n g l a y o u t s
● C r e a t i n g l i s t s
● S h o w i n g c o n f i r m a t i o n s
● E x i t i n g f u l l - s c r e e n a c t i v i t i e s
● U s i n g t h e W e a r U I l i b r a r y
● W e a r n a v i g a t i o n a n d a c t i o n s
● P h y s i c a l b u t t o n s
● R o t a r y i n p u t
● C r e a t i n g i n p u t m e t h o d e d i t o r s
● U s i n g w r i s t g e s t u r e s
●
S e n d i n g a n d s y n c i n g d a t a
● O v e r v i e w
● N e t w o r k a c c e s s a n d s y n c i n g
● A c c e s s i n g t h e w e a r a b l e d a t a l a y e r
● S y n c i n g d a t a i t e m s
● T r a n s f e r r i n g a s s e t s
● S e n d i n g a n d r e c e i v i n g m e s s a g e s
● H a n d l i n g d a t a l a y e r e v e n t s
● M i g r a t i n g W e a r a p p s t o G o o g l e A p i
●
C r e a t i n g d a t a p r o v i d e r s
● O v e r v i e w
● E x p o s e d a t a t o c o m p l i c a t i o n s
●
C r e a t i n g w a t c h f a c e s
● O v e r v i e w
● D e s i g n i n g w a t c h f a c e s
● B u i l d i n g a w a t c h f a c e s e r v i c e
● D r a w i n g w a t c h f a c e s
● W a t c h f a c e c o m p l i c a t i o n s
● E x p o s i n g d a t a t o c o m p l i c a t i o n s
● A d d i n g c o m p l i c a t i o n s t o a w a t c h f a c e
● C r e a t i n g i n t e r a c t i v e w a t c h f a c e s
● P r o v i d i n g c o n f i g u r a t i o n a c t i v i t i e s
● A d d r e s s i n g c o m m o n i s s u e s
● I m p r o v e p e r f o r m a c e w i t h h a r d w a r e a c c e l e r a t i o n
● O p t i m i z i n g w a t c h f a c e s
● D e t e c t i n g l o c a t i o n
● T i l e s
● R e q u e s t i n g P e r m i s s i o n s
● U s i n g t h e S p e a k e r
A n d r o i d T V
● O v e r v i e w
●
B u i l d T V A p p s
● O v e r v i e w
● G e t s t a r t e d w i t h T V a p p s
● A n d r o i d X T V l i b r a r i e s
● H a n d l e T V h a r d w a r e
● M a n a g e T V c o n t r o l l e r s
● B u i l d T V l a y o u t s
● O n - s c r e e n k e y b o a r d
● C r e a t e T V n a v i g a t i o n
● B e s t p r a c t i c e s f o r d r i v i n g e n g a g e m e n t o n G o o g l e T V
●
B u i l d T V p l a y b a c k a p p s
● O v e r v i e w
● C r e a t e a c a t a l o g b r o w s e r
● P r o v i d e a c a r d v i e w
● B u i l d a d e t a i l s v i e w
● U s e L e a n b a c k t r a n s p o r t c o n t r o l s
● P l a y b a c k c o n t r o l s o n T V
● D i s p l a y a N o w P l a y i n g c a r d
● A d d a g u i d e d s t e p
● I n t r o d u c e f i r s t - t i m e u s e r s t o y o u r a p p
● E n a b l e b a c k g r o u n d p l a y b a c k
●
H e l p u s e r s f i n d c o n t e n t o n T V
● O v e r v i e w
●
R e c o m m e n d T V c o n t e n t
● O v e r v i e w
● C h a n n e l s o n t h e h o m e s c r e e n
● V i d e o p r o g r a m a t t r i b u t e s
● A u d i o p r o g r a m a t t r i b u t e s
● G a m e p r o g r a m a t t r i b u t e s
●
W a t c h N e x t
● A d d p r o g r a m s
● A t t r i b u t e s
● G u i d e l i n e s f o r a p p d e v e l o p e r s
● G u i d e l i n e s f o r T V p r o v i d e r s
● P r e v i e w v i d e o s
● R e c o m m e n d a t i o n s i n A n d r o i d N a n d e a r l i e r
● M a k e T V a p p s s e a r c h a b l e
● S e a r c h w i t h i n T V A p p s
● B u i l d T V g a m e s
●
B u i l d T V i n p u t s e r v i c e s
● O v e r v i e w
● D e v e l o p a T V i n p u t s e r v i c e
● W o r k w i t h c h a n n e l d a t a
● M a n a g e T V u s e r i n t e r a c t i o n
● S u p p o r t t i m e - s h i f t i n g
● S u p p o r t c o n t e n t r e c o r d i n g
● T V A p p s c h e c k l i s t
●
T V A c c e s s i b i l i t y
● N o n N a t i v e A p p s A c c e s s i b i l i t y S u p p o r t
● N o n N a t i v e A p p s A c c e s s i b i l i t y B e s t P r a c t i c e s
● T a l k B a c k e v a l u a t i o n e x a m p l e s f o r T V a p p s
● A n d r o i d 1 2 D e v e l o p e r P r e v i e w f o r T V
A n d r o i d f o r C a r s
● O v e r v i e w
●
B u i l d m e d i a a p p s f o r c a r s
● B u i l d m e d i a a p p s f o r c a r s
● A d d s u p p o r t f o r A n d r o i d A u t o
● A d d s u p p o r t f o r A n d r o i d A u t o m o t i v e O S
● B u i l d m e s s a g i n g a p p s f o r A n d r o i d A u t o
● B u i l d n a v i g a t i o n , p a r k i n g , a n d c h a r g i n g a p p s f o r A n d r o i d A u t o
● T e s t A n d r o i d a p p s f o r c a r s
● G o o g l e P l a y s e r v i c e s
● N o t i f i c a t i o n s o n A n d r o i d A u t o m o t i v e O S
A n d r o i d T h i n g s
● O v e r v i e w
● P l a t f o r m d i f f e r e n c e s
● G o o g l e s e r v i c e s
●
S u p p o r t e d h a r d w a r e
● O v e r v i e w
● N X P i . M X 7 D
● R a s p b e r r y P i 3
●
A d v a n c e d s e t u p
● O v e r v i e w
● M a n u a l l y f l a s h a n i m a g e
● R e c o v e r a d e v i c e
● C o n n e c t i n g t o W i - F i w i t h a d b
●
B u i l d a p p s
●
C r e a t e a T h i n g s a p p
● O v e r v i e w
● C r e a t e a p r o j e c t
● C o n n e c t t h e h a r d w a r e
● I n t e r a c t w i t h p e r i p h e r a l s
● I n t e g r a t e p e r i p h e r a l d r i v e r s
●
C o m m u n i c a t e w i t h w i r e l e s s d e v i c e s
● B l u e t o o t h
● L o W P A N
●
C o n f i g u r e d e v i c e s
● S e t t i n g s
● U p d a t e s
●
I n t e r a c t w i t h p e r i p h e r a l s
● O v e r v i e w
● G P I O
● P W M
● I 2 C
● S P I
● U A R T
● N a t i v e P I O
● C L I t o o l
● I n t e g r a t e n a t i v e c o d e
●
B u i l d u s e r - s p a c e d r i v e r s
● O v e r v i e w
● L o c a t i o n
● I n p u t
● S e n s o r s
● L o W P A N
● S a m p l e s
●
M a n a g e d e v i c e s
● O v e r v i e w
● C r e a t e a p r o d u c t
● C o n f i g u r e a p r o d u c t
●
C r e a t e a b u i l d
● O v e r v i e w
● M a n a g e a p p s
●
P u s h a n u p d a t e
● O v e r v i e w
● A u t o m a t i c u p d a t e s
● M o n i t o r a n a l y t i c s
●
T e r m s
● C o n s o l e T e r m s o f S e r v i c e
● S D K L i c e n s e A g r e e m e n t
● A n d r o i d T h i n g s C o n s o l e
C h r o m e O S d e v i c e s
● O v e r v i e w
● B u i l d i n g a p p s f o r C h r o m e O S
● O p t i m i z i n g A p p s f o r C h r o m e O S
● P r e p a r i n g y o u r d e v e l o p m e n t e n v i r o n m e n t
● A p p M a n i f e s t C o m p a t i b i l i t y f o r C h r o m e b o o k s
● C h r o m e O S D e v i c e S u p p o r t f o r A p p s
● A p p R e n d e r i n g D i f f e r e n c e s o n C h r o m e b o o k s
● W i n d o w m a n a g e m e n t
● I n p u t c o m p a t i b i l i t y f o r C h r o m e b o o k s
● A d a p t i n g G a m e s o n C h r o m e O S
● S m o o t h a n i m a t i o n o n C h r o m e O S
● T e s t C a s e s f o r A n d r o i d A p p s o n C h r o m e O S
C o r e t o p i c s
A c t i v i t i e s
● I n t r o d u c t i o n t o a c t i v i t i e s
● T h e a c t i v i t y l i f e c y c l e
● A c t i v i t y s t a t e c h a n g e s
● T e s t y o u r a c t i v i t i e s
● T a s k s a n d b a c k s t a c k
● P r o c e s s e s a n d a p p l i f e c y c l e
● P a r c e l a b l e s a n d b u n d l e s
●
F r a g m e n t s
● O v e r v i e w
● C r e a t e a f r a g m e n t
● F r a g m e n t m a n a g e r
● F r a g m e n t t r a n s a c t i o n s
● A n i m a t e t r a n s i t i o n s b e t w e e n f r a g m e n t s
● F r a g m e n t l i f e c y c l e
● S a v i n g s t a t e w i t h f r a g m e n t s
● C o m m u n i c a t e w i t h f r a g m e n t s
● W o r k i n g w i t h t h e a p p b a r
● D i s p l a y i n g d i a l o g s w i t h D i a l o g F r a g m e n t
● T e s t y o u r f r a g m e n t s
●
H a n d l i n g a p p l i n k s
● O v e r v i e w
● E n a b l i n g l i n k s t o a p p c o n t e n t
● V e r i f y a p p l i n k s
● C r e a t e a p p l i n k s f o r i n s t a n t a p p s
● L o a d e r s
● R e c e n t s s c r e e n
● R e s t r i c t i o n s o n s t a r t i n g a c t i v i t i e s f r o m t h e b a c k g r o u n d
●
A p p s h o r t c u t s
● O v e r v i e w
● C r e a t e s h o r t c u t s
● M a n a g e s h o r t c u t s
● B e s t p r a c t i c e s f o r s h o r t c u t s
●
A p p w i d g e t s
● O v e r v i e w
● B u i l d a n a p p w i d g e t
● B u i l d a n a p p w i d g e t h o s t
A p p c o m p a t i b i l i t y
● O v e r v i e w
● C o m p a t i b i l i t y f r a m e w o r k t o o l s
● R e s t r i c t i o n s o n n o n - S D K i n t e r f a c e s
A r c h i t e c t u r e C o m p o n e n t s
● O v e r v i e w
● A d d i n g C o m p o n e n t s t o y o u r P r o j e c t
● A p p S t a r t u p
● D a t a S t o r e
●
V i e w B i n d i n g
● O v e r v i e w
● M i g r a t e f r o m K o t l i n s y n t h e t i c s t o v i e w b i n d i n g
●
D a t a B i n d i n g L i b r a r y
● O v e r v i e w
● G e t s t a r t e d
● L a y o u t s a n d b i n d i n g e x p r e s s i o n s
● W o r k w i t h o b s e r v a b l e d a t a o b j e c t s
● G e n e r a t e d b i n d i n g c l a s s e s
● B i n d i n g a d a p t e r s
● B i n d l a y o u t v i e w s t o A r c h i t e c t u r e C o m p o n e n t s
● T w o - w a y d a t a b i n d i n g
● H a n d l i n g L i f e c y c l e s
● L i v e D a t a
●
P a g i n g L i b r a r y
● O v e r v i e w
● L o a d a n d d i s p l a y p a g e d d a t a
● P a g e f r o m n e t w o r k a n d d a t a b a s e
● T r a n s f o r m d a t a s t r e a m s
● M i g r a t e t o P a g i n g 3
●
P a g i n g 2
● O v e r v i e w
● D i s p l a y p a g e d l i s t s
● L o a d p a g e d d a t a
● V i e w M o d e l
●
W o r k M a n a g e r
● O v e r v i e w
● G e t t i n g S t a r t e d
●
H o w - T o G u i d e s
● D e f i n i n g y o u r W o r k R e q u e s t s
● W o r k s t a t e s
● M a n a g i n g w o r k
● O b s e r v i n g i n t e r m e d i a t e W o r k e r p r o g r e s s
● C h a i n i n g w o r k t o g e t h e r
● T e s t i n g W o r k e r i m p l e m e n t a t i o n
● I n t e g r a t i o n t e s t s w i t h W o r k M a n a g e r
● D e b u g g i n g W o r k M a n a g e r
●
A d v a n c e d C o n c e p t s
● C o n f i g u r a t i o n a n d I n i t i a l i z a t i o n
●
T h r e a d i n g i n W o r k M a n a g e r
● O v e r v i e w
● T h r e a d i n g i n W o r k e r
● T h r e a d i n g i n C o r o u t i n e W o r k e r
● T h r e a d i n g i n R x W o r k e r
● T h r e a d i n g i n L i s t e n a b l e W o r k e r
● S u p p o r t f o r l o n g - r u n n i n g w o r k e r s
● M i g r a t i n g f r o m F i r e b a s e J o b D i s p a t c h e r
● M i g r a t i n g f r o m G C M N e t w o r k M a n a g e r
● S a v i n g S t a t e s
● S a v e d S t a t e m o d u l e f o r V i e w M o d e l
● U s e K o t l i n c o r o u t i n e s w i t h A r c h i t e c t u r e c o m p o n e n t s
● R e l e a s e n o t e s
● A d d i t i o n a l r e s o u r c e s
N a v i g a t i o n c o m p o n e n t
● O v e r v i e w
● P r i n c i p l e s o f N a v i g a t i o n
● G e t t i n g s t a r t e d
● C r e a t e d e s t i n a t i o n s
● D e s i g n f o r d i f f e r e n t f o r m f a c t o r s
● D e s i g n n a v i g a t i o n g r a p h s
● N e s t e d g r a p h s
● G l o b a l a c t i o n s
● N a v i g a t e t o a d e s t i n a t i o n
● C o n d i t i o n a l n a v i g a t i o n
● P a s s d a t a b e t w e e n d e s t i n a t i o n s
● C r e a t e a d e e p l i n k f o r a d e s t i n a t i o n
● A n i m a t e t r a n s i t i o n s b e t w e e n d e s t i n a t i o n s
● U p d a t e U I c o m p o n e n t s w i t h N a v i g a t i o n U I
● K o t l i n D S L
● C r e a t e s w i p e v i e w s w i t h t a b s u s i n g V i e w P a g e r
● C r e a t e s w i p e v i e w s w i t h t a b s u s i n g V i e w P a g e r 2
● I n t e r a c t p r o g r a m m a t i c a l l y
● N a v i g a t e w i t h f e a t u r e m o d u l e s
● T e s t n a v i g a t i o n
● H a n d l i n g c o n f i g u r a t i o n c h a n g e s
● A d d n e w d e s t i n a t i o n t y p e s
● P r o v i d e c u s t o m b a c k n a v i g a t i o n
● M i g r a t e t o t h e N a v i g a t i o n c o m p o n e n t
I n t e r a c t w i t h o t h e r a p p s
● O v e r v i e w
● S e n d i n g t h e u s e r t o a n o t h e r a p p
● G e t t i n g a r e s u l t f r o m a n a c t i v i t y
● A l l o w i n g o t h e r a p p s t o s t a r t y o u r a c t i v i t y
●
P a c k a g e v i s i b i l i t y
● O v e r v i e w
● K n o w w h i c h p a c k a g e s a r e v i s i b l e a u t o m a t i c a l l y
● D e c l a r e p a c k a g e v i s i b i l i t y n e e d s
● F u l f i l l c o m m o n u s e c a s e s
● T e s t p a c k a g e v i s i b i l i t y
I n t e n t s a n d i n t e n t f i l t e r s
● O v e r v i e w
● C o m m o n i n t e n t s
U s e r i n t e r f a c e
● O v e r v i e w
●
L a y o u t s
● O v e r v i e w
● B u i l d a r e s p o n s i v e U I w i t h C o n s t r a i n t L a y o u t
●
A d d m o t i o n t o y o u r l a y o u t w i t h M o t i o n L a y o u t
● O v e r v i e w
● C a r o u s e l w i t h M o t i o n L a y o u t
● M o t i o n L a y o u t e x a m p l e s
●
M o t i o n L a y o u t X M L r e f e r e n c e
● O v e r v i e w
● < M o t i o n S c e n e >
● < C o n s t r a i n t S e t >
● < C o n s t r a i n t >
● < T r a n s i t i o n >
● < o n C l i c k >
● < o n S w i p e >
● < K e y F r a m e S e t >
● < K e y P o s i t i o n >
● < K e y A t t r i b u t e >
● C r e a t e a l i s t w i t h R e c y c l e r V i e w
● A d v a n c e d R e c y c l e r V i e w c u s t o m i z a t i o n
● C r e a t e a c a r d - b a s e d l a y o u t
● C r e a t e a t w o p a n e l a y o u t
●
I m p r o v i n g l a y o u t p e r f o r m a n c e
● O v e r v i e w
● O p t i m i z i n g l a y o u t h i e r a r c h i e s
● R e - u s i n g l a y o u t s w i t h < i n c l u d e / >
● D e l a y e d l o a d i n g o f v i e w s
● L i n e a r l a y o u t
● A d a p t e r v i e w
● R e l a t i v e l a y o u t
●
C u s t o m v i e w c o m p o n e n t s
● O v e r v i e w
● C r e a t i n g a c u s t o m v i e w c l a s s
● I m p l e m e n t i n g c u s t o m d r a w i n g
● M a k i n g t h e v i e w i n t e r a c t i v e
● O p t i m i z i n g t h e v i e w
● D e s i g n i n g f o r f o l d a b l e s
●
L o o k a n d f e e l
● M a t e r i a l d e s i g n
● S t y l e s a n d t h e m e s
● D a r k t h e m e
● A d a p t i v e i c o n s
● A d d a f l o a t i n g a c t i o n b u t t o n
● C r e a t e s h a d o w s a n d c l i p v i e w s
●
T e x t
● A u t o s i z i n g T e x t V i e w s
● D o w n l o a d a b l e f o n t s
● F o n t s i n X M L
● E m o j i c o m p a t i b i l i t y
● M a g n i f i e r w i d g e t
● S p a n s
● B u t t o n s
● C h e c k b o x e s
● R a d i o b u t t o n s
● T o g g l e b u t t o n s
● S p i n n e r s
● P i c k e r s
● T o o l t i p s
●
N o t i f i c a t i o n s
● O v e r v i e w
● C r e a t e a n o t i f i c a t i o n
● C r e a t e a n e x p a n d a b l e n o t i f i c a t i o n
● D i s p l a y t i m e - s e n s i t i v e n o t i f i c a t i o n s
● S t a r t a n a c t i v i t y f r o m a n o t i f i c a t i o n
● C r e a t e a g r o u p o f n o t i f i c a t i o n s
● C r e a t e a n d m a n a g e n o t i f i c a t i o n c h a n n e l s
● M o d i f y a n o t i f i c a t i o n B a d g e
● C r e a t e a c u s t o m n o t i f i c a t i o n
● C o n v e r s a t i o n s
● B u b b l e s
●
A d d t h e a p p b a r
● O v e r v i e w
● S e t u p t h e a p p b a r
● A d d a n d h a n d l e a c t i o n s
● A d d a n u p a c t i o n
● U s e a c t i o n v i e w s a n d a c t i o n p r o v i d e r s
●
C o n t r o l t h e s y s t e m U I v i s i b i l i t y
● O v e r v i e w
● D i m t h e s y s t e m b a r s
● H i d e t h e s t a t u s b a r
● H i d e t h e n a v i g a t i o n b a r
● E n a b l e f u l l s c r e e n m o d e
● R e s p o n d t o U I v i s i b i l i t y c h a n g e s
●
S u p p o r t i n g s w i p e - t o - r e f r e s h
● O v e r v i e w
● A d d i n g s w i p e - t o - r e f r e s h t o y o u r a p p
● R e s p o n d i n g t o a r e f r e s h g e s t u r e
● T o a s t s o v e r v i e w
●
P o p - u p m e s s a g e s o v e r v i e w
● O v e r v i e w
● B u i l d a n d d i s p l a y a p o p - u p m e s s a g e
● A d d a n a c t i o n t o a m e s s a g e
● D i a l o g s
● M e n u s
●
S e t t i n g s
● O v e r v i e w
● O r g a n i z e y o u r s e t t i n g s
● C u s t o m i z e y o u r s e t t i n g s
● U s e s a v e d v a l u e s
● B u i l d a h i e r a r c h y i n c o d e
● H a n d l e o t h e r f o r m f a c t o r s
● P r e f e r e n c e c o m p o n e n t s a n d a t t r i b u t e s
●
S e a r c h
● O v e r v i e w
● C r e a t i n g a s e a r c h i n t e r f a c e
● A d d i n g r e c e n t q u e r y s u g g e s t i o n s
● A d d i n g c u s t o m s u g g e s t i o n s
● S e a r c h a b l e c o n f i g u r a t i o n
●
A d d i n g s e a r c h f u n c t i o n a l i t y
● O v e r v i e w
● S e t t i n g u p t h e s e a r c h i n t e r f a c e
● S t o r i n g a n d s e a r c h i n g f o r d a t a
● R e m a i n i n g b a c k w a r d c o m p a t i b l e
● C o p y a n d p a s t e
● D r a g a n d d r o p
● P i c t u r e - i n - p i c t u r e S u p p o r t
●
C r e a t i n g b a c k w a r d - c o m p a t i b l e U I s
● O v e r v i e w
● A b s t r a c t i n g t h e n e w A P I s
● P r o x y i n g t o t h e n e w A P I s
● C r e a t i n g a n i m p l e m e n t a t i o n w i t h o l d e r A P I s
● U s i n g t h e v e r s i o n - a w a r e c o m p o n e n t
● D e v i c e c o n t r o l
●
H o m e c h a n n e l s f o r m o b i l e a p p s
● O v e r v i e w
● M e d i a H o m e B o o k s
● M e d i a H o m e V i d e o
A n i m a t i o n s & t r a n s i t i o n s
● O v e r v i e w
● I n t r o d u c t i o n t o a n i m a t i o n s
● P r o p e r t y a n i m a t i o n o v e r v i e w
● A n i m a t e d r a w a b l e g r a p h i c s
● R e v e a l o r h i d e a v i e w u s i n g a n i m a t i o n
● M o v e a v i e w u s i n g a n i m a t i o n
● M o v e a v i e w u s i n g a f l i n g a n i m a t i o n
● E n l a r g e a v i e w u s i n g a z o o m a n i m a t i o n
● A n i m a t e m o v e m e n t u s i n g s p r i n g p h y s i c s
● A u t o a n i m a t e l a y o u t u p d a t e s
● A n i m a t e l a y o u t c h a n g e s u s i n g a t r a n s i t i o n
● C r e a t e a c u s t o m t r a n s i t i o n a n i m a t i o n
● S t a r t a n a c t i v i t y u s i n g a n a n i m a t i o n
● S l i d e b e t w e e n f r a g m e n t s u s i n g V i e w P a g e r
● S l i d e b e t w e e n f r a g m e n t s u s i n g V i e w P a g e r 2
● M i g r a t e f r o m V i e w P a g e r t o V i e w P a g e r 2
● A d d i t i o n a l r e s o u r c e s
I m a g e s & g r a p h i c s
● O v e r v i e w
● D r a w a b l e s o v e r v i e w
● V e c t o r d r a w a b l e s o v e r v i e w
● H a n d l i n g b i t m a p s
● S e l e c t i n g c o l o r s w i t h t h e p a l e t t e A P I
● R e d u c i n g i m a g e d o w n l o a d s i z e s
● H a r d w a r e a c c e l e r a t i o n
● O p e n G L E S
●
D i s p l a y i n g g r a p h i c s w i t h O p e n G L E S
● O v e r v i e w
● B u i l d i n g a n O p e n G L E S e n v i r o n m e n t
● D e f i n i n g s h a p e s
● D r a w i n g s h a p e s
● A p p l y i n g p r o j e c t i o n a n d c a m e r a v i e w s
● A d d i n g m o t i o n
● R e s p o n d i n g t o t o u c h e v e n t s
●
R e n d e r i n g
● O v e r v i e w
● R e d u c i n g o v e r d r a w
● P e r f o r m a n c e a n d v i e w h i e r a r c h i e s
● A n a l y z i n g w i t h p r o f i l e G P U r e n d e r i n g
● E n h a n c i n g g r a p h i c s w i t h w i d e c o l o r c o n t e n t
A u d i o & v i d e o
● A u d i o & v i d e o o v e r v i e w
● M e d i a c o n t r o l s
● S u p p o r t e d m e d i a f o r m a t s
● M e d i a c o d e c s
●
M e d i a a p p a r c h i t e c t u r e
● M e d i a a p p a r c h i t e c t u r e o v e r v i e w
● U s i n g a m e d i a s e s s i o n
●
B u i l d i n g a n a u d i o a p p
● A u d i o a p p o v e r v i e w
● B u i l d i n g a m e d i a b r o w s e r s e r v i c e
● B u i l d i n g a m e d i a b r o w s e r c l i e n t
● M e d i a s e s s i o n c a l l b a c k s
● U s i n g t h e m e d i a c o n t r o l l e r t e s t a p p
●
B u i l d i n g a v i d e o a p p
● V i d e o a p p o v e r v i e w
● B u i l d i n g a v i d e o p l a y e r a c t i v i t y
● M e d i a s e s s i o n c a l l b a c k s
● R e s p o n d i n g t o m e d i a b u t t o n s
● H a n d l i n g c h a n g e s i n a u d i o o u t p u t
● M a n a g i n g a u d i o f o c u s
●
T h e G o o g l e A s s i s t a n t
● T h e G o o g l e A s s i s t a n t a n d m e d i a a p p s
● M e d i a a p p s o n G o o g l e A s s i s t a n t d r i v i n g m o d e
●
R o u t i n g b e t w e e n d e v i c e s
● R o u t i n g o v e r v i e w
● M e d i a R o u t e r o v e r v i e w
● M e d i a R o u t e P r o v i d e r o v e r v i e w
● C o n t r o l a m p l i t u d e w i t h V o l u m e S h a p e r
● M e d i a P l a y e r o v e r v i e w
● M e d i a R e c o r d e r o v e r v i e w
● E x o P l a y e r
● S h a r i n g a u d i o i n p u t
● P l a y b a c k c a p t u r e
● F r a m e r a t e
● B e s t p r a c t i c e s f o r s h a r i n g v i d e o
● A d d i t i o n a l R e s o u r c e s f o r M e d i a
S e r v i c e s
● O v e r v i e w
● F o r e g r o u n d s e r v i c e s
● B o u n d s e r v i c e s
● A I D L o v e r v i e w
B a c k g r o u n d t a s k s
● O v e r v i e w
● B a c k g r o u n d t h r e a d s
● B a c k g r o u n d o p t i m i z a t i o n s
●
B r o a d c a s t s
● O v e r v i e w
● I m p l i c i t B r o a d c a s t E x c e p t i o n s
●
M a n a g e d e v i c e a w a k e s t a t e
● O v e r v i e w
● K e e p t h e d e v i c e a w a k e
● S c h e d u l e r e p e a t i n g a l a r m s
P e r m i s s i o n s
● O v e r v i e w
● E v a l u a t e w h e t h e r y o u r a p p n e e d s p e r m i s s i o n s
● D e c l a r e a p p p e r m i s s i o n s
● R e q u e s t a p p p e r m i s s i o n s
● A p p p e r m i s s i o n s b e s t p r a c t i c e s
● P e r m i s s i o n s u s e d o n l y i n d e f a u l t h a n d l e r s
● R e s t r i c t i n t e r a c t i o n s w i t h o t h e r a p p s
● D e f i n e c u s t o m p e r m i s s i o n s
A p p d a t a & f i l e s
● O v e r v i e w
● S t o r a g e o v e r v i e w
● S a v e t o a p p - s p e c i f i c s t o r a g e
●
S a v e t o s h a r e d s t o r a g e
● O v e r v i e w
● M e d i a
● D o c u m e n t s a n d o t h e r f i l e s
● D a t a s e t s
● M a n a g e a l l f i l e s o n a s t o r a g e d e v i c e
● S a v e k e y - v a l u e d a t a
●
S a v e d a t a i n a l o c a l d a t a b a s e
● O v e r v i e w
● D e f i n e d a t a u s i n g e n t i t i e s
● A c c e s s d a t a u s i n g D A O s
● D e f i n e r e l a t i o n s h i p s b e t w e e n o b j e c t s
● W r i t e a s y n c h r o n o u s D A O q u e r i e s
● C r e a t e v i e w s i n t o a d a t a b a s e
● P r e p o p u l a t e y o u r d a t a b a s e
● M i g r a t e y o u r d a t a b a s e
● T e s t a n d d e b u g y o u r d a t a b a s e
● R e f e r e n c e c o m p l e x d a t a
● M i g r a t e f r o m S Q L i t e t o R o o m
● S a v e d a t a u s i n g S Q L i t e
● S t o r a g e u s e c a s e s a n d b e s t p r a c t i c e s
●
S h a r i n g s i m p l e d a t a
● O v e r v i e w
● S e n d i n g s i m p l e d a t a t o o t h e r a p p s
● R e c e i v i n g s i m p l e d a t a f r o m o t h e r a p p s
●
S h a r i n g f i l e s
● O v e r v i e w
● S e t t i n g u p f i l e s h a r i n g
● S h a r i n g a f i l e
● R e q u e s t i n g a s h a r e d f i l e
● R e t r i e v i n g f i l e i n f o r m a t i o n
●
S h a r i n g f i l e s w i t h N F C
● O v e r v i e w
● S e n d i n g f i l e s t o a n o t h e r d e v i c e
● R e c e i v i n g f i l e s f r o m a n o t h e r d e v i c e
●
P r i n t i n g f i l e s
● O v e r v i e w
● P r i n t i n g p h o t o s
● P r i n t i n g H T M L d o c u m e n t s
● P r i n t i n g c u s t o m d o c u m e n t s
●
C o n t e n t p r o v i d e r s
● O v e r v i e w
● C o n t e n t p r o v i d e r b a s i c s
● C r e a t i n g a c o n t e n t p r o v i d e r
● O p e n f i l e s u s i n g s t o r a g e a c c e s s f r a m e w o r k
● C r e a t e a c u s t o m d o c u m e n t p r o v i d e r
● A p p i n s t a l l l o c a t i o n
U s e r d a t a & i d e n t i t y
● O v e r v i e w
● A d d s i g n - i n w o r k f l o w
● S h o w a b i o m e t r i c a u t h e n t i c a t i o n d i a l o g
●
A u t o f i l l f r a m e w o r k
● O v e r v i e w
● O p t i m i z e y o u r a p p f o r a u t o f i l l
● B u i l d a u t o f i l l s e r v i c e s
● I n t e g r a t e a u t o f i l l w i t h k e y b o a r d s
● A u d i t d a t a a c c e s s
● G e t a u s e r - r e s e t t a b l e a d v e r t i s i n g I D
● C a l e n d a r p r o v i d e r o v e r v i e w
●
C o n t a c t s p r o v i d e r
● O v e r v i e w
● R e t r i e v i n g a l i s t o f c o n t a c t s
● R e t r i e v i n g d e t a i l s f o r a c o n t a c t
● M o d i f y i n g c o n t a c t s u s i n g i n t e n t s
● D i s p l a y i n g t h e q u i c k c o n t a c t b a d g e
● A c c o u n t t r a n s f e r
●
D a t a b a c k u p
● O v e r v i e w
● B a c k u p u s e r d a t a
● B a c k u p k e y - v a l u e p a i r s
● T e s t b a c k u p a n d r e s t o r e
● B e s t p r a c t i c e s f o r u n i q u e i d e n t i f i e r s
●
R e m e m b e r a n d a u t h e n t i c a t e u s e r s
● O v e r v i e w
● R e m e m b e r y o u r u s e r
● A u t h e n t i c a t e t o O A u t h 2 s e r v i c e s
● C r e a t e a c u s t o m a c c o u n t t y p e
U s e r l o c a t i o n
● O v e r v i e w
● R e q u e s t l o c a t i o n p e r m i s s i o n s
● G e t t h e l a s t k n o w n l o c a t i o n
● C h a n g e l o c a t i o n s e t t i n g s
● R e q u e s t l o c a t i o n u p d a t e s
● A c c e s s l o c a t i o n i n t h e b a c k g r o u n d
● C r e a t e a n d m o n i t o r g e o f e n c e s
● D e t e c t w h e n u s e r s s t a r t a n a c t i v i t y
● O p t i m i z e l o c a t i o n f o r b a t t e r y
● M i g r a t e t o l o c a t i o n a n d c o n t e x t A P I s
● A d d m a p s
T o u c h & i n p u t
● O v e r v i e w
● I n p u t e v e n t s
●
U s i n g t o u c h g e s t u r e s
● O v e r v i e w
● D e t e c t c o m m o n g e s t u r e s
● T r a c k t o u c h a n d p o i n t e r m o v e m e n t s
● A n i m a t e a s c r o l l g e s t u r e
● S u p p o r t n a v i g a t i o n g e s t u r e s
● H a n d l e m u l t i - t o u c h g e s t u r e s
● D r a g a n d s c a l e
● M a n a g e t o u c h e v e n t s i n a V i e w G r o u p
●
H a n d l i n g k e y b o a r d i n p u t
● O v e r v i e w
● S p e c i f y i n g t h e i n p u t m e t h o d t y p e
● H a n d l i n g i n p u t m e t h o d v i s i b i l i t y
● S u p p o r t i n g k e y b o a r d n a v i g a t i o n
● H a n d l i n g k e y b o a r d a c t i o n s
●
S u p p o r t i n g g a m e c o n t r o l l e r s
● O v e r v i e w
● H a n d l i n g c o n t r o l l e r a c t i o n s
● S u p p o r t i n g c o n t r o l l e r s a c r o s s A n d r o i d v e r s i o n s
● S u p p o r t i n g m u l t i p l e g a m e c o n t r o l l e r s
●
I n p u t m e t h o d e d i t o r s
● C r e a t i n g a n i n p u t m e t h o d
● I m a g e k e y b o a r d
● S p e l l i n g c h e c k e r
C a m e r a X
● O v e r v i e w
● C a m e r a X a r c h i t e c t u r e
● C o n f i g u r a t i o n
● P r e v i e w
● A n a l y z e i m a g e s
● I m a g e c a p t u r e
● V e n d o r e x t e n s i o n s
● T r a n s f o r m o u t p u t
● U s e c a s e r o t a t i o n s
● C a m e r a X d e v i c e s
C a m e r a 2
● O v e r v i e w
● C a m e r a c a p t u r e s e s s i o n s a n d r e q u e s t s
● C a m e r a e n u m e r a t i o n
● U s e m u l t i p l e c a m e r a s t r e a m s s i m u l t a n e o u s l y
● M u l t i - C a m e r a A P I
C a m e r a
● O v e r v i e w
● T a k i n g p h o t o s
● R e c o r d i n g v i d e o s
● C o n t r o l l i n g t h e c a m e r a
● C a m e r a A P I
S e n s o r s
● O v e r v i e w
● S e n s o r s o v e r v i e w
● M o t i o n s e n s o r s
● P o s i t i o n s e n s o r s
● E n v i r o n m e n t s e n s o r s
● R a w G N S S m e a s u r e m e n t s
C o n n e c t i v i t y
● O v e r v i e w
●
P e r f o r m i n g n e t w o r k o p e r a t i o n s
● O v e r v i e w
● C o n n e c t t o t h e n e t w o r k
● M a n a g e n e t w o r k u s a g e
● R e a d i n g n e t w o r k s t a t e
● O p t i m i z e n e t w o r k d a t a u s a g e
● P a r s e X M L d a t a
●
T r a n s m i t n e t w o r k d a t a u s i n g V o l l e y
● O v e r v i e w
● S e n d a s i m p l e r e q u e s t
● S e t u p R e q u e s t Q u e u e
● M a k e a s t a n d a r d r e q u e s t
● I m p l e m e n t a c u s t o m r e q u e s t
●
P e r f o r m n e t w o r k o p e r a t i o n s u s i n g C r o n e t
● O v e r v i e w
● S e n d a s i m p l e r e q u e s t
● C r o n e t r e q u e s t l i f e c y c l e
●
R e f e r e n c e
●
o r g . c h r o m i u m . n e t
● O v e r v i e w
● C a l l b a c k E x c e p t i o n
●
C r o n e t E n g i n e
● O v e r v i e w
●
C r o n e t E n g i n e . B u i l d e r
● O v e r v i e w
● L i b r a r y L o a d e r
● C r o n e t E x c e p t i o n
● I n l i n e E x e c u t i o n P r o h i b i t e d E x c e p t i o n
● N e t w o r k E x c e p t i o n
● Q u i c E x c e p t i o n
● U p l o a d D a t a P r o v i d e r
● U p l o a d D a t a P r o v i d e r s
● U p l o a d D a t a S i n k
●
U r l R e q u e s t
● O v e r v i e w
● B u i l d e r
● C a l l b a c k
● S t a t u s
● S t a t u s L i s t e n e r
●
U r l R e s p o n s e I n f o
● O v e r v i e w
● H e a d e r B l o c k
● E n h a n c e y o u r a p p s w i t h 5 G
● B u i l d c l i e n t - s e r v e r a p p l i c a t i o n s w i t h g R P C
●
T r a n s f e r r i n g d a t a w i t h o u t d r a i n i n g t h e b a t t e r y
● O v e r v i e w
● O p t i m i z e d o w n l o a d s f o r e f f i c i e n t n e t w o r k a c c e s s
● M i n i m i z e t h e e f f e c t o f r e g u l a r u p d a t e s
● A v o i d r e d u n d a n t d o w n l o a d s
● M o d i f y p a t t e r n s b a s e d o n t h e c o n n e c t i v i t y t y p e
●
R e d u c e n e t w o r k b a t t e r y d r a i n
● O v e r v i e w
● C o l l e c t i n g n e t w o r k t r a f f i c d a t a
● A n a l y z i n g d a t a t r a f f i c
● O p t i m i z i n g u s e r - i n i t i a t e d n e t w o r k u s e
● O p t i m i z i n g a p p - i n i t i a t e d n e t w o r k u s e
● O p t i m i z i n g s e r v e r - i n i t i a t e d n e t w o r k u s e
● O p t i m i z i n g g e n e r a l n e t w o r k u s e
●
T r a n s f e r d a t a u s i n g S y n c A d a p t e r s
● O v e r v i e w
● C r e a t e a S t u b A u t h e n t i c a t o r
● C r e a t e a S t u b C o n t e n t P r o v i d e r
● C r e a t e a S y n c A d a p t e r
● R u n a S y n c A d a p t e r
●
B l u e t o o t h
● O v e r v i e w
● B l u e t o o t h l o w e n e r g y o v e r v i e w
● U s e B l u e t o o t h l o w e n e r g y
●
N F C
● O v e r v i e w
● N F C b a s i c s
● A d v a n c e d N F C
● H o s t - b a s e d c a r d e m u l a t i o n o v e r v i e w
●
T e l e c o m
● O v e r v i e w
● B u i l d a c a l l i n g a p p
● P r e v e n t c a l l e r I D s p o o f i n g
● T e l e p h o n y I D s
●
W i - F i
● W i - F i s c a n n i n g o v e r v i e w
● W i - F i p e e r - t o - p e e r
● W i - F i a w a r e o v e r v i e w
● W i - F i l o c a t i o n w i t h R T T
● L o c a l O n l y H o t s p o t
● C o m p a n i o n d e v i c e p a i r i n g
●
W i - F i i n f r a s t r u c t u r e
● W i - F i i n f r a s t r u c t u r e o v e r v i e w
● W i - F i s u g g e s t i o n A P I f o r i n t e r n e t c o n n e c t i v i t y
● W i - F i N e t w o r k R e q u e s t A P I f o r p e e r - t o - p e e r c o n n e c t i v i t y
● P a s s p o i n t
● S a v e n e t w o r k s a n d P a s s p o i n t c o n f i g u r a t i o n s
●
U S B
● O v e r v i e w
● A c c e s s o r y o v e r v i e w
● H o s t o v e r v i e w
● V P N
● S e s s i o n i n i t i a t i o n p r o t o c o l o v e r v i e w
●
D i s c o v e r a n d c o n n e c t
● O v e r v i e w
● U s e n e t w o r k s e r v i c e d i s c o v e r y
● C r e a t e P 2 P c o n n e c t i o n s w i t h W i - F i
● U s e W i - F i P 2 P f o r s e r v i c e d i s c o v e r y
● W i - F i E a s y C o n n e c t
● O p e n M o b i l e A P I r e a d e r s u p p o r t
R e n d e r s c r i p t
● O v e r v i e w
● A d v a n c e d R e n d e r S c r i p t
● M i g r a t i n g f r o m R e n d e r S c r i p t
●
R u n t i m e A P I r e f e r e n c e
● O v e r v i e w
● N u m e r i c a l t y p e s
● O b j e c t t y p e s
● C o n v e r s i o n f u n c t i o n s
● M a t h e m a t i c a l c o n s t a n t s a n d f u n c t i o n s
● V e c t o r m a t h f u n c t i o n s
● M a t r i x f u n c t i o n s
● Q u a t e r n i o n f u n c t i o n s
● A t o m i c u p d a t e f u n c t i o n s
● T i m e f u n c t i o n s a n d t y p e s
● A l l o c a t i o n d a t a a c c e s s f u n c t i o n s
● O b j e c t c h a r a c t e r i s t i c s f u n c t i o n s
● K e r n e l i n v o c a t i o n f u n c t i o n s a n d t y p e s
● I n p u t / o u t p u t f u n c t i o n s
● D e b u g g i n g f u n c t i o n s
● G r a p h i c s f u n c t i o n s a n d t y p e s
● I n d e x
W e b - b a s e d c o n t e n t
● O v e r v i e w
● B u i l d i n g w e b a p p s i n W e b V i e w
● M a n a g i n g W e b V i e w o b j e c t s
● D a r k e n w e b c o n t e n t
● U s e r p r i v a c y i n W e b V i e w c r a s h r e p o r t i n g
● M i g r a t i n g t o W e b V i e w i n A n d r o i d 4 . 4
● S u p p o r t i n g d i f f e r e n t s c r e e n s i n w e b a p p s
● D e b u g g i n g w e b a p p s
● B e s t p r a c t i c e s f o r w e b a p p s
A n d r o i d A p p B u n d l e s
● O v e r v i e w
● C o n f i g u r e t h e b a s e m o d u l e
● B u i l d a n d t e s t y o u r a p p b u n d l e
● T h e a p p b u n d l e f o r m a t
G o o g l e P l a y
● G o o g l e P l a y B i l l i n g
● P l a y C o r e L i b r a r y
●
P l a y A s s e t D e l i v e r y
● O v e r v i e w
● I n t e g r a t e a s s e t d e l i v e r y ( J a v a )
● I n t e g r a t e a s s e t d e l i v e r y ( n a t i v e )
● I n t e g r a t e a s s e t d e l i v e r y ( U n i t y )
● T a r g e t t e x t u r e c o m p r e s s i o n f o r m a t s
● T e s t a s s e t d e l i v e r y
●
P l a y F e a t u r e D e l i v e r y
● O v e r v i e w
● C o n f i g u r e i n s t a l l - t i m e d e l i v e r y
● C o n f i g u r e c o n d i t i o n a l d e l i v e r y
● C o n f i g u r e o n - d e m a n d d e l i v e r y
● O n - d e m a n d d e l i v e r y b e s t p r a c t i c e s
● C o n f i g u r e i n s t a n t d e l i v e r y
● A d d i t i o n a l r e s o u r c e s
●
I n - a p p r e v i e w s
● O v e r v i e w
● I n t e g r a t e u s i n g K o t l i n o r J a v a
● I n t e g r a t e u s i n g n a t i v e c o d e
● I n t e g r a t e u s i n g U n i t y
● T e s t i n - a p p r e v i e w s
●
I n - a p p u p d a t e s
● O v e r v i e w
● S u p p o r t i n - a p p u p d a t e s ( K o t l i n o r J a v a )
● S u p p o r t i n - a p p u p d a t e s ( N a t i v e )
● S u p p o r t i n - a p p u p d a t e s ( U n i t y )
● T e s t i n - a p p u p d a t e s
●
G o o g l e P l a y I n s t a n t
● O v e r v i e w o f G o o g l e P l a y I n s t a n t
●
G e t s t a r t e d w i t h i n s t a n t a p p s
● C r e a t e a n i n s t a n t - e n a b l e d a p p b u n d l e
● U X b e s t p r a c t i c e s f o r a p p s
●
G e t s t a r t e d w i t h i n s t a n t g a m e s
● O v e r v i e w
● U n i t y p l u g i n
● U X b e s t p r a c t i c e s f o r g a m e s
● M i g r a t e t o A n d r o i d A p p B u n d l e s
● I m p l e m e n t c l o u d d e l i v e r y o f a s s e t s
● S u p p o r t G o o g l e P l a y G a m e s S e r v i c e s
● I n s t a n t P l a y g a m e s
● I n s t a n t P l a y g a m e s c h e c k l i s t
● R e d u c e t h e s i z e o f y o u r i n s t a n t a p p o r g a m e
● A d d a d s t o y o u r i n s t a n t a p p o r g a m e
● P r o v i d e m u l t i p l e e n t r y p o i n t s
●
I n t e g r a t e w i t h F i r e b a s e
● A d d G o o g l e A n a l y t i c s f o r F i r e b a s e t o y o u r i n s t a n t a p p
● U s e F i r e b a s e D y n a m i c L i n k s w i t h i n s t a n t a p p s
● T e c h n i c a l r e q u i r e m e n t s c h e c k l i s t
● G o o g l e P l a y I n s t a n t p o l i c y
●
R e s o u r c e s
● R e f e r e n c e
● C o d e s a m p l e s
● S D K r e l e a s e n o t e s
● I n s t a n t A p p I n t e n t s
●
S u p p o r t
● K n o w n i s s u e s
● S t a c k O v e r f l o w
● P l a y D e v e l o p e r A P I
●
P l a y I n s t a l l R e f e r r e r
● O v e r v i e w
●
P l a y I n s t a l l R e f e r r e r L i b r a r y
● O v e r v i e w
● R e f e r e n c e
● R e l e a s e n o t e s
● P l a y I n s t a l l R e f e r r e r A P I
●
A p p l i c a t i o n L i c e n s i n g
● O v e r v i e w
● L i c e n s i n g O v e r v i e w
● S e t t i n g U p f o r L i c e n s i n g
● A d d i n g S e r v e r - S i d e V e r i f i c a t i o n
● A d d i n g C l i e n t - S i d e V e r i f i c a t i o n
● L i c e n s i n g R e f e r e n c e
● A P K E x p a n s i o n F i l e s
● A p p A c t i o n s
S l i c e s
● O v e r v i e w
● G e t t i n g S t a r t e d
● S l i c e t e m p l a t e s
● O n - d e v i c e s e a r c h
G a m e s
D e v e l o p
● D e v e l o p e r p r e v i e w s
● B u i l d y o u r g a m e i n U n i t y
● B u i l d y o u r g a m e i n U n r e a l
● C r e a t e a s e a m l e s s s i g n - i n e x p e r i e n c e
● D e t e r m i n e s e n s i t i v e d a t a a c c e s s n e e d s
● S e c u r e y o u r g a m e
● D e v e l o p g a m e s f o r a l l s c r e e n s
● L e a r n a b o u t r e n d e r i n g i n g a m e l o o p s
O p t i m i z e
● T o o l s f o r o p t i m i z i n g y o u r g a m e
● S u p p o r t 6 4 - b i t a r c h i t e c t u r e s
● I m p r o v e y o u r g a m e ' s p e r f o r m a n c e
● M a n a g e m e m o r y e f f e c t i v e l y i n g a m e s
● D e t e c t a n d d i a g n o s e c r a s h e s
● I d e n t i f y C P U h o t s p o t s
●
I m p l e m e n t t h e A n d r o i d G a m e S D K
● O v e r v i e w
● R e l e a s e n o t e s
●
A c h i e v e p r o p e r f r a m e p a c i n g
● O v e r v i e w
●
O p e n G L r e n d e r e r s
● I n t e g r a t e
● U p d a t e y o u r b u i l d s e t t i n g s
● A d d f r a m e p a c i n g f u n c t i o n s
● V e r i f y f r a m e p a c i n g i m p r o v e m e n t
●
V u l k a n r e n d e r e r s
● I n t e g r a t e
● U p d a t e y o u r b u i l d s e t t i n g s
● A d d f r a m e p a c i n g f u n c t i o n s
● V e r i f y f r a m e p a c i n g i m p r o v e m e n t
●
O p t i m i z e y o u r f r a m e r a t e
● O v e r v i e w
●
C u s t o m e n g i n e i n t e g r a t i o n
● O v e r v i e w
● R u n t h e d e m o a p p
● E n a b l e t h e A P I
● U p d a t e y o u r b u i l d s e t t i n g s
● D e f i n e a n n o t a t i o n s , f i d e l i t y p a r a m e t e r s , a n d s e t t i n g s
● A d d f r a m e t i m i n g f u n c t i o n s
● A d d l o a d i n g t i m e r e c o r d i n g f u n c t i o n s
● V a l i d a t e , p a c k a g e , a n d p u b l i s h t h e A P K
● T r o u b l e s h o o t c o m m o n e r r o r s
● A d v a n c e d u s a g e
●
U n i t y i n t e g r a t i o n
● O v e r v i e w
● E n a b l e t h e A P I
● I n t e g r a t e t h e p l u g i n
● I n i t i a l i z e t h e l i b r a r y a n d v e r i f y o p e r a t i o n
● D e f i n e a n n o t a t i o n s , f i d e l i t y p a r a m e t e r s , a n d q u a l i t y l e v e l s
● A d d l o a d i n g t i m e r e c o r d i n g f u n c t i o n s
● R u n t h e m o n i t o r a p p
● R e v i e w a n d p u b l i s h
● T r o u b l e s h o o t c o m m o n e r r o r s
●
I n c o r p o r a t e h i g h - p e r f o r m a n c e a u d i o
● O v e r v i e w
● U p d a t e y o u r b u i l d s e t t i n g s
● U s e O b o e
● C o d e s a m p l e s
● F u l l g u i d e t o O b o e
●
R e f e r e n c e
●
F r a m e P a c i n g l i b r a r y
● O v e r v i e w
M o d u l e s
● S w a p p y c o m m o n t o o l s
● S w a p p y f o r O p e n G L
● S w a p p y f o r O p e n G L e x t r a s
● S w a p p y f o r V u l k a n
S t r u c t s
● S w a p p y S t a t s
● S w a p p y T h r e a d F u n c t i o n s
● S w a p p y T r a c e r
● S w a p p y V k F u n c t i o n P r o v i d e r
●
P e r f o r m a n c e T u n e r l i b r a r y
●
C u s t o m e n g i n e
● O v e r v i e w
M o d u l e s
● T u n i n g F o r k c a c h e u t i l i t i e s
● T u n i n g F o r k e x t r a u t i l i t i e s
● T u n i n g F o r k m a i n i n t e r f a c e
S t r u c t s
● T u n i n g F o r k _ C P r o t o b u f S e r i a l i z a t i o n
● T u n i n g F o r k _ C a c h e
● T u n i n g F o r k _ L o a d i n g T i m e M e t a d a t a
● T u n i n g F o r k _ M e t r i c L i m i t s
● T u n i n g F o r k _ S e t t i n g s
●
U n i t y
● O v e r v i e w
C l a s s e s
● A n d r o i d P e r f o r m a n c e T u n e r < T F i d e l i t y , T A n n o t a t i o n >
● L o a d i n g T i m e M e t a d a t a
● R e s u l t < T >
S t r u c t s
● M e t r i c L i m i t s
N a m e s p a c e s
● G o o g l e
● G o o g l e . A n d r o i d
● G o o g l e . A n d r o i d . P e r f o r m a n c e T u n e r
● R e d u c e g a m e s i z e
● P r o f i l e g r a p h i c s
● D e b u g g i n g n a t i v e m e m o r y u s e
L a u n c h a n d i t e r a t e
● L a u n c h y o u r g a m e o n G o o g l e P l a y
● C r e a t e a n A n d r o i d A p p B u n d l e i n U n i t y
● A d d s u p p o r t f o r i n s t a n t a c c e s s
● S t a y c o n n e c t e d w i t h y o u r u s e r b a s e
B e s t p r a c t i c e s
D e p e n d e n c y i n j e c t i o n
● O v e r v i e w
● M a n u a l d e p e n d e n c y i n j e c t i o n
● D e p e n d e n c y i n j e c t i o n w i t h H i l t
● H i l t i n m u l t i - m o d u l e a p p s
● H i l t a n d J e t p a c k i n t e g r a t i o n s
● H i l t t e s t i n g g u i d e
● H i l t a n d D a g g e r a n n o t a t i o n s c h e a t s h e e t
●
D a g g e r
● D a g g e r b a s i c s
● U s i n g D a g g e r i n A n d r o i d a p p s
● U s i n g D a g g e r i n m u l t i - m o d u l e a p p s
T e s t i n g
● O v e r v i e w
● F u n d a m e n t a l s o f t e s t i n g
● S e t u p p r o j e c t
●
B u i l d i n g e f f e c t i v e u n i t t e s t s
● O v e r v i e w
● B u i l d i n g l o c a l u n i t t e s t s
● B u i l d i n g i n s t r u m e n t e d u n i t t e s t s
●
A u t o m a t i n g U I t e s t s
● O v e r v i e w
● T e s t i n g U I f o r a s i n g l e a p p
● T e s t i n g U I f o r m u l t i p l e a p p s
●
T e s t i n g a p p c o m p o n e n t i n t e g r a t i o n s
● O v e r v i e w
● T e s t i n g y o u r s e r v i c e
● T e s t i n g y o u r c o n t e n t p r o v i d e r
● T e s t i n g U I p e r f o r m a n c e
●
E s p r e s s o
● O v e r v i e w
● S e t u p i n s t r u c t i o n s
● B a s i c s
● R e c i p e s
● M u l t i p r o c e s s
● A c c e s s i b i l i t y c h e c k i n g
● L i s t s
● I n t e n t s
● W e b
● I d l i n g r e s o u r c e
● C h e a t s h e e t
● A d d i t i o n a l r e s o u r c e s
● U I A u t o m a t o r
● A p p C r a w l e r
● J U n i t 4 R u l e s
● A n d r o i d J U n i t R u n n e r
● R e l e a s e n o t e s
● A d d i t i o n a l r e s o u r c e s
P e r f o r m a n c e
● O v e r v i e w
●
A n d r o i d V i t a l s
● O v e r v i e w
● S t u c k P a r t i a l W a k e L o c k s
● E x c e s s i v e W a k e u p s
● E x c e s s i v e B a c k g r o u n d W i - F i S c a n s
● E x c e s s i v e B a c k g r o u n d N e t w o r k U s a g e
● A N R s
● C r a s h e s
● S l o w R e n d e r i n g
● F r o z e n F r a m e s
● P e r m i s s i o n D e n i a l s
● A p p S t a r t u p T i m e
● A p p S t a n d b y B u c k e t s
● P r o c e s s e s a n d T h r e a d s O v e r v i e w
● B e t t e r P e r f o r m a n c e t h r o u g h T h r e a d i n g
●
O p t i m i z i n g f o r B a t t e r y L i f e
● O v e r v i e w
● O p t i m i z e f o r D o z e a n d A p p S t a n d b y
● M o n i t o r t h e b a t t e r y l e v e l a n d c h a r g i n g s t a t e
● M o n i t o r c o n n e c t i v i t y s t a t u s a n d c o n n e c t i o n m e t e r i n g
● D e t e r m i n e a n d m o n i t o r t h e d o c k i n g s t a t e a n d t y p e
● P o w e r m a n a g e m e n t r e s t r i c t i o n s
● P r o f i l e b a t t e r y u s a g e w i t h B a t t e r y s t a t s a n d B a t t e r y H i s t o r i a n
● A n a l y z e p o w e r u s e w i t h B a t t e r y H i s t o r i a n
● T e s t i n g p o w e r - r e l a t e d i s s u e s
● R e d u c e y o u r a p p s i z e
●
M a n a g e m e m o r y
● O v e r v i e w o f M e m o r y M a n a g e m e m e n t
● M e m o r y A l l o c a t i o n a m o n g P r o c e s s e s
● M a n a g e Y o u r A p p ' s M e m o r y
●
S y s t e m t r a c i n g
● O v e r v i e w
● C a p t u r e a t r a c e f r o m t h e c o m m a n d l i n e
● C a p t u r e a t r a c e o n a d e v i c e
● N a v i g a t e a r e p o r t
● D e f i n e c u s t o m e v e n t s
● I n s p e c t G P U r e n d e r i n g
● D e s i g n i n g f o r S e a m l e s s n e s s
● K e e p i n g Y o u r A p p R e s p o n s i v e
● P e r f o r m a n c e T i p s
● S M P P r i m e r f o r A n d r o i d
● V e r i f y i n g A p p B e h a v i o r o n t h e A n d r o i d R u n t i m e ( A R T )
A c c e s s i b i l i t y
● O v e r v i e w
●
B u i l d a n d t e s t a p p s f o r a c c e s s i b i l i t y
● M a k e a p p s m o r e a c c e s s i b l e
● P r i n c i p l e s f o r i m p r o v i n g a p p a c c e s s i b i l i t y
● T e s t y o u r a p p ' s a c c e s s i b i l i t y
●
A d v a n c e d t o p i c s
● M a k e c u s t o m v i e w s m o r e a c c e s s i b l e
● C r e a t e y o u r o w n a c c e s s i b i l i t y s e r v i c e
● A d d i t i o n a l r e s o u r c e s
P r i v a c y
● P r i v a c y b e s t p r a c t i c e s
S e c u r i t y
● A p p s e c u r i t y b e s t p r a c t i c e s
● S e c u r i t y t i p s
● S e c u r i t y w i t h d a t a
● S e c u r i t y w i t h d a t a a c r o s s a d d i t i o n a l A n d r o i d v e r s i o n s
● S e c u r i t y w i t h H T T P S a n d S S L
● N e t w o r k s e c u r i t y c o n f i g u r a t i o n
● U p d a t i n g y o u r s e c u r i t y p r o v i d e r t o p r o t e c t a g a i n s t S S L e x p l o i t s
●
P r o t e c t i n g a g a i n s t s e c u r i t y t h r e a t s w i t h S a f e t y N e t
● O v e r v i e w
● S a f e t y N e t A t t e s t a t i o n A P I
● S a f e t y N e t S a f e B r o w s i n g A P I
● S a f e t y N e t r e C A P T C H A A P I
● S a f e t y N e t V e r i f y A p p s A P I
● C r y p t o g r a p h y
● A n d r o i d K e y s t o r e S y s t e m
● V e r i f y i n g h a r d w a r e - b a c k e d k e y p a i r s w i t h k e y a t t e s t a t i o n
● A n d r o i d P r o t e c t e d C o n f i r m a t i o n
● S u p p o r t i n g D i r e c t B o o t
● R u n n i n g e m b e d d e d D E X c o d e
● A p p s e c u r i t y i m p r o v e m e n t p r o g r a m
B u i l d f o r B i l l i o n s
● O v e r v i e w
● C o n n e c t i v i t y
● D e v i c e c a p a b i l i t y
● D a t a c o s t
● B a t t e r y c o n s u m p t i o n
● U I a n d c o n t e n t
B u i l d f o r E n t e r p r i s e
● O v e r v i e w
● D e v e l o p e r g u i d e
● W o r k p r o f i l e s
● S e t u p m a n a g e d c o n f i g u r a t i o n s
●
A p p f e e d b a c k
● S e n d a p p f e e d b a c k t o E M M s
● T e s t a p p f e e d b a c k
● W o r k c o n t a c t s
● D e v i c e m a n a g e m e n t p o l i c i e s
●
D e v i c e m a n a g e m e n t
● O v e r v i e w
● B u i l d a d e v i c e p o l i c y c o n t r o l l e r
●
D e d i c a t e d d e v i c e s
● O v e r v i e w
● L o c k t a s k m o d e
● M u l t i p l e u s e r s
● C o o k b o o k
● D e v i c e c o n t r o l
● N e t w o r k i n g a n d t e l e p h o n y
● S e c u r i t y
● S y s t e m u p d a t e s
● N e t w o r k a c t i v i t y l o g g i n g
●
A n d r o i d v e r s i o n s
● O v e r v i e w
● A n d r o i d 1 1
● A n d r o i d 1 0
● A n d r o i d 9
● A n d r o i d 8 . 0
● A n d r o i d 7 . 0
● D e v i c e a d m i n i s t r a t i o n
●
A n d r o i d D e v e l o p e r s
D o c s
G u i d e s
[ {
" t y p e " : " t h u m b - d o w n " ,
" i d " : " m i s s i n g T h e I n f o r m a t i o n I N e e d " ,
" l a b e l " : " M i s s i n g t h e i n f o r m a t i o n I n e e d "
} , {
" t y p e " : " t h u m b - d o w n " ,
" i d " : " t o o C o m p l i c a t e d T o o M a n y S t e p s " ,
" l a b e l " : " T o o c o m p l i c a t e d / t o o m a n y s t e p s "
} , {
" t y p e " : " t h u m b - d o w n " ,
" i d " : " o u t O f D a t e " ,
" l a b e l " : " O u t o f d a t e "
} , {
" t y p e " : " t h u m b - d o w n " ,
" i d " : " s a m p l e s C o d e I s s u e " ,
" l a b e l " : " S a m p l e s / C o d e i s s u e "
} , {
" t y p e " : " t h u m b - d o w n " ,
" i d " : " o t h e r D o w n " ,
" l a b e l " : " O t h e r "
} ]
[ {
" t y p e " : " t h u m b - u p " ,
" i d " : " e a s y T o U n d e r s t a n d " ,
" l a b e l " : " E a s y t o u n d e r s t a n d "
} , {
" t y p e " : " t h u m b - u p " ,
" i d " : " s o l v e d M y P r o b l e m " ,
" l a b e l " : " S o l v e d m y p r o b l e m "
} , {
" t y p e " : " t h u m b - u p " ,
" i d " : " o t h e r U p " ,
" l a b e l " : " O t h e r "
} ]
M a n a g e t o u c h e v e n t s i n a V i e w G r o u p
H a n d l i n g t o u c h e v e n t s i n a ViewGroup t a k e s s p e c i a l c a r e ,
b e c a u s e i t ' s c o m m o n f o r a ViewGroup t o h a v e c h i l d r e n t h a t
a r e t a r g e t s f o r d i f f e r e n t t o u c h e v e n t s t h a n t h e ViewGroup
i t s e l f . T o m a k e s u r e t h a t e a c h v i e w c o r r e c t l y r e c e i v e s t h e t o u c h e v e n t s i n t e n d e d
f o r i t , o v e r r i d e t h e onInterceptTouchEvent() m e t h o d .
R e f e r t o t h e f o l l o w i n g r e l a t e d r e s o u r c e s :
● I n p u t E v e n t s A P I G u i d e
● S e n s o r s O v e r v i e w
● M a k i n g t h e V i e w I n t e r a c t i v e
I n t e r c e p t t o u c h e v e n t s i n a V i e w G r o u p
T h e onInterceptTouchEvent()
m e t h o d i s c a l l e d w h e n e v e r a t o u c h e v e n t i s d e t e c t e d o n t h e s u r f a c e o f a
ViewGroup , i n c l u d i n g o n t h e s u r f a c e o f i t s c h i l d r e n . I f
onInterceptTouchEvent()
r e t u r n s true, t h e MotionEvent i s i n t e r c e p t e d ,
m e a n i n g i t i s n o t p a s s e d o n t o t h e c h i l d , b u t r a t h e r t o t h e
onTouchEvent() m e t h o d o f t h e p a r e n t .
T h e onInterceptTouchEvent()
m e t h o d g i v e s a p a r e n t t h e c h a n c e t o s e e a n y t o u c h e v e n t b e f o r e i t s c h i l d r e n d o .
I f y o u r e t u r n truef r o m
onInterceptTouchEvent() ,
t h e c h i l d v i e w t h a t w a s p r e v i o u s l y h a n d l i n g t o u c h e v e n t s
r e c e i v e s a n ACTION_CANCEL , a n d t h e e v e n t s f r o m t h a t
p o i n t f o r w a r d a r e s e n t t o t h e p a r e n t ' s
onTouchEvent() m e t h o d f o r t h e u s u a l h a n d l i n g .
onInterceptTouchEvent() c a n a l s o
r e t u r n falsea n d s i m p l y s p y o n e v e n t s a s t h e y t r a v e l d o w n t h e v i e w h i e r a r c h y
t o t h e i r u s u a l t a r g e t s , w h i c h w i l l h a n d l e t h e e v e n t s w i t h t h e i r o w n
onTouchEvent() .
I n t h e f o l l o w i n g s n i p p e t , t h e c l a s s MyViewGroupe x t e n d s
ViewGroup .
MyViewGroup c o n t a i n s m u l t i p l e c h i l d v i e w s . I f y o u d r a g y o u r f i n g e r a c r o s s
a c h i l d v i e w h o r i z o n t a l l y , t h e c h i l d v i e w s h o u l d n o l o n g e r g e t t o u c h e v e n t s , a n d
MyViewGroup s h o u l d h a n d l e t o u c h e v e n t s b y s c r o l l i n g i t s c o n t e n t s . H o w e v e r ,
i f y o u p r e s s b u t t o n s i n t h e c h i l d v i e w , o r s c r o l l t h e c h i l d v i e w v e r t i c a l l y ,
t h e p a r e n t s h o u l d n ' t i n t e r c e p t t h o s e t o u c h e v e n t s , b e c a u s e t h e c h i l d i s t h e
i n t e n d e d t a r g e t . I n t h o s e c a s e s ,
onInterceptTouchEvent() s h o u l d
r e t u r n false, a n d MyViewGroup' s
onTouchEvent() w o n ' t b e c a l l e d .
K o t l i n
class MyViewGroup @JvmOverloads constructor(
context: Context,
private val mTouchSlop: Int = ViewConfiguration.get(context).scaledTouchSlop
) : ViewGroup(context) {
...
override fun onInterceptTouchEvent(ev: MotionEvent): Boolean {
/*
* This method JUST determines whether we want to intercept the motion.
* If we return true, onTouchEvent will be called and we do the actual
* scrolling there.
*/
return when (ev.actionMasked) {
// Always handle the case of the touch gesture being complete.
MotionEvent.ACTION_CANCEL, MotionEvent.ACTION_UP -> {
// Release the scroll.
mIsScrolling = false
false // Do not intercept touch event, let the child handle it
}
MotionEvent.ACTION_MOVE -> {
if (mIsScrolling) {
// We're currently scrolling, so yes, intercept the
// touch event!
true
} else {
// If the user has dragged her finger horizontally more than
// the touch slop, start the scroll
// left as an exercise for the reader
val xDiff: Int = calculateDistanceX(ev )
// Touch slop should be calculated using ViewConfiguration
// constants.
if (xDiff > mTouchSlop) {
// Start scrolling!
mIsScrolling = true
true
} else {
false
}
}
}
...
else -> {
// In general, we don't want to intercept touch events. They should be
// handled by the child view.
false
}
}
}
override fun onTouchEvent(event: MotionEvent): Boolean {
// Here we actually handle the touch event (e.g. if the action is ACTION_MOVE,
// scroll this container).
// This method will only be called if the touch event was intercepted in
// onInterceptTouchEvent
...
}
}
J a v a
public class MyViewGroup extends ViewGroup {
private int mTouchSlop;
...
ViewConfiguration vc = ViewConfiguration.get(view.getContext());
mTouchSlop = vc.getScaledTouchSlop();
...
@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
/*
* This method JUST determines whether we want to intercept the motion.
* If we return true, onTouchEvent will be called and we do the actual
* scrolling there.
*/
final int action = MotionEventCompat.getActionMasked(ev );
// Always handle the case of the touch gesture being complete.
if (action == MotionEvent.ACTION_CANCEL || action == MotionEvent.ACTION_UP) {
// Release the scroll.
mIsScrolling = false;
return false; // Do not intercept touch event, let the child handle it
}
switch (action) {
case MotionEvent.ACTION_MOVE: {
if (mIsScrolling) {
// We're currently scrolling, so yes, intercept the
// touch event!
return true;
}
// If the user has dragged her finger horizontally more than
// the touch slop, start the scroll
// left as an exercise for the reader
final int xDiff = calculateDistanceX(ev );
// Touch slop should be calculated using ViewConfiguration
// constants.
if (xDiff > mTouchSlop) {
// Start scrolling!
mIsScrolling = true;
return true;
}
break;
}
...
}
// In general, we don't want to intercept touch events. They should be
// handled by the child view.
return false;
}
@Override
public boolean onTouchEvent(MotionEvent ev) {
// Here we actually handle the touch event (e.g. if the action is ACTION_MOVE,
// scroll this container).
// This method will only be called if the touch event was intercepted in
// onInterceptTouchEvent
...
}
}
N o t e t h a t ViewGroup a l s o p r o v i d e s a
requestDisallowInterceptTouchEvent() m e t h o d .
T h e ViewGroup c a l l s t h i s m e t h o d w h e n a c h i l d d o e s n o t w a n t t h e p a r e n t a n d i t s
a n c e s t o r s t o i n t e r c e p t t o u c h e v e n t s w i t h
onInterceptTouchEvent() .
P r o c e s s A C T I O N _ O U T S I D E e v e n t s
I f a ViewGroup r e c e i v e s a MotionEvent
w i t h a n ACTION_OUTSIDE , t h e e v e n t w i l l n o t b e d i s p a t c h e d
t o i t s c h i l d r e n b y d e f a u l t . T o p r o c e s s a MotionEvent
w i t h ACTION_OUTSIDE , e i t h e r o v e r r i d e
dispatchTouchEvent(MotionEvent event)
t o d i s p a t c h t o t h e a p p r o p r i a t e View , o r h a n d l e i t i n t h e r e l e v a n t
Window.Callback ( f o r e x a m p l e , Activity ) .
U s e V i e w C o n f i g u r a t i o n c o n s t a n t s
T h e a b o v e s n i p p e t u s e s t h e c u r r e n t ViewConfiguration t o i n i t i a l i z e
a v a r i a b l e c a l l e d mTouchSlop. Y o u c a n u s e t h e ViewConfiguration c l a s s t o a c c e s s c o m m o n d i s t a n c e s , s p e e d s , a n d
t i m e s u s e d b y t h e A n d r o i d s y s t e m .
" T o u c h s l o p " r e f e r s t o t h e d i s t a n c e i n p i x e l s a u s e r ' s t o u c h c a n w a n d e r
b e f o r e t h e g e s t u r e i s i n t e r p r e t e d a s s c r o l l i n g . T o u c h s l o p i s t y p i c a l l y u s e d t o
p r e v e n t a c c i d e n t a l s c r o l l i n g w h e n t h e u s e r i s p e r f o r m i n g s o m e o t h e r t o u c h
o p e r a t i o n , s u c h a s t o u c h i n g o n - s c r e e n e l e m e n t s .
T w o o t h e r c o m m o n l y u s e d ViewConfiguration m e t h o d s a r e
getScaledMinimumFlingVelocity()
a n d getScaledMaximumFlingVelocity() .
T h e s e m e t h o d s r e t u r n t h e m i n i m u m a n d m a x i m u m v e l o c i t y ( r e s p e c t i v e l y ) t o i n i t i a t e a f l i n g ,
a s m e a s u r e d i n p i x e l s p e r s e c o n d . F o r e x a m p l e :
K o t l i n
private val vc: ViewConfiguration = ViewConfiguration.get(context)
private val mSlop: Int = vc.scaledTouchSlop
private val mMinFlingVelocity: Int = vc.scaledMinimumFlingVelocity
private val mMaxFlingVelocity: Int = vc.scaledMaximumFlingVelocity
...
MotionEvent.ACTION_MOVE -> {
...
val deltaX: Float = motionEvent.rawX - mDownX
if (Math.abs(deltaX) > mSlop) {
// A swipe occurred, do something
}
return false
}
...
MotionEvent.ACTION_UP -> {
...
if (velocityX in mMinFlingVelocity..mMaxFlingVelocity && velocityY < velocityX) {
// The criteria have been satisfied, do something
}
}
J a v a
ViewConfiguration vc = ViewConfiguration.get(view.getContext());
private int mSlop = vc.getScaledTouchSlop();
private int mMinFlingVelocity = vc.getScaledMinimumFlingVelocity();
private int mMaxFlingVelocity = vc.getScaledMaximumFlingVelocity();
...
case MotionEvent.ACTION_MOVE: {
...
float deltaX = motionEvent.getRawX() - mDownX;
if (Math.abs(deltaX) > mSlop) {
// A swipe occurred, do something
}
...
case MotionEvent.ACTION_UP: {
...
} if (mMinFlingVelocity <= velocityX && velocityX <= mMaxFlingVelocity
&& velocityY < velocityX) {
// The criteria have been satisfied, do something
}
}
E x t e n d a c h i l d v i e w ' s t o u c h a b l e a r e a
A n d r o i d p r o v i d e s t h e TouchDelegate c l a s s t o m a k e i t p o s s i b l e
f o r a p a r e n t t o e x t e n d t h e t o u c h a b l e a r e a o f a c h i l d v i e w b e y o n d t h e c h i l d ' s b o u n d s .
T h i s i s u s e f u l w h e n t h e c h i l d h a s t o b e s m a l l , b u t s h o u l d h a v e a l a r g e r t o u c h r e g i o n . Y o u c a n
a l s o u s e t h i s a p p r o a c h t o s h r i n k t h e c h i l d ' s t o u c h r e g i o n i f n e e d b e .
I n t h e f o l l o w i n g e x a m p l e , a n ImageButton i s t h e
" d e l e g a t e v i e w " ( t h a t i s , t h e c h i l d w h o s e t o u c h a r e a t h e p a r e n t w i l l e x t e n d ) .
H e r e i s t h e l a y o u t f i l e :
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/parent_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" >
<ImageButton android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@null"
android:src="@drawable/icon" />
</RelativeLayout>
T h e s n i p p e t b e l o w d o e s t h e f o l l o w i n g :
● G e t s t h e p a r e n t v i e w a n d p o s t s a Runnable o n t h e U I t h r e a d . T h i s e n s u r e s t h a t t h e p a r e n t l a y s o u t i t s c h i l d r e n b e f o r e c a l l i n g t h e getHitRect() m e t h o d . T h e getHitRect() m e t h o d g e t s t h e c h i l d ' s h i t r e c t a n g l e ( t o u c h a b l e a r e a ) i n t h e p a r e n t ' s c o o r d i n a t e s .
● F i n d s t h e ImageButton c h i l d v i e w a n d c a l l s getHitRect() t o g e t t h e b o u n d s o f t h e c h i l d ' s t o u c h a b l e a r e a .
● E x t e n d s t h e b o u n d s o f t h e ImageButton ' s h i t r e c t a n g l e .
● I n s t a n t i a t e s a TouchDelegate , p a s s i n g i n t h e e x p a n d e d h i t r e c t a n g l e a n d t h e ImageButton c h i l d v i e w a s p a r a m e t e r s .
● S e t s t h e TouchDelegate o n t h e p a r e n t v i e w , s u c h t h a t t o u c h e s w i t h i n t h e t o u c h d e l e g a t e b o u n d s a r e r o u t e d t o t h e c h i l d .
I n i t s c a p a c i t y a s t o u c h d e l e g a t e f o r t h e ImageButton c h i l d v i e w , t h e
p a r e n t v i e w w i l l r e c e i v e a l l t o u c h e v e n t s . I f t h e t o u c h e v e n t o c c u r r e d w i t h i n t h e c h i l d ' s h i t
r e c t a n g l e , t h e p a r e n t w i l l p a s s t h e t o u c h
e v e n t t o t h e c h i l d f o r h a n d l i n g .
K o t l i n
public class MainActivity : Activity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
// Post in the parent's message queue to make sure the parent
// lays out its children before you call getHitRect()
findViewById<View>(R.id.parent_layout).post {
// The bounds for the delegate view (an ImageButton
// in this example)
val delegateArea = Rect()
val myButton = findViewById<ImageButton>(R.id.button).apply {
isEnabled = true
setOnClickListener {
Toast.makeText(
this@MainActivity,
"Touch occurred within ImageButton touch region.",
Toast.LENGTH_SHORT
).show()
}
// The hit rectangle for the ImageButton
getHitRect(delegateArea)
}
// Extend the touch area of the ImageButton beyond its bounds
// on the right and bottom.
delegateArea.right += 100
delegateArea.bottom += 100
// Sets the TouchDelegate on the parent view, such that touches
// within the touch delegate bounds are routed to the child.
(myButton.parent as? View)?.apply {
// Instantiate a TouchDelegate.
// "delegateArea" is the bounds in local coordinates of
// the containing view to be mapped to the delegate view.
// "myButton" is the child view that should receive motion
// events.
touchDelegate = TouchDelegate(delegateArea, myButton)
}
}
}
}
J a v a
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Get the parent view
View parentView = findViewById(R.id.parent_layout);
parentView.post(new Runnable() {
// Post in the parent's message queue to make sure the parent
// lays out its children before you call getHitRect()
@Override
public void run() {
// The bounds for the delegate view (an ImageButton
// in this example)
Rect delegateArea = new Rect();
ImageButton myButton = (ImageButton) findViewById(R.id.button);
myButton.setEnabled(true);
myButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(MainActivity.this,
"Touch occurred within ImageButton touch region.",
Toast.LENGTH_SHORT).show();
}
});
// The hit rectangle for the ImageButton
myButton.getHitRect(delegateArea);
// Extend the touch area of the ImageButton beyond its bounds
// on the right and bottom.
delegateArea.right += 100;
delegateArea.bottom += 100;
// Instantiate a TouchDelegate.
// "delegateArea" is the bounds in local coordinates of
// the containing view to be mapped to the delegate view.
// "myButton" is the child view that should receive motion
// events.
TouchDelegate touchDelegate = new TouchDelegate(delegateArea,
myButton);
// Sets the TouchDelegate on the parent view, such that touches
// within the touch delegate bounds are routed to the child.
if (View.class.isInstance(myButton.getParent())) {
((View) myButton.getParent()).setTouchDelegate(touchDelegate);
}
}
});
}
}
P r e v i o u s
a r r o w _ b a c k
D r a g a n d s c a l e
[ {
" t y p e " : " t h u m b - d o w n " ,
" i d " : " m i s s i n g T h e I n f o r m a t i o n I N e e d " ,
" l a b e l " : " M i s s i n g t h e i n f o r m a t i o n I n e e d "
} , {
" t y p e " : " t h u m b - d o w n " ,
" i d " : " t o o C o m p l i c a t e d T o o M a n y S t e p s " ,
" l a b e l " : " T o o c o m p l i c a t e d / t o o m a n y s t e p s "
} , {
" t y p e " : " t h u m b - d o w n " ,
" i d " : " o u t O f D a t e " ,
" l a b e l " : " O u t o f d a t e "
} , {
" t y p e " : " t h u m b - d o w n " ,
" i d " : " s a m p l e s C o d e I s s u e " ,
" l a b e l " : " S a m p l e s / C o d e i s s u e "
} , {
" t y p e " : " t h u m b - d o w n " ,
" i d " : " o t h e r D o w n " ,
" l a b e l " : " O t h e r "
} ]
[ {
" t y p e " : " t h u m b - u p " ,
" i d " : " e a s y T o U n d e r s t a n d " ,
" l a b e l " : " E a s y t o u n d e r s t a n d "
} , {
" t y p e " : " t h u m b - u p " ,
" i d " : " s o l v e d M y P r o b l e m " ,
" l a b e l " : " S o l v e d m y p r o b l e m "
} , {
" t y p e " : " t h u m b - u p " ,
" i d " : " o t h e r U p " ,
" l a b e l " : " O t h e r "
} ]
C o n t e n t a n d c o d e s a m p l e s o n t h i s p a g e a r e s u b j e c t t o t h e l i c e n s e s d e s c r i b e d i n t h e C o n t e n t L i c e n s e . J a v a i s a r e g i s t e r e d t r a d e m a r k o f O r a c l e a n d / o r i t s a f f i l i a t e s .
L a s t u p d a t e d 2 0 1 9 - 1 2 - 2 7 U T C .
F o l l o w @ A n d r o i d D e v o n T w i t t e r
C h e c k o u t A n d r o i d D e v e l o p e r s o n Y o u T u b e
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●