Checking recent app changelogs is getting more and more difficult
Google has been trying different things with the Play Store, including changes that have been enabled and reverted so many times we've lost track — hello, account picker and review section. However, not all of these are welcome modifications, like the controversial removal of update notifications. If your workaround was to manually check your recently updated apps, Google has just made that task a little bit more difficult by messing up the Play Store's sorting method.
Moment is one of the largest manufacturers of custom lens attachments for smartphones, with its cases (required for mounting the lenses) available for most flagship Android phones. The company also has a Pro Camera application for shooting manual photos and video, but now Moment is giving up on the Android version of the app.
"We love Android," wrote co-founder Marc Barros in an email sent to Moment users, "but unfortunately, we don't have the engineering bandwidth to continue developing this app.
Last month, Google announced that 120 games are slated to hit Stadia this year. That's a serious jump from the catalog currently on offer, but we haven't heard much about specific new releases since.
You probably don't think much about the web browser on your phone. No matter what browser you've grown accustomed to using, there are plenty of other options that might improve your experience. Unlike Apple, which requires all third-party browsers to use the Safari rendering engine (and doesn't allow other browsers to be the system default), Google allows any web browser with any engine to be published to the Play Store — giving Android phones and tablets more options for browsing the web than any iOS device.
Don't miss out on the sales for Old Man's Journey, Back to Bed, and ELOH
Welcome to Friday, everyone. The end of the week is here, and so I have a few app and game sales to share with everyone today. While it would appear today is a slower day for sales, there are a few notable games in the list, such as Old Man's Journey, Back to Bed, and ELOH. As always, I've highlighted the interesting titles in bold to make discovery easier.
Using app-generated one-time passcodes (OTPs) is perhaps the easiest and most cost-effective way to add a second authentication layer to all your online accounts and services. They eliminate almost any chances of an unauthorized person accessing your accounts even if they’ve got hold of your passwords. But it would be a scary situation if the passcodes within those apps were compromised, and that's just the threat Google Authenticator is facing right now thanks to some banking malware.
No need to worry about losing contacts stored on your phone anymore
Google Contacts is particularly useful if you want to sync your contacts to your Google account and ensure you never lose them, but until now it hasn't been able to back up information stored on a phone's internal storage. On many Android phones, this is where details end up being stored thanks to alternative apps included by OEMs, so Google has now added a feature that will capture these contacts.
Late last year, the Contacts app gained the ability to move individual contacts from your phone's external storage to your Google account (and vice versa) without doing a full export or import.
Since most podcasts start with a jingle and a small intro, possibly even ads, several podcast players have implemented a skip feature that lets you avoid those. You set up a specific duration per show (anything from a few seconds to a couple of minutes) and the app will automatically jump over that part and start playing. Pocket Casts is now adding a similar option, but for outros.
YouTube Kids has proven to be a popular way for parents to give their children access to a limited collection of YouTube content, even if that collection occasionally includes videos depicting suicide and cannibalism (oops!). The service has slowly been expanding its global reach, and now Google has added 11 more nations to the availability list.
According to Google support documents, YouTube Kids has just become available in 11 more countries, all located in Central and South America.
A good-faith effort to list all the apps you can get for free on Play Pass
People have been wondering about the full roster of launch titles featured in Google Play Pass — supposedly, we've got over 350 of them to go through. Here's the thing: Google doesn't make it easy to suss out all of the apps participating in the program, whether through the Play Store or external documentation on associated Google sites. Great. Well, guess what? We're gonna give it a try and list as many apps on Play Pass as possible.
TuneIn is one of the most-recognized apps for listening to online radio stations and podcasts, especially since it has been available on Android for nearly a decade. A minor update is now going out on the Play Store that updates the playback notification with rewind/fast forward buttons, though there's still no support for Android 10's seek bar.
TuneIn v23.7 updates the playback notification with buttons to rewind and fast-forward the current content in 30-second intervals.
Everyothermonth, a legitimate, useful app gets kicked off the Play Store while sleazy applications with bad intentions thrive. Google's removal algorithms often cite arbitrary reasons as in the recent case of Slide for Reddit. The third-party client was removed for including a screenshot of an article in its listing that contained the word "ISIS" (which had been there for years).
The Shazam app was Apple-fied with prominent Apple Music tags and links for your identified songs soon after the tech titan completed its acquisition back in 2018. But still, it could only connect to the Spotify app for exchanging your playlists, but not Apple’s own streaming app. That's changing now as Shazam has added the option (currently in beta) to link your Apple Music account for a similar cross-app integration.
Pressing the settings cog on the Library page in Shazam will show you the option to connect with either of the two popular music streaming services.
Google AdSense is the most popular ad platform on the web, but the Android app was last updated in 2017. There's a reason for that — Google wants to replace both it and the iOS app with a cross-platform web application. Now the new mobile site is here, so business owners (or YouTube vloggers) can check their earnings on the go.
Google said last year that it planned to roll out a mobile interface for the existing web app before the end of 2019, but the timeline seems to have slipped a bit, since we're almost to March 2020.
You'll have to manually set the duration per podcast though
Since most podcasts start with a jingle and a small intro, possibly even ads, several podcast players have implemented a skip feature that lets you avoid those. You set up a specific duration per show (anything from a few seconds to a couple of minutes) and the app will automatically jump over that part and start playing. Pocket Casts is now adding a similar option, but for outros.
Go to any show, tap on settings, and look for the new Skip last option.
Behaviour Interactive has announced that its asymmetric survival horror game Dead by Daylight is coming to Android and iOS before the end of 2019. It will be a free release, and the beta will land in select regions before the official worldwide launch.
The trailer above shows off a few seconds of gameplay at the tail end, though it's conspicuously provided in a small window instead of fullscreen.
Much like Samsung, Xiaomi makes its own alternatives to various Google apps that are usually tied to its notoriously heavy MIUI Android skin. In the past couple of years, the Chinese company has moved apps like Mi Calculator and Mi FileExplorer to the Play Store for faster delivery of updates and to open them up even to non-Xiaomi phones. Joining that small list of apps is the redesigned Mi Browser that likely replaces Xiaomi’s Mint Browser, which debuted in late 2018.
Scribble on your photos without leaving your email app
Outlook is one of the most popular third-party email apps on Android, and it keeps getting better. Only a few months after rolling out dark mode support and POP3 integration, the app has added the ability to annotate photos and documents using your phone's camera.
While composing an email, you can tap on the camera button to take a photo or scan a document. That functionality isn't new, but what is new is that you can now draw on top of images.
Welcome to Wednesday, everyone. It's the middle of the week, and so this is a slower time for sales, but that doesn't mean I don't have a few standouts to share today. So if you're looking for a solid puzzler, Mirage: Illusions is completely free today, and if you enjoy spooky adventure games, then Distraint 2 is a solid pickup at more than half-off. As always, I've highlighted the interesting titles in bold to make discovery easier.
Samsung started updating Good Lock, its one-stop-shop for customization, earlier this month to support Android 10. Notably absent was Sound Assistant, a tool offering in-depth tweaks to the system volume panel, as well as delving into the volume mixer to get things sounding just right. Today, Sound Assistant joins the rest of the Good Lock family with a new look and new features.
Most notable on the list of changes is what Samsung calls Sero, a theme that moves the volume slider to the side of the screen, matching the design stock Android switched to with Pie.
Nope, EA still hasn't actually released Plants vs. Zombies 3
Electronic Arts recently revealed that Plants vs. Zombies 3 has finally left its pre-alpha testing phaseand has now entered into a soft-launch release cycle for select territories, and the Philippines is the first country to gain access. More countries will be added to the soft launch list in the future, though EA is still tight-lipped about any sort of expected time frame, and so the development of Plants vs. Zombies 3 will continue to trudge along during this technical testing phase.
Your unwanted email will stick with you for 30 days
While the concept of "inbox zero" is appealing in theory, many of us just fail to achieve it. Instead, we do our best to archive or label messages, mark unwanted email as spam, and delete some threads when we're completely done with them. If you often use the last two options, you'll find Gmail for Android has introduced a new annoyance in your workflow as it's recently removed the handy option to completely get rid of spam and deleted messages.
Google's new machine-learning algorithm detects 10% more malware
Gmail's spam and malware filters are among the best in the industry and block 99.9% of threats from reaching inboxes, according to Google. That doesn't mean there isn't room for improvement, as 0.1% can scale up to quite a substantial absolute number considering Gmail's big user base. Google has identified that malware in attachments (Office documents, in particular) tends to be dangerous due to its ever-changing nature, so it has developed an improved malware scanner that utilizes machine learning to stay ahead of the curve.
The feature had disappeared with the website redesign
Last year, Google finished its slow rollout of the newly Material-themed web interface for Contacts. While the visual upgrade was inarguably prettier, it ended up losing a pretty handy feature: the ability to add multiple names and/or email addresses at once. Fortunately, the feature recently reappeared, and you're now able to create multiple contacts, choose a label for them, or import them from a CSV or vCard file.
To create multiple contacts, you'll click on the "Create contact" button as usual, and select "Create multiple contacts." A new window will appear that lets you add names and emails manually, or import them from a file.
Have you ever tried to encrypt data in your app? As a developer, you want to keep data safe, and in the hands of the party intended to use. But if you’re like most Android developers, you don’t have a dedicated security team to help encrypt your app’s data properly. By searching the web to learn how to encrypt data, you might get answers that are several years out of date and provide incorrect examples.
The Jetpack Security (JetSec) crypto library provides abstractions for encrypting Files and SharedPreferences objects. The library promotes the use of the AndroidKeyStore while using safe and well-known cryptographic primitives. Using EncryptedFile and EncryptedSharedPreferences allows you to locally protect files that may contain sensitive data, API keys, OAuth tokens, and other types of secrets.
Why would you want to encrypt data in your app? Doesn’t Android, since 5.0, encrypt the contents of the user's data partition by default? It certainly does, but there are some use cases where you may want an extra level of protection. If your app uses shared storage, you should encrypt the data. In the app home directory, your app should encrypt data if your app handles sensitive information including but not limited to personally identifiable information (PII), health records, financial details, or enterprise data. When possible, we recommend that you tie this information to biometrics for an extra level of protection.
Jetpack Security is based on Tink, an open-source, cross-platform security project from Google. Tink might be appropriate if you need general encryption, hybrid encryption, or something similar. Jetpack Security data structures are fully compatible with Tink.
Key Generation
Before we jump into encrypting your data, it’s important to understand how your encryption keys will be kept safe. Jetpack Security uses a master key, which encrypts all subkeys that are used for each cryptographic operation. JetSec provides a recommended default master key in the MasterKeys class. This class uses a basic AES256-GCM key which is generated and stored in the AndroidKeyStore. The AndroidKeyStore is a container which stores cryptographic keys in the TEE or StrongBox, making them hard to extract. Subkeys are stored in a configurable SharedPreferences object.
Primarily, we use the AES256_GCM_SPEC specification in Jetpack Security, which is recommended for general use cases. AES256-GCM is symmetric and generally fast on modern devices.
val keyAlias = MasterKeys.getOrCreate(MasterKeys.AES256_GCM_SPEC)
For apps that require more configuration, or handle very sensitive data, it’s recommended to build your KeyGenParameterSpec, choosing options that make sense for your use. Time-bound keys with BiometricPrompt can provide an extra level of protection against rooted or compromised devices.
Important options:
userAuthenticationRequired() and userAuthenticationValiditySeconds() can be used to create a time-bound key. Time-bound keys require authorization using BiometricPrompt for both encryption and decryption of symmetric keys.
unlockedDeviceRequired() sets a flag that helps ensure key access cannot happen if the device is not unlocked. This flag is available on Android Pie and higher.
Use setIsStrongBoxBacked(), to run crypto operations on a stronger separate chip. This has a slight performance impact, but is more secure. It’s available on some devices that run Android Pie or higher.
Note: If your app needs to encrypt data in the background, you should not use time-bound keys or require that the device is unlocked, as you will not be able to accomplish this without a user present.
// Custom Advanced Master Key
val advancedSpec = KeyGenParameterSpec.Builder(
"master_key",
KeyProperties.PURPOSE_ENCRYPT or KeyProperties.PURPOSE_DECRYPT
).apply {
setBlockModes(KeyProperties.BLOCK_MODE_GCM)
setEncryptionPaddings(KeyProperties.ENCRYPTION_PADDING_NONE)
setKeySize(256)
setUserAuthenticationRequired(true)
setUserAuthenticationValidityDurationSeconds(15) // must be larger than 0
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
setUnlockedDeviceRequired(true)
setIsStrongBoxBacked(true)
}
}.build()
val advancedKeyAlias = MasterKeys.getOrCreate(advancedSpec)
Unlocking time-bound keys
You must use BiometricPrompt to authorize the device if your key was created with the following options:
userAuthenticationRequired is true
userAuthenticationValiditySeconds > 0
After the user authenticates, the keys are unlocked for the amount of time set in the validity seconds field. The AndroidKeystore does not have an API to query key settings, so your app must keep track of these settings. You should build your BiometricPrompt instance in the onCreate() method of the activity where you present the dialog to the user.
BiometricPrompt code to unlock time-bound keys
// Activity.onCreate
val promptInfo = PromptInfo.Builder()
.setTitle("Unlock?")
.setDescription("Would you like to unlock this key?")
.setDeviceCredentialAllowed(true)
.build()
val biometricPrompt = BiometricPrompt(
this, // Activity
ContextCompat.getMainExecutor(this),
authenticationCallback
)
private val authenticationCallback = object : AuthenticationCallback() {
override fun onAuthenticationSucceeded(
result: AuthenticationResult
) {
super.onAuthenticationSucceeded(result)
// Unlocked -- do work here.
}
override fun onAuthenticationError(
errorCode: Int, errString: CharSequence
) {
super.onAuthenticationError(errorCode, errString)
// Handle error.
}
}
To use:
biometricPrompt.authenticate(promptInfo)
Encrypt Files
Jetpack Security includes an EncryptedFile class, which removes the challenges of encrypting file data. Similar to File, EncryptedFile provides a FileInputStream object for reading and a FileOutputStream object for writing. Files are encrypted using Streaming AEAD, which follows the OAE2 definition. The data is divided into chunks and encrypted using AES256-GCM in such a way that it's not possible to reorder.
val secretFile = File(filesDir, "super_secret")
val encryptedFile = EncryptedFile.Builder(
secretFile,
applicationContext,
advancedKeyAlias,
FileEncryptionScheme.AES256_GCM_HKDF_4KB)
.setKeysetAlias("file_key") // optional
.setKeysetPrefName("secret_shared_prefs") // optional
.build()
encryptedFile.openFileOutput().use { outputStream ->
// Write data to your encrypted file
}
encryptedFile.openFileInput().use { inputStream ->
// Read data from your encrypted file
}
Encrypt SharedPreferences
If your application needs to save Key-value pairs - such as API keys - JetSec provides the EncryptedSharedPreferences class, which uses the same SharedPreferences interface that you’re used to.
Both keys and values are encrypted. Keys are encrypted using AES256-SIV-CMAC, which provides a deterministic cipher text; values are encrypted with AES256-GCM and are bound to the encrypted key. This scheme allows the key data to be encrypted safely, while still allowing lookups.
Mozilla has several flavors of its Firefox browser for Android, with 'Firefox Lite' serving as the main choice for Indonesia and other Asian countries. Despite its name, the Lite browser has become more and more bloated over the past few months, and now there's a travel feature that isn't very helpful.
A recent update for Firefox Lite adds a new Travel button to the New Tab Page, where you can search for a location.
It would appear that everyone's favorite new MOBA trend is Auto Chess, so of course, Valve has their own version in the works that's built off of Dota. The game is called Dota Underlords, and it just entered into a limited beta where Dota 2 Battle Pass owners can jump in early to test the waters on PC.
Just last week, Google announced that several games in the SteamWorld series were making their way to Stadia — with Dig 2 and Quest being Pro freebies upon launch. Turns out that's happening sooner than expected: SteamWorld Dig 2 and SteamWorld Quest will be Stadia Pro's free games in March, along with racing sim Grid.
This will be the first month since launch Stadia has offered three free Pro games — historically, it's been two per month.
Yet another F2P collection-based RPG from Square Enix
Much like Dragon Quest of the Stars (coincidentally released today), Romancing SaGa Re;UniverSe is an older gacha RPG that's coming to the West. You see, Square Enix actually released Romancing SaGa Re;UniverSe in Japan back in 2018, and apparently the title is coming to the West with an English translation in tow sometime this summer, and guess what, this English version just landed on the Play Store as a pre-registration listing.
Autocomplete, history, and contextual suggestions are part of it
For the times when you don't want to speak to your phone and tell the whole world you're turning on your bathtub or locking your front door, Google Assistant offers a keyboard input method which lets you type your requests instead. Suggestions used to show up when using this input, but then they disappeared either entirely or for many people. Now, they seem to be back for lots of users.
Simply trigger Assistant and tap the keyboard button at the bottom.
The streaming service is being more transparent about its most viewed movies and series
Netflix has long shown you lists of popular content on its app's home screen, but so far, you could never see how exactly titles in those ranked. The company is looking to change that as it has announced that it's starting to roll out top 10 lists of most popular series and movies across all platforms and form factors.
The top 10 chart comes in the form of a new side-scrolling carousel with a unique design that puts huge numbers next to film and TV show covers, indicating which position they take in your country's ranking.
It also adds auto-generated albums to curate your photos
OnePlus regularly updates its gallery app to introduce new features and improvements, even if some of those features have been around in other photo apps for quite a while. The latest release has added facial recognition to group your photos, scene recognition to combine pics from the same locations, and auto-generated albums that will give you a collage when a barrage of photos is taken.
Most other major gallery apps have been offering these same features for a while, so it's great to see OnePlus bringing more to the table.
We are excited to announce the stable release of Android Studio 3.6 with a targeted set of features addressing quality in primarily code editing and debugging use cases. This is our first release after the end of Project Marble, which was focused on making the fundamental features and flows of the Integrated Development Environment (IDE) rock-solid. We learned a lot from Project Marble and in Android Studio 3.6 we introduce a small set of features, polished existing features, and spent a notable effort addressing bugs and improving underlying performance to ensure we meet the high quality bar we set in the past year.
Some highlights of Android Studio 3.6 include a new way to quickly design, develop and preview app layouts using XML, with a new Split View in the design editors. Additionally, you no longer have to manually type in GPS coordinates to test location with your app because we now embedded Google Maps right into the Android Emulator extended control panel. Finally, we’ve made it easier to optimize your app and find bugs with automatic memory leak detection for Fragments and Activities. We hope all of these features help you be happier and more productive while developing on Android.
Thank you to those who gave your early feedback in preview releases. Your feedback helped us iterate and improve features in Android Studio 3.6. If you are ready for the next stable release, and want to use a new set of productivity features, Android Studio 3.6 is ready to download for you to get started.
Below is a full list of new features in Android Studio 3.6, organized by key developer flows.
Design
Split view in design editors
Design editors, such as the Layout Editor and Navigation Editor, now provide a Split view that enables you to see both the Design and Code views of your UI at the same time. Split view replaces and improves upon the earlier Preview window, and can be configured on a file-by-file basis to preserve context information like zoom factor and design view options, so you can choose the view that works best for each use case. To enable split view, click the Split icon in the top-right corner of the editor window. Learn more.
Split view for design editors
Color picker resource tab
In this release we wanted to make it easier to apply colors you have defined as color resources. In Android Studio 3.6, the color picker populates the color resources in your app for you to quickly choose and replace color resources values. The color picker is accessible in the design tools as well as in the XML editor.
Color picker resource tab
Develop
View binding
View binding is a feature that allows you to more easily write code that interacts with views by providing compile-time safety when referencing views in your code. When enabled, view binding generates a binding class for each XML layout file present in that module. In most cases, view binding replaces findViewById. You can reference all views that have an ID with no risk of null pointer or class cast exceptions.These differences mean that incompatibilities between your layout and your code will result in your build failing at compile time rather than at runtime. To enable view binding in your project, include the following in each module’s build.gradle file:
android {
viewBinding.enabled = true
}
For more information, check out this blog post by one of our developer experts.
Android NDK updates
The following Android NDK features in Android Studio, previously supported in Java, are now also supported in Kotlin:
Navigate from a JNI declaration to the corresponding implementation function in C/C++. View this mapping by hovering over the C or C++ item marker near the line number in the managed source code file.
Automatically create a stub implementation function for a JNI declaration. Define the JNI declaration first and then type “jni” or the method name in the C/C++ file to activate.
Android Studio 3.6 includes the IntelliJ 2019.2 platform release. This IntelliJ release includes many improvements from a new services tool window to much improved startup times. Learn more
Add classes with Apply Changes
You can now add a class and then deploy that code change to your running app by clicking either Apply Code Changes or Apply Changes and Restart Activity.
To learn more about the difference between these two actions, see Apply Changes.
Build
Android Gradle Plugin (AGP) updates
Android Gradle plugin 3.6 and higher includes support for the Maven Publish Gradle plugin, which allows you to publish build artifacts to an Apache Maven repository. The Android Gradle plugin creates a component for each build variant artifact in your app or library module that you can use to customize a publication to a Maven repository. This change will make it easier to manage the release lifecycle for your various targets. Learn more
Additionally, Android Gradle plugin has made significant performance improvement for annotation processing/KAPT for large projects. This is caused by AGP now generating R class bytecode directly, instead of .java files.
New packaging tool
The Android build team is continuously working on changes to improve build performance, and in this release we changed the default packaging tool to zipflinger for debug builds. Users should see an improvement in build speed, but you can also revert to using the old packaging tool by setting android.useNewApkCreator=false in your gradle.properties file.
Edit your gradle.properties file to disable the new packaging tool
Test
Android Emulator - Google Maps UI
Android Emulator 29.2.12 includes a new way for app developers to interface with the emulated device location. We embedded the Google Maps user interface in the extended controls menu to make it easier to specify locations and also to construct routes from pairs of locations. Individual points can be saved and re-sent to the device as the virtual location, while routes can be generated through typing in addresses or clicking two points. These routes can be replayed in real time as locations along the route are sent to the guest OS.
Android Emulator location UI with real-time location streaming
Multi-display support
Emulator 29.1.10 includes preliminary support for multiple virtual displays. As more devices are available that have multiple displays, it is important to test your app on a variety of multi-display configurations. Users can configure multiple displays through the settings menu (Extended Controls > Settings).
Multi-display support in Android Emulator
Configure secondary displays in the Android Emulator Extended Controls Panel
Resumable SDK downloads
When downloading Android SDK components and tools using the Android Studio SDK Manager, Android Studio now allows you to resume downloads that were interrupted (for example, due to a network issue) instead of restarting the download from the beginning. This enhancement is especially helpful for large downloads, such as the Android Emulator or system images, when internet connectivity is unreliable.
Pause and resume SDK downloads
In-place updates for imported APKs
Android Studio allows you to import externally-built APKs to debug and profile them. Previously, when changes to those APKs were made, you would have to manually import them again and reattach symbols and sources. Android Studio 3.6 now automatically detects changes made to the imported APK file and gives you an option to re-import it in-place.
Attach Kotlin sources to imported APKs
We added support for attaching Kotlin source files to imported APKs. To learn more, see Attach Kotlin/Java sources.
Attach Kotlin/Java sources to imported APKs
Optimize
Leak detection in Memory Profiler
Based on your feedback, we’ve added in the Memory Profiler the ability to detect Activity and Fragment instances which may have leaked. To get started, capture or import a heap dump file in the Memory Profiler, and check the Activity/Fragment Leaks checkbox to generate the results. For more information on how Android Studio detects leaks, please see our documentation.
Detect leaked Activities and Fragments in the Memory Profiler
Deobfuscate class and method bytecode in APK Analyzer
When using the APK Analyzer to inspect DEX files, you can now deobfuscate class and method bytecode. While in the DEX file viewer, load the ProGuard mappings file for the APK you’re analyzing. When loaded, you will be able to right-click on the class or method you want to inspect by selecting Show bytecode. Learn more
Deobfuscate class and method bytecode by selecting Show Bytecode in the APK Analyzer
To recap, Android Studio 3.6 includes these new enhancements & features:
Design
Split View in Design Editors
Color Picker Resource Tab
Develop
View binding
Android NDK support updates
IntelliJ Platform Update
Add classes with Apply Changes
Build
Android Gradle Plugin (AGP) Updates
New packaging tool
Test
Android Emulator Google Maps UI
Multi-display support
Resumable SDK downloads
In-place updates for imported APKs
Optimize
Leak detection in Memory Profiler
Deobfuscate class and method bytecode in APK Analyzer
Attach Kotlin sources to imported APKs
Getting Started
Download
Download Android Studio 3.6 from the download page. If you are using a previous release of Android Studio, you can simply update to the latest version of Android Studio. To use the mentioned Android Emulator features make sure you are running at least Android Emulator v29.2.12 downloaded via the Android Studio SDK Manager.
As mentioned above, we appreciate any feedback on things you like, and issues or features you would like to see. If you find a bug or issue, feel free to file an issue. Follow us -- the Android Studio development team ‐ on Twitter and on Medium.