ANDROID	DEVELOPMENT	
POWERED	BY	JAVA	SE	8
MOHAMED	TAMAN	@_TAMANM
JAVA	CHAMPION
Unleash	the	Dragon
BIOGRAPHY
• Java	Champion
• Enterprise	Architect	/	Innovation	&	R&D	Sr.	Manager @efinance
• Mobile	/	Web	Architect	
• JCP	(Won	Duke’s	choice	award	2013,	2014,	2015)
• Speaks	Java	(Won	Outstanding	adopt-a-jsr participant	2013	JCP	annual	award)
• International	Speaker
• Author	(“JavaFX	8	essentials”,	and	upcoming	“Mastering	JDK	9”)
Mohamed	Taman	@_tamanm
REACH	ME	ON
@_tamanm
http://eg.linkedin.com/in/mohamedtaman/
https://www.facebook.com/mohamed.m.taman.7	
(Mohamed	Mahmoud	Taman)
http://tamanmohamed.blogspot.com
AGENDA
• Why	Java	SE	8?
• Android	Development	and	Java	SE	8
• Start	using	supported	Java	8
• Live	Demo
Mohamed	Taman	@_tamanm
WHY	JAVA	SE	8?
Mohamed	Taman	@_tamanm
JAVA	SE	8
Java	Platform,	Standard	Edition	8	is	a	major	feature	release,	
since	Java	SE	5	release.
Mohamed	Taman	@_tamanm
BRINGS
Functional	Programming	to	the	language,	like	others	Scala,	Groovy,..		and	
other	languages
Mohamed	Taman	@_tamanm
FUNCTIONAL	PROGRAMMING
By	introducing	Lambda	Expressions
Mohamed	Taman	@_tamanm
LAMBDA	EXPRESSION	SYNTAX
Mohamed	Taman	@_tamanm
WHAT'S	NEW	IN	JDK	8
• Lambda	Expressions	(Covered	already)
• Method	references
• Default	and	static	interface	methods
• Streams	&	Collections
• For	more:
Mohamed	Taman	@_tamanm
Supported	by	Android development
https://developer.android.com/studio/preview/features/java8-support.html#supported_features
QUICK	LIVE	DEMO
Mohamed	Taman	@_tamanm
http://www.oracle.com/technetwork/java/javase/8-whats-new-2157071.html
ANDROID	DEVELOPMENT	
AND	JAVA	SE	8
Mohamed	Taman	@_tamanm
USE	JAVA	8	LANGUAGE	FEATURES
• Android	Studio	2.4	Preview	4	and	later	supports	all	Java	SE	7	language	features.	
• And	a	subset	of	Java	SE	8	language	features.
Mohamed	Taman	@_tamanm
Note:	When	developing	apps	for	Android,	using	Java	8	
language	features,	is	optional.
DESUGAR	TOOLCHAIN
Is	the	default	toolchain	for	
new	Android	Studio	2.4+
Mohamed	Taman	@_tamanm
.java .class
.class
(desugared)
.dex
javac dexdesugar
Third	party	
library
Java	8	language	feature	support	using desugar bytecode	transformations.
START	USING	SUPPORTED	JAVA	8
Mohamed	Taman	@_tamanm
UPDATE	GRADLE	PLUGIN
• Update	the	Android	plugin to 2.4.0 (or	higher),	you	can	use	latest	Gradle	v3.5.
• Add	the	following	to	your	module’s	build.gradle file
Mohamed	Taman	@_tamanm
android {
...
compileOptions {
sourceCompatibility	JavaVersion.VERSION_1_8
targetCompatibility	JavaVersion.VERSION_1_8
}
}
API	VERSION,	VM	IMAGE,	&	TOOLS
• Update	API	to	API	level	24	or	higher.
• minSdkVersion (24)	is	Noga Android	N	or	higher	should	be	installed.
• Intel	x86	atom	System	image	of	Noga SDK.
• Latest	build	and	platform	tools	v24.0.0+.
• Google	Repository	v24	or	later.
• Intel	x86	emulator	accelerator		(HAXM	installer)	latest	version.
Mohamed	Taman	@_tamanm
LIVE	DEMO
Mohamed	Taman	@_tamanm
Mohamed	Taman	@_tamanm

Android development powered by Java SE 8