what's new in android at i/o'16

Post on 16-Apr-2017

514 Views

Category:

Mobile

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

What’s New in Android

Google I/O 2016

Elif BoncukSoftware Specialist

#gdgistanbul

Android Studio 2.2 Preview

Speed

Smarts

Android platform support

#gdgistanbul

Android Studio 2.2 PreviewDesign

Layout EditorConstraint LayoutLayout Inspector

BuildJack Compiler ImprovementsMerged Manifest Viewer

DevelopFirebase PluginEnhanced Code AnalysisSamples BrowserImproved C++ SupportIntelliJ 2016.1

TestEspresso Test RecorderAPK Analyzer

#gdgistanbul

ConstraintLayoutUnbundled Layout

Small - 100 kb

Compatible since Gingerbread(2.3) (%99.9 percent of devices)

First Layout in conjunction with tool (Android Studio)

#gdgistanbul

ConstraintLayout - Why not Relative Layout?ConstraintLayout is a superset

More expressive

Less nesting

Extensible

#gdgistanbul

ConstraintLayout - UI Builder2 way editing(UI/XML)

Direct Integration in Studio

Immediate feedback

In Active Development

Material Design Guideline

Autoconnect

Clear all constraints

Infer constraints

Faster UI Design

#gdgistanbul

ConstraintLayout - Demo

#gdgistanbul

Code Samples Browser

#gdgistanbul

CMake and NDK Build

#gdgistanbul

Improved Jack Tools

#gdgistanbul

Jack Compiler

#gdgistanbul

Merged Manifest Viewer

#gdgistanbul

Espresso Test Recorder

#gdgistanbul

#gdgistanbul

Apk Analyzer

#gdgistanbul

Auto Debugger Selection

#gdgistanbul

#gdgistanbul

Multi Window - Split Screen Drag from recents

Magic of Android Layout

Optimized Automatically

#gdgistanbul

Multi Window - Split Screen

Layout Attributes:android:defaultWidth

android:defaultHeight

android:gravity

android:minimalHeight

android:minimalWidth

Multi-window change notification and querying:Activity.isInMultiWindowMode()

Activity.onMultiWindowModeChanged()

#gdgistanbul

Multi Window - Picture-in-Picture

Multi-window change notification and querying:Activity.isInPictureInPictureMode()

Activity.onPictureInPictureModeChanged()

Activity.enterPictureInPictureMode()

#gdgistanbul

Drag and Dropandroid.view.DropPermissions

View.startDragAndDrop()

View.DRAG_FLAG_GLOBAL

View.DRAG_FLAG_GLOBAL_URI_READ

View.DRAG_FLAG_GLOBAL_URI_WRITE

View.cancelDragAndDrop()

View.updateDragShadow()

Activity.requestDropPermissions()

Now between activities!

#gdgistanbul

RuntimeFaster interpreter

JITFaster install times

Less space consume on device

Apps use partial AOT (ahead-of-time)Only for hotspots

#gdgistanbul

New Runtime LibrariesICU4J

Unicode and globalization support

Subset exposed in android.icu

Avoids conflicts with com.ibm.icu

Deprecated and unstable APIs omitted

Functional Interface

java.util.function

java.util.stream

#gdgistanbul

Java 8 Language Features

Default and static interface methods

Lambda expressions (also available on API level 23 and lower)

Repeatable annotations

Method References (also available on API level 23 and lower)

#gdgistanbul

LambdasImplemented using anonymous class

Backward compatible with Gingerbread

Dipnot: RXJAVA

#gdgistanbul

Default & Static Interface MethodsNo backward compatible

#gdgistanbul

Repeating AnnotationsNo backward compatible

#gdgistanbul

NotificationsNew templates

Bundled Notifications

Direct Reply

#gdgistanbul

Quick Settings

Users: Choose your favourite tiles!Reorder them, too

Top 5 become your even quicker-quick-settings

#gdgistanbul

Quick Settings

Developers: Create your own tiles!Key classes:

android.service.quicksettings.TileService

onTileAdded(), onTileRemoved(), onStartListening(), onStopListening(), onClick()

getQsTile() -> android.service.quicksettings.Tile

setState(), setLabel(), setIcon(), then, updateTile()

#gdgistanbul

Quick Settings

<service android:name=".feature.PocketQuickSettingsTileService" android:icon="@drawable/ic_bookmark" android:label="@string/unread_articles" android:permission="android.permission.BIND_QUICK_SETTINGS_TILE"> <intent-filter> <action android:name="android.service.quicksettings.action.QS_TILE" /> </intent-filter> </service>

#gdgistanbul

Display SizeDefault Font Size “Larges Display Size “Largest”

#gdgistanbul

Multi LocaleUsers can select Multiple Languages

And order them

Also added new languages

#gdgistanbul

Doze

MarshmallowScreen off, on battery, stationary,

Restricts network, services, defer jobs, syncs, alarms

Android NAll of the above, plus

Not stationary

#gdgistanbul

Project Svelte: Background Optimizations

ConnectivityManager.CONNECTIVITY_ACTION Camera.ACTION_NEW_VIDEOCamera.ACTION_NEW_PICTURE

JobSchedulerJobScheduler.Builder.addTriggerContentUri();

Puffffffff

Hello

#gdgistanbul

Data SaverBlocks

background data usage

Warn apps to use less data on foreground

#gdgistanbul

Data Saver

getSystemService(Context.CONNECTIVITY_SERVICE);

isActiveNetworkMetered()

getRestrictBackgroundStatus()

RESTRICT_BACKGROUND_STATUS_DISABLED

RESTRICT_BACKGROUND_STATUS_ENABLED

RESTRICT_BACKGROUND_STATUS_WHITELISTED

#gdgistanbul

Direct BootImproves startup time

Some app functionality after unexpected reboot

#gdgistanbul

Direct Boot

ACTION_USER_UNLOCKED

#gdgistanbul

Scoped Directory Access

#gdgistanbul

Android for WorkWork mode

Work challenge

#gdgistanbul

OpenGL ES 3.2 & Vulkan

GLES 3.1 + Android Extention Pack

Advanced blending equations

Tesselation shaders

Geometry shaders

ASTC (LDR)

Image atomics

Floating point framebuffers

3D Graphics API

Application control of memory allocation.

Asynchronous command generation.

No hidden work.

Multithreaded design, from the ground up.

Mobile-friendly features.

Offline shader compilation.

Optional validation.

http://android-developers.blogspot.com.tr/2016/04/optimize-develop-and-debug-with-vulkan.html

What’s new in Support LibraryHighlights

#gdgistanbul

FragmentsLifecycle improvements

Synchronous Commit via commitNow()

Alternative to commit/executePending

Preferred if not modifying back stack

24.0

#gdgistanbul

NotificationsNew visual style for conversations

NotificationCompat.MessagingStyle

Large format style for multi-party conversations

Compatible with Wear 2.0 devices (since API 18)

#gdgistanbul

Custom TabsMinimum SDK: 15

Alternative to Embedded WebView

Shares state with browser

Customize & receive callbacks

UI customization

Customize colors

Add actions to toolbar, bottom bar

Enter, exit transitions

#gdgistanbul

Vector DrawableIntroduced in Lolipop (API 21)

Used heavily inside Android OS

Improvements continue

Similar to SVG but simplier

#gdgistanbul

Generate Vector AssetsVector Asset Repository

SVG to VectorDrawable

#gdgistanbul

PNG generation by GradleNo Animated Vector Drawable

Limited Features of Vector Drawable

Generated PNG files sits inside APK

#gdgistanbul

Night mode

#gdgistanbul

#gdgistanbul

Referenceshttps://www.youtube.com/watch?v=B08iLAtS3AQ&list=PLWz5rJ2EKKc8jQTUYvIfqA9lMvSGQWtte

https://developer.android.com/preview/features/multi-window.html#running

https://developer.android.com/preview/features/notification-updates.html

https://developer.android.com/training/monitoring-device-state/doze-standby.html

https://developer.android.com/preview/behavior-changes.html

https://developer.android.com/reference/android/net/ConnectivityManager.html#CONNECTIVITY_ACTION

https://developer.android.com/preview/features/data-saver.html

https://developer.android.com/preview/features/direct-boot.html

https://developer.android.com/preview/j8-jack.html

https://www.youtube.com/watch?v=csaXml4xtN8&index=49&list=PLOU2XLYxmsILe6_eGvDN3GyiodoV3qNSC

http://android-developers.blogspot.com.tr/2016/05/android-studio-22-preview-new-ui.html

https://www.youtube.com/watch?v=w45y_w4skKs&index=15&list=PLOU2XLYxmsILe6_eGvDN3GyiodoV3qNSC

http://android-developers.blogspot.com.tr/2016/02/android-support-library-232.html

Questions?

Thank you!

@elifbon_www.elifboncuk.wordpress.com

top related