If you're in the market for a non-root ad-blocker, developer Julian Klode has an app that you'll definitely want to check out. It uses Android's VPN system in a similar manner to alternative apps like NetGuard and AdGuard, but it's got a new twist that should save lots of battery life in the process.
Unlike its competitors, Klode's ad-blocking app works at the DNS level, meaning that it only filters traffic for a brief moment when connections are first made, which is where all of the battery saving comes into play. To top that off, it's completely free and open-source, so it's an instant contender for best no-root ad-blocker.
The app that will block all ads on your non-rooted device without excess battery drain is called DNS66, and it's available for free on the F-Droid Repository. This site is a trusted home for free and open-source Android apps, so tap the following link from your Android phone or tablet to begin:
From there, scroll down to the Packages section on the page, then tap the link that says "download apk." Next, simply tap the Download complete notification to launch the APK, then press "Install" when prompted.
When you first launch the app, you'll land on the Start tab. You can adjust a few settings here if you'd like, but for most users, I'd recommend leaving the options set as they are.
Next, head to the Hosts tab at the top of the screen. From here, you'll have to pick at least one ad-blocking hosts file, which is basically a list of known ad servers that DNS66 will block for you.
Several different hosts sources are enabled by default, but some will occasionally fail to download. So to make things more consistent, I'd recommend enabling only the "Adaway hosts file" here. It's a great ad-blocking list and it doesn't create issues like some of the other hosts files you'll see.
So tap the shield icon next to any of the sources to enable or disable the hosts file. When the shield icon is filled in, the hosts source is enabled. Once you've selected at least one hosts file source, tap the refresh icon to download the hosts file(s).
From here, head back to the Start tab from the top menu, then tap the "Start" icon near the bottom of the screen to start the VPN ad-blocking service. From there, press "OK" on the popup to set DNS66 as your phone's VPN service.
From now on, ads will be blocked in your browser, as well as all of your other apps, thanks to DNS66's VPN service. When the service is active, you'll see a small key icon in your status bar, which should now be present at all times:
Unlike other VPN-based ad-blockers, DNS66 blocks ads at the DNS level. This means that only DNS traffic is redirected through DNS66 and filtered for ads, as opposed to the method employed in similar apps, which filters all data traffic for ads.
What this boils down to is that all ads will be blocked system-wide—but, because only the tiniest bit of data is being filtered, DNS66 has a very minimal battery footprint. Compared to a similar app in Adguard (which filters ads in all traffic), you can see that DNS66 doesn't even show up in my battery stats, whereas Adguard ranks at the top of battery-draining apps: