Appstore Blogs

Appstore Blogs

Want the latest?

appstore topics

Recent Posts

Archive

Showing posts by David Isbitski

December 19, 2013

David Isbitski

Starting today all Web App submissions to the Amazon Appstore now support Amazon Device Targeting.   While it is possible to detect and optimize your mobile websites server side, you may decide you only want to target your Web Apps to specific devices.  Web App submissions to the Amazon Appstore now allow the same device targeting capabilities that Android submissions do.  This means you can elect to make your Web Apps available for download on Kindle Fire, Kindle Fire HD, Kindle Fire HDX, general Android (all non-Amazon) devices or any combination of these.  

By enabling device targeting within your individual Web Apps you can tailor your app experience to the specific screen size, density, and capabilities of Kindle devices.  For example, you may decide to target only devices capable of the Amazon Webview (Kindle Fire 2nd generation and up) giving your Web Apps native-like speeds on Kindle devices.

What has changed?

In the previous version of the developer portal you did not have the option of choosing the device on which devices your Web Apps would be available.  By default your Web Apps would run on all Kindle Fire devices as well as Android capable devices. 

As of today, a new Device Support section has been added that will allow you to target any or all of Web App capable devices you choose.

Enabling Device Targeting

To enable Device Targeting in your Web Apps simply navigate to the Apps and Services, My Apps section in the developer portal, click on the title of your Web App, and then select the App File(s) tab.

You can then select the individual devices you want to target.  By default we will enable all Web App capable devices so be sure to uncheck any devices you specifically do not want to support.  Once you click the Save button you will find a new list of all the devices you have selected to support.

That’s it!  By following these few steps you now have more control over which devices your Web Apps will run on, giving you the option to tailor your app experience to the capabilities of each device.

 

-Dave (@TheDaveDev)

 

December 18, 2013

David Isbitski

We recently launched the Mobile Associates API (MAA) for Amazon Appstore (including Kindle) and general Android devices. Since the launch, the API has been successfully integrated in hundreds of Android apps and has helped generate incremental revenue for developers. Mostly, developers use MAA to complement revenue generated from mobile ads. Using MAA, you can sell real products from the millions of items at Amazon, whether physical (i.e. toys, clothing) or digital (i.e. eBooks), from inside your apps while earning up to 6% in advertising fees from those purchases.  With wide variety of the Amazon product catalog, there are probably many items that are relevant to your users. Plus, you have complete control over the products you want to promote and the in-app user experience. 

In this post, we will show how to build “Relevant products” experience using Mobile Associates API. In this experience, you can offer contextually relevant products in your app by specifying a search term and direct customers to mobile optimized Amazon search result page. Customers can browse through the search results page, select products, and complete the purchase after signing in to their Amazon account. You earn advertising fees equal for qualifying purchases made during that session. Most developers can build this experience in 30 minutes.

“Relevant Products” Experience

For developing other experiences, please visit Amazon Mobile Associates API

Steps to Integrate                                                                                                  

1.       Identifying relevant products to promote

2.       API code integration

3.       Testing the app

Identifying relevant products to promote

Mobile Associates API provides four parameter, searchTerm, product category, Brand, and SortOrder, to search and promote most relevant products to your app users on search landing page. Please see the available product categories and compatible sorting and filtering options here.

To identify relevant products, begin by identifying the most relevant product categories based on your app category and your app user’s demographics. You can also use different product categories in different sections of your app.

Once you have identified the relevant product categories, identify a relevant searchTerm to find relevant products within your chosen categories. Now go to Amazon.com and search for products using searchTerm within your chosen categories. App users will see this list of products when using your app. Refine your searchTerm to identify the list of products your users are most likely to purchase. These items may not be the highest value item available under the given category. For example, most app users are unlikely to buy the most expensive running shoes.

You can also sort these items in different orders. We recommend sorting them by “relevance”. You may consider other sortOrder such as “highest to lowest price” under special circumstances. You can also specify “brand” as a filter if you believe that your app users are more likely to buy a certain brand.

Once you have identified the products you want to promote, you can use the appropriate searchTerm, product category, Brand, and SortOrder in the APIs to promote the relevant products.

Example: If your app belongs to the fitness category, you can pick product categories such as “Health and Personal Care” to promote vitamins, “Shoes” to promote running shoes, or even “Books” to promote fitness related books. You should promote context appropriate products such as barbells or protein supplements to a person who does frequent weight training. Use “men’s running shoes” in shoes category if the app user is male. You should refine the searchTerm based on your conversion rates and the products your users are purchasing.  Promote brands which are popular in your app user’s geographic location. For example, Adidas is a very popular brand in Germany.

API code integration

Update the Android Manifest

Making requests to the Amazon Mobile Associates API requires the INTERNET permission. These permissions need to be declared outside of the <application> tags in yourAndroidManifest.xml file.

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

Initialize the API

In your Activity.onCreate(), initialize the API by calling AssociatesAPI.initialize(config) using your Application Key.

protected void onCreate(final Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   setContentView(R.layout.activity_main);
   AssociatesAPI.initialize(new AssociatesAPI.Config(APPLICATION_KEY, this));
}

To get the Application Key, log on to the developer portal, click on the "My Apps" tab and then select an existing app or click on the "Add a New App" button. When creating a new app, just fill in the "App Title" and "Form Factor" fields and click the "Save" button. The next screen will show the unique Application Key value, which is a 32-character globally unique alphanumeric string that is used to identify your app. The same Application Key can be used across platforms, but each distinct app must have a unique Application Key.

Direct to Amazon Search Result Page

To direct customers to an Amazon product search results page, construct an OpenSearchPageRequest by specifying the search keyword and pass the search request to the LinkService.openRetailPage method.

String searchTerm = "running";
String category = "Shoes";
openSearchPageButton = (Button)findViewById(R.id.open_search_page_by_term_button);
openSearchPageButton.setEnabled(true);
openSearchPageButton.setOnClickListener(new View.OnClickListener() {   

    public void onClick(View view) {
       OpenSearchPageRequest request = new OpenSearchPageRequest(searchTerm, category);
       try {
           LinkService linkService = AssociatesAPI.getLinkService();
           linkService.openRetailPage(request);
       } catch (NotInitializedException e) {
               e.printStackTrace();
       }
   }
});

For more details on building “Relevant products” experience, please visit the Amazon Developer Portal.

Testing the app

Once you have integrated the MAA APIs in your app, you should test your app by clicking through MAA links and validating that the users are presented with the relevant products. We also recommend that you validate application id and that the app has INTERNET permission enabled before publishing the app.

 

 

December 09, 2013

David Isbitski

The Amazon Mobile App Distribution program enables you to distribute your existing web apps on Kindle Fire and select Android devices in nearly 200 countries across the globe (including the US, Canada, UK, Germany, Spain, Italy, France, Brazil and Japan). 

Almost any mobile friendly website you are hosting today can be run as a Web App.  This means all of the HTML5, JavaScript, and CSS code you have built today can be made available as an App in the Amazon Appstore

In the recent Webinar on Submitting HTML5 Web Apps to the Amazon Appstore, we covered how to get your existing web apps onto actual devices and debug and test them.

You can debug your HTML5 Web App in two different ways.

•      You can use your favorite IDE or debugging tools for normal Web App development like you are already doing. 

•      Or, you can optionally use the Chrome DevTools to debug your web app using a Kindle Fire or an Android device running the Web App Tester Tool.

Note: The Chrome DevTools, the Chrome Browser installation tool, the Android SDK and certain other development tools are provided by third parties, not by Amazon.

Setting up your Debug Environment

The Chrome Developer Tools are freely available from Google and included in all the latest versions of the Chrome Browser.  Simply select the Chrome menu at the top-right of your browser window, then select Tools > Developer tools to begin debugging.  You can get additional information on installing the tools off the Chromium blog.  The Chrome DevTools use the Android Debug Bridge (adb), part of the Android SDK tools, to communicate with the web app from your computer.

Next, we will need to install the Web App Tester Tool from the Amazon Appstore.  This tool will allow us to create a bridge to our computer over USB or WiFi. 

Simply swipe from the top of the device (if on a Kindle Fire device make sure you tap the full screen handle on the bottom of the screen to open the status bar) and then swipe down from the top of the screen to display the Quick Settings Notification Area.  Once there you will have the option to connect over either USB or WiFI.

In this example I have selected WiFi and am given a url I can put into my browser to connect the Chrome Dev Tools to that running app.

Here is a screenshot of a Kindle Fire running my Web App with the Chrome Debug Tools showing the source for my app.  This enables me to now select actual <div> tags now in the html code via Chrome on my computer and see those <div> tags being highlighted on my actual device (as in the example below).

Conclusion

By utilizing the free Chrome Developer Tools and the free Web App Tester tool we are now able to debug our Web App on an actual device in real time.  This includes everything you would expect from the Chrome Developer Tools, like real time resource monitoring, the ability to view our html source and a JavaScript console.

For a complete walkthrough of the steps described here you can watch the short screencast below as well as checking out the web app debug documentation on our developer portal here.

 

-Dave (@TheDaveDev)

 

December 06, 2013

David Isbitski

The Amazon Mobile Ads API allows you to easily place high-quality display ads from the Amazon Mobile Ad Network into your Android and Kindle Fire apps. Successfully monetizing your apps with ads depends on several factors, one of the biggest being the ad fill rates you receive. A common practice is to use multiple ad networks so that if you are unable to fill an ad with one network you can request an ad from another one.

I thought it would be helpful to offer some guidance on how you can implement multiple ad networks into your own apps. This should help increase your fill rates as well as giving you the opportunity to show ads to customers were the Amazon Mobile Ad Network currently does not serve ads.

Let’s get started!

Setting up the App Manifest and Layout

The first thing you will need to do is follow the guidelines for including the correct Android network permissions and ad Activity as described here.  Since you are going to include AdMob ads as well you will need to define that activity after our Amazon Ad as seen below.

You will also need to make sure you have set up the Amazon AdLayout inside of your layout file like below.

Declaring Multiple Ad Networks

Verify that both ad networks have been added to your Android project and set for export as seen below. For purposes of this demo, I will be using version 6.4.1 of the AdMob SDK and version 5.1.153 of the Amazon Mobile Ads API.”

Depending on what ad network SDK you are working with, many of the classes may be named similarly to the ones used in Amazon Mobile Ads API . You will need to be extremely careful when referencing individual classes and I recommended using fully qualified namespaces as seen below.

Displaying an Amazon Ad

Displaying an ad with the Amazon Mobile Ads API is as simple as creating and adding an Amazon AdView to the layout, setting any optional targeting properties and then calling the loadAd method of the AdView.

In the example below I am setting the ad to target a twenty five year old male and using a simple fixed rate timer to refresh the ad over time using a fixed schedule timer.

I have also turned logging on by setting the AdRegistration logging flag to true. This will give us detailed information in LogCat about the ads being served.

Here are some screenshots of the Amazon ads being loaded on a Kindle Fire HDX device:

Here is an example of the Amazon ad information being written to LogCat:

Checking if an Amazon Ad was served

If an Amazon ad has not been served within the timeout period it will call the onAdFailedToLoad() method. The default timeout is 20 seconds but you can change this to a different value (defined in milliseconds) by setting a property on the AdView itself. I recommend doing this while testing so that you can force the ad mediation to happen.

In the code below you will see I have set the timeout to be 100 milliseconds, which will always cause the ad to fail while I am debugging my secondary ad network. Once I have seen ads being loaded from both networks I can set this back to a more reasonable value.

Inside the onAdFailedToLoad method I log the ad error message I received, remove the Amazon view from the UI, load the AdMob view and then I have it request an ad.

Here are some screenshots of the AdMob ad being loaded on a Kindle Fire HDX device:

Here is an example of the AdMob information being written to LogCat:

Setting an Ad Timeout

The Amazon Mobile Ad Network recommends loading a new ad on screen navigations and device orientation changes when the ad view changes size. You may also want to refresh the ad after a set time interval. In this case, the Amazon Mobile Ad Network recommends a refresh rate of 30 to 60 seconds. Faster ad refresh intervals could result in blocked ad requests.

Please note that the Amazon Mobile Ads API does not provide any built-in functionality for automatically refreshing ads. The timeout value of the Amazon AdView is the amount of time it will try to get a new ad for you before calling the onAdFailedToLoad method. This will not auto refresh the ad it will only change the amount of time it spends trying to load an ad.

You will need to create your own timer system to refresh the ad or some other way inside of your app. In the code example above I used a timer on a fixed rate schedule for demo purposes, but there is no limitation to the way you could handle this in your own apps. For example, every time a player reaches a new level in your game you briefly display an ad.

Conclusion

Hopefully you have seen how easy it is to set up ad mediation with the Amazon Mobile Ads API and third party ad SDKs in your own apps. You can read more details on working with other ad SDKs here on our developer portal. You can also get more detailed information about the Amazon Mobile Ads API itself and sign up here.

-Dave (@TheDaveDev)

 

November 19, 2013

David Isbitski

Over the last couple of years since our Amazon Appstore launch, we’ve talked with many unique and inspiring developers. Along the way we’ve learned quite a bit and wanted to pass some of those learnings back to our developer community. So to that end, we are excited to continue our Developer Spotlight series. This series will highlight developers’ experiences building apps, ranging from what inspires them and how they’re delivering innovation to consumers to the results they’re achieving.

For today’s spotlight, we’re excited to chat with one of the co-founders of ZeptoLab, a global gaming company whose game Cut the Rope has been an instant success since its debut in October of 2010. The game remains a top app throughout mobile markets, browsers and desktops, and has been downloaded more than 400 million times to date.

Below is our interview with Zeptolab co-founder and CTO, Efim Voinov.

Why did you start Zeptolab?

Creating games was a hobby for my brother and me since early childhood. We’ve started with the games for ZX Spectrum in the early 90s, switched to PalmOS in the 2000s, and jumped into iOS and Android development since the first days of those platforms. At that time we already had experience in several gaming companies, and thought it was the right time to start something on our own. The new platforms offered exciting opportunities for independent developers, and we believed they shouldn’t be missed.

When did you start Android development for Cut the Rope?

The original version of Cut the Rope was released for iOS only, since there were only two of us developing full-time, and we had to concentrate on a single platform. After the game was out, we started to receive feedback from the players that they would like it on other platforms, and Android was the most requested one. Once the company had grown enough, we started developing it and about eight months after the release of the original we had the Android version. The version for Amazon Appstore was released at the same time, and required very little adaptation.

What changes did you need to build into the game to make it available for the Amazon Appstore?

Since we released Cut the Rope, we’ve created other titles, like Cut the Rope: Time Travel, Cut The Rope: Experiments, and Pudding Monsters. All of our titles are available in the Amazon Appstore. The process of porting the app for Amazon is very easy; we simply swap out billing API’s for the Amazon API for billing, which is something we do for all platforms we sell our app on. In addition, we are using GameCircle to handle leaderboards and achievements for games in the Amazon Appstore, which we have built in.

What’s it like to work with Amazon?

We think the Amazon API’s are very well thought through, the implementation is efficient and it’s easy to find information on how to use them. Having this ease of use is very important to us because we have lots of different versions of the games and really value the quick turnaround time to support games. In cases where we need more information the documentation level for Amazon API’s is very good and compared to others it’s in many cases above the competition. We don’t have to communicate with the Amazon team a lot in terms of understanding how to implement.

We also really appreciate your developer relations team. Having these relationships with the team helps us plan for the future, so we can plan for our business and consider the best way to implement new API’s and improvements into our games. The level of technical features being brought to market is impressive.

What are you looking at doing next with the Amazon Appstore?

In our current titles we are actively using IAP and this is proving to be quite successful for us in the Amazon Appstore. They currently bring us more than 40% of our revenue, and this figure is growing. In general, our cumulative income in the Amazon Appstore is doubling every year, and we are looking forward to increasing this trend in the future. With the latest release of the Mobile Associates API, we are looking at various opportunities to sell physical goods for our games.

Do you have any tips and tricks for developers building mobile games and applications?

One of the things that we learned is that it’s really important to minimize the routine tasks during development, and optimize the process as much as possible. That’s why we have invested quite a lot of time into our own framework, which includes different tools that automate various tasks. For example, we have an animation system, which allows us to automatically export animations created in the Adobe Flash directly to the game.

We also try to keep things as abstract as possible while designing a native OpenGL application for the Android platform. We try not to rely too heavily on a list of pre-defined resolutions, even if the list is extensive, because hardware specs are always changing. Instead, we try to invent a system for adopting current graphics to any imaginary screen proportion and only switch version for graphic assets depending on a real resolution. The one constant that does not change is the size of a user’s finger. We try to estimate an optimal physical size for a gesture and calculate using real measures like dpi and screen size in inches on every device.

 

November 14, 2013

David Isbitski

We’re excited to announce a new tool for developers called the Developer Promotion Console (DPC). DPC gives you a self-service way to manage the pricing of all your apps with pricing campaigns. Want to run a 24-hour special holiday sale or discount all of your apps to celebrate the launch of a new game? It’s now much easier.

The Developer Promotion Console is available just in time for the holidays and it’s a great time run a special offer. In 2012, we saw a 50% increase in the number of app downloads during Thanksgiving week as compared to an average week. During ‘Digital Week’ 2012, the week after Christmas, customers purchased and downloaded 600% more apps than any other week during 2012.

What is it?

DPC allows you to create campaigns that run from 24 hours to any amount of time you choose, up to a maximum of 27 consecutive days. Pricing is worldwide so you can set discounts by Amazon marketplace. Best of all, you can run campaigns for the price of your mobile apps and any of your mobile in-app items.


 

What does it include?

Set temporary price drops: Create price drop promotions for your mobile apps and mobile in-app items to incentivize your customers to purchase your products. 

ReportingEasily view your ROI during your price drop promotion. Compare the performance of your promotion with your performance prior to the promotion.

Ease of use: Creating a price drop promotion is simple. Typically, it will take no more than five minutes and three steps to go from start to a scheduled promotion.

How do I get started?

Inside of the developer console, you will see a new tab called ‘Promotions.’ Clicking on the tab will display a new button to create a ‘Price Drop,’ as well as a list of your existing campaigns.

You will be able to set a discount for any of your apps and in-app items available for purchase.

For this example, we are going to create a new campaign for one app and set a price discount for the upcoming Thanksgiving holiday. We start off by giving the campaign a name, in this case the ‘Thanksgiving Holiday Promo’, and then selecting the app (currently blocked out in the image for privacy reasons) that we want to include in the promotion.

We then select the Amazon marketplaces we want the campaign to run in. Since Thanksgiving is a US holiday, we will only run it in the amazon.com marketplace.

Next, we can choose the dates for our campaign, with the minimum being one day and the maximum being 27 consecutive days. We are going to run this campaign for Thanksgiving Day only, on November 28, 2013.


We then click ‘Next’ and define the discount we want to apply to our app. We are going to do a 50% off sale with the price being rounded to the nearest 9. Selecting the amazon.com marketplace from the dropdown shows us that the list price for our app will go from 2.99 USD to 1.49 USD when the campaign is active.

Again, note that the app name in the above screenshot has been hidden in this example for privacy reasons.

Clicking ‘Next’ will give us a final confirmation of our campaign’s details. We have the ability to edit any of the sections before hitting ‘Submit’.

We’re finished. Our campaign is now ready to run on Thanksgiving Day in the amazon.com marketplace, where our app will be available for sale at 50% off.

How much did we increase sales?

Rather than guessing if we made more money with increased sales at a discount, the DPC reports will show us our net results of our campaign sales compared with our normal app pricing.

To view the results of the campaign, we just click on the ‘Promotions’ tab again (the same one we used to create our campaigns), and we will see a list of the campaigns that have run or are planned.

In the above example, we can see that we ran a campaign from October 29th through November 3rd (campaign name hidden for privacy reasons), and we have the option to click ‘View’ to see the results of that campaign.

We can see that during the campaign period, we sold 21 units of our app at 50% off.

The ‘Effect’ column takes the guesswork out of the ROI for our campaign and gives us the net results. Based on sales during the period of time before the campaign ran, we have increased our revenue for the period by 84%, resulting in a nice boost.

We can also click on the CSV icon, which will create a detailed view of daily sales during the campaign period and compare them with previous run rates.

Conclusion

The new Developer Promotion Console helps you manage discounted pricing which can lead to increased sales and customer engagement. Creating a new campaign is easy through the Developer Promotion Console, at no cost to you. With detailed reports that will show you the ROI of your campaign, you can feel more confident experimenting with discounts on your apps and in-app items.
 

-Dave (@TheDaveDev

 

November 12, 2013

David Isbitski


Update – 12/18/13 - As part of our continuing efforts to simplify the Amazon Appstore for developers we have loosened the requirement for SSL in Web Apps.  The practice is still recommended but not required to pass certification for certain scenarios such as Geolocation and Authentication.  You can view additional details on using SSL in your Web App here.

Following up on the latest in a series of webinars covering Amazon devices, game services, and mobile applications, here’s a list of questions we collected during and after our presentation on HTML5 Mobile Web Apps.

Q: How much does it cost to publish my Web Apps?
A: There are no developer registration or subscription fees. There is no cost to publish your Mobile Web Apps with Amazon and all of the corresponding services, such as In-App Purchasing, are free to use.

Q: How are apps currently published, do I need to have a Website?
A: Currently Web Apps get distributed by having you host all of your current on your own Web Infrastructure. You are free to use any hosting service and we walk through an AWS EC2 Micro Instance in the recorded webinar.

Q: Do I need to make any changes to my Website?
A: We support HTML5 and responsive web design for all Web Apps. The only required change is that you create a web-app-manifest.json file and return the JSON correctly. This ensures you are the owner of the website. We also highly encourage the use of SSL.

Q: How do I test my Web App?
A: Since the Web App application is the same HTML5 code as your Mobile Web site you can do all of your testing through a browser like you would normally or your favorite Developer IDE (WebStorm, Eclipse, Sublime, Visual Studio, etc.)

Q: How do I test my Web App on a Kindle Fire or Android Device?
When you are ready to see the website running on a device you can install the Web App Tester from the Amazon Appstore. The Amazon Web App tester will run on Kindle Fire and select Android devices.

Q: How do I debug my Web App on a device?
A: The Web App Tester tool uses ADB to allow debugging of your Web App through the Chrome Dev Tools. We do a complete walk through of this process in the recorded webinar and you can get more details on our SDK website here.

Q: What HTML5 features are currently supported?
A: The current version of Web Apps is built on the open source Chromium project version 25. You can view the full list of supported features here.

Q: Can I lock the device screen orientation?
A: Yes for a full list of best practices around device orientation and other capabilities check out the SDK documentation here.

Q: How do I take screenshots of my Web App for submission to the Appstore?
A: You will need to run the Web App Tester on a Kindle Fire device and hold down the power button + volume down. Once you have taken the screenshot you can find it in your pictures\screenshots folder. You can read more details here and we walk through this process in the recorded webinar.

Q: Where can I find the current version of the Amazon Web App API JavaScript file?
A: The current Web App API library is hosted here and available for viewing or inclusion in your own web projects. The recorded webinar includes a walkthrough and summary of this file.

Q: Can I use In-App Purchasing with my Web App?
A: Yes, you can choose to implement your own In-App Purchasing or you can take advantage of the Amazon In-App Purchasing API for JavaScript. We walk through setting up the IAP API for JavaScript in the recorded webinar.

Q: Are Web Apps eligible for the Amazon Developer Select program?
A: Yes, Web Apps are eligible for Amazon Developer Select and you will automatically see the status for each of your apps under the My Apps section in the developer portal.

 

-Dave (@TheDaveDev)

 

October 17, 2013

David Isbitski

Excited about the new Kindle Fire tablets?  Can’t wait to get your hands on them to run your app?  We are happy to announce the emulators for Kindle Fire HDX 8.9”, Kindle Fire HDX 7” and Kindle Fire HD 7”.  For a smooth and quick experience to create and configure AVDs (Android Virtual Devices), we are also announcing the beta Amazon AVD Launcher.

Just how fast?

Via Abu Obeida Bakhach, Kindle Developer Programs Product Manager…

“Let’s be clear, Android emulators have a bad reputation. They are slow to start and use. Keeping that in mind, running the x86 system images with a capable GPU and the right virtualization options, you can run apps at near-device speed. But speed alone isn’t enough. We have built the third-generation emulators directly from Fire OS source code to provide the most accurate Kindle Fire emulation.

With Kindle Fire HDX sporting best-in-class hardware, providing true-to-device emulation requires a development machine with an equally solid graphics configuration. Both x86 and ARM system images take full advantage of the GPU. However, the optimal emulation experience is through x86 system images.

To demonstrate how much faster the x86 system images are than the ARM system images, we looked at the performance of Air Patriots, a game from Amazon Game Studios. This is a 74-MB APK that includes complex gameplay code along with a large set of assets. We ran the game on the Kindle Fire HDX 7” emulator, as well as on an actual Kindle Fire HDX 7” tablet.  We hosted the emulator on a Windows 7 machine with a quad-core 3.10 GHz processor, 8 GB of memory, and AMD/ATI Radeon R6570 graphics card.

The result? Fast startup and response time for the x86 system image. The gameplay was nearly identical to that of the tablet.” 

Here are the stats:
 


 

Getting Started

You should first set up the x86 system images for the Kindle Fire emulator as a faster alternative to ARM-based emulation, if your development computer running Windows or OS X has an Intel processor that supports virtualization extensions (VT-x). To determine the capabilities of your Intel processor, visit http://ark.intel.com/.

Typically, the better the overall processor performance, the better the emulator performance.  The performance of an x86 system image can be comparable to a physical Kindle Fire tablet when the emulator is running on a development computer that has a sufficiently capable processor and GPU. Using an x86 system image eliminates the translation of ARM to x86 instructions that occurs at runtime when using the ARM-based emulator.

You can read the full documentation on Setting up Intel® Hardware Accelerated Execution Manager (Intel® HAXM) here.

If you have any issues downloading through the Android SDK Manager here is a direct link I have found helpful in my own installations.

I am using a Macbook Air for this blog post but all of the Intel HAXM drivers and Android AVD work just as well on Windows.
 




Once you have the HAXM drivers successfully installed you will need to make sure you check of Intel x86 support for each API Level/Kindle revision you want to use.  This is done through the Android SDK Manager like you would for any other Android Emulator image.

 


 

You will know that the x86 hardware emulation is successfully running when you first start one of the new emulators as seen below.
 


 

Choosing the correct Kindle Fire Images in the Android SDK Manager

Once you have the Intel HAXM driver installed and working correctly you will need to download the Kindle Fire Images from the Android SDK Manager by following the directions in the Setting Up Your Development Environment faq.

Be sure to select the appropriate Kindle generation under the corresponding Android API Level.  For example, the new Kindle Fire HDX’s are the third generation of Kindle Fire devices and support Level 17 of the Android API.

Android 4.2.2 API 17:

  • SDK Platform
  • ARM EABI v7a System Image (emulator prerequisite for ARM system images)
  • Intel x86 Atom System Image (emulator prerequisite for x86 system images)
  • Kindle Fire HD 7" (3rd Generation) (ARM and x86 system images for emulator)
  • Kindle Fire HDX 7" (3rd Generation) (ARM and x86 system images for emulator)
  • Kindle Fire HDX 8.9" (3rd Generation) (ARM and x86 system images for emulator)

Also, do not forget the Extras section as I have seen some developers miss the Kindle Device definitions specifically, which will result in blank entries in the Amazon AVD Launcher.

  • Extras:
    • Kindle Fire Device Definitions
    • Kindle Fire USB Driver (not applicable for OS X)
    • Android Support Library
    • Intel x86 Emulator Accelerator (HAXM) (emulator prerequisite for x86 system images)
    • Amazon AVD Launcher

Running the new Amazon AVD Launcher

Now that we have full Intel x86 image support and working Kindle Fire Images form the Android SDK we need to set up the Amazon AVD Launcher.  You can read the installation faq here for step by step instructions.

The Amazon AVD Launcher tool simplifies the process of creating an Android Virtual Device (AVD) by allowing you to select the device you want to emulate and automatically filling in the correct settings.  As a result, the Amazon AVD Launcher is a more reliable way of configuring the emulator than manually configuring it with the Android AVD Manager.

You will find the new Amazon AVD Launcher executable in the Android sdk/extras/Amazon/ folder of your local Android SDK installation.  Upon running it for the first time you will be treated to a graphical list of all the Kindle Fire Images you have installed and their associated specs as seen below.
 


 

Click the Create AVD button or switch over to the Amazon AVD tab and select New to create a new image.  You will notice the options are much more streamlined now and selecting the appropriate Kindle Fire image will automatically set all of the options for you.  No more guess work!
 


 

You can name the new AVD image whatever you chose.  Make sure that you have the Intel x86 image support selected and that Host GPU is clicked.
 


 

I also recommend clicking on the Advanced Options tab and selecting both My Computer Keyboard for Keyboard and Webcam (Webcam0 for my Macbook Air as seen in the screenshot) for the front camera.  This will be sure to use your computer’s keyboard instead of software emulation as well as its webcam
 

 

You can leave all of the Memory settings at the default levels they have already been set to the most optimized for the image automatically.  You can then start the image by clicking the Start button in the Amazon AVD Launcher and will be greeted with a couple of launch options, mostly associated with how you want to fit the emulator on your screen and the ability to wipe the virtual machine’s data.
 


 

Congratulations, you now have a fully functional Kindle Fire image running at hardware-virtualized speeds!
 


 

Do not forget if you are using an existing code base to change your target emulator from your previous AVD to the new Amazon AVD image you have created as seen below.
 


 

Conclusion

We found that 80% of developers ran into trouble using the Android Virtual Device Manager to create, configure and launch AVDs.  Instead of fiddling with build targets, guessing API levels, RAM and other settings, we know you want to instantly create and launch an emulator and just focus on developing and testing your app.

At Amazon, we believe that granting developers a choice of tools ensures a more flexible and productive mobile development experience. By preserving the Android definition of an AVD, the Amazon AVD Launcher is fully compatible with the Android Virtual Device Manager, allowing Kindle Fire AVDs created by either tool to be launched on the other.

Warning: Once we loaded games on emulators with the right GPU emulation and x86 system images, we had problems pulling away testers hooked on playing at device-like speed!

Please provide feedback at kindle-sdk-beta@amazon.com or the Kindle Development Tools forum.

 

-Dave (@TheDaveDev)

 

October 11, 2013

David Isbitski

What an exciting time it is to be a modern Web Developer!  No longer confined to just a browser the web has become a platform of dynamic interactive applications and games.  With the rise of technologies like HTML5 Canvas and WebGL, to the scaling power of Node.js, those same web skills can now be used to create engaging Apps on mobile devices.  With the Amazon’s Mobile Web App Distribution program you can even distribute your Web Apps on Kindle Fire and select Android devices in nearly 200 countries around the globe.

We will be on site at HTML5DevConf giving open office hours to help answer any technical or app submission process questions you have as well as a session on optimizing HTML5 for distribution on Mobile Devices.

From the HTML5DevConf website

The HTML5 Developers Conference continues to grow into the largest software developer focused conference in the known universe, with the finest technical speakers in the cosmos. Our core strengths are in mobile web cross platform technologies such as HTML, JavaScript, CSS, Node.js, coding and design for client side, apps and servers.

Our next conference is at Moscone North in downtown San Francisco on October 22nd & 23rd.  Registration link: http://html5devconf-oct13.eventbrite.com/
 

Hope to see you there!


-Dave (@TheDaveDev)

 

October 08, 2013

David Isbitski

My colleagues Peter Heinrich and Mike Hines recently sat down and chatted about all the mobile and gaming developer goodness coming at AWS re:Invent 2013 in a few weeks.

Click here to watch their exclusive interview on YouTube!

AWS re:Invent is the largest gathering of developers and technical leaders from the AWS community from around the world.  This year marks the addition of a dedicated Mobile and Gaming Track that has everything you need to get your apps and games scalable and ready to engage customers. 

Presentations are highly technical and include developers sharing their own real world experiences.  Everything from Mobile App Performance by New Relic to High-Performance Ops for Mobile Gaming by GREE and peak into Building Killzone Servers from Guerrilla Games and SCE Online Technology Group.

Besides all of the great networking you would expect at a conference this size Peter also informs us of some exciting events.  One of which is the new Game Day event, a place for developers to form teams and build a game infrastructure in the cloud.  Teams will get to use load and server failures to try and break the other team’s system.  Participants will be able to get real experience fixing systems on the fly.

Head over to reinvent.awsevents.com to register.  We look forward to seeing you in November!

-Dave (@TheDaveDev)

 

October 03, 2013

David Isbitski

If you are in the UK please come out and join us at Droidcon this month! We will be covering how to build apps for the all-new Kindle Fire HDX, participating in the hackathon, and conducting one-on-one technical open office hours.

From the Droidcon website

Droidcon is the UKs largest conference dedicated to Android development and applications. It is an unique opportunity to meet the Android community, get hands on knowledge about Android development and see the latest in Android applications and technologies. 

The multi-track conference attracts the best speakers from the Android development community, on the latest topics, tablets, enterprise, design ADK. The barcamp is a unique opportunity to share and exchange experience with the 600 Android enthusiasts present at the event. The democamp is a privileged moment to see or show the latest in Android software and hardware applications.

A Hackathon and Workshops will take place after Droidcon on October 26 & 27, 2013.

Hope to see you there!

-Dave (@TheDaveDev)

 

Want the latest?

appstore topics

Recent Posts

Archive