SlideShare ist ein Scribd-Unternehmen logo
1 von 55
What’s New in Android
+Adam Koch
+Ankur Kotwal
Agenda
Android M Release
Google Play Services v7.8
Android Tools & Libraries
Android M
Android M…?
Android
Marshmallow
Available now for Nexus 5/6/9, Player & emulator
developer.android.com/preview
Get your apps ready!
Provide feedback and report bugs
Issue tracker: goo.gl/zcjEj7
Google+ community: goo.gl/BIq1eJ
Android M Developer Preview
On August 17 we released:
- Developer Preview 3 ROMs
- Final Android 6.0 (Marshmallow) SDK
Start publishing to Play today!
M Preview Timeline You are here
Getting Started with Marshmallow
android {
compileSdkVersion 23
buildToolsVersion '23.0.0'
defaultConfig {
applicationId 'com.google.samples.apps.mpreviewtest'
minSdkVersion 23
targetSdkVersion 23
versionCode 1
versionName '1.0'
}
}
Runtime permissions!
Auto Backup
Power-Saving Optimizations
Other behavior changes:
- Adoptable Storage Devices
- AndroidHttpClient -> HttpUrlConnection
- OpenSSL -> BoringSSL
- And more: goo.gl/cf4lwy
Android M Behavior Changes
Why should you care?
- Significantly different behavior (after targeting M)
- No permission dialog on install --> less friction
- App updates --> automatic
- Fine grained, revocable permissions --> user feels in
control, improved user experience
Runtime Permissions
targetSdkVersion < M targetSdkVersion = M+
Pre-M device
Install time permission dialog
All permissions granted
M device
Install time permission dialog
All permissions granted
User can revoke permissions
No dialog during install
No permissions granted initially
App can request permissions
User can revoke permissions
Runtime Permissions
Runtime Permissions
Location
Camera
Microphone
Phone
All location permissions
Photo and video permissions
Audio recording
Phone state, dialing, etc.
SMS
Contacts
Calendar
Sensors
Storage
Controlling or reading SMS/MMS/etc.
Managing contacts
Managing calendars
Body sensors
Read, write external storage
Best Practices
Only ask for what you need, when you need it
Don’t overwhelm the user
Consider using system Intents if possible
Explain why you need permissions
Runtime Permissions
Context.checkSelfPermission(String permission)
Activity.requestPermissions(
String[] permissions, int requestCode)
Activity.onRequestPermissionsResult(
int requestCode, String[] permissions,
int[] grantResults)
New permissions methods
ContextCompat.checkSelfPermission(String permission)
ActivityCompat.requestPermissions(
String[] permissions, int requestCode)
ActivityCompat.onRequestPermissionsResult(
int requestCode, String[] permissions,
int[] grantResults)
*Also in Support Library (v23)
static final int LOCATION_PERMISSION_REQUEST_RESULT = 2;
...
if (checkSelfPermission(Manifest.permission.ACCESS_FINE_LOCATION)
!= PackageManager.PERMISSION_GRANTED) {
requestPermissions(
new String[]{Manifest.permission.ACCESS_FINE_LOCATION},
LOCATION_PERMISSION_REQUEST_RESULT);
}
Requesting a permission
@Override
public void onRequestPermissionsResult(
int requestCode, String[] permissions, int[] grantResults) {
switch (requestCode) {
case LOCATION_PERMISSION_REQUEST_RESULT: {
if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
// Granted!
} else {
// Denied!
}
}
}
}
Checking if permission was granted
If shouldShowRequestPermissionRationale()
returns true then show your own in-app UI
explaining why you need the permission.
When does it return true? If the user has denied the
permission in the past (but NOT checked “Don’t ask
again”).
Showing your own explaination
Free and automatic app data backup (and restore)
Up to 25MB per user per app
Occurs every 24 hours
Enabled for *all* apps running on M Preview (but for
M final only targetSdkVersion=M)
Auto Backup for Apps
Use platform APIs correctly, don’t hardcode paths:
getFilesDir(), getExternalFilesDir(), etc. will be backed up
getCacheDir(), getExternalCacheDir(), etc. will not be backed up
Exclude device-specific identifiers from backup
(eg. GCM registration ID, etc.)
Auto Backup for Apps
Configuring Auto Backup
AndroidManifest.xml
<application ...
android:fullBackupContent="@xml/mybackupscheme" />
xml/mybackupscheme.xml
<full-backup-content>
<include domain=["file"|"database"|"sharedpref"|"external"|"root"] path="string" />
<exclude domain=["file"|"database"|"sharedpref"|"external"|"root"] path="string" />
</full-backup-content>
# enable logging
$ adb shell setprop log.tag.BackupXmlParserLogging VERBOSE
# initialize Backup Manager
$ adb shell bmgr run
# trigger backup or restore
$ adb shell bmgr fullbackup <PACKAGE>
$ adb shell bmgr restore <PACKAGE>
Testing Auto Backup
Doze
increase standby time of devices
that aren’t being used
App Standby
reduce overhead of apps that are
installed but not used recently
Power-Saving Optimizations
flickr/trophygeek
Network access disabled (except high priority GCM)
Wake locks are ignored except for alarms set with setAlarmClock()
and setAndAllowWhileIdle()
Syncs and JobScheduler tasks are not allowed to run
Test with:
Doze
$ adb shell dumpsys battery unplug
$ adb shell dumpsys deviceidle step
$ adb shell dumpsys deviceidle -h
Apps considered idle unless:
- explicitly launched by user
- has a foreground process
- visible notification
- user asks for the app to be exempt
Idle apps are restricted:
- network access disabled
- syncs and background jobs suspended
App Standby
Android M New Platform Features
Direct Share
Fingerprint API & Confirm Credentials
Voice Interactions & Assist API
App Linking
Text Selection
And much more:
- Bluetooth Stylus, 4K Display, MIDI, Camera,
Android for Work...
Other Smaller Additions
Other Small Additions
After:
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:foreground="@drawable/selector">
...
</LinearLayout>
Before:
<FrameLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:foreground="@drawable/selector">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
...
</LinearLayout>
</FrameLayout>
Other Small Additions
Notifications
New android.graphics.drawable.Icon,
- Icon.createWithBitmap(Bitmap) for dynamic icons
Notification.Builder.setSmall/LargeIcon(Icon)
getActiveNotifications()
And lots more...
Fingerprint API & Confirm Credentials
Voice Interactions & Assist API
App Linking
Text Selection
Bluetooth Stylus
4K Display
MIDI
Camera
Android for Work…
Google Play
Services v7.8
Nearby Messages
Find nearby devices or beacons and
share messages
Cross platform support
Android & iOS
Unauthenticated
(Does not require a Google account)
Uses a variety of tech under the hood
Bluetooth, Bluetooth Low Energy, Wi-Fi and an
ultrasonic modem
Face API & Barcode API
Mobile Vision API
Smart Lock for Passwords
Credentials API
● auth.credentials.save
● auth.credentials.request
com.google.android.gms.auth.api.c
redentials.CredentialsApi
Creates a unique ID per app per install
Generate security tokens for services (suited for user by GCM)
Verify app authenticity & check if app install is active via web API
InstanceID
// Get InstanceID
String iid = InstanceID.getInstance().getID();
Topic based subscriptions
New base classes for receiving GCM messages
GCM Network Manager
Google Cloud Messaging
GCM Network Manager
GcmNetworkManager JobScheduler
Run during specific
time window
Supported
(one off, periodic)
Supported
(one off, periodic)
Require device charging Supported Supported
Specify network type Supported Supported
Require device idle Not Supported Supported
Execute by deadline Not Supported Supported
Android Tools
& Libraries
C/C++ support (coming soon)
- integrated debugging,
code completion, refactoring
Debugger improvements
Separate unit testing module
Speed improvements
Visual theme editor, layout editor improvements
Android Studio
Android Studio
Drawable Resources
Bitmap Vector
compile 'com.android.support:design:23.0.0'
Android Design Support Library
Floating labels for hint and error text
Built-in animations
Wrap EditText in a TextInputLayout
TextInputLayout
Providing lightweight quick feedback to your users
Snackbar
.make(parentLayout, “My Text”, Snackbar.LENGTH_LONG)
.setAction(“My Action”, myOnClickListener)
.show(); //Don’t forget to show!
Snackbar
Top level navigation or grouping content
tabGravity = center, fill
tabMode = scrollable, fixed
TabLayout
● Component to create view inside
Navigation Drawer
● Used with DrawerLayout
● Load items from menu resources
NavigationView
Built-in component for FAB, follows
design spec
Default color = ?attr/colorAccent
fabSize = full, mini
Floating Action Button (FAB)
Provide additional level of control between child
views
Coordinate different Views
- FloatingActionButton
- Snackbar
- Toolbar, Tabs
Each View sets own behavior
- CoordinatorLayout.Behavior
CoordinatorLayout
compile 'com.android.support:percent:23.0.0'
Managing percent based dimensions
<android.support.percent.PercentFrameLayout ...>
<ImageView app:layout_widthPercent="50%"
app:layout_heightPercent="50%"
app:layout_marginTopPercent="25%"
app:layout_marginLeftPercent="25%"/>
</android.support.percent.PercentFrameLayout>
Percent Support Library
Placing a FAB - Before
private void addFloatingActionButton() {
final int fabSize =
getResources().getDimensionPixelSize(R.dimen.fab_size);
int bottomOfQuestionView =
findViewById(R.id.question_view).getBottom();
final LayoutParams fabLayoutParams =
new LayoutParams(fabSize, fabSize, Gravity.END | Gravity.TOP);
final int fabPadding =
getResources().getDimensionPixelSize(R.dimen.padding_fab);
final int halfAFab = fabSize / 2;
fabLayoutParams.setMargins(0, // left
bottomOfQuestionView - halfAFab, //top
0, // right
fabPadding); // bottom
addView(mSubmitAnswer, fabLayoutParams);
}
<android.support.design.widget.CoordinatorLayout ...>
<TextView android:id="@+id/textLayout" />
<android.support.design.widget.FloatingActionButton ...
android:src="@drawable/ic_action_map"
app:layout_anchor="@id/textLayout"
app:layout_anchorGravity="bottom|start" />
</android.support.design.widget.CoordinatorLayout>
Placing a FAB - After
Android Developer Blog Post
goo.gl/THH9OA
DevByte Video
goo.gl/0jhXFb
Cheesesquare Sample
github.com/chrisbanes/cheesesquare
Resources
Thank You!
Questions?
+Adam Koch +Ankur Kotwal

Weitere ähnliche Inhalte

Was ist angesagt?

Android development orientation for starters v4 seminar
Android development orientation for starters v4   seminarAndroid development orientation for starters v4   seminar
Android development orientation for starters v4 seminarJoemarie Amparo
 
What’s new in aNdroid [Google I/O Extended Bangkok 2016]
What’s new in aNdroid [Google I/O Extended Bangkok 2016]What’s new in aNdroid [Google I/O Extended Bangkok 2016]
What’s new in aNdroid [Google I/O Extended Bangkok 2016]Sittiphol Phanvilai
 
Getting started with android dev and test perspective
Getting started with android   dev and test perspectiveGetting started with android   dev and test perspective
Getting started with android dev and test perspectiveGunjan Kumar
 
Android studio 2.2 Tips and Tricks
Android studio 2.2 Tips and TricksAndroid studio 2.2 Tips and Tricks
Android studio 2.2 Tips and TricksUptech
 
Ui layout (incomplete)
Ui layout (incomplete)Ui layout (incomplete)
Ui layout (incomplete)Ahsanul Karim
 
Support Design Library
Support Design LibrarySupport Design Library
Support Design LibraryTaeho Kim
 
Android, Gradle & Dependecies
Android, Gradle & DependeciesAndroid, Gradle & Dependecies
Android, Gradle & DependeciesÉdipo Souza
 
Introduction_to_android_and_android_studio
Introduction_to_android_and_android_studioIntroduction_to_android_and_android_studio
Introduction_to_android_and_android_studioAbdul Basit
 
Android architecture components
Android architecture components Android architecture components
Android architecture components azzeddine chenine
 
Android studio 2.0: default project structure
Android studio 2.0: default project structureAndroid studio 2.0: default project structure
Android studio 2.0: default project structureVyara Georgieva
 
Optimizing Apps for Better Performance
Optimizing Apps for Better PerformanceOptimizing Apps for Better Performance
Optimizing Apps for Better PerformanceElif Boncuk
 
Android architecture
Android architecture Android architecture
Android architecture Trong-An Bui
 
Android N Highligts
Android N HighligtsAndroid N Highligts
Android N HighligtsSercan Yusuf
 
Introduction to android coding
Introduction to android codingIntroduction to android coding
Introduction to android codingHari Krishna
 

Was ist angesagt? (20)

Android cours
Android coursAndroid cours
Android cours
 
Android development orientation for starters v4 seminar
Android development orientation for starters v4   seminarAndroid development orientation for starters v4   seminar
Android development orientation for starters v4 seminar
 
What’s new in aNdroid [Google I/O Extended Bangkok 2016]
What’s new in aNdroid [Google I/O Extended Bangkok 2016]What’s new in aNdroid [Google I/O Extended Bangkok 2016]
What’s new in aNdroid [Google I/O Extended Bangkok 2016]
 
Getting started with android dev and test perspective
Getting started with android   dev and test perspectiveGetting started with android   dev and test perspective
Getting started with android dev and test perspective
 
Android Development
Android DevelopmentAndroid Development
Android Development
 
Android studio 2.2 Tips and Tricks
Android studio 2.2 Tips and TricksAndroid studio 2.2 Tips and Tricks
Android studio 2.2 Tips and Tricks
 
Ui layout (incomplete)
Ui layout (incomplete)Ui layout (incomplete)
Ui layout (incomplete)
 
Support Design Library
Support Design LibrarySupport Design Library
Support Design Library
 
Android, Gradle & Dependecies
Android, Gradle & DependeciesAndroid, Gradle & Dependecies
Android, Gradle & Dependecies
 
Geekcamp Android
Geekcamp AndroidGeekcamp Android
Geekcamp Android
 
Introduction_to_android_and_android_studio
Introduction_to_android_and_android_studioIntroduction_to_android_and_android_studio
Introduction_to_android_and_android_studio
 
Android architecture components
Android architecture components Android architecture components
Android architecture components
 
Android studio 2.0: default project structure
Android studio 2.0: default project structureAndroid studio 2.0: default project structure
Android studio 2.0: default project structure
 
Optimizing Apps for Better Performance
Optimizing Apps for Better PerformanceOptimizing Apps for Better Performance
Optimizing Apps for Better Performance
 
Android architecture
Android architecture Android architecture
Android architecture
 
Android N Highligts
Android N HighligtsAndroid N Highligts
Android N Highligts
 
Android session 2
Android session 2Android session 2
Android session 2
 
Android
AndroidAndroid
Android
 
Android session 3
Android session 3Android session 3
Android session 3
 
Introduction to android coding
Introduction to android codingIntroduction to android coding
Introduction to android coding
 

Ähnlich wie What's new in android jakarta gdg (2015-08-26)

Colombo Mobile Developer MeetUp - Building Scalable Cloud Connected Mobile Ap...
Colombo Mobile Developer MeetUp - Building Scalable Cloud Connected Mobile Ap...Colombo Mobile Developer MeetUp - Building Scalable Cloud Connected Mobile Ap...
Colombo Mobile Developer MeetUp - Building Scalable Cloud Connected Mobile Ap...99X Technology
 
Kandroid for nhn_deview_20131013_v5_final
Kandroid for nhn_deview_20131013_v5_finalKandroid for nhn_deview_20131013_v5_final
Kandroid for nhn_deview_20131013_v5_finalNAVER D2
 
Google Cloud Platform monitoring with Zabbix
Google Cloud Platform monitoring with ZabbixGoogle Cloud Platform monitoring with Zabbix
Google Cloud Platform monitoring with ZabbixMax Kuzkin
 
Synapseindia android apps intro to android development
Synapseindia android apps  intro to android developmentSynapseindia android apps  intro to android development
Synapseindia android apps intro to android developmentSynapseindiappsdevelopment
 
Android things introduction - Development for IoT
Android things introduction - Development for IoTAndroid things introduction - Development for IoT
Android things introduction - Development for IoTBartosz Kosarzycki
 
The Big Picture and How to Get Started
The Big Picture and How to Get StartedThe Big Picture and How to Get Started
The Big Picture and How to Get Startedguest1af57e
 
KSS Session and Tech Talk-2019 on IOT.pptx
KSS Session and Tech Talk-2019 on IOT.pptxKSS Session and Tech Talk-2019 on IOT.pptx
KSS Session and Tech Talk-2019 on IOT.pptxNashet Ali
 
Meteor Meet-up San Diego December 2014
Meteor Meet-up San Diego December 2014Meteor Meet-up San Diego December 2014
Meteor Meet-up San Diego December 2014Lou Sacco
 
Android tutorial for beginners-traininginbangalore.com
Android tutorial for beginners-traininginbangalore.comAndroid tutorial for beginners-traininginbangalore.com
Android tutorial for beginners-traininginbangalore.comTIB Academy
 
Тестирование мобильных приложений используя облачные сервисы. TestDroid, Test...
Тестирование мобильных приложений используя облачные сервисы. TestDroid, Test...Тестирование мобильных приложений используя облачные сервисы. TestDroid, Test...
Тестирование мобильных приложений используя облачные сервисы. TestDroid, Test...COMAQA.BY
 
Android tutorial ppt
Android tutorial pptAndroid tutorial ppt
Android tutorial pptRehna Renu
 
Getting your app ready for android n
Getting your app ready for android nGetting your app ready for android n
Getting your app ready for android nSercan Yusuf
 
Gradle for Android Developers
Gradle for Android DevelopersGradle for Android Developers
Gradle for Android DevelopersJosiah Renaudin
 
Hands on App Engine
Hands on App EngineHands on App Engine
Hands on App EngineSimon Su
 
Google App Engine for Java v0.0.2
Google App Engine for Java v0.0.2Google App Engine for Java v0.0.2
Google App Engine for Java v0.0.2Matthew McCullough
 

Ähnlich wie What's new in android jakarta gdg (2015-08-26) (20)

Colombo Mobile Developer MeetUp - Building Scalable Cloud Connected Mobile Ap...
Colombo Mobile Developer MeetUp - Building Scalable Cloud Connected Mobile Ap...Colombo Mobile Developer MeetUp - Building Scalable Cloud Connected Mobile Ap...
Colombo Mobile Developer MeetUp - Building Scalable Cloud Connected Mobile Ap...
 
Kandroid for nhn_deview_20131013_v5_final
Kandroid for nhn_deview_20131013_v5_finalKandroid for nhn_deview_20131013_v5_final
Kandroid for nhn_deview_20131013_v5_final
 
Google Cloud Platform monitoring with Zabbix
Google Cloud Platform monitoring with ZabbixGoogle Cloud Platform monitoring with Zabbix
Google Cloud Platform monitoring with Zabbix
 
Synapseindia android apps intro to android development
Synapseindia android apps  intro to android developmentSynapseindia android apps  intro to android development
Synapseindia android apps intro to android development
 
Android things introduction - Development for IoT
Android things introduction - Development for IoTAndroid things introduction - Development for IoT
Android things introduction - Development for IoT
 
The Big Picture and How to Get Started
The Big Picture and How to Get StartedThe Big Picture and How to Get Started
The Big Picture and How to Get Started
 
Android Froyo
Android FroyoAndroid Froyo
Android Froyo
 
KSS Session and Tech Talk-2019 on IOT.pptx
KSS Session and Tech Talk-2019 on IOT.pptxKSS Session and Tech Talk-2019 on IOT.pptx
KSS Session and Tech Talk-2019 on IOT.pptx
 
Meteor Meet-up San Diego December 2014
Meteor Meet-up San Diego December 2014Meteor Meet-up San Diego December 2014
Meteor Meet-up San Diego December 2014
 
Android workshop
Android workshopAndroid workshop
Android workshop
 
Android tutorial for beginners-traininginbangalore.com
Android tutorial for beginners-traininginbangalore.comAndroid tutorial for beginners-traininginbangalore.com
Android tutorial for beginners-traininginbangalore.com
 
Droidcon Paris 2015
Droidcon Paris 2015Droidcon Paris 2015
Droidcon Paris 2015
 
Eddystone beacons demo
Eddystone beacons demoEddystone beacons demo
Eddystone beacons demo
 
Тестирование мобильных приложений используя облачные сервисы. TestDroid, Test...
Тестирование мобильных приложений используя облачные сервисы. TestDroid, Test...Тестирование мобильных приложений используя облачные сервисы. TestDroid, Test...
Тестирование мобильных приложений используя облачные сервисы. TestDroid, Test...
 
Android tutorial
Android tutorialAndroid tutorial
Android tutorial
 
Android tutorial ppt
Android tutorial pptAndroid tutorial ppt
Android tutorial ppt
 
Getting your app ready for android n
Getting your app ready for android nGetting your app ready for android n
Getting your app ready for android n
 
Gradle for Android Developers
Gradle for Android DevelopersGradle for Android Developers
Gradle for Android Developers
 
Hands on App Engine
Hands on App EngineHands on App Engine
Hands on App Engine
 
Google App Engine for Java v0.0.2
Google App Engine for Java v0.0.2Google App Engine for Java v0.0.2
Google App Engine for Java v0.0.2
 

Mehr von Google

Pengenalan android ndk
Pengenalan android ndkPengenalan android ndk
Pengenalan android ndkGoogle
 
Material design for android (Diggest)
Material design for android (Diggest)Material design for android (Diggest)
Material design for android (Diggest)Google
 
Developer mengajar
Developer mengajarDeveloper mengajar
Developer mengajarGoogle
 
Layout, listview, gridview, and adapter
Layout, listview, gridview, and adapterLayout, listview, gridview, and adapter
Layout, listview, gridview, and adapterGoogle
 
Fundamental android application development
Fundamental android application developmentFundamental android application development
Fundamental android application developmentGoogle
 
Android application development
Android application developmentAndroid application development
Android application developmentGoogle
 
Local developer program
Local developer programLocal developer program
Local developer programGoogle
 

Mehr von Google (7)

Pengenalan android ndk
Pengenalan android ndkPengenalan android ndk
Pengenalan android ndk
 
Material design for android (Diggest)
Material design for android (Diggest)Material design for android (Diggest)
Material design for android (Diggest)
 
Developer mengajar
Developer mengajarDeveloper mengajar
Developer mengajar
 
Layout, listview, gridview, and adapter
Layout, listview, gridview, and adapterLayout, listview, gridview, and adapter
Layout, listview, gridview, and adapter
 
Fundamental android application development
Fundamental android application developmentFundamental android application development
Fundamental android application development
 
Android application development
Android application developmentAndroid application development
Android application development
 
Local developer program
Local developer programLocal developer program
Local developer program
 

Kürzlich hochgeladen

(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...ranjana rawat
 
UNIT-V FMM.HYDRAULIC TURBINE - Construction and working
UNIT-V FMM.HYDRAULIC TURBINE - Construction and workingUNIT-V FMM.HYDRAULIC TURBINE - Construction and working
UNIT-V FMM.HYDRAULIC TURBINE - Construction and workingrknatarajan
 
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLSMANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLSSIVASHANKAR N
 
Glass Ceramics: Processing and Properties
Glass Ceramics: Processing and PropertiesGlass Ceramics: Processing and Properties
Glass Ceramics: Processing and PropertiesPrabhanshu Chaturvedi
 
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escortsranjana rawat
 
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...ranjana rawat
 
UNIT - IV - Air Compressors and its Performance
UNIT - IV - Air Compressors and its PerformanceUNIT - IV - Air Compressors and its Performance
UNIT - IV - Air Compressors and its Performancesivaprakash250
 
Booking open Available Pune Call Girls Pargaon 6297143586 Call Hot Indian Gi...
Booking open Available Pune Call Girls Pargaon  6297143586 Call Hot Indian Gi...Booking open Available Pune Call Girls Pargaon  6297143586 Call Hot Indian Gi...
Booking open Available Pune Call Girls Pargaon 6297143586 Call Hot Indian Gi...Call Girls in Nagpur High Profile
 
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...Christo Ananth
 
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...ranjana rawat
 
AKTU Computer Networks notes --- Unit 3.pdf
AKTU Computer Networks notes ---  Unit 3.pdfAKTU Computer Networks notes ---  Unit 3.pdf
AKTU Computer Networks notes --- Unit 3.pdfankushspencer015
 
Extrusion Processes and Their Limitations
Extrusion Processes and Their LimitationsExtrusion Processes and Their Limitations
Extrusion Processes and Their Limitations120cr0395
 
KubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghlyKubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghlysanyuktamishra911
 
University management System project report..pdf
University management System project report..pdfUniversity management System project report..pdf
University management System project report..pdfKamal Acharya
 
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINEMANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINESIVASHANKAR N
 
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Bookingdharasingh5698
 
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCollege Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCall Girls in Nagpur High Profile
 
Introduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptxIntroduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptxupamatechverse
 

Kürzlich hochgeladen (20)

(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
 
(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7
(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7
(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7
 
UNIT-V FMM.HYDRAULIC TURBINE - Construction and working
UNIT-V FMM.HYDRAULIC TURBINE - Construction and workingUNIT-V FMM.HYDRAULIC TURBINE - Construction and working
UNIT-V FMM.HYDRAULIC TURBINE - Construction and working
 
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLSMANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
 
Glass Ceramics: Processing and Properties
Glass Ceramics: Processing and PropertiesGlass Ceramics: Processing and Properties
Glass Ceramics: Processing and Properties
 
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
 
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
 
UNIT - IV - Air Compressors and its Performance
UNIT - IV - Air Compressors and its PerformanceUNIT - IV - Air Compressors and its Performance
UNIT - IV - Air Compressors and its Performance
 
Booking open Available Pune Call Girls Pargaon 6297143586 Call Hot Indian Gi...
Booking open Available Pune Call Girls Pargaon  6297143586 Call Hot Indian Gi...Booking open Available Pune Call Girls Pargaon  6297143586 Call Hot Indian Gi...
Booking open Available Pune Call Girls Pargaon 6297143586 Call Hot Indian Gi...
 
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
 
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
 
AKTU Computer Networks notes --- Unit 3.pdf
AKTU Computer Networks notes ---  Unit 3.pdfAKTU Computer Networks notes ---  Unit 3.pdf
AKTU Computer Networks notes --- Unit 3.pdf
 
Roadmap to Membership of RICS - Pathways and Routes
Roadmap to Membership of RICS - Pathways and RoutesRoadmap to Membership of RICS - Pathways and Routes
Roadmap to Membership of RICS - Pathways and Routes
 
Extrusion Processes and Their Limitations
Extrusion Processes and Their LimitationsExtrusion Processes and Their Limitations
Extrusion Processes and Their Limitations
 
KubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghlyKubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghly
 
University management System project report..pdf
University management System project report..pdfUniversity management System project report..pdf
University management System project report..pdf
 
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINEMANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
 
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
 
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCollege Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
 
Introduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptxIntroduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptx
 

What's new in android jakarta gdg (2015-08-26)

  • 1. What’s New in Android +Adam Koch +Ankur Kotwal
  • 2. Agenda Android M Release Google Play Services v7.8 Android Tools & Libraries
  • 5.
  • 7. Available now for Nexus 5/6/9, Player & emulator developer.android.com/preview Get your apps ready! Provide feedback and report bugs Issue tracker: goo.gl/zcjEj7 Google+ community: goo.gl/BIq1eJ Android M Developer Preview
  • 8. On August 17 we released: - Developer Preview 3 ROMs - Final Android 6.0 (Marshmallow) SDK Start publishing to Play today! M Preview Timeline You are here
  • 9. Getting Started with Marshmallow android { compileSdkVersion 23 buildToolsVersion '23.0.0' defaultConfig { applicationId 'com.google.samples.apps.mpreviewtest' minSdkVersion 23 targetSdkVersion 23 versionCode 1 versionName '1.0' } }
  • 10. Runtime permissions! Auto Backup Power-Saving Optimizations Other behavior changes: - Adoptable Storage Devices - AndroidHttpClient -> HttpUrlConnection - OpenSSL -> BoringSSL - And more: goo.gl/cf4lwy Android M Behavior Changes
  • 11. Why should you care? - Significantly different behavior (after targeting M) - No permission dialog on install --> less friction - App updates --> automatic - Fine grained, revocable permissions --> user feels in control, improved user experience Runtime Permissions
  • 12. targetSdkVersion < M targetSdkVersion = M+ Pre-M device Install time permission dialog All permissions granted M device Install time permission dialog All permissions granted User can revoke permissions No dialog during install No permissions granted initially App can request permissions User can revoke permissions Runtime Permissions
  • 13. Runtime Permissions Location Camera Microphone Phone All location permissions Photo and video permissions Audio recording Phone state, dialing, etc. SMS Contacts Calendar Sensors Storage Controlling or reading SMS/MMS/etc. Managing contacts Managing calendars Body sensors Read, write external storage
  • 14. Best Practices Only ask for what you need, when you need it Don’t overwhelm the user Consider using system Intents if possible Explain why you need permissions Runtime Permissions
  • 15.
  • 16.
  • 17. Context.checkSelfPermission(String permission) Activity.requestPermissions( String[] permissions, int requestCode) Activity.onRequestPermissionsResult( int requestCode, String[] permissions, int[] grantResults) New permissions methods ContextCompat.checkSelfPermission(String permission) ActivityCompat.requestPermissions( String[] permissions, int requestCode) ActivityCompat.onRequestPermissionsResult( int requestCode, String[] permissions, int[] grantResults) *Also in Support Library (v23)
  • 18. static final int LOCATION_PERMISSION_REQUEST_RESULT = 2; ... if (checkSelfPermission(Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) { requestPermissions( new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, LOCATION_PERMISSION_REQUEST_RESULT); } Requesting a permission
  • 19. @Override public void onRequestPermissionsResult( int requestCode, String[] permissions, int[] grantResults) { switch (requestCode) { case LOCATION_PERMISSION_REQUEST_RESULT: { if (grantResults[0] == PackageManager.PERMISSION_GRANTED) { // Granted! } else { // Denied! } } } } Checking if permission was granted
  • 20. If shouldShowRequestPermissionRationale() returns true then show your own in-app UI explaining why you need the permission. When does it return true? If the user has denied the permission in the past (but NOT checked “Don’t ask again”). Showing your own explaination
  • 21. Free and automatic app data backup (and restore) Up to 25MB per user per app Occurs every 24 hours Enabled for *all* apps running on M Preview (but for M final only targetSdkVersion=M) Auto Backup for Apps
  • 22. Use platform APIs correctly, don’t hardcode paths: getFilesDir(), getExternalFilesDir(), etc. will be backed up getCacheDir(), getExternalCacheDir(), etc. will not be backed up Exclude device-specific identifiers from backup (eg. GCM registration ID, etc.) Auto Backup for Apps
  • 23. Configuring Auto Backup AndroidManifest.xml <application ... android:fullBackupContent="@xml/mybackupscheme" /> xml/mybackupscheme.xml <full-backup-content> <include domain=["file"|"database"|"sharedpref"|"external"|"root"] path="string" /> <exclude domain=["file"|"database"|"sharedpref"|"external"|"root"] path="string" /> </full-backup-content>
  • 24. # enable logging $ adb shell setprop log.tag.BackupXmlParserLogging VERBOSE # initialize Backup Manager $ adb shell bmgr run # trigger backup or restore $ adb shell bmgr fullbackup <PACKAGE> $ adb shell bmgr restore <PACKAGE> Testing Auto Backup
  • 25. Doze increase standby time of devices that aren’t being used App Standby reduce overhead of apps that are installed but not used recently Power-Saving Optimizations flickr/trophygeek
  • 26. Network access disabled (except high priority GCM) Wake locks are ignored except for alarms set with setAlarmClock() and setAndAllowWhileIdle() Syncs and JobScheduler tasks are not allowed to run Test with: Doze $ adb shell dumpsys battery unplug $ adb shell dumpsys deviceidle step $ adb shell dumpsys deviceidle -h
  • 27. Apps considered idle unless: - explicitly launched by user - has a foreground process - visible notification - user asks for the app to be exempt Idle apps are restricted: - network access disabled - syncs and background jobs suspended App Standby
  • 28. Android M New Platform Features Direct Share Fingerprint API & Confirm Credentials Voice Interactions & Assist API App Linking Text Selection And much more: - Bluetooth Stylus, 4K Display, MIDI, Camera, Android for Work...
  • 31. Other Small Additions Notifications New android.graphics.drawable.Icon, - Icon.createWithBitmap(Bitmap) for dynamic icons Notification.Builder.setSmall/LargeIcon(Icon) getActiveNotifications()
  • 32. And lots more... Fingerprint API & Confirm Credentials Voice Interactions & Assist API App Linking Text Selection Bluetooth Stylus 4K Display MIDI Camera Android for Work…
  • 34. Nearby Messages Find nearby devices or beacons and share messages Cross platform support Android & iOS Unauthenticated (Does not require a Google account) Uses a variety of tech under the hood Bluetooth, Bluetooth Low Energy, Wi-Fi and an ultrasonic modem
  • 35. Face API & Barcode API Mobile Vision API
  • 36. Smart Lock for Passwords Credentials API ● auth.credentials.save ● auth.credentials.request com.google.android.gms.auth.api.c redentials.CredentialsApi
  • 37. Creates a unique ID per app per install Generate security tokens for services (suited for user by GCM) Verify app authenticity & check if app install is active via web API InstanceID // Get InstanceID String iid = InstanceID.getInstance().getID();
  • 38. Topic based subscriptions New base classes for receiving GCM messages GCM Network Manager Google Cloud Messaging
  • 39. GCM Network Manager GcmNetworkManager JobScheduler Run during specific time window Supported (one off, periodic) Supported (one off, periodic) Require device charging Supported Supported Specify network type Supported Supported Require device idle Not Supported Supported Execute by deadline Not Supported Supported
  • 41. C/C++ support (coming soon) - integrated debugging, code completion, refactoring Debugger improvements Separate unit testing module Speed improvements Visual theme editor, layout editor improvements Android Studio
  • 45. Floating labels for hint and error text Built-in animations Wrap EditText in a TextInputLayout TextInputLayout
  • 46. Providing lightweight quick feedback to your users Snackbar .make(parentLayout, “My Text”, Snackbar.LENGTH_LONG) .setAction(“My Action”, myOnClickListener) .show(); //Don’t forget to show! Snackbar
  • 47. Top level navigation or grouping content tabGravity = center, fill tabMode = scrollable, fixed TabLayout
  • 48. ● Component to create view inside Navigation Drawer ● Used with DrawerLayout ● Load items from menu resources NavigationView
  • 49. Built-in component for FAB, follows design spec Default color = ?attr/colorAccent fabSize = full, mini Floating Action Button (FAB)
  • 50. Provide additional level of control between child views Coordinate different Views - FloatingActionButton - Snackbar - Toolbar, Tabs Each View sets own behavior - CoordinatorLayout.Behavior CoordinatorLayout
  • 51. compile 'com.android.support:percent:23.0.0' Managing percent based dimensions <android.support.percent.PercentFrameLayout ...> <ImageView app:layout_widthPercent="50%" app:layout_heightPercent="50%" app:layout_marginTopPercent="25%" app:layout_marginLeftPercent="25%"/> </android.support.percent.PercentFrameLayout> Percent Support Library
  • 52. Placing a FAB - Before private void addFloatingActionButton() { final int fabSize = getResources().getDimensionPixelSize(R.dimen.fab_size); int bottomOfQuestionView = findViewById(R.id.question_view).getBottom(); final LayoutParams fabLayoutParams = new LayoutParams(fabSize, fabSize, Gravity.END | Gravity.TOP); final int fabPadding = getResources().getDimensionPixelSize(R.dimen.padding_fab); final int halfAFab = fabSize / 2; fabLayoutParams.setMargins(0, // left bottomOfQuestionView - halfAFab, //top 0, // right fabPadding); // bottom addView(mSubmitAnswer, fabLayoutParams); }
  • 53. <android.support.design.widget.CoordinatorLayout ...> <TextView android:id="@+id/textLayout" /> <android.support.design.widget.FloatingActionButton ... android:src="@drawable/ic_action_map" app:layout_anchor="@id/textLayout" app:layout_anchorGravity="bottom|start" /> </android.support.design.widget.CoordinatorLayout> Placing a FAB - After
  • 54. Android Developer Blog Post goo.gl/THH9OA DevByte Video goo.gl/0jhXFb Cheesesquare Sample github.com/chrisbanes/cheesesquare Resources