The 2018 version constitutes a comprehensive rewrite of the app. For many years, the app has used a ContentProvider + SyncAdapter architecture. This year, we rewrote the app using Architecture Components and brought the code in sync with the Android team’s current recommendations for building modern apps.

Architecture

We followed the recommendations laid out in the Guide to App Architecture for writing modular, testable and maintainable code when deciding on the architecture for the app. We kept logic away from Activities and Fragments and moved it to ViewModels. We observed data using LiveData and used the Data Binding Library to bind UI components in layouts to the app’s data sources.

The overall architecture of the app can be summarized in this diagram:

We used a Repository layer for handling data operations. IOSched’s data comes from a few different sources — user data is stored in Cloud Firestore (either remotely or in a local cache for offline use), user preferences and settings are stored in SharedPreferences, conference data is stored remotely and is fetched and stored in memory for the app to use — and the repository modules are responsible for handling all data operations and abstracting the data sources from the rest of the app. If we ever wanted to swap out the Firestore backend for a different data source in the future, our architecture allows us to do so in a clean way.

We implemented a lightweight domain layer, which sits between the data layer and the presentation layer, and handles discrete pieces of business logic off the UI thread. Examples.

We used Dagger2 for dependency injection and we heavily relied on dagger-android to abstract away boilerplate code.

We used Espresso for basic instrumentation tests and JUnit and Mockito for unit testing.

Firebase

The use of Firebase technologies has grown in the app as the Firebase platform has matured. The 2018 version uses the following Firebase components:

Cloud Firestore is our source for all user data (events starred or reserved by a user). Firestore gave us automatic sync and also seamlessly managed offline functionality for us.Firebase Cloud Functions allowed us to run backend code. The reservations feature heavily depended on Functions checking a user’s status (only attendees were allowed to make reservations), checking space availability and persisting reservation status in Firestore.Firebase Cloud Messaging let us inform the app about changes to conference data on our server. Conference data is mostly static, but it does change from time to time, especially after the keynote. The app has traditionally used a ping-and-fetch model when working with conference data, and we retained that usage this year.Remote Config helped us manage in-app constants. In previous years, we had found ourselves unable to inform users when data not directly related to the conference schedule — WiFi information, conference shuttle schedule, etc. — changed unexpectedly. Remote Config helped us update such values in a lightweight manner.

Kotlin

We made an early decision to rewrite the app from scratch to bring it in line with modern Android architecture. Using Kotlin for the rewrite was an easy choice: we loved Kotlin’s expressive, concise, and powerful syntax; we found that Kotlin’s support for safety features including nullability and immutability made our code more resilient; and we leveraged the enhanced functionality provided by Android Ktx extensions.

Material Design

At I/O 2018, the Material Design team announced Material Theming, giving apps much greater ability to customize Material Design to bring more of their product’s brand. As we launched the app before Material Theming, we couldn’t use all of the new components but we managed to sneak a couple in like the new Bottom App Bar with inset Floating Action Button and we were able to incorporate a lot of the conference’s branding elements.

Future plans

The rewrite of the app brings the code in sync with Android’s opinionated recommendations about building apps, and it resulted in a cleaner, more maintainable codebase. We’ll continue working on the app, incorporating JetPack components as they become available and finding opportunities to showcase platform features that are good fits for the app. Developers can follow changes to the code on GitHub.

Switching back and forth between apps is something most of us do on our phones each day. It’s a pretty simple task that’s seen some minor improvements over the years, but with Android Pie, Google gave this a huge overhaul both aesthetically and functionally.

If you want to learn more about the app switcher UI in Android Pie, keep on reading.

How to open/close the app switcher

Rather than tapping the Recents button to open the app switcher, Android Pie requires you to do a small swipe up from the bottom of your screen.

Once you do this, you’ll be taken to the new UI for viewing your recent apps. You can scroll left and right through all of the apps that show up here, and when you want to open one, either tap on it or slide down on it as if you’re dragging it to the bottom of your phone.

If you hop into the app switcher and then realize you want to exit it, either swipe down from the dock (the shaded area near the bottom) or tap the back button that appears to the left of the home pill.

How to copy text

One brand new feature that comes to the app switcher in Android Pie is the ability to copy text directly from the app previews in the switcher UI.

After opening up the app switcher, hold your finger down on any bit of text in one of the previews. When you do this, you’ll be able to drag your two handles around to precisely select the text you want and get quick buttons for copying it or sharing it with another app.

It’s a pretty small feature, but one that’s proven to be incredibly useful more times than not.

We’re a virtual company made up of tech experts from across the globe. We live and breathe Android phones, and use nearly every one to find the best budget picks for you.

The Motorola Moto G6 currently offers the best combination of performance, features and value. It overshadows the competition with its wide availability, fast performance, and support for nearly every network in the world, beating out a number of rivals from Nokia and Honor.

A winner in every respect, from the modern design to the dual camera setup and excellent performance, the Moto G6 represents the pinnacle of Motorola’s dominance in the budget phone space.

Advertisement

Who should buy this phone

Not everyone needs a big, expensive Android phone — especially if they’re looking to buy it outright. At $249 (or less from Amazon’s Prime Exclusive program), the Moto G6 provides 90% of what flagship devices offer at a third of the price. This phone is for anyone coming from an older budget phone, or just looking to simplify and downsize, without losing the core Android experience.

Yes. As of July 2018, the Moto G6 is brand new and will continue to be supported and updated by Motorola for two years or more. And because it’s a budget phone already, the price is unlikely to drop dramatically over the course of its life, so anyone looking for an inexpensive Android phone, now is a great time to pick up the Moto G6.

7 reasons to buy

Great build quality and design for the price
Excellent main rear camera
Good battery life
Compatible with all major U.S. and international carriers
Moto Display adds tremendous value
USB-C fast charging
Available as Amazon Prime exclusive
2 reasons not to buy

Moto G line isn’t known for swift software updates
Lacks NFC
Most people don’t need to spend a lot on a phone anymore

Flagship phones like the Pixel 2 and Galaxy S9 series can be up into the $700 or $800 range, and many of the features that come with them, like wireless charging or waterproofing, aren’t fundamental to a device’s enjoyment. They’re bonus features.

Increasingly, you’re paying so much more for those bonus features that the Law of Diminishing Returns comes into play. At its core, the Moto G6 offers 90% of phones double and triple its cost. A few years ago, that delta would have been a lot more, but the prices of budget components have dropped so much, and retained so much of their more expensive counterparts’ characteristics, that it’s often not worth recommending those expensive flagships anymore.

The Moto G6 and its other budget counterparts on this list have awesome, high-resolution touchscreens, reliable software, and great cameras. Some features, like NFC, drive up manufacturing costs, so you have to weigh whether you need NFC-enabled features like mobile payments. And the Moto G6 also lacks the same graphical power as its more expensive competitors, but most games play without issue, even at medium or high settings, because Android games are designed to function on hardware of all sizes and prices.

The Moto G6 has all the major features you need from a modern smartphone, and the ones it lacks you can easily live without.

Motorola has had five years of practice making the Moto G line into a budget powerhouse; when it designed the first Moto G back in 2013, it eschewed expensive materials like metal and glass and focused instead on the core experience. Starting in 2016, Motorola began finding ways to add important features like fingerprint sensors, and last year, in 2017, the company transitioned the Moto G line to metal. With the sixth-gen lineup, that includes the cheaper Moto G6 Play and more expensive Moto G6 Plus, it’s back to a combination of plastic and glass, it’s a nice visual improvement over previous models.

At the same time, Motorola understands its audience, which is why it added a dual camera setup to the Moto G6. The second camera adds depth effects like portrait mode without sacrificing the excellent pedigree of the main 12MP sensor.

Finally, if you’re in the U.S., the Moto G6 is one of the few sub-$300 phones to work on all four U.S. carriers, and it’s even sold at directly at a couple of carriers, another advantage of Motorola’s long-standing relationship with companies like Verizon.

Alternatives to the Moto G6

Motorola isn’t the only player in town when it comes to cheap phones. In recent years, Honor, a subsidiary of Huawei, and HMD Global, which has reinvigorated the Nokia brand, have kept Motorola on its toes in the budget space. Then there’s Alcatel, which continues to bring down the cost of phone ownership with its new Android Go-powered devices.

Nokia’s lineup of inexpensive Android phones has received an impressive refresh for 2018, and the $250-ish Nokia 6.1 is the best of the lot. It’s made of a single piece of Series 6 aluminum, which should hold up better than the Moto G6’s glass back, and its Snapdragon 630 processor is quite a bit more powerful. It also runs Android One, which means the updates come directly from Google, so they’ll be more timely, and the Nokia 6.1 will receive Android P before the Moto G6.

Everyone knows the Nokia brand, so we were cautiously optimistic when HMD Global, which is made up of a bunch of former Nokia engineers and executives, debuted a full line-up of Android-powered phones. With its second-generation lineup, which includes the inexpensive Nokia 2.1 and beautifully-designed Nokia 7 Plus, the company has hit it out of the park.

We love the Nokia 6.1 because it hits the right sweet spot between performance and value. On the other hand, the phone only works on T-Mobile and AT&T in the U.S., and doesn’t have the same caliber of camera as the Moto G6. And given that it’s running Android One, it lacks some of the value-added software features like Moto Display that we love on the Moto G6.

A larger, more battery-focused version of the Moto G6 is the Moto E5 Plus, which has a massive 5,000mAh battery inside. This phone is sold at carriers in the U.S., including T-Mobile, Sprint, Cricket, and Boost Mobile, so you can’t buy it outright, but it’s also one of the best values in smartphones today. Featuring a 6-inch HD screen and a 12MP camera, the Moto E5 Plus is a fantastic option if you’re going the carrier route.

If you’re locked into the carrier ecosystem, or want to get your phone with a low-cost financing option, getting the Moto E5 Plus from T-Mobile is likely your best bet. At just $9/month for 24 months, the $225 phone is huge and powerful, and retains the same excellent software and camera experience of the Moto G6. Its rear fingerprint sensor is built into the phone’s logo, too, for some extra style.

Another great option in the budget space is the Honor 7X, which features a beautiful, tall 5.93-inch 18:9 screen, a really powerful Kirin processor and, best of all, a 3,340mAh battery, all for $199. Honor, which is owned by Huawei, is able to keep its costs low because it sells more phones than Motorola and Nokia combined. The Honor 7X lacks the nuanced software of either of the above recommendations, but its metal frame covers some really powerful internals.

Honor is one of those companies that, because of Huawei’s problems in the U.S., hasn’t really received its fair share of coverage, and that’s a shame. The Honor 7X is a tremendous phone, especially for its $199 price, and there’s very little it does badly. In other markets, the more expensive Honor 10, takes everything we love about the Honor 7X and improves upon it, while U.S. customers can also enjoy the confusingly-named Honor View10, which shares a lot of the Honor 10’s best traits.

No one thought it was possible, but you can now buy a great Android phone for just under $100. The Alcatel 1X is the latest in the company’s budget lineup, and it’s the first to run Android Oreo Go Edition, Google’s suite of apps and software optimizations to make Android run well on inexpensive hardware.

With the 1X, you lack a lot of the amenities of even the $250 Moto G6 — it’s all plastic, for starters, and only has 1GB of RAM — but if all you need is a basic smartphone to make calls, browse Instagram, and take a few photos, the Alcatel 1X is a fantastic option.

Bottom line

There’s no shortage of awesome Android phones these days, whether you want to spend more than $700, less than $300, or even $100. The above phones represent the best of a set limitation — that of not wanting to overspend on a product that, inevitably, will need to be replaced in a couple of years.

But that’s the beauty of a device that costs a third of what you’d spend on a Galaxy S9 or Pixel 2. It offers 90% of what those phones cost and can be replaced more easily. While you may miss out on some of the more advanced features like waterproofing and wireless charging, and you may not receive as many updates, or for as long, these phones represent a new breed of budget devices you can feel confident in buying. The Moto G6 is the best of the bunch but they are all great in different ways.

Updated July 2018: This guide was updated to add the Moto E5 Plus, which is a great option if you want to buy through a carrier.

Credits — The team that worked on this guide

Andrew Martonik is the Executive Editor, U.S. at Android Central. He has been a mobile enthusiast since the Windows Mobile days, and covering all things Android-related with a unique perspective at AC since 2012. For suggestions and updates, you can reach him at andrew.martonik@androidcentral.com or on Twitter at @andrewmartonik.

Jerry Hildenbrand is Mobile Nation’s Senior Editor and works from a Chromebook full time. Currently he is using Google’s Pixelbook but is always looking at new products and may have any Chromebook in his hands at any time. You’ll find him across the Mobile Nations network and you can hit him up on Twitter if you want to say hey.

Daniel Bader is the Managing Editor of Android Central. As he’s writing this, a mountain of old Android phones is about to fall on his head, but his Great Dane will protect him. He drinks way too much coffee and sleeps too little. He wonders if there’s a correlation.

You don’t have to be a software developer to know your way around the Android Debug Bridge.

For a lot of us, the fact that we can plug our Android phone into a computer and interact with it is a big plus. Besides the times when we’ve broken something and need to fix it, there are plenty of reasons why an advanced Android user would want to talk to their device. To do that, you need to have a few tools and know a few commands. That’s what we’re going to talk about today.

Granted, this won’t be the end-all be-all discussion of adb commands, but there are 10 basic commands everyone should know if they plan to get down and dirty with the command line.

You’ll need some tools and getting them is easy. Head on over to the Android developer’s site. You can either install the full Android Studio package if you want extra debugging tools or you can scroll down to the bottom of the page and download just the command line tools. Unless you’re developing or debugging something on or for your phone, you’ll want just the command line tools.

If you’re using Windows, there’s one more step. Visit the manufacturer’s page for your device and install the adb and fastboot drivers for Windows. You’ll need this so that your computer can talk to your Android device. If you hit a snag (Windows can be fickle) visit the forums and somebody is bound to be able to help you through it.

Now that we’re all on the same page, enable USB debugging on your device (see your devices manual if you need help finding it) and plug your phone into your computer.

Here we go.

1. The adb devices command

The adb devices command is the most important one of the bunch, since it’s used to make sure your computer and Android device are communicating. That’s why we’re covering it first.

If you’re a pro at the operating system on your computer, you’ll want to add the directory with the Android tools to your path. If you’re not, no worries. Just start up your terminal or command console and point it where you put the extracted tools you downloaded above.

Once you’re sure that you are in the right folder, type adb devices at the command prompt. If you get a serial number, you’re good to go! If you don’t, make sure you’re in the right folder and that you have the device driver installed correctly if you’re using Windows. And be sure you have USB debugging turned on!

Now that we have everything set up, let’s look at a few more commands.

2. The adb push command

If you want to move a file onto your Android device programmatically, you want to use the adb push command. You’ll need to know a few parameters, namely the full path of the file you’re pushing, and the full path to where you want to put it. In the picture above I’m pushing a song from my Music folder on my desktop to the music folder on my phone.

Notice the slashes in the file path and the quotes around the path on my computer in the command. Windows uses \ as a directory switch in a file path and Unix uses /. Because the file name has spaces and special characters (I renamed it this way on purpose!) you need to encase the path in quotes.

3. The adb pull command

If adb push sends files to your Android device, it stands to reason the adb pull command would pull them out.

That’s exactly what it does, and it works the same way as the adb push command did. You need to know both the path of the file you want to pull off, as well as the path you want it placed into. You can leave the destination path blank and it will drop the file into your tools folder to make things easy.

In this example, I did it the hard way and entered the full path(s) so you can see what it looks like. Remember your forward slash versus backward slash rules here and you’ll have no problems.

4. The adb reboot command

This is exactly what you think it is — a way to reboot your device from the command line. Running it is simple: just type adb reboot and enter.

Before you say “I can just push the button!” you have to understand that these commands can be scripted, and your device can reboot in the middle of a script if you need it to. And that’s a good segue to number five.

5. The adb reboot-bootloader and adb reboot recovery commands

Not only can you reboot your device, you can specify that it reboots to the bootloader. This is awfully handy, as sometimes those button combos are touchy, and if you have a lot of devices it’s tough to remember them all. Some devices don’t even have a way to boot to the bootloader without this command. And once again, being able to use this command in a script is priceless.

Doing it is easy, just type adb reboot-bootloader and hit the enter key.

Most devices can also boot into the recovery directly with the adb reboot recovery (note there is no hyphen in this one) and some can’t. It won’t hurt anything to try.

6. The fastboot devices command

When you’re working inside the bootloader, adb no longer works. You’re not yet booted into Android, and the debugging tools aren’t active to communicate with. You’ll need to use the fastboot command in its place.

Fastboot is probably the most powerful Android debug tool available, and many devices don’t have it enabled. If yours does, you need to be sure things are communicating. That’s where the fastboot devices command comes into play. At the prompt, just type in fastboot devices and you should see a serial number, just like the adb devices command we looked at earlier.

If things aren’t working and you’re using Windows, you likely have a driver issue and you’ll need to source it from the manufacturer.

7. The fastboot unlock command

The fastboot unlock process will erase everything on your phone and reset it.

The holy grail of Android commands, fastboot flashing unlock does one thing, and one thing only — unlocks your bootloader. It’s not enabled on every phone, even phones that support fastboot, but we’re including it because even if you don’t need it, it’s an important part of Android’s openness. Google doesn’t care what we do with phones as long as it doesn’t go against rules for Google Play access, and that includes this easy way to crack them open, even if the company who made your phone doesn’t support it.

Using it is easy enough. Once you’ve used fastboot devices to make sure everything is communicating, just type fastboot flashing unlock at the prompt and hit enter. Look at your device, read carefully, and choose wisely.

8. The adb install command

While adb push can copy files to our Android devices, adb install can actually install apps. You’ll need to supply the path where you have the .apk file saved, then run it like this: adb install TheAppName.apk.

If you’re updating an app, you use the -r switch: adb install -r TheAppName.apk. There is also a -s switch which tries to install on the SD card as well as other commands you probably won’t ever need.

And finally, you can uninstall apps by their package name with adb uninstall package-name-here. Uninstall has a switch, too. The -k switch will uninstall the app but leave all the app data and cache in place.

9. The adb sideload command

An OTS (over-the-air) update is downloaded by your phone as a .zip file. You can also download that zip file manually and install it without having to wait for your phone to have the update pushed to it. The end result is the same as if you had waited, but we hate waiting.

All you have to do is download the update to your computer. Plug your phone into the computer. Then, reboot into recovery on your phone and using the up and down volume buttons choose Apply update from ADB. Then hop into your favorite terminal/command line and type adb sideload Full-Path-to-the-file.zip and hit enter. Let things run their course, and you’re golden.

10. The adb shell command

The adb shell command confuses a lot of folks. There are two ways to use it, one where you send a command to the device to run in its own command line shell, and one where you actually enter the device’s command shell from your terminal.

In the image above, I’m inside the device shell. Getting there is easy enough, just type adb shell and enter. Once inside, you can interact with the actual running operating system on your phone. I’ll warn you that unless you’re familiar with an ash or bash shell, you need to be careful here because things can turn south quickly if you’re not. Ash and bash are command shells. They allow you to interact with your phone through typed commands and a lot of folks use one or both on their Linux or Mac computers even if they didn’t know it. ** It is not DOS so don’t try any DOS commands.**

The other method of using the adb shell command is using it to tell your phone to run a shell command without going into the shell. Using it is easy; type adb shell An example would be changing permissions on a file like so: adb shell chmod666 /sdcard/somefile.

Be very careful running direct commands using these methods.

And there you have it. There are plenty more commands to learn if you ‘re the type who likes to learn commands, but these 10 are the ones you really need to know if you if you want to start digging around at the command prompt.

Updated August 2018 to stay current with the latest releases of Android.

When it comes to cloud computing, Amazon Web Services (AWS) is near the top of the pile. It can be found in countless places around the web, and it’s comprised of multiple services from computing and storage to analytics. As AWS continues to grow, there is understandably an urgent need for trained professionals in the field.

Because AWS is comprised of so many different services, becoming proficient in the entire system can be pricey and time-consuming. Instead of finding the appropriate courses on your own, why not grab a bundle?

Right now, Android Central Digital Offers has a deal on an Amazon Web Services Certification Training mega bundle that included eight certification courses with more than 50 hours of training. Instead of paying $1,299, you’ll instead pay just $69. That’s 94 percent off the regular price!

If you’re looking to prepare yourself for the AWS certification exams, this bundle of courses is what you need. With an already great price available at just $69, the price gets even better when you use coupon code DIGITALWEEK50 and save 50% — you’ll pay just $34.50!

A report from the security firm Kryptowire, via Wired, shows that many Android phones are stunningly vulnerable thanks to Android’s open operating system. But while this report is concerning, the real-world threat it poses to actual Android phone users might not be that big of a deal.

Kryptowire analyzed 10 Android devices supported by U.S. carriers, and found that bugs in the firmware — the permanent pre-loaded software responsible for running the phones — left them open to attack by a malicious app. Read more…

News of the massively popular and mostly free game Fortnite coming to Android has been causing buzz for months now. Gamers of every age group have flocked to Fortnite and continue to enjoy playing and streaming all day every day. But news that Epic Games is choosing to distribute Fortnite for Android on its own instead of using the Google Play Store is just about the worst thing the company can do for its users.

Plain and simple, distributing this game outside of the Google Play Store is dangerous. And knowing Epic Games is only doing this so it can make a few extra pennies from each user is even worse.

Google Play keeps everyone safe

Remember when Pokemon Go first came out, and because it wasn’t available to everyone all at once people started uploading modified versions of the app to third-party stores with malicious code onboard to steal your data or turn your phone into a bitcoin mining machine for someone else? That kind of thing only happens when an app is distributed outside of the Google Play Store, because Google puts tremendous resources behind making sure the apps in the store are safe for you to use. Fortnite is going to be available through the Epic Games website, but there’s very little to stop someone from putting out ads for downloading Fortnite for Android on the day this game is available and redirecting those users to a version of the game with similarly malicious code.

Epic Games has decided it’s cool to roll the dice on your behalf and hope you follow their instructions.

The Google Play Store also offers financial protection for parents who let their kid play a game with the credit card loaded. Stories of App Stores charging parents thousands of dollars because the kid wasn’t paying attention rarely end in the parent needing to pay those huge fines because the mistake is reversed and Google handles this process. Epic Games is now the only company involved in this process, because purchases made in Fortnite on Android won’t go through the Google Play Store. If Epic decides you have to pay for the things your kids did by mistake, there’s no appeal process in place anymore.

Perhaps most important is the way you install apps outside the Google Play Store. In order to side-load an app on any Android phone not running the newest version you need to turn off a safety lock that allows these installations to happen. If you don’t re-enable this feature back off after Fortnite is installed, anything can be installed in the background without your permission. But every time an update for Fortnite needs to be installed, you will need to toggle this feature again. This isn’t the case if your phone is running Android 8.0 or newer, but at last count 88% of all Android phones were running a version older than 8.0.

In the past, this exact same loophole has lead to data leaks and huge problems with data privacy. Instead of keeping their users safe, many of whom are children, Epic Games has decided it’s cool to roll the dice on your behalf and hope you follow their instructions.

There is no good reason to behave this way

The only reasons provided for this terrible decision by Epic Games CEO Tim Sweeney are financial. Sweeney says Epic wants to use its own installer like it does on the PC, and wants to bypass the 30% cut Google takes on all Play Store transactions. It’s worth pointing out this 30% tax is identical to the one Apple places in its Play Store, but Apple doesn’t let users sideload apps — an option Epic has here with Android.

Even if you do all of the right things every time you are still at a greater risk when playing Fortnite on Android than on any other platform.

It’s also likely Epic Games knows the largest audience for Fortnite users are in places with a less-friendly Google Play Services relationship. China doesn’t allow Google Mobile Services through its Great Firewall, and the EU is currently battling with Google on whether the Play Store should be a part of Android phones sold there. This combined audience is considerably larger than the people who would play in the U.S. and elsewhere, plus distributing a single version of Fortnite is easier than maintaining multiple versions to distribute in different stores.

So, basically, screw the users. This way is easier and makes us more money.

Unfortunately, there’s very little anyone can do about this. You can choose to not give Epic a credit card number when you do play. You can (and should anyway) enable Two-Factor Authentication on your Epic Games account, and try to remember to keep your phone unable to install apps from unknown sources every time an update comes in. But ultimately, even if you do all of the right things every time you are still at a greater risk when playing Fortnite on Android than on any other platform. Epic knows this, and they’re doing it anyway. And that sucks.

Xiaomi partnered with Google over an Android One last year, the Mi A1. The phone combined Xiaomi’s hardware capabilities with the simplicity of Android One, making it one of the best budget phones of 2018.

A year on, Xiaomi is renewing its collaboration with Google to launch two Android One phones. The Mi A2 and Mi A2 Lite feature comprehensive upgrades from the Mi A1, and Xiaomi is set to make both devices available in over 40 markets around the world.

The key difference between both phones — from an aesthetic standpoint — is that the Mi A2 has a standard 18:9 display, with the Mi A2 Lite offering a 19:9 panel with a notch up top. Internally, the Mi A2 is powered by the Snapdragon 660, whereas the A2 Lite is running the now-familiar Snapdragon 625. On the software front, both devices are running Android 8.1 Oreo, and the fact that they’re a part of the Android One platform means they’ll be one of the first phones to pick up the Android P update.

Here’s what you need to know about Xiaomi’s latest Android One phones.

The Mi A2 features a 5.99-inch FHD+ 18:9 display backed by a layer of Gorilla Glass 5. The 2.5D curved glass allows the edges to seamlessly merge into the mid-frame, and the phone also has subtle curves at the back to make it easier to hold.

Xiaomi has been using the Snapdragon 660 platform for over a year now, and the Mi A2 is the latest to feature the chipset. The Snapdragon 660 is notable for being just as fast as flagships SoCs even from just a few generations ago, and it’s safe to say that it is one of Qualcomm’s best in this category.

There’s a 3010mAh battery under the hood, up to 6GB of RAM and 128GB of storage, Wi-Fi ac, Bluetooth 5.0, and a USB-C port. The camera is where things get interesting: the primary 12MP IMX 376 sensor is mated to a 20MP module with large 2.0um pixels. The front camera also has a similar 20MP sensor with 2.0um pixels, and as just like the Redmi Note 5 Pro, the Mi A2 has an AI-enabled portrait mode.

Xiaomi Mi A2 Lite: Notched display, incredible battery life

The Mi A2 Lite isn’t just a variant of the Mi A2 with toned-down hardware — the phone sports a cutout at the front to accommodate the camera module and the requisite sensors.

Xiaomi has said in the past that it favors the Snapdragon 625 for the chipset’s balance between efficiency and performance. The manufacturer rolled out more than a handful of phones powered by the chipset — including last year’s Mi A1 — so there’s not going to be a performance differential between the A2 Lite and what we saw last year.

Essentially, the Mi A2 Lite has the same underpinnings as its predecessor, albeit with a refreshed design for 2018. However, the one downside is that the A2 Lite has a Micro-USB port, a puzzling choice considering the Mi A1 had a USB-C charging port.

Xiaomi is moving away from the ubiquitous headphone jack in its premium models, but the jack is intact on the budget-focused devices. As such, although the Mi A2 doesn’t have a 3.5mm jack, the A2 Lite has the analog port.

Xiaomi Mi A2/Mi A2 Lite: Pricing and availability

There’s enough differences between the Mi A2 and A2 Lite that Xiaomi is targeting two diverse set of users with its latest Android One phones.

The pricing reflects that as well, with the decked-out version of the Mi A2 running up to $410. The Mi A2 Lite, meanwhile, starts off at $210. Here’s the pricing breakdown for the all variants Xiaomi will have up for sale:

Xiaomi mentions that it will make both devices available in over 40 markets around the world, and we should be hearing more about region-wise availability later this month. Xiaomi is huge in India, so we should see the brand launching both devices in the country shortly.

Given the cost-conscious nature of the Indian market, it’s likely we’ll see the base variant of the Mi A2 Lite debuting at under the $200 price point. Anywhere at the ₹10,999 ($160) figure should make it a great option considering the Redmi Note 5 shares a similar hardware foundation.

As for the Mi A2, the phone directly goes up against the $375 Nokia 7 Plus, so it’ll be interesting to see what price point it slots in.