Android版本适配(6.0~9.0)

1 :  安卓6.0适配

权限适配:

动态权限适配是 Android 6.0 最先开始的,也是 Android 系统对开发者影响最大的改动之一, 只有属于危险权限的才需要申请动态权限。

Android6.0之前,权限只需要在清单文件中遵守约定在 Android 6.0 ~ Android 8.0,危险权限不需要动态申请。如果应用在运行时请求权限并且被授予该权限,系统会错误地将属于同一权限组并且在清单中注册的其他权限也一起授予应用,即对于同一组内的权限,只要有一个被同意,其他的都会被同意。在 Android 8.0 之后,此行为已被纠正。系统只会授予应用明确请求的权限。然而一旦用户为应用授予某个权限,则所有后续对该权限组中权限的请求都将被自动批准,但是若没有请求相应的权限而进行操作的话就会出现应用 crash 的情况。


低耗电模式:

当手机没有连接电源,屏幕关闭,并且静置一段时间不晃动,就可以进入低耗电模式.这时系统会定期退出低电量模式一会,再退出一段时间把那些延迟的工作同步执行,同时允许app访问网络.

app待机模式:

指app不在前台进程的情况下,如果用户一段时间没有使用该app,则该app进入待机模式,系统会禁止该app访问网络,暂停同步和jobs,也不是绝对禁止,系统允许每个app每天大约一次的频率访问网络.

app待机模式和低耗电模式的区别:

低耗电模式必须关闭屏幕处于静止,没有连接充电器,针对所有app;

app待机模式针对的是某一个应用,不需要关闭屏幕,不需要手机保持静止,只要某一个app是非前台线程,一般用户一段时间未使用该app,那么该app就会进入待机模式,即使此刻用户在使用其他app;

2:安卓7.0

APK signature scheme v2

Android 7.0 引入一项新的应用签名方案 :APK Signature Scheme v2,它能提供更快的应用安装时间和更多针对未授权 APK 文件更改的保护。在默认情况下,Android Studio 2.2 和 Android Plugin for Gradle 2.2 会使用 APK Signature Scheme v2 和传统签名方案来签署您的应用。


1.只勾选V1签名就是传统方案签署,但是在 Android 7.0 上不会使用V2安全的验证方式。

 2.只勾选V2签名7.0以下会显示未安装,Android 7.0 上则会使用了V2安全的验证方式。

 3.同时勾选V1和V2则所有版本都没问题。

org.apache不支持问题

// build.gradle里面加上这句话

 defaultConfig {

useLibrary 'org.apache.http.legacy'

 }

SharedPreferences闪退

Android7.0前,我们对于app的私有文件,比如sp,我们可以设置权限(MODE_WORLD_READABLE和MODE_WORLD_WRITEABLE)来让其他应用访问,Android 7.0以后不能使用这个获取,会闪退// 应修改成MODE_PRIVATE

 SharedPreferences read = getSharedPreferences(RELEASE_POOL_DATA, MODE_WORLD_READABLE); 

进一步增强低耗电模式:

Android7.0系统的改变主要针对于延长电池的使用寿命以及减少内存的使用,6.0需要手机处于未充电,屏幕关闭,手机处于静止;7.0不需要手机处于静止(例如用户外出时把设备放在口袋里),系统会让部分CPU和网络受到限制,进一步增强了低电耗模式.

后台优化:

用过苹果手机的老铁们想必都知道,苹果手机是很难出现卡顿现象的,而安卓手机卡顿的较为严重,主要是因为苹果系统里,app想在后台一直运行是很难的,未经允许的app在后台最多存活不到几分钟,而安卓应用后台悄悄启动的机会太多了,比如清单文件里注册了某app的静态广播,静态广播是不受进程影响的,比如监听网络状态改变的广播,监听手机拍照或录像的广播,即使应用被关闭了,一旦广播发出,注册了广播的应用也直接被唤醒,造成杀不死的现象,而7.0针对这一现象,限制了这三种广播在清单文件的静态注册,只能动态注册.

文件共享:

app之间的私有文件共享只能用FileProvider这种方式.FileProvider是通过一种临时授权的方式让其他app来访问我自己app私有文件夹的方式,访问过一次就失效了,下次想访问就失效了除非再次授权.

Android 8.0适配

Android 8.0中PHONE权限组新增两个权限

ANSWER_PHONE_CALLS:允许您的应用通过编程方式接听呼入电话。要在您的应用中处理呼入电话,您可以使用 acceptRingingCall() 函数。 READ_PHONE_NUMBERS:权限允许您的应用读取设备中存储的电话号码。

后台执行适配

8.0增加了许多特性,但是对我们开发过程中影响比较大的主要就是后台执行限制,后要执行限制分为后台服务限制广播限制.

1:后台服务限制:

首先区分一下后台和前台: 具有可见Activity(不管该Activity已启动还是已暂停),具有前台服务,另一个前台应用已关联到该应用.这是前台.否则就是后台.

对于后台服务的限制就是指不让处于后台的app任意创建和运行前台和后台服务.处于前台时,应用可以自由创建和运行前台服务与后台服务.进入后台时,在一个持续数分钟的时间窗内,应用仍可以创建和使用服务.时间窗结束后应用被视为处于空闲状态.此时系统将停止应用的后台服务.

在Android8.0之前,创建前台服务的方式通常是先创建一个后台服务,然后将后台服务推向前台.Android8.0之后,系统不允许后台应用创建后台服务.因此引入了一个全新的方法Context.startForegroundService(),以在前台启动新服务.在系统创建服务后,应用有五秒时间来调用该服务的startForegroud()方法来把后台服务推向前台显示并在通知栏显示服务可见,如果应用在此时间内未调用startForegroud(),则系统将停止服务并声明此应用ANR.

2:广播限制:

Android 8.0中把广播分为隐式和显示两种,并禁止app在清单文件中注册部分隐式广播. 只能通过动态方式注册. 为了更好的管制通知的提醒,不想一些不重要的通知打扰用户,新增了通知渠道,用户可以根据渠道来屏蔽一些不想要的通知。




Android 9.0适配

在9.0中有一些原生的刘海屏的适配,电源管理和http网络请求的限制.

http网络请求的限制就是如果我们的app target版本是28+,那么不管我们是原生的HttpUrlConnection还是okhttp,那么如果使用http请求网络将会报错.解决办法有三种:

1:降低target版本,小于28即可

2:http换成https.

3:在res目录下新增一个xml目录,再在xml目录下建立一个文件名任意的xml文件,内容大概就是运行开启http请求.


然后在清单文件里application标签增加以下属性:







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

推荐阅读更多精彩内容