Diberdayakan oleh Blogger.
RSS
Tampilkan postingan dengan label Featured. Tampilkan semua postingan
Tampilkan postingan dengan label Featured. Tampilkan semua postingan

Now available: Android 7.1 Developer Preview



Posted by Dave Burke, VP of Engineering



A couple of weeks ago we announced that a developer preview of Android 7.1 Nougat was on the way. You can get started with this new release today by downloading the SDK and tools. To get the 7.1 release on your eligible device, enroll your device in the Android Beta program. If your device is already enrolled, you'll receive the update automatically.



What’s in the Developer Preview?



The Android 7.1 Developer Preview gives you everything you need to test your app on the new platform or extend it with new features like app shortcuts and image keyboard support. It includes an updated SDK and tools, documentation and samples, as well as emulators and device system images for running your apps on supported devices.



We’re continuing the model we used in N and earlier releases, and with Android 7.1 being an incremental release there are a few differences to highlight:




  • Since 7.1 has already launched on Pixel, we’re delivering the initial Developer Preview at beta quality for the Nexus lineup of devices. The goal is to tease out any device-specific issues.

  • We’ve finalized the new APIs as API Level 25

  • We’ve opened up publishing on Google Play for apps targeting the new API level, so you can update your apps soon as you are ready.



After the initial preview release, we plan to deliver an update in November followed by the final public release to the Android Open Source Project (AOSP) in December. Initially available on Nexus 5X, Nexus 6P, and Pixel C devices, we’ll extend the Developer Preview to other devices in November.





Get your apps ready for Android 7.1



To get started, update to Android Studio 2.2.2 and download API Level 25 platform, emulator system images and tools. The final API Level 25 SDK is available for download through the SDK Manager in Android Studio.



Once you’ve installed the API Level 25 SDK, you can update your project’s compileSdkVersion to 25 to build and test against the new APIs. If you’re doing compatibility testing, we recommend updating your app’s targetSdkVersion to 25 to test your app with compatibility behaviors disabled. For details on how to set up your app with the API Level 25 SDK, see Set up the Preview.



If you’re adding app shortcuts or circular launcher icons to your app, you can use Android Studio’s built-in Image Asset Studio to quickly help you create icons of different sizes that meet the material design guidelines.



The Google APIs Emulator System images shipped with the Android API Level 25 SDK include support for round icons and the new Google Pixel Launcher. The Google API system image allows you to test how your app’s circular app icons look in devices that support circular icons. Also, if you are developing live wallpapers, you can also use the the new system images with the Android Emulator to test the enhanced preview metadata in Android 7.1.



To help you add image keyboard support, you can use the Messenger and Google Keyboard apps included in the preview system images for testing as they include support for this new API.



Along with the API Level 25 SDK, we have also updated the Android Support Library to 25.0.0. The new version lets you add image keyboard support with compatibility back to API level 13. It also introduces BottomNavigationView widget, which implements the bottom navigation pattern from the material design guidelines.



For details on API Level 25 check out the API diffs and the updated API reference on the developer preview site.










Image keyboard support on Nexus 6P

You can use the Android Emulator in Android Studio to test your circular app icons & shortcuts in a launcher



App shortcuts on Nexus 6P

You can use the Image Asset tool to quickly create circular icon assets.







Publish your apps to alpha, beta or production channels in Google Play



Since the Android 7.1 APIs are final, you can publish updates compiling with, and optionally targeting, API 25 to Google Play. You can now publish app updates that use API 25 to your alpha, beta, or even production channels in the Google Play Developer Console. In this way, push your app updates to users whose devices are running Android 7.1, such as Pixel and Android Beta devices.

How to Get Android 7.1 Developer Preview on Your Eligible Device



If you are already enrolled in the Android Beta program, then your eligible enrolled devices will get the Android 7.1 Developer Preview update right away, no action is needed on your part. If you aren’t yet enrolled in Android Beta, the easiest way to get started is to visit android.com/beta and opt-in your eligible Android phone or tablet -- you’ll soon receive this (and later) preview updates over-the-air. If you have an enrolled device and do not want to receive the update, just visit Android Beta and unenroll the device. You can also download and flash this update manually.



We welcome your feedback in the Developer Preview issue tracker, N Preview Developer community, or Android Beta community as we work towards the consumer release in December!


  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

Coming soon: Android 7.1 Developer Preview



Posted by Dave Burke, VP of Engineering



Today, we’re taking the wraps off of Android 7.1 Nougat, the latest version of the platform. You probably saw a sneak peek of it at last week’s event. It’s an incremental update based on Android 7.0 but includes new features for consumers and developers — from platform Daydream VR support and A/B system updates to app shortcuts and image keyboard support.



We’ve already been working closely with device makers to get them ready for Android 7.1, and next we’ll give you access to this update so you can start getting your apps ready.



Later this month we’ll be bringing you the Android 7.1 platform as an open Developer Preview, similar to what we did for Android 7.0. You’ll be able to test and build on the new platform and try the latest features.



As always, we’ll deliver the Developer Preview through the Android Beta program, which makes it incredibly easy to participate.



What’s in Android 7.1?



Android 7.1 delivers the productivity, security, and performance of Android 7.0, along with a variety of optimizations and bug fixes, features, and new APIs (API level 25).



For developers, Android 7.1 adds new capabilities to help you drive engagement in your app and deliver an improved user experience, such as:



  • App shortcuts API — lets you surface key actions directly in the launcher and take your users deep into your app instantly. You can create up to 5 shortcuts, either statically or dynamically.

  • Circular app icons support — lets you provide great-looking rounded icon resources that match the look of Pixel and other launchers.

  • Enhanced live wallpaper metadata — lets you provide metadata about your live wallpapers to any picker displaying the wallpapers as a preview. You can show existing metadata such as label, description, and author, as well as a new context URL and title to link to more information.



Android 7.1 also adds these much-requested developer features to the platform:



  • Image keyboard support — expands the types of content that users can enter from their keyboards, letting them express themselves through custom stickers, animated gifs, and more. Apps can tell the keyboard what types of content they accept, and keyboards can deliver all of the images and other content that they offer to the user. For broad compatibility, this API will also be available in the support library.

  • Storage manager Intent — lets an app take the user directly to a new Settings screen to clear unused files and free up storage space on the device.



For carriers and calling apps, the platform includes new APIs to support multi-endpoint calling and new telephony configuration options.






Image keyboard support on Nexus 6P

Image keyboard support: Let users input images and other content directly from a keyboard.



App shortcuts on Nexus 6P

App shortcuts: Use app shortcuts to surface key actions and take users deep into your app instantly.





Get your apps ready



Android 7.1 is an incremental release, but it’s always important to make sure your apps look and run great — especially as devices start to reach consumers.



The Android 7.1 Developer Preview will give you everything you need to test your apps or extend them with new features like shortcuts or keyboard images. Included are the SDK with new APIs, build tools, documentation and samples, as well as emulators and device system images for running your apps on supported Nexus devices. We’ll also include a launcher and apps that support app shortcuts, and a keyboard and apps that support keyboard images.



If you want to receive the Developer Preview automatically, visit Android Beta and enroll your device. If you previously enrolled a device and haven’t unenrolled, your device will receive the update. If you already enrolled but don’t want to receive the update, visit Android Beta to unenroll the device as soon as possible.



Initially, we’ll offer the Developer Preview for Nexus 5X, Nexus 6P, and Pixel C devices, extending to other supported devices by the end of the preview. At the final release of the Android 7.1.x platform, due in early December, we’ll roll out updates to the full lineup of supported devices — Nexus 6, 5X, 6P, 9, Player, Pixel C, and supported Android One devices — as well as Pixel and Pixel XL devices.



Coming to consumer devices soon



We’re working with our partners to bring Android 7.1 to devices in the ecosystem over the months ahead, so we recommend downloading the Android 7.1 Developer Preview as soon as it’s available. Test your apps for compatibility and optimize them to look their best, such as by providing circular app icons and adding app shortcuts.



Meanwhile, stay tuned, we’ll be sharing more details about the Developer Preview soon!

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

Announcing the winners of the Google Play Indie Games Festival in San Francisco; Indie Games Contest coming soon to Europe


Posted by Jamil Moledina, Google Play, Games Strategic Lead



Last Saturday, we hosted the first href="https://events.withgoogle.com/google-play-indie-game-festival/exhibiting-games/">Google
Play Indie Games Festival in North America, where we showcased 30 amazing
games that celebrate the passion, innovation, and art of indies. After a
competitive round of voting from fans and on-stage presentations to a jury of
industry experts, we recognized seven finalists nominees and three winners.






Winners:










Presented by Greg Batha


Bit Bit Blocks is a cute and action-packed competitive puzzle game. Play with your friends on a single screen, or challenge yourself in single player mode. Head-to-head puzzle play anytime, anywhere.





Presented by Kaveh Daryabeygi, Wombo Combo


Numbo Jumbo is a casual mobile puzzle number game for iOS and Android. Players group numbers that add together: for example, [3, 5, 8] works because 3+5=8.





Presented by Chetan Surpur & Eric Rahman, Highkey Games


ORBIT puts a gravity simulator at the heart of a puzzle game. Launch planets with a flick of your finger, and try to get them into orbit around black holes. ORBIT also features a sandbox where you can create your own universes, control time, and paint with gravity.






Finalist nominees:












Antihero [coming later in 2016]


Presented by Tim Conkling


Antihero is a "fast-paced strategy game with an (Oliver) Twist." Run a thieves' guild in a gas-lit, corrupt city. Recruit urchins, hire thugs, steal everything – and bribe, blackmail, and assassinate your opposition. Single-player and cross-platform multiplayer for desktops, tablets, and phones.




Armajet [coming later in 2016]


Presented by Nicola Geretti & Alexander Krivicich, Super Bit Machine


Armajet is a free-to-play multiplayer shooter that pits teams of players against each other in fast-paced jetpack combat. Armajet is a best in class mobile game designed for spectator-friendly competitive gaming for tablets and smartphones. Players compete in a modern arena shooter that’s easy to learn, but hard to master.




Norman's Night In: The Cave [coming later in 2016]


Presented by Nick Iorfino & Alex Reed, Bactrian Games


Norman's Night In is a 2D puzzle-platformer that tells the tale of Norman and his fateful fall into the world of cave. While test driving the latest model 3c Bowling Ball, Norman finds himself lost with nothing but his loaned bball and a weird feeling that somehow he was meant to be there.





Presented by David Fox, Double Coconut


Parallyzed is an atmospheric adventure platformer with unique gameplay, set in a dark and enchanting dreamscape. You play twin sisters who have been cast into separate dimensions. Red and Blue have different attributes and talents, are deeply connected, and have the ability to swap bodies at any time.




Finalists nominees and winners also received a range of prizes, including Google
I/O 2017 tickets, a Tango Development kit, Google Cloud credits, an NVIDIA
Android TV & K1 tablet, and a Razer Forge TV bundle.



Indie Games Contest coming to Europe



We’re continuing our effort to help indie game developers thrive by highlighting
innovative and fun games for fans around the world. Today, we are announcing the
Indie Games Contest for developers based in European countries (specific list of
countries coming soon!). This is a great opportunity for indie games developers
to win prizes that will help you showcase your art to industry experts and grow
your business and your community of players worldwide. Make sure you don’t miss
out on hearing the details by shref="https://events.withgoogle.com/indie-games-contest-europe/">igning up
here for updates.



As we shared at the festival, it’s rewarding to see how Google Play has evolved
over the years. We’re now reaching over 1 billion users every month and there’s
literally something for everyone. From virtual reality to family indie games,
developers like you continue to inspire, provoke, and innovate through
beautiful, artistic games.



  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

Extending Web Technology with Android


Developer guest post by Active Theory



Paper Planes started as a simple thought - “What if you could throw a
paper plane from one screen to another?”



The heart of our concept was to bring people together from all over the world,
using the power of the web - an instant connection to one another. Modern web
technology, specifically JavaScript and WebGL, powered the experience on every
screen.



href="https://play.google.com/store/apps/details?id=net.activetheory.paperplanes">Paper
Planes
was initially featured at Google I/O 2016, connecting attendees
and outside viewers for 30 minutes preceding the keynote. For the public launch
on International Peace Day 2016, we created an href="https://www.androidexperiments.com/experiment/paper-planes">Android
Experiment, which is also featured on href="https://play.google.com/store/apps/details?id=net.activetheory.paperplanes">Google
Play, to augment the existing web technology with native Android Nougat
features such as rich notifications when a plane is caught elsewhere in the
world.



Introduction



Users create and fold their own plane while adding a stamp that is pre-filled
with their location. A simple throwing gesture launches the plane into the
virtual world. Users visiting the desktop website would see their planes flying
into the screen.






Later, users can check back and see where their planes have been caught around
the world. Each stamp on the plane reads like a passport, and a 3D Earth
highlights flightpath and distance travelled.



In addition to making their own planes, users can gesture their phone like a net
to catch a plane that has been thrown from elsewhere and pinch to open it,
revealing where it has visited. Then they can add their own stamp, and throw it
back into the flock.



WebView



We developed Paper Planes to work across devices ranging from the 50-foot screen
on stage at Google I/O to desktop and mobile using the latest in web technology.



WebGL



From the stylized low-poly Earth to the flocking planes, WebGL is used to render
the 3D elements that power the experience. We wrote custom GLSL shaders to light
the Earth and morph targets to animate the paper as the user pinches to open or
close.






WebSockets



When a user “throws” a plane a message is sent over websockets to the back-end
servers where it is relayed to all desktop computers to visualize the plane
taking off.






WebWorkers



The plane flocking simulation is calculated across multiple threads using
WebWorkers that calculate the position of each plane and relay that information
back to the main thread to be rendered by WebGL.






To create an experience that works great across platforms, we extended the web
with native Android code. This enabled us to utilize the deep integration of
Chromium within Android to make the view layer of the application with the web
code that already existed, while adding deeper integration with the OS such as
rich notifications and background services.



If you’re interested in learning more about how to bridge WebView and Java code,
check
out this GitHub repo for a tutorial
.



Notifications



Firebase Cloud Messaging (FCM) was used to send push notifications to the
Android app. When a user’s plane has been caught and thrown by someone else, a
notification showing how many cities and miles it has travelled is sent to the
device of the plane’s creator via FCM. Outgoing notifications are managed to
ensure they are not sent too frequently to a device.



Background Service



We implemented a background service to run once a day which checks against local
storage to determine when a user last visited the app. If the user hasn’t
visited in over two weeks, the app sends a notification to invite the user back
into the app to create a new plane.



The Communication Network



Our application runs on a network of servers on Google Cloud Platform. We used
built-in geocoding headers to get approximate geographic locations for stamps
and Socket.IO to connect all devices over WebSockets.



Users connect to the server nearest them, which relays messages to a single main
server as well as to any desktop computers viewing the experience in that
region.



Moving forward



This approach worked extremely well for us, enabling an experience that was
smooth and captivating across platforms and form factors, connecting people from
all over the world. Extending the web with native capabilities has proven to be
a valuable avenue to deliver high quality experiences going forward. You can
learn even more on the href="https://www.androidexperiments.com/experiment/paper-planes">Android
Experiments website.

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

Android Studio 2.2


By Jamal Eason, Product
Manager, Android



Android Studio 2.2 is available to href="https://developer.android.com/studio/index.html?utm_campaign=android studio_launch_2.2_091916&utm_source=anddev&utm_medium=blog">download today.
Previewed at Google I/O 2016, Android Studio 2.2 is the latest release of our
IDE used by millions of Android developers around the world.



Packed with enhancements, this release has three major themes: speed, smarts,
and Android platform support. Develop faster with features such as the new
Layout Editor, which makes creating an app user interface quick and intuitive.
Develop smarter with our new APK analyzer, enhanced Layout Inspector, expanded
code analysis, IntelliJ’s 2016.1.3 features and much more. Lastly, as the
official IDE for Android app development, Android Studio 2.2 includes support
for all the latest developer features in Android 7.0 Nougat, like href="https://developer.android.com/studio/intro/index.html?utm_campaign=android studio_launch_2.2_091916&utm_source=anddev&utm_medium=blog#code_completion">code
completion to help you add Android platform features like href="https://developer.android.com/about/versions/nougat/android-7.0.html?utm_campaign=android studio_launch_2.2_091916&utm_source=anddev&utm_medium=blog#multi-window_support">Multi-Window
support, href="https://developer.android.com/about/versions/nougat/android-7.0.html?utm_campaign=android studio_launch_2.2_091916&utm_source=anddev&utm_medium=blog#tile_api">Quick
Settings API, or the redesigned href="https://developer.android.com/about/versions/nougat/android-7.0.html?utm_campaign=android studio_launch_2.2_091916&utm_source=anddev&utm_medium=blog#notification_enhancements">Notifications,
and of course, the built-in href="https://developer.android.com/studio/run/emulator.html?utm_campaign=android studio_launch_2.2_091916&utm_source=anddev&utm_medium=blog">Android
Emulator to test them all out.



In this release, we evolved the Android Frameworks and the IDE together to
create the Constraint Layout. This powerful new layout manager helps you design
large and complex layouts in a flat and streamlined hierarchy. The
ConstraintLayout integrates into your app like a standard Android
support library, and was built in parallel with the new Layout Editor.





Android Studio 2.2 includes 20+ new features across every major phase of the
development process: design, develop, build, & test. From designing UIs with
the new ConstraintLayout, to developing C++ code with the Android
NDK, to building with the latest Jack compliers, to creating Espresso test cases
for your app, Android Studio 2.2 is the update you do not want to miss. Here’s
more detail on some of the top highlights:



Design


  • Layout Editor: Creating Android app user interfaces is now
    easier with the new user interface designer. Quickly construct the structure of
    your app UI with the new blueprint mode and adjust the visual attributes of each
    widget with new properties panel. href="https://developer.android.com/studio/write/layout-editor.html?utm_campaign=android studio_launch_2.2_091916&utm_source=anddev&utm_medium=blog">Learn
    more.



Layout Editor



  • Constraint Layout: This new layout is a flexible layout
    manager for your app that allows you to create dynamic user interfaces without
    nesting multiple layouts. It is backwards compatible all the way back to Android
    API level 9 (Gingerbread). ConstraintLayout works best with the new Layout
    Editor in Android Studio 2.2. href="https://developer.android.com/training/constraint-layout/index.html?utm_campaign=android studio_launch_2.2_091916&utm_source=anddev&utm_medium=blog">Learn
    more.



ConstraintLayout




Develop


  • Improved C++ Support: You can now use href="https://developer.android.com/studio/projects/add-native-code.html?utm_campaign=android studio_launch_2.2_091916&utm_source=anddev&utm_medium=blog">CMake
    or ndk-build to compile your C++ projects from Gradle. Migrating projects
    from CMake build systems to Android Studio is now seamless. You will also find
    C++ support in the new project wizard in Android Studio, plus a number of bug
    fixes to the C++ edit and debug experience. href="https://developer.android.com/studio/projects/add-native-code.html?utm_campaign=android studio_launch_2.2_091916&utm_source=anddev&utm_medium=blog">Learn
    more.



C++ Code Editing & CMake Support



  • Samples Browser: Referencing href="http://developer.android.com/samples/index.html?utm_campaign=android studio_launch_2.2_091916&utm_source=anddev&utm_medium=blog">Android sample code
    is now even easier with Android Studio 2.2. Within the code editor window, find
    occurrences of your app code in Google Android sample code to help jump start
    your app development. Learn more.



Sample Code Menu




Build


  • Instant Run Improvements: Introduced in Android Studio 2.0,
    href="https://developer.android.com/studio/run/index.html?utm_campaign=android studio_launch_2.2_091916&utm_source=anddev&utm_medium=blog#instant-run">Instant
    Run is our major, long-term investment to make Android development as fast
    and lightweight. Since launch, it has significantly improved the edit, build,
    run iteration cycles for many developers. In this release, we have made many
    stability and reliability improvements to Instant Run. If you have previously
    disabled Instant Run, we encourage you to re-enable it and let us know if you
    come across further issues. (Settings → Build, Execution, Deployment → Instant
    Run [Windows/Linux] , Preferences → Build, Execution, Deployment → Instant Run
    [OS X]). For details on the fixes that we have made, see the href="https://developer.android.com/studio/releases/index.html?utm_campaign=android studio_launch_2.2_091916&utm_source=anddev&utm_medium=blog">Android Studio
    2.2 release notes.



Enable Instant Run



  • APK Analyzer: Easily inspect the contents of your APKs to
    understand the size contribution of each component. This feature can be helpful
    when debugging href="https://developer.android.com/studio/build/multidex.html?utm_campaign=android studio_launch_2.2_091916&utm_source=anddev&utm_medium=blog">multi-dex
    issues. Plus, with the APK Analyzer you can compare two versions of an APK. href="https://developer.android.com/studio/build/apk-analyzer.html?utm_campaign=android studio_launch_2.2_091916&utm_source=anddev&utm_medium=blog">Learn
    more.



APK Analyzer



  • Build cache (Experimental): We are continuing our
    investments to improve build speeds with the introduction of a new experimental
    build cache that will help reduce both full and incremental build times. Just
    add android.enableBuildCache=true to your
    gradle.properties file. href="http://tools.android.com/tech-docs/build-cache">Learn more.





Build Cache Setting




Test


  • Virtual Sensors in the Android Emulator: The Android
    Emulator now includes a new set of virtual sensors controls. With the new UI
    controls, you can now test href="https://developer.android.com/guide/topics/sensors/sensors_overview.html?utm_campaign=android studio_launch_2.2_091916&utm_source=anddev&utm_medium=blog">Android
    Sensors such as Accelerometer, Ambient Temperature, Magnetometer and more.
    Learn
    more
    .



Android Emulator Virtual Sensors



  • Espresso Test Recorder (Beta): The Espresso Test Recorder
    lets you easily create UI tests by recording interactions with your app; it then
    outputs the href="https://developer.android.com/topic/libraries/testing-support-library/index.html?utm_campaign=android studio_launch_2.2_091916&utm_source=anddev&utm_medium=blog#Espresso">UI
    test code for you. You record your interactions with a device and add
    assertions to verify UI elements in particular snapshots of your app. Espresso
    Test Recorder then takes the saved recording and automatically generates a
    corresponding UI test. You can run the test locally, on your continuous
    integration server, or using href="https://developer.android.com/training/testing/unit-testing/instrumented-unit-tests.html?utm_campaign=android studio_launch_2.2_091916&utm_source=anddev&utm_medium=blog#run-ctl">Firebase
    Test Lab for Android. href="https://developer.android.com/studio/test/espresso-test-recorder.html">Learn
    more.


Espresso Test Recorder


  • GPU Debugger (Beta): The GPU Debugger is now in Beta. You
    can now capture a stream of OpenGL ES commands on your Android device and then
    replay it from inside Android Studio for analysis. You can also fully inspect
    the GPU state of any given OpenGL ES command to better understand and debug your
    graphical output. href="https://developer.android.com/studio/debug/am-gpu-debugger.html?utm_campaign=android studio_launch_2.2_091916&utm_source=anddev&utm_medium=blog">Lean
    more.



GPU Debugger


To recap, Android Studio 2.2 includes these major features and more:







Design

  • href="https://developer.android.com/studio/write/layout-editor.html?utm_campaign=android studio_launch_2.2_091916&utm_source=anddev&utm_medium=blog">Layout
    Editor
  • href="https://developer.android.com/training/constraint-layout/index.html?utm_campaign=android studio_launch_2.2_091916&utm_source=anddev&utm_medium=blog">Constraint
    Layout
  • Layout
    Inspector
    (Experimental)
  • href="https://developer.android.com/studio/write/vector-asset-studio.html?utm_campaign=android studio_launch_2.2_091916&utm_source=anddev&utm_medium=blog">PSD
    File Support in Vector Asset Studio


Develop


  • href="https://developer.android.com/studio/write/firebase.html">Firebase
    Plugin
  • Updated Code
    Analysis & Lint checks

  • href="https://developer.android.com/studio/intro/accessibility.html?utm_campaign=android studio_launch_2.2_091916&utm_source=anddev&utm_medium=blog">Enhanced
    accessibility support
  • Improved C++
    Support Edit & Debugging

  • href="https://confluence.jetbrains.com/display/IDEADEV/IntelliJ+IDEA+2016.1.3+Release+Notes">IntelliJ
    2016.1.3 platform update
  • Samples Browser
  • Improved Font Rendering

Build

  • href="https://developer.android.com/guide/platform/j8-jack.html?utm_campaign=android studio_launch_2.2_091916&utm_source=anddev&utm_medium=blog#configuration">Jack
    Compiler Improvements
  • Java 8
    Language Support

  • href="https://developer.android.com/studio/projects/add-native-code.html?utm_campaign=android studio_launch_2.2_091916&utm_source=anddev&utm_medium=blog">C++
    ndk-build or CMake
  • href="http://android-developers.blogspot.com/2016/05/android-studio-22-preview-new-ui.html">Merged
    Manifest Viewer
  • Build cache
    (Experimental)
  • OpenJDK Support
  • Instant Run Improvements


Test


  • href="https://developer.android.com/studio/test/espresso-test-recorder.html?utm_campaign=android studio_launch_2.2_091916&utm_source=anddev&utm_medium=blog">Espresso
    Test Recorder (Beta)
  • APK
    Analyzer

  • href="https://developer.android.com/studio/debug/am-gpu-debugger.html?utm_campaign=android studio_launch_2.2_091916&utm_source=anddev&utm_medium=blog">GPU
    Debugger (Beta)
  • href="https://developer.android.com/studio/run/emulator.html?utm_campaign=android studio_launch_2.2_091916&utm_source=anddev&utm_medium=blog#extended">Virtual
    Sensors in the Android Emulator



Learn more about Android Studio 2.2 by reviewing the href="https://developer.android.com/studio/releases/index.html?utm_campaign=android studio_launch_2.2_091916&utm_source=anddev&utm_medium=blog">release notes
and the href="http://android-developers.blogspot.com/2016/05/android-studio-22-preview-new-ui.html">preview
blog post.



Getting Started



Download



If you are using a previous version of Android Studio, you can check for updates
on the Stable channel from the navigation menu (Help → Check for Update
[Windows/Linux] , Android Studio → Check for Updates [OS X]). You can also
download Android Studio 2.2 from the official href="https://developer.android.com/studio/index.html?utm_campaign=android studio_launch_2.2_091916&utm_source=anddev&utm_medium=blog">download page. To
take advantage of all the new features and improvements in Android Studio, you
should also update to the Android Gradle plugin version to 2.2.0 in your current
app project.



Next Release



We would like to thank all of you in the Android Developer community for your
work on this release. We are grateful for your contributions, your ongoing
feedback which inspired the new features in this release, and your highly active
use on canary and beta builds filing bugs. We all wanted to make Android Studio
2.2 our best release yet, with many stability and performance fixes in addition
to the many new features. For our next release, look for even more; we want to
work hard to address feedback and keep driving up quality and stability on
existing features to make you productive.



We appreciate any feedback on things you like, issues or features you would like
to see. Connect with us -- the Android Studio development team -- on our href="https://plus.google.com/103342515830390186255">Google+ page or on href="http://www.twitter.com/androidstudio">Twitter.






What's New in Android Studio 2.2

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

Keeping Android safe: Security enhancements in Nougat


Posted by Xiaowen Xin, Android Security Team



Over the course of the summer, we previewed a variety of security enhancements in
Android 7.0 Nougat: an increased focus on security with our href="http://android-developers.blogspot.com/2016/06/one-year-of-android-security-rewards.html">vulnerability
rewards program, a new href="http://android-developers.blogspot.com/2016/04/developing-for-direct-boot.html">Direct
Boot mode, re-architected mediaserver and href="http://android-developers.blogspot.com/2016/05/hardening-media-stack.html">hardened
media stack, apps that are protected from href="http://android-developers.blogspot.com/2016/04/protecting-against-unintentional.html">accidental
regressions to cleartext traffic, an update to the way Android handles href="http://android-developers.blogspot.com/2016/07/changes-to-trusted-certificate.html">trusted
certificate authorities, strict enforcement of href="http://android-developers.blogspot.com/2016/07/strictly-enforced-verified-boot-with.html">verified
boot with error correction, and href="http://android-developers.blogspot.com/2016/07/protecting-android-with-more-linux.html">updates
to the Linux kernel to reduce the attack surface and increase memory
protection. Phew!



Now that Nougat has begun to roll out, we wanted to recap these updates in a
single overview and highlight a few new improvements.


Direct Boot and encryption



In previous versions of Android, users with encrypted devices would have to
enter their PIN/pattern/password by default during the boot process to decrypt
their storage area and finish booting. With Android 7.0 Nougat, we’ve updated
the underlying encryption scheme and streamlined the boot process to speed up
rebooting your phone. Now your phone’s main features, like the phone app and
your alarm clock, are ready right away before you even type your PIN, so people
can call you and your alarm clock can wake you up. We call this feature href="http://android-developers.blogspot.com/2016/04/developing-for-direct-boot.html">Direct
Boot.



Under the hood, file-based encryption enables this improved user experience.
With this new encryption scheme, the system storage area, as well as each user
profile storage area, are all encrypted separately. Unlike with full-disk
encryption, where all data was encrypted as a single unit, per-profile-based
encryption enables the system to reboot normally into a functional state using
just device keys. Essential apps can opt-in to run in a limited state after
reboot, and when you enter your lock screen credential, these apps then get
access your user data to provide full functionality.



File-based encryption better isolates and protects individual users and profiles
on a device by encrypting data at a finer granularity. Each profile is encrypted
using a unique key that can only be unlocked by your PIN or password, so that
your data can only be decrypted by you.






Encryption support is getting stronger across the Android ecosystem as well.
Starting with Marshmallow, all capable devices were required to support
encryption. Many devices, like Nexus 5X and 6P also use unique keys that are
accessible only with trusted hardware, such as the ARM TrustZone. Now with 7.0
Nougat, all new capable Android devices must also have this kind of hardware
support for key storage and provide brute force protection while verifying your
lock screen credential before these keys can be used. This way, all of your data
can only be decrypted on that exact device and only by you.


The media stack and platform hardening



In Android Nougat, we’ve both hardened and href="http://android-developers.blogspot.com/2016/05/hardening-media-stack.html">re-architected
mediaserver, one of the main system services that processes untrusted input.
First, by incorporating integer overflow sanitization, part of Clang’s href="http://clang.llvm.org/docs/UndefinedBehaviorSanitizer.html">UndefinedBehaviorSanitizer,
we prevent an entire class of vulnerabilities, which comprise the majority of
reported libstagefright bugs. As soon as an integer overflow is detected, we
shut down the process so an attack is stopped. Second, we’ve modularized the
media stack to put different components into individual sandboxes and tightened
the privileges of each sandbox to have the minimum privileges required to
perform its job. With this containment technique, a compromise in many parts of
the stack grants the attacker access to significantly fewer permissions and
significantly reduced exposed kernel attack surface.



In addition to hardening the mediaserver, we’ve added a large list of
protections for the platform, including:


  • Verified Boot: Verified Boot is now strictly enforced to
    prevent compromised devices from booting; it supports href="http://android-developers.blogspot.com/2016/07/strictly-enforced-verified-boot-with.html">error
    correction to improve reliability against non-malicious data corruption.
  • SELinux: Updated SELinux configuration and increased
    Seccomp coverage further locks down the application sandbox and reduces attack
    surface.
  • Library load order randomization and improved ASLR:
    Increased randomness makes some code-reuse attacks less reliable.
  • href="http://android-developers.blogspot.com/2016/07/protecting-android-with-more-linux.html">Kernel
    hardening
    : Added additional memory protection for newer kernels by
    href="https://android-review.googlesource.com/#/q/status:merged+project:kernel/common+branch:android-3.18+topic:arm64-ronx">marking
    portions of kernel memory as read-only, href="https://android-review.googlesource.com/#/q/status:merged+project:kernel/common+branch:android-4.1+topic:sw_PAN">restricting
    kernel access to userspace addresses, and further reducing the existing
    attack surface.
  • href="https://developer.android.com/preview/api-overview.html?utm_campaign=android_discussion_security_090616&utm_source=anddev&utm_medium=blog#apk_signature_v2">APK
    signature scheme v2
    : Introduced a whole-file signature scheme that
    improves href="https://source.android.com/security/apksigning/v2.html#verification">verification
    speed and strengthens integrity guarantees.

App security improvements



Android Nougat is the safest and easiest version of Android for application
developers to use.


  • Apps that want to share data with other apps now must explicitly opt-in by
    offering their files through a href="https://developer.android.com/guide/topics/providers/content-providers.html?utm_campaign=android_discussion_security_090616&utm_source=anddev&utm_medium=blog">Content
    Provider, like href="https://developer.android.com/reference/android/support/v4/content/FileProvider.html?utm_campaign=android_discussion_security_090616&utm_source=anddev&utm_medium=blog">FileProvider.
    The application private directory (usually /data/data/) is now set to
    Linux permission 0700 for apps targeting API Level 24+.
  • To make it easier for apps to control access to their secure network
    traffic, user-installed certificate authorities and those installed through
    Device Admin APIs are href="http://android-developers.blogspot.com/2016/07/changes-to-trusted-certificate.html">no
    longer trusted by default for apps targeting API Level 24+. Additionally,
    all new Android devices must ship with the href="https://source.android.com/security/overview/app-security.html#certificate-authorities">same
    trusted CA store.
  • With href="https://developer.android.com/preview/features/security-config.html?utm_campaign=android_discussion_security_090616&utm_source=anddev&utm_medium=blog">Network
    Security Config, developers can more easily configure network security
    policy through a declarative configuration file. This includes blocking
    cleartext traffic, configuring the set of trusted CAs and certificates, and
    setting up a separate debug configuration.


We’ve also continued to refine app permissions and capabilities to protect you
from potentially harmful apps.


  • To improve device privacy, we have further restricted and removed access to
    persistent device identifiers such as MAC addresses.
  • User interface overlays can no longer be displayed on top of permissions
    dialogs. This “clickjacking” technique was used by some apps to attempt to gain
    permissions improperly.
  • We’ve reduced the power of device admin applications so they can no longer
    change your lockscreen if you have a lockscreen set, and device admin will no
    longer be notified of impending disable via href="https://developer.android.com/reference/android/app/admin/DeviceAdminReceiver.html?utm_campaign=android_discussion_security_090616&utm_source=anddev&utm_medium=blog#onDisableRequested(android.content.Context,%20android.content.Intent)">onDisableRequested().
    These were tactics used by some ransomware to gain control of a
    device.

System Updates



Lastly, we've made significant enhancements to the OTA update system to keep
your device up-to-date much more easily with the latest system software and
security patches. We've made the install time for OTAs faster, and the OTA size
smaller for security updates. You no longer have to wait for the optimizing apps
step, which was one of the slowest parts of the update process, because the new
JIT compiler has been href="https://developer.android.com/about/versions/nougat/android-7.0.html?utm_campaign=android_discussion_security_090616&utm_source=anddev&utm_medium=blog#doze_on_the_go">optimized
to make installs and updates lightning fast.



The update experience is even faster for new Android devices running Nougat with
updated firmware. Like they do with Chromebooks, updates are applied in the
background while the device continues to run normally. These updates are applied
to a different system partition, and when you reboot, it will seamlessly switch
to that new partition running the new system software version.





We’re constantly working to improve Android security and Android Nougat brings
significant security improvements across all fronts. As always, we appreciate
feedback on our work and welcome suggestions for how we can improve Android.
Contact us at security@android.com.

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

Taking the final wrapper off of Android 7.0 Nougat

Posted by Dave Burke, VP of Engineering





Android Nougat

Android 7.0 Nougat





Today, Android 7.0 Nougat will begin rolling out to users, starting with Nexus
devices. At the same time, we’re pushing the Android 7.0 source code to the
Android Open Source Project (AOSP), extending public availability of this new
version of Android to the broader ecosystem.



We’ve been working together with
you over the past several months to get your feedback on this release, and also
to make sure your apps are ready for the users who will run them on Nougat
devices.




What’s inside Nougat



Android Nougat reflects input from thousands of fans and developers like you,
all around the world. There are over 250 major features in Android Nougat,
including VR Mode in
Android
. We’ve worked at all levels of the Android stack in
Nougat — from how the operating system reads sensor data to how it sends pixels to
the display — to make it especially built to provide high quality mobile VR
experiences.



Plus, Nougat brings a number of new features to help make Android
more powerful, more productive and more secure. It introduces a brand new
href="https://developer.android.com/about/versions/nougat/android-7.0.html?utm_campaign=android_launch_android7.0nougat_082216&utm_source=anddev&utm_medium=blog#jit_aot?utm_source=anddev&utm_medium=blog">JIT/AOT
compiler
to improve software performance, make app installs faster,
and take up less storage. It also adds platform support for href="https://developer.android.com/ndk/guides/graphics/index.html?utm_campaign=android_launch_android7.0nougat_082216&utm_source=anddev&utm_medium=blog">Vulkan,
a low-overhead, cross-platform API for high-performance, 3D graphics. href="http://developer.android.com/guide/topics/ui/multi-window.html?utm_source=anddev&utm_medium=blog">Multi-Window
support
lets users run two apps at the same time, and href="http://developer.android.com/guide/topics/ui/notifiers/notifications.html?utm_campaign=android_launch_android7.0nougat_082216&utm_source=anddev&utm_medium=blog#direct?utm_source=anddev&utm_medium=blog">Direct
Reply
so users can reply directly to notifications without having
to open the app. As always, Android is built with powerful layers of security
and encryption to keep your private data private, so Nougat brings new features
like File-based encryption, seamless updates, and href="https://developer.android.com/training/articles/direct-boot.html?utm_source=anddev&utm_medium=blog">Direct
Boot
.



You can find all of the href="https://developer.android.com/about/versions/nougat/index.html?utm_source=anddev&utm_medium=blog">Nougat
developer resources here
, including details on behavior changes and new
features you can use in your apps. An overview of what's new for developers is
available href="https://developer.android.com/about/versions/nougat/android-7.0.html?utm_source=anddev&utm_medium=blog">here, and
you can explore all of the new user features in Nougat href="https://www.android.com/versions/nougat-7-0/">here.





Multi-window mode in Android Nougat

Multi-window mode in Android Nougat




The next wave of users



Starting today and rolling out over the next several weeks, the Nexus 6, Nexus 5X, Nexus 6P, Nexus 9, Nexus Player,
Pixel C, and General Mobile 4G (Android One) will get an over-the-air software
update to Android 7.0 Nougat. Devices enrolled in the href="https://www.google.com/android/beta">Android Beta Program will also
receive this final version.



And there are many tasty devices coming from our partners running Android Nougat, including the upcoming href="http://www.lgnewsroom.com/2016/08/new-lg-v20-to-be-worlds-first-phone-to-launch-with-android-7-0-nougat/">LG
V20
, which will be the first new smartphone that ships with Android Nougat, right out of the box.



With all of these new devices beginning to run Nougat, now is the time to
publish your app updates to Google Play. We recommend compiling against, and
ideally targeting, API 24. If you’re still testing some last minute changes, a
great strategy to do this is using href="https://developer.android.com/distribute/engage/beta.html?utm_campaign=android_launch_npreview_061516&utm_source=anddev&utm_medium=blog">Google
Play’s beta testing feature
to get early feedback from a small group of
users — including those using Android 7.0 Nougat — and then doing a staged
rollout as you release the updated app to all users.




What’s next for Nougat?



We’re moving Nougat into a new regular maintenance schedule over the coming
quarters. In fact, we’ve already started work on the first Nougat maintenance
release, that will bring continued refinements and polish, and we’re planning to
bring that to you this fall as a developer preview. Stay tuned!



We’ll be closing open bugs logged against Developer Preview builds soon, but
please keep the feedback coming! If you still see an issue that you filed in the
preview tracker, just href="https://source.android.com/source/report-bugs.html">file a new issue
against Android 7.0 in the AOSP issue tracker.



Thanks for being part of the preview, which we shared earlier this year with href="https://medium.com/google-developers/n-as-in-so-early-it-s-not-named-yet-f06bbde8c390#.uqdm4w8hi">an
eye towards giving everyone the opportunity
to make the next release of
Android stronger. Your continued feedback has been extremely beneficial in
shaping this final release, not just for users, but for the entire Android
ecosystem.



  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

Introducing new app categories -- From Art to Autos to Dating -- to help users better find your apps

Posted by By Sarah Karam, Google Play Apps Business Development




With more than 1 billion active users in 190 countries around the world, Google
Play continues to be an important distribution platform for you to build a
global audience. To help you get your apps in front of more users, it’s
important to make them more quickly and easily discoverable in Google Play.
That’s why we rolled out major features, such as href="https://adwords.googleblog.com/2015/07/launching-search-ads-on-play.html">Search
Ads, href="https://play.google.com/store/apps/collection/promotion_3001ed4_indie_corner?hl=en&e=-EnableAppDetailsPageRedesign">Indie
Corner, href="https://developer.android.com/distribute/users/experiments.html">store
listing experiments, and more, over the past year.



To improve the overall search experience, we’re introducing new app categories
and renaming a few existing ones, making them more comprehensive and relevant to
what users are looking for today.



The new categories include:


  • Art & Design
  • Auto & Vehicles
  • Beauty
  • Dating
  • Events
  • Food & Drink
  • House & Home
  • Parenting


In addition, the “Transportation” category will be renamed “Maps & Navigation,”
and the “Media & Video” category will be renamed “Video Players & Editors.”



To select a new category for your app or game


  1. Sign in to your Google Play
    Developer Console
    .
  2. Select an app.
  3. On the left menu, click Store Listing.
  4. Under "Categorization," select an application type and category.
  5. Near the top of the page, click Save draft (new apps) or Submit update
    (existing apps).


Newly added categories will be available on Google Play within 60 days. If you
choose a newly added category for an app before the category is available for
users, your current app category may change. See additional details and view our
full list of categories in the href="https://support.google.com/googleplay/android-developer/answer/113475">Help
Center.

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

Improvements for smaller app downloads on Google Play


Posted by Anthony Morris, SWE Google Play and Andrew Hayden, software engineer



Google Play continues to grow rapidly, as Android users installed over 65
billion apps in the last year from the Google Play Store. We’re also seeing
developers move to update their apps more frequently to push great new content,
patch security vulnerabilities, and iterate quickly on user feedback.



However, many users are sensitive to the amount of data they use, especially if
they are not on Wi-Fi. Google Play is investing in improvements to reduce the
data that needs to be transferred for app installs and updates, while making
data cost more transparent to users.



Read on to understand the updates and learn some tips for ways to optimize the
size of your APK.


New Delta algorithm to reduce the size of app updates



For approximately 98% of app updates from the Play Store, only changes
(deltas) to APK files are downloaded and merged with the existing
files, reducing the size of updates. Google Play has used delta algorithms since 2012, and we recently rolled out an additional delta algorithm, href="http://www.daemonology.net/bsdiff/">bsdiff href="http://www.daemonology.net/bsdiff/">(created by Colin Percivalid="fnref1">1href="http://www.daemonology.net/bsdiff/">), that our experimentation shows
can reduce delta size by up to 50% or more compared to the previous algorithm
for some APKs. Bsdiff is
specifically targeted to produce more efficient deltas of native libraries by
taking advantage of the specific ways in which compiled native code changes
between versions. To be most effective, native libraries should be stored
uncompressed (compression interferes with delta algorithms).



An example from Chrome:

















Patch Description Previous patch size Bsdiff Size
M46 to M47 major update 22.8 MB 12.9 MB
M47 minor update 15.3 MB 3.6 MB



Apps that don’t have uncompressed native libraries can see a 5% decrease in size
on average, compared to the previous delta algorithm.


Applying the delta algorithm to APK Expansion Files to further
reduce update size



APK Expansion Files allow you to include additional large files up to 2GB in
size (e.g. high resolution graphics or media files) with your app, which is
especially popular with games. We have recently expanded our delta and
compression algorithms to apply to these APK Expansion Files in addition to
APKs, reducing the download size of initial installs by 12%, and updates by 65%
on average. APK Expansion file patches use the href="http://xdelta.org/">xdelta algorithm.


Clearer size information in the Play Store



Alongside the improvements to reduce download size, we also made information
displayed about data used and download sizes in the Play Store clearer. You can
now see actual download sizes, not the APK file size, in the Play Store. If you
already have an app, you will only see the update size. These changes are
rolling out now.







  1. Colin Percival, Naive differences of executable code,
    http://www.daemonology.net/bsdiff/, 2003. 





Example 1: Showing new “Download size” of APK




Example 2: Showing new “Update size” of APK


Tips to reduce your download sizes


1. Optimize for the right size measurements: Users care about download size (i.e. how many bytes are transferred when installing/updating an app), and they care about disk size (i.e. how much space the app takes up on disk). It’s important to note that neither of these are the same as the original APK file size nor necessarily correlated.




Chrome example:


























Compressed Native Library Uncompressed Native Library
APK Size 39MB 52MB (+25%)
Download size (install) 29MB 29MB (no change)
Download size (update) 29MB 21MB (-29%)
Disk size 71MB 52MB (-26%)



Chrome found that initial download size remained the same by not compressing the native library in their APK, while the APK size increased, because Google Play already performs compression for downloads. They also found that the update size decreased, as deltas are more effective with uncompressed files, and disk size decreased as you no longer need an compressed copy of the native library. However, please note, native libraries should only be uncompressed when the minimum SDK version for an APK is 23 (Marshmallow) or later.


2. Reduce your APK size: Remove unnecessary data from the APK like unused resources and code.


3. Optimize parts of your APK to make them smaller: Using more efficient file formats, for example by using WebP instead of JPEG, or by using Proguard to remove unused code.


href="https://medium.com/google-developers/smallerapk-part-1-anatomy-of-an-apk-da83c25e7003#.jgy8wuni9">Read
more about reducing APK sizes and watch the I/O 2016 session href="https://www.youtube.com/watch?v=xctGIB81D2w">‘Putting Your App on a
Diet’ to learn from
Wojtek Kaliciński, about how to reduce the size of your APK
.

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS