Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Phone_81_Development_for_Absolute_Beginners

.pdf
Скачиваний:
34
Добавлен:
10.02.2015
Размер:
18.77 Mб
Скачать

(1)You can change the center point of the phone to change its position in 3D space by clicking and dragging the orange dot in the circle.

(2)You can change the Orientation to one of the presets

(3)You can play recorded data, like a "shake" motion.

For more information about the Emulator and the Accelerometer sensor in the Windows Phone SDK, a good starting spot would be this article:

How to test apps that use the accelerometer for Windows Phone http://msdn.microsoft.com/en-us/library/windowsphone/develop/hh202936(v=vs.105).aspx

The next tab is the Location tab which allows you to set the current location of the phone. So, even though I'm sitting in Dallas, Texas, I can act like I'm testing my phone in Seattle or any other place in the world. To do this:

Windows Phone 8.1 Development for Absolute Beginners – Page 120

(1)I'll perform a search for a particular location, like "Chicago, IL".

(2)I'll right-click the map to create a pin in the suburb where I grew up.

(3)I'll verify the exact location in the list of pins marked by their latitude and longitude.

(4)I can introduce variance to the accuracy. In some areas, there are fewer ways to determine the exact location because there are fewer physical resources (like cell towers, etc.) to use to triangulate the location of the phone. The Accuracy profile allows you to adjust this to test your app and how it performs in various less accurate scenarios.

The third tab is for creating screen shots, which can be helpful when you're creating documentation or bug reports.

Windows Phone 8.1 Development for Absolute Beginners – Page 121

The fourth tab is the Network tab. In addition to viewing the IP address of the phone on the network (which may be helpful if you’re building some network monitoring app) but also you can throttle the phone’s network access to test your app’s performance when in bandwidth challenged situations.

Windows Phone 8.1 Development for Absolute Beginners – Page 122

Fifth, you can designate a location on your hard drive that will simulate the use of the SD Card so that you can test whether your app is correctly saving or working with the file system of a removable

SD card.

Windows Phone 8.1 Development for Absolute Beginners – Page 123

The sixth tab allows you to simulate push notifications.

Windows Phone 8.1 Development for Absolute Beginners – Page 124

The seventh tab allows you to save the current state of the emulator as a checkpoint. This allows you to test a scenario where the phone is configured in a certain way over and over by restoring the state of the phone to a snapshot of its previous state. Think: virtual machine snapshots, because that is what is happening here.

Windows Phone 8.1 Development for Absolute Beginners – Page 125

Finally, the Sensors tab allows you to turn on and off certain sensors to test how your app works should it rely on one of those sensors and they don’t exist in the user’s phone.

Windows Phone 8.1 Development for Absolute Beginners – Page 126

In addition to the Emulator itself, Visual Studio has a Device window with some tooling that can affect how the XAML designer displays the phone ... orientation, theme and color, chrome, etc.

Windows Phone 8.1 Development for Absolute Beginners – Page 127

So as you see, you have so many ways to test and monitor your app during development time so you gain some confidence in how it will perform when you distribute it on the Store.

Recap

The last tip I would give about the emulator is that it's ok to just leave it up and running during development. There's no need to shut it down. When you launch and re-launch your app in debug mode from Visual Studio, part of that process is deploying the latest version of the app to the phone. It's time consuming to re-launch the Emulator each time, and Visual Studio will connect to an existing Emulator instance when it needs to.

So to recap, the Emulator is a great tool that allows you to quickly deploy your app during development to a virtualized Windows Phone. We looked at how to test different device screen sizes and memory constraints, how to manipulate the emulator to test for rotation and motion, how to make the phone think it is located geographically in a specific place, and much more. We'll use these skills extensively throughout this series.

Windows Phone 8.1 Development for Absolute Beginners – Page 128

Lesson 12: Understanding the App’s Lifecycle and Managing State

In this lesson, we’ll briefly talk about the important moments in the life cycle of your app.

Hopefully this will give you some insight as to what is going on in your app even when it is no longer running.

In a nut shell, your app is either running, it is not running (terminated) or it is suspended. What’s the difference between terminated and suspended? When a user switches to another program, chances are likely your app will be suspended for a while until the user switches back to your app. During this time, the app is in hibernation, in other words, the code in your app is not running, but the state of your application’s objects and variables including the

Frame and its BackStack is kept in memory. This allows the user to switch between apps quickly and fluidly.

However, it is possible the Phone’s operating system will choose to terminate your app, which means it is removed from memory along with your application’s objects and variables. This means that the next time the user launches you app, it will have no recollection of the state of the app when it last ran. This means any work the user was doing is lost (unless you saved it), and it means that the Frame’s last page is forgotten, as is the entire BackStack.

Now, why would the Phone take a suspended app and then terminate it? There are a couple of reasons why. Usually this happens because it needs the RAM your app occupies. But it could also happen if the Phone runs out of battery or the user reboots the phone. The key is that, as an app developer, your app is notified that it is about to be suspended, however once it is suspended it is not notified about termination.

Fortunately, you can handle the Suspending() event to quickly save the state of your app before it is suspended.

Most of this work will happen in the App class. The App class is implemented in App.xaml.cs. You override those methods of the App class that you want to handle in your app. The most important is the OnLaunched method that executes each time your app is initially launched, and the OnSuspending() method which gives you a tiny window of opportunity to save the state of the app just in case it is terminated while suspended.

The App class provides a few important services that are very low level:

1.It’s the entry point for the app

2.It performs lifetime management, so when the user uses the physical buttons on the phone, or the operating system tells our app to go away for now, the App class implements methods that handle those events.

3.It manages app-scoped resources, not the least of which is the Frame object for navigation purposes. More about that in a moment. You’ll see later where I add a public

Windows Phone 8.1 Development for Absolute Beginners – Page 129

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]