Game Performance: Data-Oriented Programming

Posted by Shanee Nishry, Game Developer Advocate

To improve game performance, we’d like to highlight a programming paradigm that will help you maximize your CPU potential, make your game more efficient, and code smarter.

Before we get into detail of data-oriented programming, let’s explain the problems it solves and common pitfalls for programmers.

Memory

The first thing a programmer must understand is that memory is slow and the way you code affects how efficiently it is utilized. Inefficient memory layout and order of operations forces the CPU idle waiting for memory so it can proceed doing work.

The easiest way to demonstrate is by using an example. Take this simple code for instance:

char data[1000000]; // One Million bytes
unsigned int sum = 0;

for ( int i = 0; i 

An array of one million bytes is declared and iterated on one byte at a time. Now let's change things a little to illustrate the underlying hardware. Changes marked in bold:

char data[16000000]; // Sixteen Million bytes
unsigned int sum = 0;

for ( int i = 0; i 16000000; i += 16 )
{
  sum += data[ i ];
}

The array is changed to contain sixteen million bytes and we iterate over one million of them, skipping 16 at a time.

A quick look suggests there shouldn't be any effect on performance as the code is translated to the same number of instructions and runs the same number of times, however that is not the case. Here is the difference graph. Note that this is on a logarithmic scale--if the scale were linear, the performance difference would be too large to display on any reasonably-sized graph!


Graph in logarithmic scale

The simple change making the loop skip 16 bytes at a time makes the program run 5 times slower!

The average difference in performance is 5x and is consistent when iterating 1,000 bytes up to a million bytes, sometimes increasing up to 7x. This is a serious change in performance.

Note: The benchmark was run on multiple hardware configurations including a desktop with Intel 5930K 3.50GHz CPU, a Macbook Pro Retina laptop with 2.6 GHz Intel i7 CPU and Android Nexus 5 and Nexus 6 devices. The results were pretty consistent.

If you wish to replicate the test, you might have to ensure the memory is out of the cache before running the loop because some compilers will cache the array on declaration. Read below to understand more on how it works.

Explanation

What happens in the example is quite simply explained when you understand how the CPU accesses data. The CPU can’t access data in RAM; the data must be copied to the cache, a smaller but extremely fast memory line which resides near the CPU chip.

When the program starts, the CPU is set to run an instruction on part of the array but that data is still not in the cache, therefore causing a cache miss and forcing the CPU to wait for the data to be copied into the cache.

For simplicity sake, assume a cache size of 16 bytes for the L1 cache line, this means 16 bytes will be copied starting from the requested address for the instruction.

In the first code example, the program next tries to operate on the following byte, which is already copied into the cache following the initial cache miss, therefore continuing smoothly. This is also true for the next 14 bytes. After 16 bytes, since the first cache miss the loop, will encounter another cache miss and the CPU will again wait for data to operate on, copying the next 16 bytes into the cache.

In the second code sample, the loop skips 16 bytes at a time but hardware continues to operate the same. The cache copies the 16 subsequent bytes each time it encounters a cache miss which means the loop will trigger a cache miss with each iteration and cause the CPU to wait idle for data each time!

Note: Modern hardware implements cache prefetch algorithms to prevent incurring a cache miss per frame, but even with prefetching, more bandwidth is used and performance is lower in our example test.

In reality the cache lines tend to be larger than 16 bytes, the program would run much slower if it were to wait for data at every iteration. A Krait-400 found in the Nexus 5 has a L0 data cache of 4 KB with 64 Bytes per line.

If you are wondering why cache lines are so small, the main reason is that making fast memory is expensive.

Data-Oriented Design

The way to solve such performance issues is by designing your data to fit into the cache and have the program to operate on the entire data continuously.

This can be done by organizing your game objects inside Structures of Arrays (SoA) instead of Arrays of Structures (AoS) and pre-allocating enough memory to contain the expected data.

For example, a simple physics object in an AoS layout might look like this:

struct PhysicsObject
{
  Vec3 mPosition;
  Vec3 mVelocity;

  float mMass;
  float mDrag;
  Vec3 mCenterOfMass;

  Vec3 mRotation;
  Vec3 mAngularVelocity;

  float mAngularDrag;
};

This is a common way way to present an object in C++.

On the other hand, using SoA layout looks more like this:

class PhysicsSystem
{
private:
  size_t mNumObjects;
  std::vector< Vec3 > mPositions;
  std::vector< Vec3 > mVelocities;
  std::vector< float > mMasses;
  std::vector< float > mDrags;

  // ...
};

Let’s compare how a simple function to update object positions by their velocity would operate.

For the AoS layout, a function would look like this:

void UpdatePositions( PhysicsObject* objects, const size_t num_objects, const float delta_time )
{
  for ( int i = 0; i < num_objects; ++i )
  {
    objects[i].mPosition += objects[i].mVelocity * delta_time;
  }
}

The PhysicsObject is loaded into the cache but only the first 2 variables are used. Being 12 bytes each amounts to 24 bytes of the cache line being utilised per iteration and causing a cache miss with every object on a 64 bytes cache line of a Nexus 5.

Now let’s look at the SoA way. This is our iteration code:

void PhysicsSystem::SimulateObjects( const float delta_time )
{
  for ( int i = 0; i < mNumObjects; ++i )
  {
    mPositions[ i ] += mVelocities[i] * delta_time;
  }
}

With this code, we immediately cause 2 cache misses, but we are then able to run smoothly for about 5.3 iterations before causing the next 2 cache misses resulting in a significant performance increase!

The way data is sent to the hardware matters. Be aware of data-oriented design and look for places it will perform better than object-oriented code.

We have barely scratched the surface. There is still more to data-oriented programming than structuring your objects. For example, the cache is used for storing instructions and function memory so optimizing your functions and local variables affects cache misses and hits. We also did not mention the L2 cache and how data-oriented design makes your application easier to multithread.

Make sure to profile your code to find out where you might want to implement data-oriented design. You can use different profilers for different architecture, including the NVIDIA Tegra System Profiler, ARM Streamline Performance Analyzer, Intel and PowerVR PVRMonitor.

If you want to learn more on how to optimize for your cache, read on cache prefetching for various CPU architectures.

An update to The New York Times Crossword app brings you more than 9,000 puzzles

A new update to The New York Times Crossword app for Windows and Windows Phone includes over 20 years worth of puzzles – that’s more than 9,000 puzzles to challenge you! The New York Times Crossword is free to download, and all users get free unlimited access to the daily puzzle and calendar archive for seven days upon downloading. After the seven days, simply subscribe to the New York Times Crossword for full access to The Crossword on your Windows devices and at NYTimes.com*.

Crossword 1 Crossword 2

A few fun features you’ll enjoy with The New York Times Crossword app for Windows and Windows Phone:

Daily Puzzle
Enjoy the same puzzle that’s printed everyday in The New York Times newspaper. All daily puzzles are available the previous day at 10PM EST with a subscription.

Mini Puzzle
Short, sweet and available without a subscription every day, get a quick crossword fix when you don’t have time for the whole thing.

Pen
If you have a Surface, you can solve the way crosswords were meant to be solved: by writing directly on the puzzle as you would in the newspaper with Surface Pen.

Past Puzzles
Subscribers also enjoy years of classic puzzles from The New York Times archives.

Modern Puzzle Features
Solve puzzles that include new tricks like rebuses, highlighted or underlined squares, and more!

Download The New York Times Crossword for free from the Windows and Windows Phone Stores today.

*Subscription to The New York Times Crossword does not include access to any other New York Times products, including but not limited to NYTimes.com or mobile news content, e-reader editions, Times Premier, NYT Now, or any other apps.

Summer arrives with awesome new updates to some of our favorite apps and games

We’re here to keep you current on the latest updates to your favorite apps and games. This week we have a great list of the fun apps and top games, like Shazam and Monument Valley that have been updated just in time for the weekend! A group of Gameloft titles also got some updates, several of which now feature Xbox Live integration – so you can start earning Xbox achievements and move up the leaderboards. Below is a list of the apps and games with cool updates you won’t want to miss:

Shazam – Windows Phone

 Shazam 1 Shazam 2

This favorite music app keeps getting better on Windows Phone. With the latest update, browse the new News Feed that keeps you updated on the latest news about top artists – curated by the Shazam Editorial Team. Create an account and share what you’ve listened to using your Facebook login. And you can now back up your entire Shazam history on the shazam.com website.

Monument Valley – Windows Phone

 monument valley 1 monument valley 2

For fans of the beautiful and the surreal, Monument Valley offers a stunning, intriguing gameplay experience. Your mission is to guide the serene, silent Princess Ida through a land of mysterious monuments and fantastical architecture you manipulate. And now, update the game to play Ida’s Dream, the longest chapter ever created for Monument Valley.

WhatsApp – Windows Phone

 whats app 1 whats app 2

Top messaging app WhatsApp received a much-anticipated update this week, adding WhatsApp Calling for Windows Phone 8.1! Now you can call your friends and family using WhatsApp for free (data charges may apply), even if they are in another country. You can also now send audio files to your friends and contacts within the app.

Asphalt 8 – Windows, Windows Phone

asphalt 8

In this intense driving experience, master the island of Tenerife, from its tropical beaches to its breathtaking mountains and untamed wilderness. Four challenging new tracks, eight new cars, thrilling time-limited events and exclusive decals make Asphalt 8 even faster and more exciting. Now with Xbox Live achievements.

Despicable Me – Windows, Windows Phone

despicable me image

New levels, minions and mini-games come to this game of jumping, flying and dodging. And if you’re mischievous enough, you just might capture the title “Minion of the Year”! Now with Xbox Live achievements and more.

Dragon Mania Legends – Windows, Windows Phone

dragon mania legends

Give life to your dragons and prepare them for legendary battles in a game that starts with you raising fire-breathers from birth to warrior status. Newly updated with more habitats, 12 different leagues, 7 unique dragons to win, a new player island and multi-wave combat, Dragon Mania Legends gives you thrills every time you play. Now with Xbox Live achievements.

Dungeon Hunter 5 – Windows, Windows Phone

dragon hunter

Now there’s even greater excitement and intensity in this legendary series. Bounty Hunters, prepare for new battles in the treacherous Far East Xinkashi lands. Fight in daily events in a Stronghold room designed by the wicked Xinkashi builders, and get five more Stronghold rooms to build up with five vicious new traps. Now with Xbox Live achievements.

Ice Age Adventures – Windows, Windows Phone

ice age

So many new experiences await you in the world of Scrat and friends. Restore Mount Scratmore to unlock a new volcanic village, spice up your town with steamy habitats and decorations, and continue the adventure with two new archipelagos and fan-requested animals just waiting to be rescued.

Plague Inc. – WindowsWindows Phone

plague inc 1

You have a new virus at your disposal in your quest to infect the planet. The mind-controlling Neurax Worm burrows deep in to the brains of its hosts, then takes over their thoughts and actions. And it’s in your arsenal as you send pathogens into the world.

Get these latest updates today from the Windows and Windows Phone Stores!

Announcing Windows 10 Mobile Insider Preview Build 10149

Hi everyone, we have a new Windows 10 Mobile Insider Preview build for Windows Insiders on the Fast ring today – Build 10149. Those of you who chose to stay on Build 10080 and not go back to Windows Phone 8.1 to get Build 10136 will be happy to know that you’ll be able to upgrade directly to this build – so you won’t need to flash your phones back to Windows Phone 8.1.

SUPER IMPORTANT TO READ THIS (again): The post-upgrade migration status screen is still missing after upgrading to this build which normally shows you the progress of the post-upgrade migration. After upgrading, the Lock screen will appear frozen without the date and time for up to 10 minutes. Please be patient and let it sit – eventually the date and time will appear and it will allow you to unlock your phone. If you get impatient and restart or mess with locking/unlocking your phone, you’ll wind up in a funky state – so just relax and let it do its thing.

Here is what is new

Microsoft Edge: The first thing that you’ll notice in this build is that the Microsoft Edge branding is now included in this build. This build also has the address bar at the bottom – this is a change that we made based on feedback we heard from Windows Insiders. The option to view websites in mobile view or desktop view is also included in this build as well.

IMPORTANT NOTE: The result of the naming switch from “Project Spartan” to Microsoft Edge means that the Microsoft Edge app has a new app ID. This will cause any favorites, cookies, history and Reading list items that you had saved in the Project Spartan app to be lost after upgrading from a previous Windows 10 Mobile Insider Preview build.

General UX improvements and refinement: You’ll see a lot of UX improvements and refinement in this build. We’ve fixed an issue where many Live tiles pinned to Start would appear blurry – so your Start screen looks much more clear and crisp. You’ll also see a lot more refinement of controls with updated icons and visuals (such as the volume controls). Overall, you’ll find the OS more responsive to use. We’ve got more work to do here but we’re happy about great progress made in this build.

Improvements to Cortana: Cortana’s Notebook is in its final stage with a combined Profile and Settings experience now. You also now set up Quiet Hours in Cortana’s Notebook as well. You should also try sending an e-mail with Cortana – we enabled this in this build! Just say everything at once such as who you want to email (you can send to multiple people), the subject of the e-mail, and what you want your email to say and that’s it. You can even make corrections with your voice. Note – this feature requires an Internet connection and works for U.S. (English) right now.

Flashlight quick action: One of the top pieces of feedback we heard from Windows Insiders for Action Center in Window 10 Mobile was to add a Flashlight quick action so you can quickly turn your phone’s flash into a flashlight. And we’ve delivered this little feature in this build. Just open Action Center, and expand quick actions to check it out for yourself. You can customize which quick actions are always shown in Action Center without having to expand.

Check out the updated Photos app for Windows 10: We’ve published an update to the Photos app via the Windows Store Beta. This update includes general performance and reliability improvements, as well as new capabilities such as support animated GIFs (works on phones with 1GB of RAM or higher). This was a top request from Windows Insiders! And now links to your saved photos, screenshots, and camera roll are available on the Albums page.

Automatic camera upload via OneDrive: Automatic camera roll upload is now managed directly with the OneDrive app on your phone. Make sure you open the OneDrive app and go to settings to set camera upload to be turned on or off depending on which you prefer.

Update your apps: Make sure you check the Store Beta and download the latest updates for apps. Many of our first party apps such as Outlook Mail and Calendar, Music, Movies & TV, and the MSN apps (News, Weather, Sports, and Money) are updating independently of builds so we can get changes to you faster. Make sure you have the updated versions of these apps to get the best experience on your phone.

Here are some things we fixed

  • We have fixed the issue first reported with Build 10051 where Call + SMS filtering would not work after upgrade.
  • We have fixed an issue where text notifications weren’t appearing for incoming messages.
  • We have fixed an issue where the Podcast app wouldn’t work.
  • We have fixed some issues where apps were having trouble installing or updating via the Store Beta.
  • We have fixed an issue where the navigation bar couldn’t be hidden.

Here are some known issues

  • There is an issue where the Install button doesn’t respond after Build 10149 is downloaded. Make sure the battery is charged >40% and press it again.
  • Some people may encounter an 80091007 error trying to upgrade to this build from Build 10136. If you hit this error, sit tight – we’re working on a fix. Or if you want the new build right away, you can use the Windows Phone Recovery Tool to go back to Windows Phone 8.1 and then upgrade to Build 10149.
  • The Insider Hub is removed in this build. Don’t worry, it will be back in future Insider Preview builds.
  • Sometimes the PIN keypad won’t be shown after swiping up to unlock. The workaround is to swipe down to get to Action Center and try to open a notification or Settings to invoke the PIN keypad to unlock your phone.
  • There is a very rare situation where you are unable to unlock your phone after entering your PIN and it keeps letting you type even though you entered your pin correctly. If you hit this – leave the phone alone 1-2 hours before trying to unlock again. This is caused by a TPM issue that could get worse and require you to reflash if you get into this state and power off the phone.
  • If a Gmail account is set up on the phone, the Messaging app may have issues and both incoming and outgoing messages may not work. If this issue is hit, simply reboot your phone to get it working again. We are aware that the Messaging app may behave badly in this state.
  • There is a known issue where apps or games are installed as trial versions even though you have previously purchased them. In-app purchases on Windows 10 Mobile are not functional yet as we migrate the function to the new Windows Store.
  • In certain cases, the colors in some apps may appear off. For example – the titlebar in the Outlook Mail app is orange.
  • There might be some cases where notifications in Action Center appear blank.

We’ve been using this build internally for a few days and have really loved it. It is faster, more stable, and more polished overall and has been lots of fun for us to see come together. For me personally, I’ve been thrilled to see a bunch of changes get completed that you’ve been asking for. It reminds me why I’m so excited about the Windows Insider program and being able to hear your input to help us shape the product.

Thanks,
g

UPDATED: 6/25 – 4:00pm

Buy and sell stocks and exchange-traded funds with Capital One Investing Mobile for Windows Phone

With Capital One Investing Mobile for Windows Phone you can buy and sell stocks and exchange-traded funds right from the palm of your hand.

Capitol One image 1 Capitol One Image 2

Capital One Investing Mobile gives you straightforward tools and features to help you make informed investment decisions and work towards taking control of your financial future. With easy-to-use research tools, this app lets you call the shots whenever and wherever you choose. Some features you’ll enjoy with this app:

Trade
Buy and sell stocks and exchange-traded funds (ETFs).

Up-to-the-Minute Information
Get detailed stock quotes.

Manage your Portfolio
View positions and trade status, track gains and losses, and check balances.

Safe and Secure
Your personal information is fully protected and securely stored.

Don’t have a Capitol One Investing Account?
No problem. You can still get instant quotes, consult charts and more. Want to trade, too? Go to CapitalOneInvesting.com to open an account. There’s no minimum to open an account and it takes just minutes.

Download Capital One Investing Mobile for your Windows Phone for free today.

 

Images are for illustrative purposes only. Any displayed symbols, quotes or charts are not recommendations or advice. 

Banking services are provided by Capital One 360®, a division of Capital One, N.A., Member FDIC.

Securities are offered by Capital One Investing, LLC, a registered broker-dealer and Member FINRA/SIPC. Advisory services are provided by Capital One Advisors, LLC, an SEC-registered investment advisor. Insurance products are offered through Capital One Agency LLC. All are subsidiaries of Capital One Financial Corporation.

Securities and services are: Not FDIC insured • Not bank guaranteed • May lose value • Not a deposit • Not insured by any federal government agency

© 2015 Capital One. Capital One and ShareBuilder are federally registered service marks. All third-party trademarks are the property of their respective owners.

Upcoming changes to Windows 10 Insider Preview builds [UPDATED 6/22]

This post was updated at 12:00pm on June 22nd.

Over the weekend we saw a few articles about this post and confusion that it caused. I’m sorry for that and want to take a moment to clear up a few things. This is a very complex topic, since we’re managing:

Let me start by restating very clearly that Windows 10, whether you get it on 7/29 or whether you got it in a preview form through the Windows Insider Program is intended to be installed on Genuine Windows devices.

Friday’s post was intended to clarify how the Windows Insider Program will proceed, and in attempting to do so created some unintended confusion. I sincerely apologize for that and will try to separate them more clearly below in order to provide more clarity.

The crux of it is this:

  • Do you want to continue as a Windows Insider and keep getting preview builds after 7/29?
  • Or do you want to upgrade your Genuine Windows 7 or Windows 8.1 system that has been getting Windows 10 Insider Preview builds to the 7/29 release and stop being an Insider?

“I want to continue as a Windows Insider!” If you want to continue as a Windows Insider past 7/29 there is nothing you need to do. You’re already opted in and receiving builds in the Fast or Slow ring depending upon your selection. This is prerelease software and is activated with a prerelease key. Each individual build will expire after a time, but you’ll continue to receive new builds so by the time an older prerelease build expires you’ll have received a new one. Since we’re continuing the Windows Insider Program you’ll be able to continue receiving builds and those builds will continue to be activated under the terms of the Windows Insider Program. We provide ISOs for these builds for recovery from any significant problems, but they are still pre-release software. As part of the program we’ll upgrade Insiders to what is for all intents and purposes the same build as what other customers will get on 7/29, but that will be just another build for Insiders, and those who stay in the program will simply get the next build after as well.

“I want to opt out of the Windows Insider Program on 7/29.” If you decide to opt-out of the program and upgrade to the 7/29 build you will be subject to exactly the same terms and conditions that govern the offer* that was extended to all Genuine Windows 7 and 8.1 customers. This is not a path to attain a license for Windows XP or Windows Vista systems. If your system upgraded from a Genuine Windows 7 or Windows 8.1 license it will remain activated, but if not, you will be required to roll back to your previous OS version or acquire a new Windows 10 license. If you do not roll back or acquire a new license the build will eventually expire.

It is our hope that the vast majority of Windows Insiders who have been with us since we announced the program last year will continue forward, and it was in that light that we authored the blog post about upcoming changes to the program. I regret that this caused confusion about who was or was not eligible for the Windows 10 upgrade offer, but hope that this helps to clarify.

Thanks,
g


Below is the original blog post which was updated at 1:00pm on June 20th.

Hi everyone, we’re hard at work on the next builds that we’ll send out to you for PC and Mobile. I don’t have an update on timing for that quite yet, but I do have some important changes to tell you about that are coming with the next PC build as we get ready for July 29th.

Microsoft Account notifications

If you don’t have your Microsoft Account (MSA) connected to your PC, starting in the next build you’ll start seeing notifications asking you to do so. You’ll need to connect the MSA that you registered for the Windows Insider Program with (and accepted the “Microsoft Windows Insider Program Agreement”) in order to continue receiving new Windows 10 Insider Preview builds (both Fast and Slow rings) from Windows Update. If you already have your MSA connected to your account on your PC, then you’re all set. We’re introducing new infrastructure in Windows Update to help us deliver new builds more effectively to Windows Insiders, and ensure that we’re flighting builds to people who have registered and opted in to the program. Connecting your MSA also allows seamless access to Windows Insider-only functionality in the Windows Feedback app and Insider Hub too.

This change is for the Windows Insider Program ONLY, and is specific to how we’re delivering the Insider Preview builds. Once available on July 29th, you do not need an MSA to upgrade Windows 10 on your Windows 7 or Windows 8.1 PCs if they are not receiving Insider Preview builds. You will not be required to use an MSA on new PCs that come with Windows 10 preinstalled or clean installed from media. Some features in Windows 10 do require an MSA to use, such as downloading apps in the Windows Store.

Getting the final release on July 29th

Windows Insiders running the Windows 10 Insider Preview (Home and Pro editions) with their registered MSA connected to their PC will receive the final release build of Windows 10 starting on July 29th. This will come as just another flight. I’ve gotten a lot of questions from Windows Insiders about how this will work if they clean installed from ISO. As long as you are running an Insider Preview build and connected with the MSA you used to register, you will receive the Windows 10 final release build. Once you have successfully installed this build, you will also be able to clean install on that PC from final media if you want to start over fresh. It’s important to note that only people running Genuine Windows 7 or Windows 8.1 can upgrade to Windows 10 as part of the free upgrade offer.*

If you are running the Enterprise edition of the Windows 10 Insider Preview, to upgrade to the final release of Windows 10 Enterprise you will need to download and activate it from Volume Licensing Service Center. As a reminder, the Enterprise edition of the Windows 10 Insider Preview is not eligible for the free upgrade offer and can be upgraded to the final release of Windows 10 through an active Software Assurance agreement.

Stay with us as a Windows Insider

As we’ve announced before, the Windows Insider Program will continue even after we release Windows 10 on July 29th. Windows Insiders will continue to receive future flights as we begin to work on the next release immediately after Windows 10 ships. You’ll get to see the latest Windows fixes, features, and updates and give us feedback. So stay with us! Of course, we’ll provide you an option to leave the program and stay on the final build if you choose: but we hope that we’ll continue to provide you great reasons to remain a Windows Insider.

Insider Hub & Windows Feedback app

Because we’re getting ready for the final release, we’re removing a few things we don’t expect to ship to everyone. So starting with the next build, the Insider Hub will no longer be pre-installed. Windows Insiders can reinstall the Insider Hub app through the following steps:

  • Go to Settings, System, Apps & features
  • Click Manage optional features then Add a feature
  • Select the Insider Hub entry (the list is in alphabetical order) and click Install.

You will have to go through this process with each build we flight prior to the final release on July 29th, but once we start flighting new builds after July 29th it will be preinstalled again.
The Windows Feedback app will continue to be included in builds and in the final release. But as I noted above, the Windows Feedback app will have functionality specific to Windows Insiders who are registered for the program with their MSA connected to their PC.

One more thing – Here comes Microsoft Edge!

In the next build we release to Windows Insiders in the Fast ring, the “Project Spartan” name will officially change to Microsoft Edge. One result of this naming means that the Microsoft Edge app has a new app ID. This will cause any favorites, cookies, history and Reading list items that you had saved in the Project Spartan app to be lost after upgrading from a previous Windows 10 Insider Preview build. If you want to keep these, you will need to back up your favorites before the next flight! To save your favorites, follow these steps before upgrading to the next build we release (do it now):

  • Copy your favorites from %localappdata%/Packages/Microsoft.Windows.Spartan_cw5n1h2txyewy/AC/Spartan/User/Default/Favorites.
  • Save them to %userprofile%/Favorites.
  • After upgrading to the next build open Microsoft Edge, choose Settings, and you’ll see an option to import favorites from another browser. Choose Internet Explorer to import the favorites you saved in your %userprofile% directory into Microsoft Edge.

We expect to have new Insider Preview builds for you soon and think you’ll be excited about the continuing progress we’re making on Windows 10. We couldn’t have done it without you.
Thanks,
g

*More information about the free upgrade offer can be found at Windows.com.

An update on Eclipse Android Developer Tools

Posted by Jamal Eason, Product Manager, Android

Over the past few years, our team has focused on improving the development experience for building Android apps with Android Studio. Since the launch of Android Studio, we have been impressed with the excitement and positive feedback. As the official Android IDE, Android Studio gives you access to a powerful and comprehensive suite of tools to evolve your app across Android platforms, whether it’s on the phone, wrist, car or TV.

To that end and to focus all of our efforts on making Android Studio better and faster, we are ending development and official support for the Android Developer Tools (ADT) in Eclipse at the end of the year. This specifically includes the Eclipse ADT plugin and Android Ant build system.

Time to Migrate

If you have not had the chance to migrate your projects to Android Studio, now is the time. To get started, download Android Studio. For many developers, migration is as simple as importing your existing Eclipse ADT projects in Android Studio with File → New→ Import Project as shown below:

For more details on the migration process, check out the migration guide. Also, to learn more about Android Studio and the underlying build system, check out this overview page.

Next Steps

Over the next few months, we are migrating the rest of the standalone performance tools (e.g. DDMS, Trace Viewer) and building in additional support for the Android NDK into Android Studio.

We are focused on Android Studio so that our team can deliver a great experience on a unified development environment. Android tools inside Eclipse will continue to live on in the open source community via the Eclipse Foundation. Check out the latest Eclipse Andmore project if you are interested in contributing or learning more.

For those of you that are new to Android Studio, we are excited for you to integrate Android Studio into your development workflow. Also, if you want to contribute to Android Studio, you can also check out the project source code. To follow all the updates on Android Studio, join our Google+ community.

Android Wear: Always-on apps


Watches tell the time, all the time, helping you stay on track and make quick decisions at a glance. That’s why Android Wear supports always-on screens and always-on apps. You get the info you need as long as you need it, while saving on battery and avoiding arm twists just to wake your display.

Bring! Shopping List in normal and always-on modes.

Always-on fitness
Going out for a run? Now, you can keep an eye on distance and pace just by glancing at your watch with Endomondo, MapMyRun, and Runtastic. If golf is more your game, Golfshot gives you accurate distances from tee to pin so you can always grab the right club from your bag.

Always-on productivity
Competing in your personal weekly supermarket sweep? No need to slow down to bring out a list or phone. Just glance at your watch to see what’s next with Bring! Shopping List and Google Keep.

Always-on travel

And if you’re catching a flight, apps from American AirlinesDelta, and KLM show you flight status, gate, and seat info right on your wrist. Wearing your boarding pass keeps your phone in your bag and out of the airport lost and found.  
With a wide range of Android Wear watches available in the Google Store, it’s easy to find a watch that matches your personal style. No matter which watch you choose, you’ll always be able to stay on track by keeping important info on your wrist.

Posted by Joe LaPenna, Software Engineer and Watchmaker




Android Developer Story: Shifty Jelly drives double-digit growth with material design and expansion to the car and wearables

Posted by Lily Sheringham, Google Play team

Pocket Casts is a leading podcasting app on Google Play built by Australian-based mobile development company Shifty Jelly. The company recently achieved $1 million in sales for the first time, reaching more than 500K users.

According to the co-founder Russell Ivanovic, the adoption of material design played a significant role in driving user engagement for Pocket Casts by streamlining the user experience. Moreover, users are now able to access the app beyond the smartphone — in the car with Android Auto, on a watch with Android Wear or on the TV with Google Cast. The rapid innovation of Android features helped Pocket Casts increase sales by 30 percent.

We chatted with co-founders and Android developers Russell and Philip Simpson to learn more about how they are growing their business with Android.

Here are some of the features Pocket Casts used:

  • Material Design: Learn more about material design and how it helps you create beautiful, engaging apps.
  • Android Wear: Extend your app to Android Wear devices with enhanced notifications or a standalone wearable app.
  • Android Auto: Extend your app to an interface that’s optimized for driving with Android Auto.
  • Google Cast: let your users cast your app’s content to Google Cast devices like Chromecast, Android TV, and speakers with Google Cast built-in.

And check out the Pocket Casts app on Google Play!

Fitness Apps on Android Wear

Posted by Joshua Gordon, Developer Advocate

Go for a run, improve your game, and explore the great outdoors with Android Wear! Developers are creating a diverse array of fitness apps that provide everything from pace and heart rate while running, to golf tips on your favorite course, to trail maps for hiking. Let’s take a look features of the open and flexible Wear platform they use to create great user experiences.

Always-on stats

If your app supports always-on, you’ll never have to touch or twist your watch to activate the display. Running and want to see your pace? Glance at your wrist and it’s there! Runtastic, Endomondo, and MapMyRun use always-on to keep your stats visible, even in ambient mode. When it’s time for golf, I use Golfshot. Likewise, Golfshot uses always-on to continuously show yardage to the hole, so I never have to drop my club. Check out the doc, DevByte, and code sample to learn more.

Runtastic automatically transitions to ambient mode to conserve battery. There, it reduces the frequency at which stats are updated to about once per 10 seconds.

Maps, routes, and markers

It’s encouraging to see how much ground I’ve covered when I go for a run or ride! Using the Maps API, you can show users their route, position, and place markers on the map they can tap to see more info you provide. All of this functionality is available to you using the same Maps API you’ve already worked with on Android. Check out the doc, DevByte, code sample, and blog post to learn more.

Endomondo tracks your route while your run. You can pan and zoom the map.

Google Fit

Google Fit is an open platform designed to make it easier to write fitness apps. It provides APIs to help with many common tasks. For example, you can use the Recording API to estimate how many steps the user has taken and how many calories they’ve burned. You can make that data to your app via the History API, and even access it over the web via REST, without having to write your own backend. Now, Google Fit can store data from a wide variety of exercises, from running to weightlifting. Check out the DevByte and code samples to learn more.

Bluetooth Low Energy: pair with your watch

With the latest release of Android Wear, developers can now pair BLE devices directly with the Wearable. This is a great opportunity for all fitness apps — and especially for running — where carrying both a phone and the Wearable can be problematic. Imagine if your users could pair their heart rate straps or bicycle cadence sensors directly to their Wear device, and leave their phones at home. BLE is now supported by all Wear devices, and is supported by Google Fit. To learn more about it, check out this guide and DevByte.

Pack light with onboard GPS

When I’m running, carrying both a phone and a wearable can be a bit much. If you’re using an Android Wear device that supports onboard GPS, you can leave your phone at home! Since not all Wear devices have an onboard GPS sensor, you can use the FusedLocationProviderApi to seamlessly retrieve GPS coordinates from the phone if not available on the wearable. Check out this handy guide for more about detecting location on Wear.

RunKeeper supports onboard GPS if it’s available on your Wearable.

Sync data transparently

When I’m back home and ready for more details on my activity, I can see them by opening the app on my phone. My favorite fitness apps transparently sync data between my Wearable and phone. To learn more about syncing data between devices, watch this DevByte on the DataLayer API.

Next Steps

Android Wear gives you the tools and training you need to create exceptional fitness apps. To get started on yours, visit developer.android.com/wear and join the discussion at g.co/androidweardev.