Android Lollipop (version 5. 0) represents a new generation for the open source mobile OS. Although the uptake of the new OS won’t be as quick as iOS, Major changes from Google means compatibility testing will be necessary for all Android native apps. Below is a summary of the major changes we except will impact native apps on Android. Android Run Time
Android 4. 4 KitKAt introduced Android Run Time (ART) as a modern replacement to Davlik as an optional feature. For Android L, Davlik has been removed and ART is now the default. ART provides faster and more reliable execution of apps though the use of Install time compiling, Garbage Collection, more detailed debugging and crash data. Memory handling under ART is now a unified stack rather than a split stack, so heap size settings will need to be adjusted for ART. If your application uses Garbage Collection, you should pay close attention to the Java VM version (2. 0. 0 under ART) so you can be less aggressive in invoking GC. Addtionally, GC under ART may move objects in memory, so we recommend running Google’s CheckJNI tool if you use JNI for your application. ART also has more error handling, so watching the logging of the app while in execution is recommended so you can fix issues that may have been OK under Davlik but not OK in ART. Code that uses Obfuscation is particularly in need of evaluation. 64 bit
Newer devices will be able to run 64bit native on ARM, MIPS, and x86 based archs with compatible processors. Java based apps will in most cases aside from needed ART changes, not need any changes to run native in 64 bit. Native code apps in C and C++ however will need to be updated and recompiled for 64 bit if your app wants to take full advantage of its greater processing and memory features. New Material UI
Android now provides a new UI theme on stock installs that provides a more flat look to the OS while also providing depth through the use of animations, shadows and cards. As a developer, you should consider updating your app to fit in with the new styles. At this time, it is not known how much the Android OEM’s will be able to apply their own skins on top of Material, but if they do, that can present another compatibility consideration when selecting devices. Webviews
Native apps that use WebView now operate based on Chrome 37, which adds support for WebRTC, WebAudio and WebGL. Also new are onShowFileChooser for forms and PermissionRequest for API’s that use camera and/or Mic. The Webview API is now part of Google Play Services, Google now has the ability to update WebView to a new version of Chromnium (like they do for Chrome browser) over time. This means that the compatibility of WebViews for your app may change over time without a main Android release. Notification Center
Android can now display sound and high priority notifications as they come in on white cards that drop down from the top of the screen rather than the status bar if your app requests for it. This will allow the presentation of enhanced notification data previously limited to the drop down notification center, such as pictures and actions. Because of the new UI style, you should redesign the use of color in your notification data. Also action icon backgrounds may need to be set due to inversion and alpha only display of the icons. If you have vibration or notification sounds, code needs to be updated to comply with the new do not disturb feature. This DND feature can be overridden by the app if it is very high priority. The lock screen now displays missed notifications, this replaces lock screen widgets. If your notifications contain sensitive data, we recommend setting the visibility level of the notification so if the device is locked, it will only show basic info or won’t be visible at all on lock screen. How you set this up is up to your requirements. Notifications can also now be grouped by persons. If you send messages via push notifications that are from specific people, we recommend setting the person using the new API’s so they can be grouped together. RemoteControlClient no longer allows the use of on screen playback transport controls; you should transition to using a special lockscreen notification for this function. I do my essay custom writing http://essayprofs.com/ also hope that my posts motivate and inspire other students by showing them that they are not alone. Recent Tasks
The function ActivityManager. getRecentTasks() should no longer be used for user privacy reasons, switch to android. app. ActivityManager. getAppTasks() if you need to see what your current apps processes are. Recent Tasks now has the ability to present more than 1 task for running app, such as for documents open or tabs open in a browser or IM program. This will allow a user to quickly switch between these from the recents screen. We highly recommend adopting this for your app if it makes sense to improve usability. Enterprise Features
Android L will have the technology behind Samsung KNOX built in, this means newer devices will have the ability to split app data into separate and encrypted sandboxes from personal data. This system will allow stock Android to comply with corporate policies and government security regulations. This feature will be backported via Google Play to Android 4. 0. 4 and later. While Google says no changes to existing apps are needed, it is recommended that if your app is geared towards businesses, that it be tested in the secure mode for businesses. For both business and education, devices can now set an app to be pinned. This will prevent a user from exiting the app if the OS or app itself asks for the pinning. Apps which invoke this are also responsible for ending the pin. Energy
Android 5. 0 adds new API’s allowing your app to have process jobs scheduled on a deferred baseis, or based on if a device is on Wifi, cellular only, on battery or charging. This will allow your app to work better under conditions where the battery may drain faster, extending battery life for the device. We highly recommend looking into this for your app. Enhanced Multi network support
For changing network conditions, Android 5. 0 now provides the ability for apps to more easily see what type of connection they are on and if it’s data capped by the cellular provider. We recommend looking into this API to help improve your apps ability to adjust based on network conditions and if the user is on a data capped network. Security
Apps that bind to a service must now have an Intent that is explicit. Implicent intents will cause the service to crash. Other new APIs and dev features:
- New camera API with YUV and Bayer RAM image support, fine grain control of camera hardware, and better image metadata support.
- HVEC for video data
- Multimedia Tunneling for 4K video
- Screen capture and screen sharing
- HDMI input on compatible devices
- Leanback UI API for Android TV
- 8 Channel audio stream mixing
- Low latency audio input
- New method allowing apps to expose media when OS makes a query
- New Media control API
- USB Audio support
- Opus Audio
- OpenGLES 3. 1 with Android Extension pack
- BLE peripheral mode
- New standard sensors API’s for selected devices: Tilt and Heart Rate
- Apps can now react to wake up, pick up and glance gestures on compatible devices.
- Storage Access now has subtree selection and package specific directories for shared storage.
- Enhanced NFC support for dynamic AID’s
- PDF’s can be rendered as Bitmaps
- App can now request usage stats with user consent
Technical Info
- The Android SDK for this release is 21
- New options for required features for Google Play filtering:
- FEATURE_AUDIO_OUTPUT
- FEATURE_CAMERA_CAPABILITY_MANUAL_POST_PROCESSING
- FEATURE_CAMERA_CAPABILITY_MANUAL_SENSOR
- FEATURE_CAMERA_CAPABILITY_RAW
- FEATURE_CAMERA_LEVEL_FULL
- FEATURE_GAMEPAD
- FEATURE_LIVE_TV
- FEATURE_MANAGED_USERS
- FEATURE_LEANBACK
- FEATURE_OPENGLES_EXTENSION_PACK
- FEATURE_SECURELY_REMOVES_USERS
- FEATURE_SENSOR_AMBIENT_TEMPERATURE
- FEATURE_SENSOR_HEART_RATE_ECG
- FEATURE_SENSOR_RELATIVE_HUMIDITY
- FEATURE_VERIFIED_BOOT
- FEATURE_WEBVIEW
- New user permission options
- Bind_Dream_Service
- Package_Usage_stats