دسته: اخبار اندروید

  • Great for gamers, better for everyone

    Great for gamers, better for everyone


    Lenovo Legion Tab Gen 3

    This might be a gaming tablet on paper, but that’s only half the story. The Lenovo Legion Tab Gen 3 is a compact slate with plenty of power that can fit into your daily life in a way few Android tablets ever manage. That’s why I’m convinced that this is one of the best Android tablets you can buy, even if you never play a single game on it.

    It’s hard to feel genuinely excited about Android tablets these days. The market has become homogenized over the years, offering options that all blur together. Samsung’s got tablets for every price bracket, Amazon’s got its Fire lineup of tablets on a budget, and everyone else is just… kind of there. They mostly look the same, feel the same, and try to do the same things, just with different logos slapped on top.

    So when Lenovo sent me a “gaming tablet” to test, I was intrigued. What does a gaming tablet even look like? Does it come with RGB and shoulder triggers? I’ve spent the past three weeks with the Lenovo Legion Tab Gen 3, and spoiler alert, it doesn’t come with any of those. The good news is that it is a gaming tablet, all right.

    But more importantly, it turns out the $549 Legion Tab Gen 3 delivers one of the most fun Android tablet experiences I’ve had, even though I think there’s a very small chunk of people who might actually want to buy it.

    Surprisingly premium

    Lenovo Legion Tab Gen 3 review image 9

    Rushil Agrawal / Android Authority

    When I first got my hands on the Legion Tab, I had no idea what it cost, and my first reaction after unboxing it was that it felt like a flagship product. I genuinely assumed it would be priced somewhere close to $1,000. You can imagine my surprise when I later found out it costs half of that.

    The Lenovo Legion Tab Gen 3’s premium feeling starts even before you turn on the tablet.

    Lenovo includes a surprisingly luxurious set of accessories in the box: a grilled bumper case for the back, a magnetic flap that attaches to it and turns it into a folio case, a glass screen protector, a 68W charging brick, and a USB-C to USB-C cable. The folio case even folds neatly to double up as a kickstand when you set the tablet down in landscape mode.

    Lenovo Legion Tab Gen 3 review image

    Rushil Agrawal / Android Authority

    The tablet itself feels just as good. Lenovo has gone with an all-metal construction that feels sturdy and premium. The matte black finish might not scream “gaming tablet” the way some might expect, but the industrial style looks a lot more polished than the tired grey or silver shades you see on most tablets. Around the back, the etched Legion logo and a rectangular camera island are the only flashy elements, keeping the design clean and subtle.

    There is no SIM card slot or expandable storage, so the only cutouts on the frame are two speaker grilles and two USB-C ports. One is a standard USB 2.0 port, while the other is a USB 3.2 Gen 2 port. That faster port allows for much quicker data transfers and even supports Display output if you want to hook up an external monitor.

    Lenovo also considered the placement, putting one port on the longer edge and one on the shorter edge. No matter how you hold the tablet, you can usually plug it in for charging, streaming, or using accessories without much hassle.

    That being said, gamers might miss a 3.5mm headphone jack. Technically, you can still plug in wired earphones with a USB-C adapter thanks to the dual ports, but it feels like a missed opportunity for those who want easy, zero-latency audio for gaming. There is also no IP rating for water or dust protection, something Samsung offers with its tablets at similar or slightly higher price points. On top of that, Lenovo skipped a fingerprint reader altogether. You get 2D face unlock if you want, but I ended up relying on a good old pattern lock most of the time.

    Its biggest feature is how small it is

    Lenovo Legion Tab Gen 3 review 1

    Rushil Agrawal / Android Authority

    My favorite thing about the Legion Tab is something very few Android tablets even attempt anymore: its size. With smartphone screens getting closer and closer to seven inches, it’s only fair that most tablets these days are chasing screen sizes of 10 inches or more by default. Lenovo flips that trend with a compact form factor that I instantly fell in love with.

    The tablet measures 7.79 mm x 208.54 mm x 129.46 mm (0.31 in x 8.21 in x 5.10 in) and weighs approximately 350 grams. Most other tablets easily exceed the 500-gram mark, and while that difference might not seem huge on a spec sheet, it matters a lot when you’re actually carrying the device around.

    I could use the Legion Tab single-handedly without it ever feeling too heavy or awkward.

    For context, my usual tablet is my aging but ever-reliable Galaxy Tab S7 Plus. As much as I love it, I hardly take it out unless it’s for a long-distance flight, because carrying it feels like a whole production. I need to pack it into a backpack, take it out, find space to set it down, and repeat the whole dance when I am done. The Legion Tab feels more like a Kindle in comparison. You can carry it in your hands on a day out in the park, or just use it to scroll social media sitting on a couch without needing to rest it on something. That ease of use quickly became one of my favorite things about it.

    The reason the Legion Tab feels so compact is that it comes with an 8.8-inch display. That is much smaller than the screens you get on tablets like the OnePlus Pad 2 or any of Samsung’s Galaxy Tab models, and as close as you’re going to get these days to a classic Nexus 7-style compact tablet. In fact, it is only slightly bigger than my Galaxy Z Fold 5 when unfolded, although the Legion Tab offers a lot more usable screen area thanks to its aspect ratio.

    As far as LCD panels go, the Legion Tab Gen 3’s is excellent.

    The display is a 16:10 LCD panel with a 2.5K resolution (2560 x 1600). It supports 98% of the DCI-P3 color gamut and comes with HDR10 support. Under normal conditions, the screen hits a maximum brightness of 500 nits and can push up to 900 nits when High Brightness Mode kicks in.

    The screen gets bright enough to be easily usable both indoors and outdoors, colors look rich and punchy, and the viewing angles are solid too. I used the Legion Tab to binge the latest Black Mirror episodes, and I played a good chunk of games on it as well. No matter what I threw at it, the display delivered.

    Still, I could not quite shake off the feeling that something was missing. I ended up pulling out my Galaxy Tab S7 Plus just to compare my impressions, and even though it’s three generations old at this point, its AMOLED panel still matches the Legion Tab’s screen. Colors popped a little more, and especially in low-light environments, the deep blacks on the AMOLED screen created a much richer experience.

    Lenovo Legion Tab Gen 3 review image 8

    Rushil Agrawal / Android Authority

    I am not saying the Legion Tab’s screen is bad. In fact, it’s probably one of the best LCD panels I’ve seen on a mobile device in recent years. All I’m saying is that if Lenovo were to make just one upgrade to the next-gen Legion Tab, it should swap out the LCD for an AMOLED display. However, I doubt Lenovo will be able to maintain this price point if and when it makes the switch.

    Gamers and non-gamers alike will definitely appreciate one thing, though: the 165Hz refresh rate. It makes the entire UI feel incredibly smooth, and most actions on this tablet feel buttery smooth. If your favorite games support 90fps or 120fps gameplay, you can enjoy that full fluidity here too, and it genuinely adds to the gaming experience.

    All the gaming performance you need

    Yeah, gaming. Let’s get that out of the way now. This tablet comes with exactly the kind of specs you would expect for a device with Lenovo’s Legion branding. It packs 12GB of LPDDR5X RAM and 256GB of UFS 4.0 storage. Powering it all is the Snapdragon 8 Gen 3, Qualcomm’s flagship chip from last year, and it is still a beast.

    On paper, this tablet should handle any Android game you throw at it. In real life, it absolutely does.

    I tried downloading the biggest, heaviest games I could find on the Play Store, and the Legion Tab had no trouble running them at the highest or near-highest settings. Genshin Impact, one of the most graphically demanding games on Android, displayed its usual warning about overheating if you crank everything up. I ignored it and ran the game at High graphics and 60fps anyway. The Legion Tab kept up just fine, delivering close to 60fps most of the time, with only one noticeable drop to around 40fps during a cutscene transition.

    Lenovo Legion Tab Gen 3 review image 3

    Rushil Agrawal / Android Authority

    Another heavy hitter I tested was Bright Memory Infinite, a fast-paced first-person shooter that can actually push 120fps gameplay on this tablet. The Legion Tab handled it really well, with frame rates rarely dropping below 100fps during intense action.

    The experience was the same across every other game I tried. Lighter games, unsurprisingly, ran flawlessly. Heat management is also done well. The tablet’s built-in performance overlay showed the temperature rising from around 20 degrees Celsius to about 40 degrees during an hour of non-stop gaming. The tablet’s back got warm to the touch, but it never got uncomfortably hot, and performance stayed stable the whole time.

    Battery life is decent, but there are a few caveats.

    The Legion Tab only packs a 6,550mAh battery compared to the 8,000mAh or even 10,000mAh monsters you get on bigger tablets. I noticed a 20% drop in battery after around 30 minutes of gaming, regardless of which title I played. That means you should expect about two and a half hours of serious gaming on a full charge. It’s not mind-blowing, but it’s the trade-off for the smaller form factor.

    Outside of gaming, battery life held up better than I expected. Standby performance is especially impressive. I left the tablet connected to Wi-Fi for days at a time, and it would barely lose 2% to 3% over 24 hours. One time, I picked it up after five days of just sitting there, fully expecting it to be dead, but it still had over 80% battery left. Regular tasks like watching videos, scrolling through social media, or light browsing also barely dent the battery.

    Lenovo Legion Tab Gen 3 review image showing the USB port placement on the longer side

    Rushil Agrawal / Android Authority

    Topping up is fast too. The included 68W charger brings the Legion Tab from nearly dead to full in just over an hour. You can use either of the USB-C ports to charge, but you cannot plug into both at once, so save yourself the big-brain experiment.

    Lenovo also added support for bypass charging, which means when you plug in while gaming, the power can go straight to the tablet’s motherboard instead of the battery. That helps avoid heat buildup and keeps performance steady during long gaming sessions.

    Gaming extras

    The specs race keeps pushing forward for mobile gaming, and Lenovo will soon launch a version of this tablet with an even stronger chip. The problem is, while there are plenty of great games on Android, there are barely any right now that can push today’s hardware to its absolute limits. That said, if you are someone who plays competitive mobile games and cares more about response times and smoothness than pixel-perfect graphics, the Legion Tab delivers exactly what you need.

    It’ll also be a really reliable slate if you’re into retro games via emulation, while still having headroom to spare for heavier load add-ons like custom shaders. The caveat is that you’ll quickly fill up that 256GB fixed storage.

    The tablet does everything it can to make gaming feel immersive, too. The dual-speaker setup gets loud and sounds surprisingly good. When you fire up a game in landscape mode, the tablet automatically switches to a panoramic sound mode. It creates enough stereo separation that you can track enemy footsteps in games like PUBG without needing headphones, although a good pair of earbuds still gives you the best edge.

    Another highlight is the X-axis haptic motor. It’s sharp, precise, and actually adds a real layer of feedback to your interactions, both in-game and while using the general UI.

    Lenovo Legion Tab Gen 3 review 7

    Rushil Agrawal / Android Authority

    I also loved how the Legion Tab’s smaller size plays well with mobile gamepad controllers like the Razer Kishi Ultra and the Gamesir G8 Plus. Mounting the tablet in one of these controllers takes the gaming experience to another level. Bright Memory Infinite, Asphalt Legends, and even smaller games felt way more enjoyable with physical controls. And because the tablet is relatively lightweight, the whole setup stays comfortable to hold for longer gaming sessions. It is probably one of the best ways to enjoy mobile gaming on a flight or while traveling.

    Software-wise, Lenovo keeps things pretty simple. There is a Legion Space app that serves as a basic gaming hub, where all your installed games are displayed in one place. While you are playing, you can pull up a floating overlay from the side of the screen. It gives you access to quick settings, such as switching performance modes (Balance, High Performance, and Energy Saving), or capturing screenshots and screen recordings.

    There is one weird omission, though. The tablet does not automatically disable screen timeout while gaming. If your screen is set to turn off after 30 seconds, it will still do that even if you are in the middle of a long cutscene or a loading screen. There is no toggle inside the gaming overlay to keep the screen on, either. The only way around it is to exit your game, dig into the settings, and manually change the screen timeout to “never,” which is annoying because it also disables screen timeout everywhere else. It’s a small but painfully obvious thing that Lenovo should have handled better.

    Regular Android with a gamer wallpaper

    Outside of the gaming extras, the software experience on the Legion Tab is… fine. Lenovo hasn’t added any special skin or UI changes specifically for gamers. It’s just the company’s usual Android skin, with a Legion-themed wallpaper on top. The tablet ships with Android 14 out of the box, but it got the Android 15 update the moment I powered it on. That’s a good sign, and Lenovo says it will get two more major OS updates after that, which is fine for the type of tablet this is, but not as good as what you get from Samsung or Google.

    Lenovo’s UI feels pretty close to stock Android. It’s lightweight, smooth, and maybe even a little too basic. You get a few customization options for themes and wallpapers, and you can run split-screen apps or use floating windows. There’s no built-in AI stuff from Lenovo here, but you still get all the usual Google features like Circle to Search and the Gemini assistant.

    There’s a good chunk of pre-installed apps on the tablet, but you can uninstall all of them if you want. What annoyed me more was the setup experience. Lenovo tries really hard to push pages of bloatware and random games onto you, and you have to uncheck each app individually just to avoid them. It’s annoying, but at least it only happens once, so I’m willing to let that slide.

    Connectivity-wise, the Legion Tab supports Wi-Fi 7, and I experienced no issues with speed or signal during my time using it at home. There’s no cellular model, though. That might not be a huge issue for most, but with many modern mobile games requiring a constant internet connection, it’s something to consider. Unless you’re okay with tethering your phone or only using the tablet in Wi-Fi zones, this is pretty much a stay-at-home device.

    And yes, the tablet does have cameras. There’s a 13MP rear camera, an 8MP front camera, and a macro sensor that I won’t even pretend to take seriously. The rear camera works well enough for snapping documents, and the front camera can handle 1080p video calls or basic streaming needs. You’ll get decent results in good lighting, but don’t expect anything close to the quality of your phone’s camera, especially for portraits or Instagram posts.

    Lenovo Legion Tab review verdict: Makes me want to buy a tablet again

    Lenovo Legion Tab Gen 3 review image

    Rushil Agrawal / Android Authority

    The Lenovo Legion Tab ($549.99 at Lenovo) targets a very specific niche — the mobile gamer — and it nails that purpose almost perfectly. It gives you powerful gaming hardware in a form factor that feels just right. It is bigger than a phone but not as bulky or awkward as a full-size tablet. It fits neatly into mobile gaming controllers, you can hook it up to a bigger screen if you want, it charges incredibly fast, and there is very little to complain about overall.

    You still have a few things to keep in mind, like the missing headphone jack, the lack of any biometrics, and the absence of a cellular model. But if your main goal is smooth, responsive mobile gaming, the Legion Tab gets the job done. What surprised me more was how much this tablet started making sense even outside of gaming.

    Smartphone screens are already big enough for most casual tasks, such as social media and watching videos, and when I need a bigger screen for work, I would rather open my laptop. Most Android tablets also don’t have the kind of seamless ecosystem integration that iPads enjoy, which makes them feel like an isolated purchase instead of a natural extension of your setup. That’s why my Galaxy Tab S7 Plus mostly sits around collecting dust until I travel.

    I never thought I would want a tablet again, but the Legion Tab almost changed my mind.

    The Legion Tab feels different because of its size. It’s big enough to make me want to switch from my phone for things like watching YouTube videos or casually browsing Instagram. At the same time, it’s small enough that I don’t have to overthink picking it up. I do not feel like I need to justify using it for a specific task the way I usually do with full-sized tablets. It’s light, quick, and easy to reach throughout the day without even thinking about it.

    That compact size does come with trade-offs. This is not the kind of tablet you can treat as a productivity machine or a laptop replacement. If you need to type a lot, multitask with multiple apps, or browse spreadsheets, this is not the right tool for the job. Plus, the battery life takes an obvious hit.

    If you are looking specifically for a gaming tablet, the closest competitor to the Legion Tab is the OnePlus Pad 2 ($549.99 at Amazon). It also offers flagship-grade performance, a big battery, fast charging, and a much larger display for the same price. Samsung’s Galaxy Tab S10 FE ($499.99 at Amazon) is another option in a similar price range, and it adds features like a bundled S Pen, an IP rating, and a cellular model option. However, it does not offer the same level of raw performance as the Legion Tab. Plus, both of these alternatives are much bigger and heavier devices.

    Lenovo Legion Tab Gen 3 review image

    Rushil Agrawal / Android Authority

    If budget is not a major concern, you could also consider the Galaxy Tab S10 Plus ($999.99 at Samsung). It offers an incredible 12.4-inch AMOLED display, flagship performance, and tons of premium features, but it will cost you nearly twice as much as the Legion Tab.

    If you are simply looking for a compact tablet, there are almost no real competitors on the Android side right now outside of the Pixel Tablet ($499 at Amazon), which hasn’t aged that well, and is larger anyway. The only real alternative is the iPad Mini ($459 at Amazon), but that decision comes down to which ecosystem you prefer more than anything else.

    I still do not think small tablets will appeal to the masses. There is a reason why companies often abandon smaller flagship phones after a few generations. The same might happen with compact tablets. But whether the world embraces them or not, the Lenovo Legion Tab made me remember how fun and practical a well-designed tablet can be.

    AA Recommended

    Lenovo Legion Tab Gen 3

    Delightfully compact to use • Reliable performance • Brilliant haptics and speakers

    MSRP: $549.99

    Compact tablet gaming

    The Lenovo Legion Tab Gen 3 is a compact Android tablet built for gaming on the go, with a Snapdragon 8 Gen 3 chipset, bundled accessories, and powerful speakers.

    Positives

    • Delightfully compact to use
    • Reliable performance
    • Brilliant haptics and speakers
    • Loaded with in-box accessories

    Cons

    • No secure biometrics
    • Gaming tablet with no headphone jack
    • No cellular model
    • Limited fixed storage for games



    Source link

  • Tolerating Netflix ads so far? Get ready for an AI-fueled onslaught

    Tolerating Netflix ads so far? Get ready for an AI-fueled onslaught


    Netflix logo on smartphone, next to other devices stock photo (3)

    Edgar Cervantes / Android Authority

    TL;DR

    • Netflix is introducing a new ad format that uses generative AI to create an improved and more relevant experience.
    • This new AI-powered modular ad framework merges ads with the worlds of Netflix shows to create things like interactive midroll and pause overlays while you watch.
    • These new ads will begin rolling out in 2026 for all ad-supported countries.

    Do you remember the days of just plain old “Netflix and chill”? You know, when streaming services didn’t have ads because you paid money for that feature and you watched whatever content you wanted without any interruptions? That was definitely peak streaming. But those days have already begun to fade, as more streaming services have started including ads and raising the price of ad-free offerings. Netflix is now working on a whole new way to experience ads for those of you on the ad-supported tier.

    Last month Netflix launched a new in-house advertising platform, giving the company full control over its ad tech. That’s going to help Netflix begin to integrate new “creative” advertising formats while users watch content. What’s so interesting about this new ad format? You’ll be seeing interactive ads that merge with the worlds of Netflix shows thanks to generative AI. This could be a big change from the current state of ads on Netflix, which have been easy enough to ignore and not much more than a minor annoyance. But interactive ones with overlays during the show or when you pause? That’s a bit more…intrusive.

    Samsung Galaxy Tab S9 netflix

    Ryan Haines / Android Authority

    One of the reasons why Netflix is implementing these interactive ads is its claim of having “the most engaged and attentive audience anywhere.” With this in mind, Netflix believes that you wouldn’t mind taking part in some unique advertisements while you binge watch your shows. And while the current ads may not be too bothersome, this upcoming interactive one just looks to be taking it to a whole other level that isn’t as enjoyable, to say the least.

    These new ad formats won’t be rolling out until 2026 though, so you do have some time to prepare or adjust your current Netflix plan. Only the least expensive one has ads, so if you upgrade to a higher tier, you won’t have to deal with these AI ads at all.

    As time goes on, more and more companies are utilizing AI in their products, whether you like it or not. And now AI is even merging with advertisements, which no one likes. It’s two of the worst things coming together to ruin everything, once again, like YouTube’s new ads purposely ruining your videos by interrupting the best part.

    Got a tip? Talk to us! Email our staff at news@androidauthority.com. You can stay anonymous or get credit for the info, it’s your choice.



    Source link

  • How My Lovely Planet is making environmental preservation fun through games



    Posted by Robbie McLachlan – Developer Marketing

    In our latest #WeArePlay film, which celebrates the people behind apps and games on Google Play, we meet Clément, the founder of Imagine Games. His game, My Lovely Planet, turns casual mobile gaming into tangible environmental action, planting real trees and supporting reforestation projects worldwide. Discover the inspiration behind My Lovely Planet and the impact it’s had so far.

    https://www.youtube.com/watch?v=TrgDdhvzwt4

    What inspired you to combine gaming with positive environmental impact?

    I’ve always loved gaming and believed in technology’s potential to tackle environmental challenges. But it was my time working with an NGO in Madagascar, where I witnessed firsthand the devastating effects of environmental changes that truly sparked my mission. Combining gaming and sustainability just made sense. Billions of people play games, so why not harness that entertainment to create real-world impact? So far, the results speak for themselves: we’ve built an engaged global community committed to protecting the environment.

    Imagine Games team, Clément, from France

    How do players in My Lovely Planet make real-world differences through the game?

    With My Lovely Planet, planting a tree in the game means planting a real tree in the world. Our community has already planted over 360,000 trees through partnerships with NGOs like Graines de Vie in Madagascar, Kenya, and France. We’ve also supported ocean-cleaning, bee-protection, and drone reforestation projects.

    Balancing fun with impact was key. Players wouldn’t stay just for the mission, so we focused on creating a genuinely fun match-3 style game. Once gameplay was strong, we made real-world actions like tree planting core rewards in the game, helping players feel naturally connected to their impact. Our goal is to keep growing this model to protect biodiversity and fight climate change.

    Can you tell us about your drone-led reforestation project in France?

    Our latest initiative involves using drones to reforest areas severely impacted by insect infestations and other environmental issues. We’re dropping over one million specially-coated seeds by drone, which is a completely new and efficient way of reforesting large areas. It’s exciting because if this pilot succeeds, it could be replicated worldwide, significantly boosting global reforestation efforts.

    a drone in mid air dropping seeds in a forested area

    How has Google Play helped your journey?

    Google Play has been crucial for My Lovely Planet – it’s our main distribution channel, with about 70% of our players coming through the platform. It makes it incredibly easy and convenient for anyone to download and start playing immediately. which is essential for engaging a global community. Plus, from a developer’s standpoint, the flexibility, responsiveness, and powerful testing tools Google Play provides have made launching and scaling our game faster and smoother, allowing us to focus even more on our environmental impact.

    a close up of a user playing the My Lovely Planet game on their mobile device while sitting in the front seat of a vehicle

    What is next for My Lovely Planet?

    Right now, we’re focused on expanding the game experience by adding more engaging levels, and introducing exciting new features like integrating our eco-friendly cryptocurrency, My Lovely Coin, into gameplay. Following the success of our first drone-led reforestation project in France, our next step is tracking its impact and expanding this approach to other regions. Ultimately, we aim to build the world’s largest gaming community dedicated to protecting the environment, empowering millions to make a difference while enjoying the game.

    Discover other inspiring app and game founders featured in #WeArePlay.



    Source link

  • Android Developers Blog: The Android Show: I/O Edition



    Posted by Matthew McCullough – Vice President, Product Management, Android Developer

    We just dropped an I/O Edition of The Android Show, where we unpacked exciting new experiences coming to the Android ecosystem: a fresh and dynamic look and feel, smarts across your devices, and enhanced safety and security features. Join Sameer Samat, President of Android Ecosystem, and the Android team to learn about exciting new development in the episode below, and read about all of the updates for users.

    Tune into Google I/O next week – including the Developer Keynote as well as the full Android track of sessions – where we’re covering these topics in more detail and how you can get started.

    https://www.youtube.com/watch?v=l3yDd3CmA_Y

    Start building with Material 3 Expressive

    The world of UX design is constantly evolving, and you deserve the tools to create truly engaging and impactful experiences. That’s why Material Design’s latest evolution, Material 3 Expressive, provides new ways to make your product more engaging, easy to use, and desirable. Learn more, and try out the new Material 3 Expressive: an expansion pack designed to enhance your app’s appeal by harnessing emotional UX, making it more engaging, intuitive, and desirable for users. It comes with new components, motion-physics system, type styles, colors, shapes and more.

    Material 3 Expressive will be coming to Android 16 later this year; check out the Google I/O talk next week where we’ll dive into this in more detail.

    A fluid design built for your watch’s round display

    Wear OS 6, arriving later this year, brings Material 3 Expressive design to Google’s smartwatch platform. New design language puts the round watch display at the heart of the experience, and is embraced in every single component and motion of the System, from buttons to notifications. You’ll be able to try new visual design and upgrade existing app experiences to a new level. Next week, tune in to the What’s New in Android session to learn more.

    Plus some goodies in Android 16…

    We also unpacked some of the latest features coming to users in Android 16, which we’ve been previewing with you for the last few months. If you haven’t already, you can try out the latest Beta of Android 16.

    A few new features that Android 16 adds which developers should pay attention to are Live updates, professional media and camera features, desktop windowing for tablets, major accessibility enhancements and much more:

      • Live Updates allow your app to show time-sensitive progress updates. Use the new ProgressStyle template for an improved experience around navigation, deliveries, and rideshares.

    Watch the What’s New in Android session and the Live updates talk to learn more.

    Tune in next week to Google I/O

    This was just a preview of some Android-related news, so remember to tune in next week to Google I/O, where we’ll be diving into a range of Android developer topics in a lot more detail. You can check out What’s New in Android and the full Android track of sessions to start planning your time.

    We can’t wait to see you next week, whether you’re joining in person or virtually from anywhere around the world!



    Source link

  • Samsung made a two-toned Galaxy Ring, but you probably won’t be able to get one

    Samsung made a two-toned Galaxy Ring, but you probably won’t be able to get one


    Samsung Galaxy Ring 4

    Lanh Nguyen / Android Authority

    TL;DR

    • Samsung is selling a limited edition two-tone Galaxy Ring along with the Galaxy S25 Edge.
    • The two-toned smart ring is a mix of Titanium Silver and Titanium Black.
    • You can get a 20% discount on the smart ring if you buy it together with the Edge.
    • The smart ring is only available in South Korea.

    After months of waiting, Samsung has finally launched the Galaxy S25 Edge. Although this phone is an exciting new addition to the Galaxy lineup, there’s another announcement that seems to have flown under the radar. While everyone’s attention is currently on the Edge, you may have missed that Samsung quietly revealed it is selling a limited edition Galaxy Ring.

    In a press release for the Galaxy S25 Edge on its Korean website, Samsung snuck in an announcement about a new Galaxy Ring. There’s nothing different about this smart ring spec-wise, but it does feature a new finish. Although the company didn’t share any pictures, Samsung calls it “Two-Tone Titanium Black.” This ring would be a mix of the Titanium Black and the Titanium Silver colorways.

    Unfortunately, the new finish will only be available in South Korea at the Samsung Gangnam store starting on May 14 and will be sold in limited quantities. If you happen to be in the market, however, buying one along with an S25 Edge will net you 20% off the smart ring plus 100,000 won in Samsung Electronics membership points.

    Samsung does not mention this new Galaxy Ring in any of its other press releases. It’s also unknown how many of these limited edition rings were made. Hopefully, Samsung will change its mind and make this new finish available in other markets.

    Got a tip? Talk to us! Email our staff at news@androidauthority.com. You can stay anonymous or get credit for the info, it’s your choice.



    Source link

  • One UI 8 could let you listen to your Now Brief (APK teardown)

    One UI 8 could let you listen to your Now Brief (APK teardown)


    samsung now brief midday hero

    Joe Maring / Android Authority

    TL;DR

    • Samsung is working on a Listen Brief button in One UI 8, according to an Android Authority teardown.
    • This seems to be an audio version of the Now Brief feature, which offers a personalized summary of your morning, afternoon, or evening.
    • It looks like Samsung could offer play, pause, and stop controls for Listen Brief, along with your choice of text-to-speech engine.

    Samsung introduced the Now Brief feature on the Galaxy S25 series back in January, delivering a personalized summary of your day. Now Brief delivers this summary in text form, but it looks like the company is working on a new way to access them.

    You’re reading an Authority Insights story on Android Authority. Discover Authority Insights for more exclusive reports, app teardowns, leaks, and in-depth tech coverage you won’t find anywhere else.

    An APK teardown helps predict features that may arrive on a service in the future based on work-in-progress code. However, it is possible that such predicted features may not make it to a public release.

    We dug into the One UI 8 firmware and discovered that Samsung is working on a “Listen Brief” button. Check out our screenshots of the code snippets below.

    Now Brief offers a summary of your morning, afternoon, or evening. This summary includes weather forecasts, upcoming calendar events, traffic updates, and news. However, the “Listen Brief” feature seems to be an audio version of Now Brief, allowing you to get all these details without reading.

    One of the screenshots also hints that Listen Brief users can choose between Samsung and Google’s text-to-speech engines. Furthermore, another screenshot suggests that users can pause, play, or stop the audio briefing.

    This could be a useful way to get your daily briefing, and I can see it being handy if you’re driving or otherwise preoccupied. It would also be a great addition for visually impaired people or users with different accessibility needs.

    In saying so, there are plenty of other ways Samsung can improve this feature. Colleague Joe Maring felt disappointed by Now Brief after using it for a few weeks, noting that it was a glorified news and weather app. Joe specifically called for additions like sports scores, email integration, and package information. So we hope Listen Brief isn’t the only improvement to Now Brief in One UI 8.

    Got a tip? Talk to us! Email our staff at news@androidauthority.com. You can stay anonymous or get credit for the info, it’s your choice.



    Source link

  • Zoho Achieves 6x Faster Logins with Passkey and Credential Manager Integration



    Posted by Niharika Arora – Senior Developer Relations Engineer, Joseph Lewis – Staff Technical Writer, and Kumareshwaran Sreedharan – Product Manager, Zoho.

    As an Android developer, you’re constantly looking for ways to enhance security, improve user experience, and streamline development. Zoho, a comprehensive cloud-based software suite focused on security and seamless experiences, achieved significant improvements by adopting passkeys in their OneAuth Android app.

    Since integrating passkeys in 2024, Zoho achieved login speeds up to 6x faster than previous methods and a 31% month-over-month (MoM) growth in passkey adoption.

    This case study examines Zoho’s adoption of passkeys and Android’s Credential Manager API to address authentication difficulties. It details the technical implementation process and highlights the impactful results.

    Overcoming authentication challenges

    Zoho utilizes a combination of authentication methods to protect user accounts. This included Zoho OneAuth, their own multi-factor authentication (MFA) solution, which supported both password-based and passwordless authentication using push notifications, QR codes, and time-based one-time passwords (TOTP). Zoho also supported federated logins, allowing authentication through Security Assertion Markup Language (SAML) and other third-party identity providers.

    Challenges

    Zoho, like many organizations, aimed to improve authentication security and user experience while reducing operational burdens. The primary challenges that led to the adoption of passkeys included:

      • Security vulnerabilities: Traditional password-based methods left users susceptible to phishing attacks and password breaches.
      • User friction: Password fatigue led to forgotten passwords, frustration, and increased reliance on cumbersome recovery processes.
      • Operational inefficiencies: Handling password resets and MFA issues generated significant support overhead.
      • Scalability concerns: A growing user base demanded a more secure and efficient authentication solution.

    Why the shift to passkeys?

    Passkeys were implemented in Zoho’s apps to address authentication challenges by offering a passwordless approach that significantly improves security and user experience. This solution leverages phishing-resistant authentication, cloud-synchronized credentials for effortless cross-device access, and biometrics (such as a fingerprint or facial recognition), PIN, or pattern for secure logins, thereby reducing the vulnerabilities and inconveniences associated with traditional passwords.

    By adopting passkeys with Credential Manager, Zoho cut login times by up to 6x, slashed password-related support costs, and saw strong user adoption – doubling passkey sign-ins in 4 months with 31% MoM growth. Zoho users now enjoy faster, easier logins and phishing-resistant security.

    Quote card reads 'Cloud Lion now enjoys logins that are 30% faster and more secure using passkeys – allowing us to use our thumb instead of a password. With passkeys, we can also protect our critical business data against phishing and brute force attacks.' – Fabrice Venegas, Founder, Cloud Lion (a Zoho integration partner)

    Implementation with Credential Manager on Android

    So, how did Zoho achieve these results? They used Android’s Credential Manager API, the recommended Jetpack library for implementing authentication on Android.

    Credential Manager provides a unified API that simplifies handling of the various authentication methods. Instead of juggling different APIs for passwords, passkeys, and federated logins (like Sign in with Google), you use a single interface.

    Implementing passkeys at Zoho required both client-side and server-side adjustments. Here’s a detailed breakdown of the passkey creation, sign-in, and server-side implementation process.

    Passkey creation

    Passkey creation in OneAuth on a small screen mobile device

    To create a passkey, the app first retrieves configuration details from Zoho’s server. This process includes a unique verification, such as a fingerprint or facial recognition. This verification data, formatted as a requestJson string), is used by the app to build a CreatePublicKeyCredentialRequest. The app then calls the credentialManager.createCredential method, which prompts the user to authenticate using their device screen lock (biometrics, fingerprint, PIN, etc.).

    Upon successful user confirmation, the app receives the new passkey credential data, sends it back to Zoho’s server for verification, and the server then stores the passkey information linked to the user’s account. Failures or user cancellations during the process are caught and handled by the app.

    Sign-in

    The Zoho Android app initiates the passkey sign-in process by requesting sign-in options, including a unique challenge, from Zoho’s backend server. The app then uses this data to construct a GetCredentialRequest, indicating it will authenticate with a passkey. It then invokes the Android CredentialManager.getCredential() API with this request. This action triggers a standardized Android system interface, prompting the user to choose their Zoho account (if multiple passkeys exist) and authenticate using their device’s configured screen lock (fingerprint, face scan, or PIN). After successful authentication, Credential Manager returns a signed assertion (proof of login) to the Zoho app. The app forwards this assertion to Zoho’s server, which verifies the signature against the user’s stored public key and validates the challenge, completing the secure sign-in process.

    Server-side implementation

    Zoho’s transition to supporting passkeys benefited from their backend systems already being FIDO WebAuthn compliant, which streamlined the server-side implementation process. However, specific modifications were still necessary to fully integrate passkey functionality.

    The most significant challenge involved adapting the credential storage system. Zoho’s existing authentication methods, which primarily used passwords and FIDO security keys for multi-factor authentication, required different storage approaches than passkeys, which are based on cryptographic public keys. To address this, Zoho implemented a new database schema specifically designed to securely store passkey public keys and related data according to WebAuthn protocols. This new system was built alongside a lookup mechanism to validate and retrieve credentials based on user and device information, ensuring backward compatibility with older authentication methods.

    Another server-side adjustment involved implementing the ability to handle requests from Android devices. Passkey requests originating from Android apps use a unique origin format (android:apk-key-hash:example) that is distinct from standard web origins that use a URI-based format (https://example.com/app). The server logic needed to be updated to correctly parse this format, extract the SHA-256 fingerprint hash of the app’s signing certificate, and validate it against a pre-registered list. This verification step ensures that authentication requests genuinely originate from Zoho’s Android app and protects against phishing attacks.

    This code snippet demonstrates how the server checks for the Android-specific origin format and validates the certificate hash:

    val origin: String = clientData.getString("origin")
    
    if (origin.startsWith("android:apk-key-hash:")) { 
        val originSplit: List<String> = origin.split(":")
        if (originSplit.size > 3) {
                   val androidOriginHashDecoded: ByteArray = Base64.getDecoder().decode(originSplit[3])
    
                    if (!androidOriginHashDecoded.contentEquals(oneAuthSha256FingerPrint)) {
                throw IAMException(IAMErrorCode.WEBAUTH003)
            }
        } else {
            // Optional: Handle the case where the origin string is malformed    }
    }
    

    Error handling

    Zoho implemented robust error handling mechanisms to manage both user-facing and developer-facing errors. A common error, CreateCredentialCancellationException, appeared when users manually canceled their passkey setup. Zoho tracked the frequency of this error to assess potential UX improvements. Based on Android’s UX recommendations, Zoho took steps to better educate their users about passkeys, ensure users were aware of passkey availability, and promote passkey adoption during subsequent sign-in attempts.

    This code example demonstrates Zoho’s approach for how they handled their most common passkey creation errors:

    private fun handleFailure(e: CreateCredentialException) {
        val msg = when (e) {
            is CreateCredentialCancellationException -> {
                Analytics.addAnalyticsEvent(eventProtocol: "PASSKEY_SETUP_CANCELLED", GROUP_NAME)
                Analytics.addNonFatalException(e)
                "The operation was canceled by the user."
            }
            is CreateCredentialInterruptedException -> {
                Analytics.addAnalyticsEvent(eventProtocol: "PASSKEY_SETUP_INTERRUPTED", GROUP_NAME)
                Analytics.addNonFatalException(e)
                "Passkey setup was interrupted. Please try again."
            }
            is CreateCredentialProviderConfigurationException -> {
                Analytics.addAnalyticsEvent(eventProtocol: "PASSKEY_PROVIDER_MISCONFIGURED", GROUP_NAME)
                Analytics.addNonFatalException(e)
                "Credential provider misconfigured. Contact support."
            }
            is CreateCredentialUnknownException -> {
                Analytics.addAnalyticsEvent(eventProtocol: "PASSKEY_SETUP_UNKNOWN_ERROR", GROUP_NAME)
                Analytics.addNonFatalException(e)
                "An unknown error occurred during Passkey setup."
            }
            is CreatePublicKeyCredentialDomException -> {
                Analytics.addAnalyticsEvent(eventProtocol: "PASSKEY_WEB_AUTHN_ERROR", GROUP_NAME)
                Analytics.addNonFatalException(e)
                "Passkey creation failed: ${e.domError}"
            }
            else -> {
                Analytics.addAnalyticsEvent(eventProtocol: "PASSKEY_SETUP_FAILED", GROUP_NAME)
                Analytics.addNonFatalException(e)
                "An unexpected error occurred. Please try again."
            }
        }
    }
    

    Testing passkeys in intranet environments

    Zoho faced an initial challenge in testing passkeys within a closed intranet environment. The Google Password Manager verification process for passkeys requires public domain access to validate the relying party (RP) domain. However, Zoho’s internal testing environment lacked this public Internet access, causing the verification process to fail and hindering successful passkey authentication testing. To overcome this, Zoho created a publicly accessible test environment, which included hosting a temporary server with an asset link file and domain validation.

    This example from the assetlinks.json file used in Zoho’s public test environment demonstrates how to associate the relying party domain with the specified Android app for passkey validation.

    [
        {
            "relation": [
                "delegate_permission/common.handle_all_urls",
                "delegate_permission/common.get_login_creds"
            ],
            "target": {
                "namespace": "android_app",
                "package_name": "com.zoho.accounts.oneauth",
                "sha256_cert_fingerprints": [
                    "SHA_HEX_VALUE" 
                ]
            }
        }
    ]
    

    Integrate with an existing FIDO server

    Android’s passkey system utilizes the modern FIDO2 WebAuthn standard. This standard requires requests in a specific JSON format, which helps maintain consistency between native applications and web platforms. To enable Android passkey support, Zoho did minor compatibility and structural changes to correctly generate and process requests that adhere to the required FIDO2 JSON structure.

    This server update involved several specific technical adjustments:

    // Convert rawId bytes to a standard Base64 encoded string for storage
    val base64RawId: String = Base64.getEncoder().encodeToString(rawId.toByteArray())
    

        2. Transport list format: To ensure consistent data processing, the server logic handles lists of transport mechanisms (such as USB, NFC, and Bluetooth, which specify how the authenticator communicated) as JSON arrays.

        3. Client data alignment: The Zoho team adjusted how the server encodes and decodes the clientDataJson field. This ensures the data structure aligns precisely with the expectations of Zoho’s existing internal APIs. The example below illustrates part of the conversion logic applied to client data before the server processes it:

    private fun convertForServer(type: String): String {
        val clientDataBytes = BaseEncoding.base64().decode(type)
        val clientDataJson = JSONObject(String(clientDataBytes, StandardCharsets.UTF_8))
        val clientJson = JSONObject()
        val challengeFromJson = clientDataJson.getString("challenge")
        // 'challenge' is a technical identifier/token, not localizable text.
        clientJson.put("challenge", BaseEncoding.base64Url()
            .encode(challengeFromJson.toByteArray(StandardCharsets.UTF_8))) 
    
        clientJson.put("origin", clientDataJson.getString("origin"))
        clientJson.put("type", clientDataJson.getString("type"))
        clientJson.put("androidPackageName", clientDataJson.getString("androidPackageName"))
        return BaseEncoding.base64().encode(clientJson.toString().toByteArray())
    }
    

    User guidance and authentication preferences

    A central part of Zoho’s passkey strategy involved encouraging user adoption while providing flexibility to align with different organizational requirements. This was achieved through careful UI design and policy controls.

    Zoho recognized that organizations have varying security needs. To accommodate this, Zoho implemented:

      • Admin enforcement: Through the Zoho Directory admin panel, administrators can designate passkeys as the mandatory, default authentication method for their entire organization. When this policy is enabled, employees are required to set up a passkey upon their next login and use it going forward.
      • User choice: If an organization does not enforce a specific policy, individual users maintain control. They can choose their preferred authentication method during login, selecting from passkeys or other configured options via their authentication settings.

    To make adopting passkeys appealing and straightforward for end-users, Zoho implemented:

      • Easy setup: Zoho integrated passkey setup directly into the Zoho OneAuth mobile app (available for both Android and iOS). Users can conveniently configure their passkeys within the app at any time, smoothing the transition.
      • Consistent access: Passkey support was implemented across key user touchpoints, ensuring users can register and authenticate using passkeys via:
          • The Zoho OneAuth mobile app (Android & iOS);

    This method ensured that the process of setting up and using passkeys was accessible and integrated into the platforms they already use, regardless of whether it was mandated by an admin or chosen by the user. You can learn more about how to create smooth user flows for passkey authentication by exploring our comprehensive passkeys user experience guide.

    Impact on developer velocity and integration efficiency

    Credential Manager, as a unified API, also helped improve developer productivity compared to older sign-in flows. It reduced the complexity of handling multiple authentication methods and APIs separately, leading to faster integration, from months to weeks, and fewer implementation errors. This collectively streamlined the sign-in process and improved overall reliability.

    By implementing passkeys with Credential Manager, Zoho achieved significant, measurable improvements across the board:

      • Dramatic speed improvements
          • 2x faster login compared to traditional password authentication.
          • 4x faster login compared to username or mobile number with email or SMS OTP authentication.
          • 6x faster login compared to username, password, and SMS or authenticator OTP authentication.
      • Reduced support costs
          • Reduced password-related support requests, especially for forgotten passwords.
          • Lower costs associated with SMS-based 2FA, as existing users can onboard directly with passkeys.
      • Strong user adoption & enhanced security:
          • Passkey sign-ins doubled in just 4 months, showing high user acceptance.
          • Users migrating to passkeys are fully protected from common phishing and password breach threats.
          • With 31% MoM adoption growth, more users are benefiting daily from enhanced security against vulnerabilities like phishing and SIM swaps.

    Recommendations and best practices

    To successfully implement passkeys on Android, developers should consider the following best practices:

      • Leverage Android’s Credential Manager API:
          • Credential Manager simplifies credential retrieval, reducing developer effort and ensuring a unified authentication experience.
          • Handles passwords, passkeys, and federated login flows in a single interface.
      • Ensure data encoding consistency while migrating from other FIDO authentication solutions:
          • Make sure you handle consistent formatting for all inputs/outputs while migrating from other FIDO authentication solutions such as FIDO security keys.
      • Optimize error handling and logging:
          • Implement robust error handling for a seamless user experience.
          • Provide localized error messages and use detailed logs to debug and resolve unexpected failures.
      • Educate users on passkey recovery options:
          • Prevent lockout scenarios by proactively guiding users on recovery options.
      • Monitor adoption metrics and user feedback:
          • Track user engagement, passkey adoption rates, and login success rates to keep optimizing user experience.
          • Conduct A/B testing on different authentication flows to improve conversion and retention.

    Passkeys, combined with the Android Credential Manager API, offer a powerful, unified authentication solution that enhances security while simplifying user experience. Passkeys significantly reduce phishing risks, credential theft, and unauthorized access. We encourage developers to try out the experience in their app and bring the most secure authentication to their users.

    Get started with passkeys and Credential Manager

    Get hands on with passkeys and Credential Manager on Android using our public sample code.

    If you have any questions or issues, you can share with us through the Android Credentials issues tracker.



    Source link

  • Prepare your apps for Google Play’s 16 KB page size compatibility requirement



    Posted by Dan Brown – Product Manager, Google Play

    Google Play empowers you to manage and distribute your innovative and trusted apps and games to billions of users around the world across the entire breadth of Android devices, and historically, all Android devices have managed memory in 4 KB pages.

    As device manufacturers equip devices with more RAM to optimize performance, many will adopt larger page sizes like 16 KB. Android 15 introduces support for the increased page size, ensuring your app can run on these evolving devices and benefit from the associated performance gains.

    Starting November 1st, 2025, all new apps and updates to existing apps submitted to Google Play and targeting Android 15+ devices must support 16 KB page sizes.

    This is a key technical requirement to ensure your users can benefit from the performance enhancements on newer devices and prepares your apps for the platform’s future direction of improved performance on newer hardware. Without recompiling to support 16 KB pages, your app might not function correctly on these devices when they become more widely available in future Android releases.

    We’ve seen that 16 KB can help with:

      • Faster app launches: See improvements ranging from 3% to 30% for various apps.
      • Improved battery usage: Experience an average gain of 4.5%.
      • Quicker camera starts: Launch the camera 4.5% to 6.6% faster.
      • Speedier system boot-ups: Boot Android devices approximately 8% faster.

    We recommend checking your apps early especially for dependencies that might not yet be 16 KB compatible. Many popular SDK providers, like React Native and Flutter, already offer compatible versions. For game developers, several leading game engines, such as Unity, support 16 KB, with support for Unreal Engine coming soon.

    Reaching 16 KB compatibility

    A substantial number of apps are already compatible, so your app may already work seamlessly with this requirement. For most of those that need to make adjustments, we expect the changes to be minimal.

      • Apps with no native code should be compatible without any changes at all.
      • Apps using libraries or SDKs that contain native code may need to update these to a compatible version.
      • Apps with native code may need to recompile with a more recent toolchain and check for any code with incompatible low level memory management.

    Our December blog post, Get your apps ready for 16 KB page size devices, provides a more detailed technical explanation and guidance on how to prepare your apps.

    Check your app’s compatibility now

    It’s easy to see if your app bundle already supports 16 KB memory page sizes. Visit the app bundle explorer page in Play Console to check your app’s build compliance and get guidance on where your app may need updating.

    App bundle explorer in Play Console

    Beyond the app bundle explorer, make sure to also test your app in a 16 KB environment. This will help you ensure users don’t experience any issues and that your app delivers its best performance.

    For more information, check out the full documentation.

    Thank you for your continued support in bringing delightful, fast, and high-performance experiences to users across the breadth of devices Play supports. We look forward to seeing the enhanced experiences you’ll deliver with 16 KB support.



    Source link

  • Galaxy S25 Edge photo leak lands ahead of Monday launch

    Galaxy S25 Edge photo leak lands ahead of Monday launch


    Samsung Galaxy S25 Edge (2)

    Paul Jones / Android Authority

    TL;DR

    • Samsung is just about to launch the Galaxy S25 Edge, an extra-thin variant of this year’s S25 flagship.
    • Ahead of Monday’s Unpacked event, new promotional imagery of the hardware has leaked.
    • We’re also getting a new look at a few cases and Samsung’s screen protector.

    It’s official: In just a few short days, on May 12, Samsung is formally launching the Galaxy S25 Edge. Depending on who you ask, the controversial extra-thin smartphone is either the most desirable flagship Samsung’s cooked up in a while, or a symbol of everything that’s wrong with modern phone design trends. You’ll be able to get your hands on the phone and make up your own mind soon. Until then, why wait all weekend for the official reveal when we’ve got a new leak to check out today that lays bare the S25 Edge and its accessories?

    What we’ve got here appears to be some very official-looking Samsung imagery shared by Android Headlines, detailing the S25 Edge and some of its stand-out features. That side-view teaser we first checked out back at the start of the month returns once again, though now in sharp focus, highlighting the handset’s slim build.

    galaxy s25 edge ah leak 06

    We can glean confirmation of a few camera details from these graphics, and spot that mention of ingress protection, but sadly these paint a less than complete picture of the hardware. While there’s no denying that’s a very svelte handset we’re looking at, Samsung doesn’t seem to be going out of its way to highlight the actual measurement (which we’ve heard before as 5.8mm thin) — not in this imagery, anyway.

    Although these pics aren’t overloaded with juicy specs, this image dump does manage to give us a nice preview of some of the cases set to be available for the Galaxy S25 Edge. We’re not saying that an extra-thin handset is necessarily going to be that much easier to accidentally drop, but we’d sure like to be covered, all the same. First up, we’ve got Samsung’s silicone case:

    If that one’s not to your taste, Samsung will also be bringing back its “Kindsuit” cases with that classy leather-esque finish:

    As you can see, all these will be available in a variety of colors, coordinated to match the hues the S25 Edge itself will arrive in. But if you’d rather just let the phones shine through, that’s an option, too:

    Lest you think we were playing a little fast and loose with that “accessory” label when we really meant “just cases,” we’re wrapping up this leak with Samsung’s screen-protection solution for the S25 Edge:

    Check back with Android Authority this coming Monday, May 12, for full coverage of the Samsung Galaxy S25 Edge launch.

    Got a tip? Talk to us! Email our staff at news@androidauthority.com. You can stay anonymous or get credit for the info, it’s your choice.



    Source link

  • Building delightful Android camera and media experiences



    Posted by Donovan McMurray, Mayuri Khinvasara Khabya, Mozart Louis, and Nevin Mital – Developer Relations Engineers

    Hello Android Developers!

    We are the Android Developer Relations Camera & Media team, and we’re excited to bring you something a little different today. Over the past several months, we’ve been hard at work writing sample code and building demos that showcase how to take advantage of all the great potential Android offers for building delightful user experiences.

    Some of these efforts are available for you to explore now, and some you’ll see later throughout the year, but for this blog post we thought we’d share some of the learnings we gathered while going through this exercise.

    Grab your favorite Android plush or rubber duck, and read on to see what we’ve been up to!

    Future-proof your app with Jetpack

    Nevin Mital

    One of our focuses for the past several years has been improving the developer tools available for video editing on Android. This led to the creation of the Jetpack Media3 Transformer APIs, which offer solutions for both single-asset and multi-asset video editing preview and export. Today, I’d like to focus on the Composition demo app, a sample app that showcases some of the multi-asset editing experiences that Transformer enables.

    I started by adding a custom video compositor to demonstrate how you can arrange input video sequences into different layouts for your final composition, such as a 2×2 grid or a picture-in-picture overlay. You can customize this by implementing a VideoCompositorSettings and overriding the getOverlaySettings method. This object can then be set when building your Composition with setVideoCompositorSettings.

    Here is an example for the 2×2 grid layout:

    object : VideoCompositorSettings {
      ...
    
      override fun getOverlaySettings(inputId: Int, presentationTimeUs: Long): OverlaySettings {
        return when (inputId) {
          0 -> { // First sequence is placed in the top left
            StaticOverlaySettings.Builder()
              .setScale(0.5f, 0.5f)
              .setOverlayFrameAnchor(0f, 0f) // Middle of overlay
              .setBackgroundFrameAnchor(-0.5f, 0.5f) // Top-left section of background
              .build()
          }
    
          1 -> { // Second sequence is placed in the top right
            StaticOverlaySettings.Builder()
              .setScale(0.5f, 0.5f)
              .setOverlayFrameAnchor(0f, 0f) // Middle of overlay
              .setBackgroundFrameAnchor(0.5f, 0.5f) // Top-right section of background
              .build()
          }
    
          2 -> { // Third sequence is placed in the bottom left
            StaticOverlaySettings.Builder()
              .setScale(0.5f, 0.5f)
              .setOverlayFrameAnchor(0f, 0f) // Middle of overlay
              .setBackgroundFrameAnchor(-0.5f, -0.5f) // Bottom-left section of background
              .build()
          }
    
          3 -> { // Fourth sequence is placed in the bottom right
            StaticOverlaySettings.Builder()
              .setScale(0.5f, 0.5f)
              .setOverlayFrameAnchor(0f, 0f) // Middle of overlay
              .setBackgroundFrameAnchor(0.5f, -0.5f) // Bottom-right section of background
              .build()
          }
    
          else -> {
            StaticOverlaySettings.Builder().build()
          }
        }
      }
    }
    

    Since getOverlaySettings also provides a presentation time, we can even animate the layout, such as in this picture-in-picture example:

    moving image of picture in picture on a mobile device

    Next, I spent some time migrating the Composition demo app to use Jetpack Compose. With complicated editing flows, it can help to take advantage of as much screen space as is available, so I decided to use the supporting pane adaptive layout. This way, the user can fine-tune their video creation on the preview screen, and export options are only shown at the same time on a larger display. Below, you can see how the UI dynamically adapts to the screen size on a foldable device, when switching from the outer screen to the inner screen and vice versa.

    What’s great is that by using Jetpack Media3 and Jetpack Compose, these features also carry over seamlessly to other devices and form factors, such as the new Android XR platform. Right out-of-the-box, I was able to run the demo app in Home Space with the 2D UI I already had. And with some small updates, I was even able to adapt the UI specifically for XR with features such as multiple panels, and to take further advantage of the extra space, an Orbiter with playback controls for the editing preview.

    moving image of suportive pane adaptive layout

    What’s great is that by using Jetpack Media3 and Jetpack Compose, these features also carry over seamlessly to other devices and form factors, such as the new Android XR platform. Right out-of-the-box, I was able to run the demo app in Home Space with the 2D UI I already had. And with some small updates, I was even able to adapt the UI specifically for XR with features such as multiple panels, and to take further advantage of the extra space, an Orbiter with playback controls for the editing preview.

    moving image of sequential composition preview in Android XR

    Orbiter(
      position = OrbiterEdge.Bottom,
      offset = EdgeOffset.inner(offset = MaterialTheme.spacing.standard),
      alignment = Alignment.CenterHorizontally,
      shape = SpatialRoundedCornerShape(CornerSize(28.dp))
    ) {
      Row (horizontalArrangement = Arrangement.spacedBy(MaterialTheme.spacing.mini)) {
        // Playback control for rewinding by 10 seconds
        FilledTonalIconButton({ viewModel.seekBack(10_000L) }) {
          Icon(
            painter = painterResource(id = R.drawable.rewind_10),
            contentDescription = "Rewind by 10 seconds"
          )
        }
        // Playback control for play/pause
        FilledTonalIconButton({ viewModel.togglePlay() }) {
          Icon(
            painter = painterResource(id = R.drawable.rounded_play_pause_24),
            contentDescription = 
                if(viewModel.compositionPlayer.isPlaying) {
                    "Pause preview playback"
                } else {
                    "Resume preview playback"
                }
          )
        }
        // Playback control for forwarding by 10 seconds
        FilledTonalIconButton({ viewModel.seekForward(10_000L) }) {
          Icon(
            painter = painterResource(id = R.drawable.forward_10),
            contentDescription = "Forward by 10 seconds"
          )
        }
      }
    }
    

    Jetpack libraries unlock premium functionality incrementally

    Donovan McMurray

    Not only do our Jetpack libraries have you covered by working consistently across existing and future devices, but they also open the doors to advanced functionality and custom behaviors to support all types of app experiences. In a nutshell, our Jetpack libraries aim to make the common case very accessible and easy, and it has hooks for adding more custom features later.

    We’ve worked with many apps who have switched to a Jetpack library, built the basics, added their critical custom features, and actually saved developer time over their estimates. Let’s take a look at CameraX and how this incremental development can supercharge your process.

    // Set up CameraX app with preview and image capture.
    // Note: setting the resolution selector is optional, and if not set,
    // then a default 4:3 ratio will be used.
    val aspectRatioStrategy = AspectRatioStrategy(
      AspectRatio.RATIO_16_9, AspectRatioStrategy.FALLBACK_RULE_NONE)
    var resolutionSelector = ResolutionSelector.Builder()
      .setAspectRatioStrategy(aspectRatioStrategy)
      .build()
    
    private val previewUseCase = Preview.Builder()
      .setResolutionSelector(resolutionSelector)
      .build()
    private val imageCaptureUseCase = ImageCapture.Builder()
      .setResolutionSelector(resolutionSelector)
      .setCaptureMode(ImageCapture.CAPTURE_MODE_MINIMIZE_LATENCY)
      .build()
    
    val useCaseGroupBuilder = UseCaseGroup.Builder()
      .addUseCase(previewUseCase)
      .addUseCase(imageCaptureUseCase)
    
    cameraProvider.unbindAll()
    
    camera = cameraProvider.bindToLifecycle(
      this,  // lifecycleOwner
      CameraSelector.DEFAULT_BACK_CAMERA,
      useCaseGroupBuilder.build(),
    )
    

    After setting up the basic structure for CameraX, you can set up a simple UI with a camera preview and a shutter button. You can use the CameraX Viewfinder composable which displays a Preview stream from a CameraX SurfaceRequest.

    // Create preview
    Box(
      Modifier
        .background(Color.Black)
        .fillMaxSize(),
      contentAlignment = Alignment.Center,
    ) {
      surfaceRequest?.let {
        CameraXViewfinder(
          modifier = Modifier.fillMaxSize(),
          implementationMode = ImplementationMode.EXTERNAL,
          surfaceRequest = surfaceRequest,
         )
      }
      Button(
        onClick = onPhotoCapture,
        shape = CircleShape,
        colors = ButtonDefaults.buttonColors(containerColor = Color.White),
        modifier = Modifier
          .height(75.dp)
          .width(75.dp),
      )
    }
    
    fun onPhotoCapture() {
      // Not shown: defining the ImageCapture.OutputFileOptions for
      // your saved images
      imageCaptureUseCase.takePicture(
        outputOptions,
        ContextCompat.getMainExecutor(context),
        object : ImageCapture.OnImageSavedCallback {
          override fun onError(exc: ImageCaptureException) {
            val msg = "Photo capture failed."
            Toast.makeText(context, msg, Toast.LENGTH_SHORT).show()
          }
    
          override fun onImageSaved(output: ImageCapture.OutputFileResults) {
            val savedUri = output.savedUri
            if (savedUri != null) {
              // Do something with the savedUri if needed
            } else {
              val msg = "Photo capture failed."
              Toast.makeText(context, msg, Toast.LENGTH_SHORT).show()
            }
          }
        },
      )
    }
    

    You’re already on track for a solid camera experience, but what if you wanted to add some extra features for your users? Adding filters and effects are easy with CameraX’s Media3 effect integration, which is one of the new features introduced in CameraX 1.4.0.

    Here’s how simple it is to add a black and white filter from Media3’s built-in effects.

    val media3Effect = Media3Effect(
      application,
      PREVIEW or IMAGE_CAPTURE,
      ContextCompat.getMainExecutor(application),
      {},
    )
    media3Effect.setEffects(listOf(RgbFilter.createGrayscaleFilter()))
    useCaseGroupBuilder.addEffect(media3Effect)
    

    The Media3Effect object takes a Context, a bitwise representation of the use case constants for targeted UseCases, an Executor, and an error listener. Then you set the list of effects you want to apply. Finally, you add the effect to the useCaseGroupBuilder we defined earlier.

    moving image of sequential composition preview in Android XR

    (Left) Our camera app with no filter applied. 
     (Right) Our camera app after the createGrayscaleFilter was added.

    There are many other built-in effects you can add, too! See the Media3 Effect documentation for more options, like brightness, color lookup tables (LUTs), contrast, blur, and many other effects.

    To take your effects to yet another level, it’s also possible to define your own effects by implementing the GlEffect interface, which acts as a factory of GlShaderPrograms. You can implement a BaseGlShaderProgram’s drawFrame() method to implement a custom effect of your own. A minimal implementation should tell your graphics library to use its shader program, bind the shader program’s vertex attributes and uniforms, and issue a drawing command.

    Jetpack libraries meet you where you are and your app’s needs. Whether that be a simple, fast-to-implement, and reliable implementation, or custom functionality that helps the critical user journeys in your app stand out from the rest, Jetpack has you covered!

    Jetpack offers a foundation for innovative AI Features

    Mayuri Khinvasara Khabya

    Just as Donovan demonstrated with CameraX for capture, Jetpack Media3 provides a reliable, customizable, and feature-rich solution for playback with ExoPlayer. The AI Samples app builds on this foundation to delight users with helpful and enriching AI-driven additions.

    In today’s rapidly evolving digital landscape, users expect more from their media applications. Simply playing videos is no longer enough. Developers are constantly seeking ways to enhance user experiences and provide deeper engagement. Leveraging the power of Artificial Intelligence (AI), particularly when built upon robust media frameworks like Media3, offers exciting opportunities. Let’s take a look at some of the ways we can transform the way users interact with video content:

      • Empowering Video Understanding: The core idea is to use AI, specifically multimodal models like the Gemini Flash and Pro models, to analyze video content and extract meaningful information. This goes beyond simply playing a video; it’s about understanding what’s in the video and making that information readily accessible to the user.
      • Actionable Insights: The goal is to transform raw video into summaries, insights, and interactive experiences. This allows users to quickly grasp the content of a video and find specific information they need or learn something new!
      • Accessibility and Engagement: AI helps make videos more accessible by providing features like summaries, translations, and descriptions. It also aims to increase user engagement through interactive features.

    A Glimpse into AI-Powered Video Journeys

    The following example demonstrates potential video journies enhanced by artificial intelligence. This sample integrates several components, such as ExoPlayer and Transformer from Media3; the Firebase SDK (leveraging Vertex AI on Android); and Jetpack Compose, ViewModel, and StateFlow. The code will be available soon on Github.

    moving images of examples of AI-powered video journeys

    (Left) Video summarization  
     (Right) Thumbnails timestamps and HDR frame extraction

    There are two experiences in particular that I’d like to highlight:

      • HDR Thumbnails: AI can help identify key moments in the video that could make for good thumbnails. With those timestamps, you can use the new ExperimentalFrameExtractor API from Media3 to extract HDR thumbnails from videos, providing richer visual previews.
      • Text-to-Speech: AI can be used to convert textual information derived from the video into spoken audio, enhancing accessibility. On Android you can also choose to play audio in different languages and dialects thus enhancing personalization for a wider audience.

    Using the right AI solution

    Currently, only cloud models support video inputs, so we went ahead with a cloud-based solution.Iintegrating Firebase in our sample empowers the app to:

      • Generate real-time, concise video summaries automatically.
      • Produce comprehensive content metadata, including chapter markers and relevant hashtags.
      • Facilitate seamless multilingual content translation.

    So how do you actually interact with a video and work with Gemini to process it? First, send your video as an input parameter to your prompt:

    val promptData =
    "Summarize this video in the form of top 3-4 takeaways only. Write in the form of bullet points. Don't assume if you don't know"
    
    val generativeModel = Firebase.vertexAI.generativeModel("gemini-2.0-flash")
    _outputText.value = OutputTextState.Loading
    
    viewModelScope.launch(Dispatchers.IO) {
        try {
            val requestContent = content {
                fileData(videoSource.toString(), "video/mp4")
                text(prompt)
            }
            val outputStringBuilder = StringBuilder()
    
            generativeModel.generateContentStream(requestContent).collect { response ->
                outputStringBuilder.append(response.text)
                _outputText.value = OutputTextState.Success(outputStringBuilder.toString())
            }
    
            _outputText.value = OutputTextState.Success(outputStringBuilder.toString())
    
        } catch (error: Exception) {
            _outputText.value = error.localizedMessage?.let { OutputTextState.Error(it) }
        }
    }
    

    Notice there are two key components here:

      • FileData: This component integrates a video into the query.
      • Prompt: This asks the user what specific assistance they need from AI in relation to the provided video.

    Of course, you can finetune your prompt as per your requirements and get the responses accordingly.

    In conclusion, by harnessing the capabilities of Jetpack Media3 and integrating AI solutions like Gemini through Firebase, you can significantly elevate video experiences on Android. This combination enables advanced features like video summaries, enriched metadata, and seamless multilingual translations, ultimately enhancing accessibility and engagement for users. As these technologies continue to evolve, the potential for creating even more dynamic and intelligent video applications is vast.

    Go above-and-beyond with specialized APIs

    Mozart Louis

    Android 16 introduces the new audio PCM Offload mode which can reduce the power consumption of audio playback in your app, leading to longer playback time and increased user engagement. Eliminating the power anxiety greatly enhances the user experience.

    Oboe is Android’s premiere audio api that developers are able to use to create high performance, low latency audio apps. A new feature is being added to the Android NDK and Android 16 called Native PCM Offload playback.

    Offload playback helps save battery life when playing audio. It works by sending a large chunk of audio to a special part of the device’s hardware (a DSP). This allows the CPU of the device to go into a low-power state while the DSP handles playing the sound. This works with uncompressed audio (like PCM) and compressed audio (like MP3 or AAC), where the DSP also takes care of decoding.

    This can result in significant power saving while playing back audio and is perfect for applications that play audio in the background or while the screen is off (think audiobooks, podcasts, music etc).

    We created the sample app PowerPlay to demonstrate how to implement these features using the latest NDK version, C++ and Jetpack Compose.

    Here are the most important parts!

    First order of business is to assure the device supports audio offload of the file attributes you need. In the example below, we are checking if the device support audio offload of stereo, float PCM file with a sample rate of 48000Hz.

           val format = AudioFormat.Builder()
                .setEncoding(AudioFormat.ENCODING_PCM_FLOAT)
                .setSampleRate(48000)
                .setChannelMask(AudioFormat.CHANNEL_OUT_STEREO)
                .build()
    
            val attributes =
                AudioAttributes.Builder()
                    .setContentType(AudioAttributes.CONTENT_TYPE_MUSIC)
                    .setUsage(AudioAttributes.USAGE_MEDIA)
                    .build()
           
            val isOffloadSupported = 
                if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
                    AudioManager.isOffloadedPlaybackSupported(format, attributes)
                } else {
                    false
                }
    
            if (isOffloadSupported) {
                player.initializeAudio(PerformanceMode::POWER_SAVING_OFFLOADED)
            }
    

    Once we know the device supports audio offload, we can confidently set the Oboe audio streams’ performance mode to the new performance mode option, PerformanceMode::POWER_SAVING_OFFLOADED.

    // Create an audio stream
            AudioStreamBuilder builder;
            builder.setChannelCount(mChannelCount);
            builder.setDataCallback(mDataCallback);
            builder.setFormat(AudioFormat::Float);
            builder.setSampleRate(48000);
    
            builder.setErrorCallback(mErrorCallback);
            builder.setPresentationCallback(mPresentationCallback);
            builder.setPerformanceMode(PerformanceMode::POWER_SAVING_OFFLOADED);
            builder.setFramesPerDataCallback(128);
            builder.setSharingMode(SharingMode::Exclusive);
               builder.setSampleRateConversionQuality(SampleRateConversionQuality::Medium);
            Result result = builder.openStream(mAudioStream);
    

    Now when audio is played back, it will be offloading audio to the DSP, helping save power when playing back audio.

    There is more to this feature that will be covered in a future blog post, fully detailing out all of the new available APIs that will help you optimize your audio playback experience!

    What’s next

    Of course, we were only able to share the tip of the iceberg with you here, so to dive deeper into the samples, check out the following links:

    Hopefully these examples have inspired you to explore what new and fascinating experiences you can build on Android. Tune in to our session at Google I/O in a couple weeks to learn even more about use-cases supported by solutions like Jetpack CameraX and Jetpack Media3!



    Source link