前言
国内从去年开始就有消息说,应用上架或者更新要求TargetSdkVersion最低要为26以上,也就是最低也要适配到8.0。今年来也都逐步地开始落实。
小米应用商店公告 | Google Play的要求 |
---|---|
还包括从8月份开始在Google Play上发布的应用必须支持64位架构。可以看到适配工作真的不能像以前一样随心所欲了。
select * from learn
国内从去年开始就有消息说,应用上架或者更新要求TargetSdkVersion最低要为26以上,也就是最低也要适配到8.0。今年来也都逐步地开始落实。
小米应用商店公告 | Google Play的要求 |
---|---|
还包括从8月份开始在Google Play上发布的应用必须支持64位架构。可以看到适配工作真的不能像以前一样随心所欲了。
将我们项目中的targetSdkVersion
改为 26(8.0) 或者 27(8.1),记住不要超过27,毕竟我还没有告诉你Android P怎么适配(滑稽)。
首先引用官方的原文。
在 Android 8.0 之前,如果应用在运行时请求权限并且被授予该权限,系统会错误地将属于同一权限组并且在清单中注册的其他权限也一起授予应用。
对于针对 Android 8.0 的应用,此行为已被纠正。系统只会授予应用明确请求的权限。然而,一旦用户为应用授予某个权限,则所有后续对该权限组中权限的请求都将被自动批准。
例如,假设某个应用在其清单中列出READ_EXTERNAL_STORAGE
和WRITE_EXTERNAL_STORAGE
。应用请求READ_EXTERNAL_STORAGE
,并且用户授予了该权限。如果该应用针对的是 API 级别 24 或更低级别,系统还会同时授予WRITE_EXTERNAL_STORAGE
,因为该权限也属于同一 STORAGE 权限组并且也在清单中注册过。如果该应用针对的是 Android 8.0,则系统此时仅会授予READ_EXTERNAL_STORAGE
;不过,如果该应用后来又请求WRITE_EXTERNAL_STORAGE
,则系统会立即授予该权限,而不会提示用户。
我们的App通常会有检查更新的功能。用户在收到提示更新并且下载完后,会自动打开安装页面让用户来去安装。这时就会出现安装错误的问题,这类的问题的可能性比较多。比如较低版本的App想要覆盖已有的较高版本App会提示安装未完成,或是签名不一致导致的。不过7.0上常见的有以下两种情况。
在targetSdkVersion大于等于的24的App中,但是我们没有去适配7.0。那么在调用安装页面,或修改用户头像操作时,就会失败。那么就需要你去适配7.0或是将targetSdkVersion改为24以下(不推荐)。适配的方法这里就不细讲,大家可以看鸿洋大神的 Android 7.0 行为变更 通过FileProvider在应用间共享文件 这篇文章。
Android 7.0 引入一项新的应用签名方案 APK Signature Scheme v2,它能提供更快的应用安装时间和更多针对未授权 APK 文件更改的保护。在默认情况下,Android Studio 2.2 和 Android Plugin for Gradle 2.2 会使用 APK Signature Scheme v2 和传统签名方案来签署您的应用。详细看安卓官方说明。
简单地说就是任何方式的篡改APK 文件,在利用了V2签名的apk上会失效。
APP 的性能优化之路是永无止境的, 这里学习一个腾讯开源用于提升本地存储效率的轻量级存储框架 MMKV
目前项目中在轻量级存储上使用的是 SharedPreferences, 虽然 SP 兼容性极好, 但 SP 的低性能一直被诟病, 线上也出现了一些因为 SP 导致的 ANR
网上有很多针对 SP 的优化方案, 这里笔者使用的是通过 Hook SP 在 Application 中的创建, 将其替换成自定义的 SP 的方式来增强性能, 但 SDK 28 以后禁止反射 QueuedWork.getHandler 接口, 这个方式就失效了
因此需要一种替代的轻量级存储方案, MMKV 便是这样的一个框架
以下介绍简单的使用方式, 更多详情请查看 Wiki
在 App 模块的 build.gradle 文件里添加:
1 | dependencies { |
OKR是一套严密的思考框架和持续的纪律要求,旨在确保员工紧密协作,把精力聚焦在促进组织成长的、可衡量的贡献上。
具体拆解如下:
1、严密的思考框架:OKR意在提升绩效,但如果只是简单的每个季度跟踪一下的你的结果,你不会如偿所愿。
2、持续的纪律要求:OKR代表了一种时间和精力上的承诺。
3、确保员工紧密协作:由于OKR对每个人都充分共享,组织内从上至下都可以看到OKR及其达成情况。
4、精力聚焦:OKR不是,也不应被当成一张待完成的任务清单。OKR的主要目的是用来识别最关键的业务目标,并通过量化的关键结果去衡量目标达成情况。战略就是不做什么和做什么,两者都同等重要,不可偏废!OKR也是如此。你必须做出最终取舍,决定哪些内容才是你最终的关注点。
5、做出可衡量的贡献:任何时候,如有可能,我们都应该尽量避免主观描述KR,KR要能精确地指出它的达成对业务究竟有多大的促进作用。
6、促进组织成长:判断OKR成功与否的最终标准,还是要用结果说话,看你的目标所取得的实际成果如何。