Android8.0初识

每次看见谷歌发布新的android系统时,心里总有有一些小激动。对你没听错,小激动;想想看我们对应用究竟会不会崩溃呢?那些功能失效了?会有多少用户投诉? 惊不惊喜,意不意外?不过都是玩笑话了,只有谷歌不断对升级,android才能更加进步,作为一个android程序员,我是支持他的!

首先整体看一下8.0 : 官网的英文描述是smarter、faster;Android8.0是全新版本,它优化了电源及性能,并提供了多种全新的方式来扩展您的应用,针对 Android 8.0 开发应用,并在您的应用中利用最新的平台功能。规划对新的后台限制模型的支持,并尝试诸如自动填充、XML 中的字体资源、自动调整 TextView 的大小、WebView 增强功能等一些全新 API。

想尝尝鲜?没问题。打开您的AndroidStudio更新构建配置将 compileSdkVersion、buildToolsVersion、targetSdkVersion 和 Support Library 版本更新为下列版本:

android {  compileSdkVersion 'android-O'  buildToolsVersion '26.0.0-rc2'  defaultConfig {    targetSdkVersion 'O'  }  ...}dependencies {  compile 'com.android.support:appcompat-v7:26.0.0-beta1'}// REQUIRED:Google's new Maven repois required for the latest// support library that is compatible with Android 8.0repositories {    maven {        url 'https://maven.google.com'    }}

注意啦,注意啦,这是谷歌大大的原话——您不能在此配置下发布应用。“O”版本是一个临时 API 级别,只能用于 Android 8.0 期间的开发和测试。您必须等到最终 API 级别发布时再发布 Android 8.0 变更,届时再次更新配置。

于是我就想说,市场上涌现出来的那些8.0系统,你们是想闹哪样?先挖点坑给大家尝尝鲜?

来来来,我们先一起愉快的填填坑吧!

坑1——后台执行限制:

如果针对 Android 8.0 的应用尝试在不允许其创建后台服务的情况下使用 startService() 函数,则该函数将引发一个 IllegalStateException。

坑2——后台位置限制:

Fused Location Provider (FLP)

Geofencing

GNSS Measurements

Location Manager

Wi-Fi Manager

为确保您的应用按预期方式运行,请完成以下步骤:

查看您的应用的逻辑,并确保您使用的是最新的位置 API。

测试您的应用是否在每个用例中都表现出预期行为。

考虑使用Fused Location Provider (FLP)或地理围栏来处理依赖于用户当前位置的用例。

说多了都是泪呀,每次升级都要整一些幺蛾子出来,测试您使用的用例是否表现出预期行为。。。。心中某些动物一直在奔腾。。。

坑3——记录未捕获的异常

如果某个应用安装的 Thread.UncaughtExceptionHandler 未移交给默认的 Thread.UncaughtExceptionHandler,则当出现未捕获的异常时,系统不会终止应用。从 Android 8.0 开始,在此情况下系统将记录异常堆栈跟踪情况;在之前的平台版本中,系统不会记录异常堆栈跟踪情况。我们建议,自定义 Thread.UncaughtExceptionHandler 实现始终移交给默认处理程序处理;遵循此建议的应用不受 Android 8.0 此项变更的影响。

这个就牛逼了,谷歌大大发话了,你捕捉了老子的异常,老子就不干活了!应用不会挂了,系不系很牛逼,你会让用户玩一个僵尸应用吧。

坑4——提醒窗口

如果应用使用SYSTEM_ALERT_WINDOW权限并且尝试使用以下窗口类型之一来在其他应用和系统窗口上方显示提醒窗口:

TYPE_PHONE

TYPE_PRIORITY_PHONE

TYPE_SYSTEM_ALERT

TYPE_SYSTEM_OVERLAY

TYPE_SYSTEM_ERROR

...那么,这些窗口将始终显示在使用TYPE_APPLICATION_OVERLAY窗口类型的窗口下方。如果应用针对的是 Android 8.0,则应用会使用TYPE_APPLICATION_OVERLAY窗口类型来显示提醒窗口。

如需了解详细信息,请参阅针对 Android 8.0 的应用的行为变更内的提醒窗口的常用窗口类型部分。

坑5——硬件序列号

Build.SERIAL 已弃用。需要知道硬件序列号的应用应改为使用新的Build.getSerial()函数,该函数要求具有READ_PHONE_STATE权限。

坑6——隐私升级

LauncherAppsAPI 不再允许工作资料应用获取有关主个人资料的信息。当某个用户在托管配置文件中时,LauncherAppsAPI 的行为就像同一配置文件组的其他配置文件中未安装任何应用一样。和之前一样,尝试访问无关联的个人资料会引发 SecurityExceptions。

对于这个坑,我只想说谷歌大大干得漂亮!

采完坑的感觉有没有很爽?来点其他的刺激一下?不得不说安全和隐私,每个版本谷歌都在下功夫去做(对,没错,如果你被面试问到android的最近几个版本的区别,你就大声喊出来安全和隐私都在逐步提升)。

简单的看一下吧,毕竟是好东西:

1、如果您的应用的网络安全性配置选择退出对明文流量的支持,那么您的应用的WebView对象无法通过 HTTP 访问网站。每个WebView对象必须转而使用 HTTPS。

2、除非身份验证器拥有用户帐号或用户授予访问权限,否则,应用将无法再访问用户帐号。仅拥有GET_ACCOUNTS权限尚不足以访问用户帐号。要获得帐号访问权限,应用应使用AccountManager.newChooseAccountIntent()或特定于身份验证器的函数。获得帐号访问权限后,应用可以调用AccountManager.getAccounts()来访问帐号。Android 8.0 已弃用LOGIN_ACCOUNTS_CHANGED_ACTION。相反,应用在运行时应使用addOnAccountsUpdatedListener()获取帐号更新信息

3、系统属性 net.dns1、net.dns2、net.dns3 和 net.dns4 不再可用,此项变更可加强平台的隐私性。

4、修正的权限授予的bug

5、此平台不再支持 SSLv3。

6、在与未正确实现 TLS 协议版本协商的服务器建立 HTTPS 连接时,HttpsURLConnection不再尝试回退到之前的 TLS 协议版本并重试的权宜方法。

7、Android 8.0 将使用安全计算 (SECCOMP) 过滤器来过滤所有应用。允许的系统调用列表仅限于通过 bionic 公开的系统调用。此外,还提供了其他几个后向兼容的系统调用,但我们不建议使用这些系统调用。

8、现在,您的应用的WebView对象将在多进程模式下运行。网页内容在独立的进程中处理,此进程与包含应用的进程相隔离,以提高安全性。

9、您无法再假定 APK 驻留在名称以 -1 或 -2 结尾的目录中。应用应使用sourceDir获取此目录,而不能直接使用目录格式。

10、对于ota升级方面优化了ANDROID_ID

我家娃要醒了,就这样吧,还有很多精彩大家自己去探索吧!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,980评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,178评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,868评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,498评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,492评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,521评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,910评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,569评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,793评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,559评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,639评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,342评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,931评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,904评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,144评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,833评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,350评论 2 342

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,380评论 25 707
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,580评论 18 139
  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 6,345评论 0 17
  • 今天开始进入自我修炼的美妙旅程。 之所以叫“洁解结”,是想通过这个来记录自己在NLP及其他心灵学科里的成果,通透自...
    赵一桐咨询师阅读 217评论 0 1
  • 一个人无法感受到自己是还活着,一个人知道自己还有没有感情。
    仪和阅读 107评论 0 1