Taking the final wrapper off of Android 7.0 Nougat(android-developers.blogspot.com) |
Taking the final wrapper off of Android 7.0 Nougat(android-developers.blogspot.com) |
If you have a Nexus device and don't care much for the Play Store applications (F-Droid is included) give it a go for a true AOSP experience.
The only apps I'm really missing are Tasker and Signal, but I have a second phone for those.
0: http://www.apkmirror.com/apk/open-whisper-systems/signal-pri...
Open Whisper Systems (the developers of Signal) apparently don't want to replace it or even just build in a fallback [0], and even fought with the LibreSignal developers, which is a fork that removes this dependency, and told them to stop using their servers [1], which lead to LibreSignal being discontinued.
I don't know what the heck is going on with this, but yeah, it's not pretty.
[0]: https://github.com/WhisperSystems/Signal-Android/issues/1106
[1]: https://github.com/LibreSignal/LibreSignal/issues/37#issueco...
There's also a more elaborate article on the topic here:
Other than APK Downloader, I haven't found another credible source among the very many options. Any solutions would be appreciated.
----
[0] APK Downloader, for those interested ... I'd start with the original, but the others might suit your needs:
* redphoenix89's original here: http://codekiem.com/2014/08/07/official-apk-downloader-v2-do... and here: http://forum.xda-developers.com/showthread.php?t=1515021
* Bexton's updated Chrome extension, based on v1.21: http://forum.xda-developers.com/showthread.php?t=1809458
* Lekensteyn updated Chrome extension, based on v1.3.4 of Bexton's: https://lekensteyn.nl/apk-downloader/ and https://github.com/Lekensteyn/apk-downloader
Now I have a 5X. Is the latest version available on the Copperhead site for that phone "based on Nougat"?
It is a shame about the Nexus5 not getting the update, it's still a pretty decent phone and not slow by any means.
I broke the screen on my Nexus5 recently so I brought a Nexus6, so far the battery seems to be worse than the N5 (I miss the wireless charging), so I'm looking forward to the battery improvements!
Edit: The split screen is a great feature, and not finicky at all. Being able to play videos in the background is going to be one of those features that you cannot live without (OK, it's a first world problem).
[0] Sure, better performance is always nice, but I don't care for Vulkan, VR Mode, or Multi-Window.
Android ... 86.2
iOS ... 12.9
Windows ... 0.6
Blackberry ... 0.1
Other ... 0.2
http://www.gartner.com/newsroom/id/3415117[0] https://android.googleblog.com/2015/08/an-update-to-nexus-de...
However, it's pretty nice? I know it has some added features but it doesn't really feel much different in 7 than it did in 6. I haven't had a chance to use PiP or anything like that.
1. Sign up for the Android beta programme: g.co/androidbeta
2. Enroll your Nexus
3. Unenroll after you have been updated to Android 7
Make sure you are actually on Android 7 before unenrolling. Going out of a regular beta will wipe your phone!
Cheers
Edit: Copy/Paste sandGorgon’s warning from below.
Warning : make sure you are actually on Android 7 before unenrolling. Going out of a regular beta will wipe your phone.
It looks like the 6P image is available: http://www.androidpolice.com/2016/08/22/flash-all-the-things...
Download it to your device, and either flash it in TWRP or use adb sideload. Note that if you've modified your /system, you'll need to reflash that partition with the stock image first (there are guides on XDA).
When will we see Android 7 on a third party device?
[1] https://www.apteligent.com/2016/08/apteligent-data-report-an...
If a higher percentage of Samsung devices are updated (graph keeps going up), then that would imply you were more likely to get an update.
The graph currently emphasises the first mover speed (which is affected by carriers, not just manufacturers).
(click the Multi-Window support link)
> If your app targets API level 23 or lower and the user attempts to use the app in multi-window mode, the system forcibly resizes the app unless the app declares a fixed orientation.
> If your app does not declare a fixed orientation, you should launch your app on a device running Android 7.0 or higher and attempt to put the app in split-screen mode. Verify that the user experience is acceptable when the app is forcibly resized.
Great, more nonsense being shoved down Android developer's throats. They still claim that newer versions and new features are not breaking their API - if this is the case, why would an app on Google Play from a year ago need the developer to "verify that the user experience is acceptable" just because they published a new version with a new feature?
It's been almost nine years since Android released its initial SDK and they're still playing cowboy stuff like this. This feature should be turned on for apps targeting Nougat or later, you shouldn't make every Android developer check every app ever made because three people on the Android developer team made a new feature and can't wait for its use to become more widespread, so they turn it on by default for legacy (pre-Nougat targeted) apps.
You bought a $350 phone and received updates for 3 years. I think you're in for a surprise when you price out a new iPhone.
Also, 5X uses the USB-C connector, so you have to update all your cables and adapters on your desk and in your car. A real pain. When you're out in the world and need a charge-up, you'd better be carrying a USB-C cable, because no one else will have one.
I consider the 5X a side-grade and not of any particular value if you already have a 5. The 6P is at least a larger handset with a larger battery so it's got that going for it.
> Expensive phone
Really ? That phone costed less than half of what an iphone costs and you can easily get a well supported ROM if you wish to.
Granted the situation sucks, but Google has been upfront about their support timeline.
I don't pay a lot of attention to the Android OS, but I do recall there was a nasty exploit discovered about a year ago (called Stagefright) where a specially-crafted text message with a picture or image can cause malicious code to be run on the phone the moment the phone receives the message.
If you ignore the hilarious security bugs --- like the fact that, as shipped, they forgot to disconnect the keyboard from a root shell, so that if you typed 'reboot' into an email hilarious things happened --- it actually runs rather well; it's smooth and perfectly satisfactory to use.
...holy crap Cupcake would run well on a modern phone.
Shitty Lollipop made me sell the Nexus 5 last year with its bad battery life and memory leak (and they still didn't fix the mobile radio wakelock), but when downgrading to 4.4 it was next to impossible to block the notification. I remember methods used at time just caused the Google Play Services to hold the wakelock, since the update checker became a part of it.
I'm really not impressed with the Nexus 5x at all compared to every other Nexus phone Ive had (2 others), both from a price and general performance perspective.
I've owned both the 5 and 6, it's definitely a matter of preference. The Nexus 5x would probably be closer to what you are looking for.
I still think Android's UX blows iOS out of the water these days, but the best UX in the world doesn't help me if the phone is dead, or too big to use one-handed on the go.
On another note I hated the Nexus 5 and that LCD screen always felt washed out!
Been in 4.4 for ages, after testing the awful battery life of Android 5 and going back.
I find the battery life in 6 be about the same as 4.4, after installing xposed framework and Amplify & Greenify modules.
Besides a change in colors from dark to white, and the new lock screen notifications that I'm still thinking about disabling, I don't see a lot in actual improvements using Android 6.
tl;dr Android updates on non-Nexus flagships are terrible. Updates are typically months late and stop after 12 or 18 months.
Witness the $200 phones that get spectacular battery life on stock Android primarily because they aren't running hardware that mostly goes unused and are unburdened by poorly designed launchers written by enterprisey Java devs.
> $200 phones that get spectacular battery life on stock Android because they ... are unburdened by poorly designed launchers written by enterprisey Java devs.
Are you saying that there are launchers / home screens that are _better_ than stock android in some dimension? I'm interested to hear more.
Coming from Jolla, with a huge battery life, I was really disappointed that iOS can't make it an entire day without recharging. Even with bluetooth and gps mostly off.
http://arstechnica.com/gadgets/2016/08/android-nougat-drops-...
[I]t's too bad that the support lifecycle of the most consistently updated Android devices is so much shorter than what Apple achieves with iOS, especially since the hardware should still be more than capable of supporting Nougat.
I bought once / as soon as I learned that its successor had not been worth waiting for. So, I got significantly less than 3 years out of it. Would have bought the successor, except...
Guess I'll be rooting it. And buying Apple, next time.
iPhone 5 launch price: US$649
A phone nearly twice the price should be supported quite a lot longer.
The bigger story may be the inability to come up with a compelling reason for N5 users to upgrade, other than getting the latest OS revision. The N5's compactness in particular makes the 5X (and the impending successor, codenamed "Sailfish") a tough sell.
Nexus 5 released late 2013, last major OS update in late 2015. Compare to the iPhone 4S, which came out late 2011 and still got iOS 9 (4 years later).
Really not buying the "two years is plenty of updates" excuse, especially from the Nexus line.
My Nexus 5 was in use up until a couple of weeks ago. Then it entered a state where, when plugged in, it rebooted in an eternal loop and, when not plugged in, it shut off. Judging by the internet, this is a common problem for them.
I followed the advice I found in multiple places of trying to dislodge the Nexus 5's stuck power button by whacking it against a soft object. That worked -- it will now try to boot, fail to mount the hard drive, and just keep displaying the booting animation forever. It can boot into the bootloader and recovery mode, and I can flash a new recovery image in fastboot, or at least I can issue the command and see a report of success, but on reboot I just get the old recovery mode.
So... I guess I do have a compelling reason to upgrade, although the N5 was satisfactory in every other way. My Nexus 4 still works fine, but it's gotten much puffier than it should be, and apparently it's impossible to get a new battery for it.
:(
The recent Marshmallow has 15.2% market share
Lollipop (14.1% + 21.4%) = 35.5% (the greatest share)
KitKat has 29.2% (the next greatest share)
Jelly Bean† still has (6.0% + 8.3% + 2.4%) = 16.7%
Earlier than Jelly Bean is 3.4% of the total share. Jelly Bean was first unveiled in June 2012, four years ago. I think given the development model: large ecosystem of hardware companies, alternative software stacks like Kindle and Cyanogen, a good chunk of it being open-source; given all that I'll forgive Google that we all can't upgrade to Nougat on the day of its release.As a techie you have to know by now that if you want an up to date version of Android you ought to get a Nexus or a brand which has guaranteed frequent into the future updates. There's not much point in claiming that you're "stuck" at this point.
† Data collected during a 7-day period ending on August 1, 2016.
Not true. I have bought: Galaxy Nexus, Nexus 7, Nexus 10, Nexus 5. Two of those were as expensive as iOS devices. None of them can get the N update (yes I could use Cyanogenmod but I prefer production versions of software for testing). We have our own app for Android phones and it is a pain to test (simulating touch with a mouse is not good). Other Android devices purchased for testing are no better...
Meanwhile the work iPhone 4 made it to iOS 7, the iPad 2 made it as far as iOS 9, and our other test devices are still getting updates to iOS 10.
I feel that Nexus devices stop getting updates quickly. The non-nexus Androids are way worse.
Don't buy an Android if you want a device to stay secure more than say two years (coming from somebody who loves Android!).
> As a techie you have to know by now that if you want an up to date version of Android you ought to get a Nexus...
Except I did that and it looks like my Nexus 7 is no longer getting OS updates, while my older iPhone 5 is still chugging on the latest OS and afaik will get iOS 10 soon.
This will definitely dissuade me from buying Android in the future.
There is no way that they could guarantee that the experience would be perfect for every scenario, so that left them with two options:
1. Make the feature only work for apps that declare support for it. This would significantly degrade the user experience for some apps that would work just fine but have not been updated.
2. Make it work for everything with reasonable defaults that every app should be able to handle. Leave it up to the user to accept the degradation for the ones that don't (or to just not use those applications in those modes).
From a user perspective, it isn't clear to me that option #1 was the wrong choice.
> This feature should be turned on for all apps; you shouldn't make every user wait for every app ever made to be updated because three people on the Android developer team made a new feature and were too afraid to break things, so they turn it off by default for legacy (pre-Nougat targeted) apps.
EDIT: I should read the whole thread before posting. GrinningFool made the same argument:
The logic probably went along the lines of: it's better for the user to have this feature that works with X% of what they already have installed than to force them to wait for the developers of each and every app to decide if/when they want to get around to updating.
This also lets the user know it's not the Apps fault. I feel it's a pretty good way to enhance the experience where possible and move apps forward even if they're old.
The problem is they break the API all the time, and this leaves Google Play strewn with broken apps. This may break 1% of apps, the next release breaks another 1%, after 10 releases, 10% of the apps not updated are broken.
Here's an example, I go to Google Play and search for "ringtone maker" ( https://play.google.com/store/search?q=ringtone%20maker ). The #3 result for me (which can vary by location) is https://play.google.com/store/apps/details?id=com.anbu.ringt... . So I download the app, click the microphone, say something, hit stop and - "java.io.IOException: Unknown file format".
This is their 3rd result for ringtone maker, has over 5 million downloads and yet their record feature is broken. It used to work but Google changed the API. You can look at the app source code ( https://github.com/malizadehq/ringdroid ) to see where this app broke if you want. This is just one example which comes to mind, I can think of many.
They claim they don't break the API going forward but they do all the time.
I sure hope there is a future for standalone Android TV boxes that aren't as expensive and large as the Shield.
Guess I'm gonna have to keep looking...
However, there's a third party app that provides access to the switch (seems to not work for some people, or require several tries - YMMV): http://android.wonderhowto.com/how-to/enable-hidden-night-mo...
This was the case from day one, which is why it never became my daily driver. Good to keep up on what's going on with Android, though.
I appreciate that things change (like the UI guidelines every year apparently!!) but if a clear roadmap was laid out back then, it would have saved a lot of time.
I don't really agree. I have always got regular security updates on my Samsung flagship phones. Yeah I will have to wait ~6 months for Nougat but that's hardly of any concern. There is no feature in Nougat that I don't already have from Samsung. The only thing you have to care about is the monthly security patches and Samsung has been one of the fastest to issue those every month.
You do have to remember to collect them when you're done, but the penalty for forgetting every now and then is not ruinous.
(Local distributor here has a minimum 1.5x markup plus a very very limited range)
But being able to simply set my phone on my desk and keep it fully charged is a convenience I won't soon give up. I now buy phones with that in mind.
In theory, plugging in a cable isn't time consuming, but in practice, I only actually keep my phone charged during the day if I have a wireless charger nearby.
YMMV.
I can still buy 4.4 phones as new on my city.
That's an overhead to code, backport and test. These resources could be spent elsewhere.
¹ https://github.com/microg/android_packages_apps_GmsCore/wiki
² https://github.com/LibreSignal/LibreSignal/issues/37#issueco...
It doesn't receive push notifications but I still receive messages once I run the app in the foreground (a thing I almost consider a feature now and not a bug)
Wow, Moxie... What the hell?
But hey, for 350 bucks, it's a good deal.
The iPhone 5s was released in approximately the same timeframe (September 2013). It gets iOS 10 and will probably receive iOS 11 as well (since the 5 gets 10 and they now seem to drop one generation per release). So, that will give major updates at least until 2017, or four years.
I am not sure why we find this acceptable anyway. When we buy a $300-400 Windows x86 laptop, we also expect it to be upgradable for a decade or so (which is usually possible).
We didn't used to. Not so long ago, keeping the same computer for 10 years would have been a ludicrous idea.
Heck, I got a Dell laptop for considerably more than $400 in 2003, less than 13 years ago. Its screen died 3 years later. I still have it around, but it's not much good without a display.
Wireless charging is the killer feature for wireless devices in my opinion. I can't wait for the day when every one of my devices and wireless peripherals supports wireless charging, so I can just lay them down on a large charging pad when I'm not using them and never have to worry about not having a full battery when I pick it up for use, or have to fumble with plugging wire into every single device.
There's a way to add wireless charging to your 5X if you're handy with a soldering iron, though.
Every one of my phones has lost manufacturer support 1-3 years after I got them...but my 5 year old Galaxy Nexus still has Cyanogenmod builds being released for it (based on Marshmallow).
With the timelines of when these different markets began, I think that's a fair comparison. Manufacturers want to maintain as few models as possible, but the community often does the work to provide extended support time.
We're going through the same technology change with mobiles now, but that even seems to be tapering off now.
Just swipe down from the top of the screen to reveal the quick settings, and then press and hold the Settings icon (gear) for a few seconds and release. This will enable the UI tuner.
Swipe down from the top again, then tap "EDIT" in the bottom right corner. There should be a tile for "Night mode", which you can drag and drop into the quick settings panel for easy toggling.
Unless you are unlucky enough to get a device that they can't update due to drivers (Texas Instruments CPU).
Android is sane: it won't let you downgrade, further updates from the store will work correctly, etc. Since apkmirror usually get their apks from the Play Store, you'll be okay if you know what you are doing.
That said, your skeptical attitude is very appropriate. Installing apks from outside of the Play Store is by far the biggest vector for malware. Users that only install from the Play Store are currently safe (less than 0.15% of those users get malware).
Great point; thanks.
> apkmirror usually get their apks from the Play Store
How do you know this? I've read reports of other Play Store proxies who injected malware.
> your skeptical attitude is very appropriate. Installing apks from outside of the Play Store is by far the biggest vector for malware
I was talking about APK proxy services, which claimed to pull the APKs from Google Play Store. For app stores, there are other generally reputable sources, such as,
* F-Droid, which focuses on free/open source software and user privacy. It has an excellent reputation and builds every app from source.
* Aptoide: Large commercial market, claims to screen apps for malware
* SlideME: At least at one time, reputedly focused on small, indie devs.
* GetJar: "The worlds biggest Open App Store", Started "by developers for developers"
Also, Raccoon is similar to APK Downloader: http://www.onyxbits.de/raccoon
Not that it matters much today...
Unfortunately its https library uses some obsolete crypto technique --- TLS 2? --- and as a result it can't connect to anything on the internet, not even to fetch updates from the App Market (not the Play Store!). I can't even log in to Google.
I did have Gingerbread on it at one point but it was very unhappy.
I found a partial Debian port but there's still not really enough RAM for that. I wonder if there's a NetBSD port...
I didn't know that the App Market doesn't work anymore - about 18 months back, my brother was still using it (as a backup phone, obviously).
So perhaps not the best example of what you're trying to say.
[0] https://github.com/malizadehq/ringdroid/blob/master/src/com/...
If the app always works like it ever has worked in the main screen, why do they say:
> If your app does not declare a fixed orientation, you should launch your app on a device running Android 7.0 or higher and attempt to put the app in split-screen mode. Verify that the user experience is acceptable when the app is forcibly resized.
It runs, but far from fine compared to iOS it shipped with with basically no added value.
But this is also not an option on iOS, because of the apps support and you have to update eventually.
I'm numb to the slow response times, but the crashing applications make me want to ditch this for a 50% cheaper android phone which runs faster, and doesn't have planned obsolescence[0] (the link talks about planned obsolescence in iPhone 4S and iOS 9 )
Now I'm okay with most of the stuff apple does with it's walled ecosystem, and appreciate some, but this is going directly against a consumer.
[0]: http://www.digitaltrends.com/mobile/iphone-4s-planned-obsole...
The damage is possibly my fault as I opened the phone to change the battery (which died in two years), but the lack of an user accessible battery and it's poor battery life are a problem.
I'll feel sad not to be on the leading edge for the first time in years (had Nexus 4 before)
If you want to save a couple hundred dollars, then maybe it's time to learn about a custom recovery and loading the 7.0 rom yourself!
I don't think the factory images are even out yet, so it'll take a bit for them to get a nice stable AOSP+gapps package for you
Signed, person that bought a first generation iPad.
And I would have bought the successor to the Nexus 7, except there was none, really -- nothing comparable and problem free (in addition to the price bump and larger size, the 9 had issues, initially, IIRC).
And... after the Moto X, and observing how quickly my parents' Samsung tablet on Verizon was abandoned, I wasn't willing to get a tablet other than a Nexus, i.e. one receiving support and updates directly from Google.
My point, finally, is that even going Nexus is no longer a way to get reasonable support for a product, it seems. I've gotten pretty tired of Google and company's game of musical chairs, with respect to hardware.
----
P.S. I post these comments, occasionally, here on HN also because I know Googlers still swing by and read them.
The only means of feedback I've ever found to Google.
Enough people push enough negativity through Google's version of the reality distortion field, and at least an initiative gets launched. Thing is, Google, you need to stick with it -- one of them -- sooner or later.
I have a Nexus S, a Nexus 4, and a Nexus 5. The 5 is dead; I don't think it's recoverable. The 4 is dying; it runs fine but the battery is expanding. The S, to this day, has no hardware problems. But despite the availability of up-to-date cyanogenmod builds for it, it can't run modern android at acceptable speeds.
If specs are stabilizing (?), I'd really like to see a return to the replaceable-battery/robust hardware school of phones. :/
I've got the 2014/2015 Moto X (XT1592) and it's sitting on the May 2016 security update... which is very vulnerable.
https://twitter.com/Moto_Support/status/766770218555375616
"Unlocking" the phone results in a tricky to remove boot-warning screen and
Well, at least until it died by the way of sudden reboot of death. Things might have improved since then.
In my experience, the bigger issue was designers assuming everyone has the taller iPhone 5 screen size (or worse, iPhone 6) and burning up 95% of the screen with keyboard + giant fixed header + fixed footer. Some apps would give you space for maybe two lines of content in between all that.
More of a complaint with 3rd party devs on that though.
Also the "cherrypick" comment is a bit of a dodge - Google already does security patches for older releases (3 years vs. 2).
It would arguably be just as easy to secure one codebase and pare features down for performance.
So I do commend apple for getting updates to that device for 4 years, but at least in their experience, it made the phone worse and didn't bring all the features that they wanted.
well they should.
I'm not impressed with two years of updates either, but I don't think people have any right to complain when that's exactly what they were promised when they bought their phones.
If people are disappointed because they chose to believe, against all evidence, that Google would exceed the promised two years of updates, that's nobody's problem but their own.
I'm glad that Google has signaled that they are going to further tighten the restrictions on background app activities in future releases. I hope they follow through with it.
Quick charge is a game changer. Less pressure to make the battery bigger if you can make the phone charge way faster.
For me, USB-C is the worst part. Nobody else ever has a charger I can use, and when I plug into anything other than the wall adapter that came with the phone, it's always "charging slowly."
https://www.amazon.com/adapter-Adapter-Convert-Connector-One...
Isnt it [0]? A 10-100% gain in performance is about what I'd expect from a 2-year smartphone cycle, and we'd be lucky to continue to get such gains.
If you can present data that actually shows no performance difference between the 5 and 5X, I'd be interested to see it.
[0] http://arstechnica.com/gadgets/2015/10/nexus-5x-and-nexus-6p...
I think Apple has done a better job at this balance by not letting people shoot themselves in the foot at the cost the odd useful service not being possible.
It would be a shame to have to turn off all of them. I found most of them to be useful.
Anything you can do with an app you can do as well with a website.
Any actual app, not just a website in form of an app, which did computational task, data recording, or kept services available, is impossible to create now.
Run tracking app that doesn’t require you uploading your GPS data to Google Fit? Impossible.
Messaging app that doesn’t route all your private messages through Google Cloud Messaging? Impossible.
EDIT: before downvoting, read the comment below from morsch, he and I explained there pretty well the issues.
All Google did is restrict what apps can do in the background, and announced that there will be further restrictions in the future: all background tasks will have to be done through the JobScheduler API.
This does not prevent apps from doing stuff in the background, it just prevents them from doing whatever they want, whenever they want -- they will have to follow the proper procedure.
If you don't see the app in front of you, iOS will very quickly kill it if it has any background tasks.
It's a leaky abstraction, but honestly I like the implicit promise/guarantee between the scheduler and the user.
I only get annoyed when I want some batch task like uploading photos, but even then it's not too hard to leave the phone powered on and unlocked on my desk until the photos upload...
As I recall all those features were built only for 64bit CPUs which the 4s/mini didn't have.
wait, can I get some more info about this? I assumed to cannot go back to old releases. Or are you talking about jailbreaking?
> iOS works fantastically bad on old devices
that's understating it. I actually think my nokia (symbianOS) from almost decade ago is faster. And I mean it is faster even today!
You have to jailbreak current OS, then you can downgrade to iOS 6. It'll be jailbroken, but it's just enabled ssh, you can use it without installing Cydia and everything should work as normal. It could be done only with iPhone 4S or iPad 2 and only if current iOS is jailbroken (at least that was the case year ago, I was able to downgrade from iOS 8 to iOS 6 on iPhone 4S). Keyword to Google: OdysseusOTA. Officially there's indeed no way to downgrade, only using vulnerabilities.
I've always spoken well of Apple's software update record but it comes with a nasty flipside in my experience: unlike an old x86 PC or Android device, once you update the OS, you're generally stuck. No downgrading and certainly no "slimmed down" builds or alternate OSes to breathe new life into physically intact but not-current hardware.
Hard to say whether this is one way to do it, or the only way. (E.g. "Unlike stationary Doze, wake locks (apps requesting the phone stay awake so they can do background tasks) are still allowed.")
[0] http://arstechnica.com/gadgets/2016/08/android-7-0-nougat-re...
A wake lock is possible, but it’s far more battery intensive than just using the pre-Nougat solutions.
Pre-Nougat, I could keep a socket open, and only have a timeout message sent every 28 minutes to keep it open – at very low battery cost.
Now I either have to keep a wakelock – keeping the CPU always on, instead of just a few milliseconds per hour – or I can’t use it at all.
That’s a severe issue for me.
(I can’t use GCM, due to architectural reasons, and would have to ask tenthousands of people to change their IRC bouncer setup completely).
Or when you try to transmit notifications without going through Google/Apple servers, because those require you to control the messaging server (due to API auth limitations), which does not work with distributed systems.
A messaging app that only works when the screen is on is useless.
That way, you get realtime event notifications without the privacy risk of exposing content to Apple's servers.
That same certificate can be used to replace your app on the store, or so on.
Basically, that is your one key to the kingdom.
So, I obviously can’t give everyone who hosts a server for the app that key.
So I have to host a server transmitting all those pings then.
Even ignoring the obvious DDoS risk, and assuming it’s only used in good ways, I end up with having to buy an entire additional server, just for that.
And I still leak metadata, which – as the NSA has shown – can be easily correlated with who is whom if you have enough data.
With Nougat, no background tasks will be run at all while the screen is off – except for Google services, or if they keep the CPU on 100% of the time with a wake lock.
JobScheduler also doesn’t allow continuous tasks, but only short tasks – so you can’t actually keep a low-cost socket open.
Untrue.
First, mobile Doze doesn't kick in immediately when the screen is off.
Second, mobile Doze apparently doesn't stop all background tasks except "Google services" from running, since "wake locks" from apps for background tasks are still supported.
That doesn't sound appealing at all.
Except a Wake Lock has a significant battery impact, causing the CPU to stay on at all times.
There’s no way to keep your app running while also saving battery – which is the general ideal you want.
So, tell me, how do I keep a socket open without wasting battery?
________________________
A guarantee that, if the device has connection, the notification is transmitted within of 15 seconds, and that the device (in the case of the moto G 2014) gets still the 2 days battery runtime it’d get without the app.That’s what I set as minimum goals for my app, and what I was able to get with older Android versions.
Or never happen at all.
Or just work normally.
Depending on when the heuristics think you are less likely to use your phone.
There is one way to keep getting notifications, by using proprietary Google services, and sending a ping from your server via Google to the device, or sending the actual notification that way.
Which, for email, means either everyone who does that has to build every app themselves from source, or you have to send that data to a third party server which then sends it to Google
There are mechanisms to get high-priority notifications, and methods to do background work that are batched on increasingly long intervals to save battery life (both the batching and the increasing intervals serve that purpose), so that shouldn't be an issue. Notifications that need to be immediate have a path, and ones that don't should still happen, just not immediately.
The second is indisputably true of Nougat, no one is arguing against it; the first is what you said upthread, what I was arguing against, and what is and remains false.
In previous dev versions, Google even didn’t allow wake locks at all (which is where my confusion is from), saying devs should instead move all their processing to server side, and use GCM for everything.