Android开发集锦Android开发7.0

Android7.x新特性分析

2017-04-24  本文已影响173人  李景三

Android 7.0篇

一、高版本适配

1 应用间共享文件

在Android7.0系统上,Android 框架强制执行了 StrictMode API 政策禁止向你的应用外公开 file:// URI。 如果一项包含文件 file:// URI类型 的 Intent 离开你的应用,应用失败,并出现 FileUriExposedException 异常,如调用系统相机拍照或裁切图片。

实际案例:

2 删除三项隐式广播

1.在 Android 7.0上 应用不会收到 CONNECTIVITY_ACTION广播,即使你在manifest清单文件中设置了请求接受这些事件的通知。但,在前台运行的应用如果使用BroadcastReceiver 请求接收通知,则仍可以在主线程中侦听 CONNECTIVITY_CHANGE。

2.在 Android 7.0上应用无法发送或接收ACTION_NEW_PICTUREACTION_NEW_VIDEO 类型的广播。

应对策略:

例如,JobSchedulerAPI 提供了一个稳健可靠的机制来安排满足指定条件(例如连入无限流量网络)时所执行的网络操作。 您甚至可以使用 JobSchedulerAPI 来适应内容提供程序变化。

3 NDK 应用链接至平台库

从 Android 7.0 开始,系统将阻止应用动态链接非公开 NDK 库,这种库可能会导致您的应用崩溃。此行为变更旨在为跨平台更新和不同设备提供统一的应用体验。即使您的代码可能不会链接私有库,但您的应用中的第三方静态库可能会这么做。因此,所有开发者都应进行相应检查,确保他们的应用不会在运行Android 7.0 的设备上崩溃。如果您的应用使用原生代码,则只能使用公开 NDK API

image

实际案例:

二、新特性介绍

1 多窗口Playground

1.1 在相邻的窗口启动Activity

Intent intent = new Intent(MainActivity.this, SecondActivity.class);
intent.addFlags(
    Intent.FLAG_ACTIVITY_LAUNCH_ADJACENT | 
    Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
image

1.2 启动一个禁止分屏的Activity

<activity
    android:name=".sample.UnresizableActivity"
    android:resizeableActivity="false"
    android:taskAffinity="" />
image

1.3 跨窗口拖动数据

image image

Notification支持在通知栏内回复。

4 直接启动

当设备已开机但用户尚未解锁设备时,AndroidN 将在安全的“直接启动”模式下运行。 为支持此操作,系统为数据提供两个存储位置:

  • 凭据加密存储,这是默认存储位置,仅在用户解锁设备后可用。
  • 设备加密存储,该存储位置在“直接启动”模式下和用户解锁设备后均可使用。

开启方式(该操作会清除用户数据并重启设备):设置->开发者选项->转换为文件加密

5 作用域目录访问

应用(如照片应用)通常只需要访问外部存储中的特定目录,例如Pictures 目录。现有的外部存储访问方法未经专门设计,无法轻松地为这些类型的应用提供目标目录访问。 例如:

  • 在您的清单中请求 READ_EXTERNAL_STORAGE 或 WRITE_EXTERNAL_STORAGE 将允许访问外部存储上的所有公共目录,这可能导致访问的内容超出应用需要的内容。

  • 使用存储访问框架通常会让您的用户通过一个系统 UI 选取目录,如果应用始终访问同一个外部目录,则该操作没有任何必要。

    Android N 提供简化的全新 API 以访问通用外部存储目录。

系统尝试授予对外部目录的访问权限,并使用一个简化的UI 向用户确认访问权限(如果需要):

image image

随着Pixel/XL的发布。曾今的Nexus如今也沦为干儿子了。

这一次Pixel和Pixel XL售价与iPhone7和iPhone7Plus一致($649/$769),并宣称不再做性价比手机,进军高端手机市场。

Pixel/XL是首批搭载Android7.1的手机。除此之外最快能搭载的设备有Nexus5XNexus 6P以及Pixel C平板。不过,在 Pixel/XL 手机上出现的Google Assistant、Pixel Launcher 则不会出现在 Android 7.1 上,这些功能是Pixel们专享的。

Android 7.1新特性

1 圆形应用图标

在 Pixel/XL 我们已经看到原生 Android 图标圆形化的趋势,而 Google 打算将这一趋势推广到 Android 7.1 上。

Android6.0桌面图标:

image

Android7.1桌面图标:

image

2 键盘支持图片输出

键盘不仅能够打字,也能够支持图片、表情和动图等更多内容的输出。这类功能其实已经在许多第三方输入法上实现了,但在原生Android 自带输入法上尚属首次。

包含常用脸部表情、小动物、食物、建筑、车辆、天气、月相、时钟、节日特色、运动、球类、扑克、乐器、学习用品、生活用品、工具、公共场所常见标志、星座、国旗等940个表情图片。

image

3 App Shortcuts

这一功能与 iPhone 上 3D Touch 的功能相类似,就是可以在应用图标上直接添加快捷选项,点击就直接到达相关界面;但这一功能需要开发者的支持。目前开发者可以设置5 个动态和静态的快捷选项。

3.1 注册方式

类似广播接收器(BroadcastReceiver)的静动态注册,但略有不同。

3.2 静态注册

先在res文件夹下新建一个xml文件夹,再在xml文件夹下简历一个shortcuts.xml

<?xml version="1.0" encoding="utf-8"?>
<shortcuts xmlns:android="http://schemas.android.com/apk/res/android">
    <shortcut
        android:shortcutId="add_website"
        android:enabled="true"
        android:icon="@drawable/add"
        android:shortcutLongLabel="@string/add_new_website"
        android:shortcutShortLabel="@string/add_new_website_short"
        android:shortcutDisabledMessage="@string/disabled">

        <intent
            android:action="android.intent.action.VIEW"
            android:targetPackage="wang.relish.android7"
            android:targetClass="wang.relish.android7.MainActivity" />
        <categories android:name="android.shortcut.conversation" />
    </shortcut>
</shortcuts>

字段说明:

3.3 动态注册

// 添加单个Shortcut
ShortcutManager mManager = getSystemService(ShortcutManager.class);
ShortcutInfo shortcut = new ShortcutInfo
        .Builder(this, id) //(Context, String)
        //必填项,显示文字
        .setShortLabel(shortLabel) //(String)
        //必填项,点击后触发该意图
        .setIntent(intent) //(Intent)
        //选填,显示图标
        .setIcon(icon) //(Icon)
    .build();
                //(List<ShortcutInfo>)
                //Arrays.asList(shortcut)
mManager.addDynamicShortcuts(Collections.singletonList(shortcut));

3.4 App Shortcuts-相关……坑

3.5 相关动态图

动态添加Shortcuts:

image

失效的后的Shortcuts再次生效,也无法回到菜单栏:

image

哪些Shorrcuts不能被移除:

image

2 参考资料

Android 8.0 预览版

由于Android8.0现在只有预览版,很多新特性还不确定,暂不整理,日后补充。

上一篇下一篇

猜你喜欢

热点阅读