最近,有朋友在自己的App上遇到这样的问题:在android 8.0系统的手机上图标变成了机器人,而在8.0以下的系统上却完全正常。这个问题的根因就是8.0系统做了一些改进,我们在适配应用的时候也需要同时关注。
适配android 8.0需要targetSdkVersion=26及以上,Android studio版本在3.0及以上。
1.应用图标的变化
从Android 8.0系统开始,应用程序的图标被分为了两层:前景层和背景层。也就是说,我们在设计应用图标的时候,需要将前景和背景部分分离,前景用来展示应用图标的Logo,背景用来衬托应用图标的Logo。需要注意的是,背景层在设计的时候只允许定义颜色和纹理,但是不能定义形状。
适配步骤如下:
(1)在res目录右键选择如下的Image Asset新建logo
(2)选择源logo文件
点击next后,自动会生成以下文件:
(3)设置完成后查看生成目录
2.Android Studio 3.0之后gradle.build中dependencie依赖由compile变为implementation
3.0之前的写法:
compile fileTree(dir: 'libs', include: ['*.jar'])
3.0后的写法:
implementation fileTree(dir: 'libs', include: ['*.jar'])
具体使用位置如下图,位于build.gradle文件中:
implementation指令对于使用了该命令编译的依赖,对该项目有依赖的项目将无法访问到使用该命令编译的依赖中的任何程序,也就是将该依赖隐藏在内部,而不对外部公开。
3.buildToolsVersion不再配置
Android Studio 3.0没有构建工具的版本 buildToolsVersion 属性了, 默认情况下,插件会自动为使用的 Android 插件版本使用最低要求的构建工具版本。
4.repositories中需要添加google()
Android Studio 3.0 现在默认使用 Google 的 Maven 存储库,而不是依赖于 Android SDK Manager 来获取 Android 支持库,Google Play 服务,Firebase 和其他依赖项的更新,所以需要添加google()。