您的位置:首页 > 移动开发 > Android开发

Android 7.1新特性

2017-03-14 15:29 253 查看
这篇文章主要翻译了google开发者官方文档的介绍,主要列出在7.1上面的新特性,希望对你有所帮助。

1.ShortCut

   shortCut其实和苹果在6S上面推出的按压app在桌面上面的图标然后弹出一个选项框类似,只是实现方式不一样:苹果的通过屏幕的按压感应来触发而安卓的则是通过长按图标来实现。该功能需要launcher的支持,目前如果你需要测试该功能可以通过启动一个7.1的模拟器获取购买google自己的手机,比如pixel

      该功能可以通过两种方式来实现,第一种是通过xml代码的方式(称为静态方式),另一种则是通过ShortCutManager来动态的创建。需要注意的是第一种的创建方式不能随意的更改,只能通过重新升级app的方式来更改,灵活性没有后一种强。还有一个需要注意的是,这两种方式创建的shortcut选项最多是5个,但是官方给我们的建议是最好创建4个,可能考虑到屏幕的空间有限,太多了反而给用户不要的体验。下面来演示一下两种方式的使用。

静态的方式

在res下面创建xml文件夹,在该文件夹中创建一个xml文件,文件的根标签为<shortcuts>.
在manifest文件中,应用的启动activity中添加<meta-data>标签.

具体的代码类似下面,xml的内容:

<shortcuts xmlns:android="http://schemas.android.com/apk/res/android">
<shortcut
android:shortcutId="compose"
android:enabled="true"
android:icon="@drawable/compose_icon"
android:shortcutShortLabel="@string/compose_shortcut_short_label1"
android:shortcutLongLabel="@string/compose_shortcut_long_label1"
android:shortcutDisabledMessage="@string/compose_disabled_message1">
<intent
android:action="android.intent.action.VIEW"
android:targetPackage="com.example.myapplication"
android:targetClass="com.example.myapplication.ComposeActivity" />
<categories android:name="android.shortcut.conversation" />
</shortcut>

<!-- 可以创建多个intent,系统将按照先后顺序来执行-->
</shortcuts>


manifest文件中:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.myapplication">
<application ... >
<activity android:name="Main">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<meta-data android:name="android.app.shortcuts"
android:resource="@xml/shortcuts" />
</activity>
</application>
</manifest>


这里为固定格式,我们在开发的时候只需要更改resources指定的资源即可。添加上上面的代码运行之后就可以看到效果了,非常的简单。

动态的方式

我们可以在欢迎页面的oncreate方法中使用下面的代码来创建:

ShortcutManager shortcutManager = getSystemService(ShortcutManager.class);
ShortcutInfo shortcut = new ShortcutInfo.Builder(this, "id1")
.setShortLabel("Web site")
.setLongLabel("Open the web site")
.setIcon(Icon.createWithResource(context, R.drawable.icon_website))
.setIntent(new Intent(Intent.ACTION_VIEW,
Uri.parse("https://www.mysite.example.com/")))
.build();
shortcutManager.setDynamicShortcuts(Arrays.asList(shortcut));
好了,第一个特性就介绍到这里,如果大家想更详细的了解,可以给我留言,我会单独来一篇文章。

2.Image Keyboard Support

这个功能可能我们一般用不到,需要自己开发输入法的同学可能会用到。大概就是这样一个功能:以前的剪切板是只能复制文字,对于富媒体比如图片什么的就无能为力了,所以google就定义了一个接口来实现该功能,输入法按照对应的设置就可以实现图片的复制与粘贴,非常棒的功能,希望第三方厂家快速的实现该功能,为大家提供方便。
如果你想详细的了解可以访问这里:https://developer.android.google.cn/guide/topics/text/image-keyboard.html

3.New Professional Emoji

这个和上面的功能类似,也是和输入法密切相关。google添加了一些新的标签包,就是一些各种职业的男女的头像,输入法可以根据接入说明来在自己的输入中添加上去。来一张图片:



4.Enhanced Live Wallpaper Metadata

这个是一个增强的动态壁纸功能,原文介绍是这样的:
You can now provide metadata about your live wallpapers to any component that’s displaying a preview of the wallpaper, such as a wallpaper picker app. You can show existing metadata attributes such as label, description, and author,
as well as new attributes for a context URL and title to link users to more information about the wallpaper.

如果想详细的了解该功能,通过以下地址访问,不过需要翻墙:https://android-developers.blogspot.com/2016/10/android-71-developer-preview.html

5.Round Icon Resources

这个功能是用来适配桌面启动图片的,我们知道有的launcher的风格是小清新的,比如魅族、努比亚什么的,他们的launcher上面的app图片就都是圆形的。以前是使用默认的图片通过转换来实现圆形的效果,现在google默认支持这种圆形的效果了,我们可以在manifest中指定两种图片,一种是现在的默认的,一种是圆形的icon。launcher应用可以通过读取该标签来达到自己想要的效果。具体使用是在manifest文件中的application标签下面添加上:
android:roundIconandroid:icon两个属性。前一个就是圆形的图片,后一个就是现在我们一种用的app的启动图标。

6.Storage Manager Intent

这个功能是当手机的存储空间不够的时候我们想要获取更多的空间,就可以通过引导用户删除不用的数据或者app资源,其使用方式也非常简单,就下面一行代码:startActivity(new Intent(StorageManager.ACTION_MANAGE_STORAGE));

我在模拟器上面的运行效果如下:



7.Improved VR Thread Scheduling

这个和虚拟现实有关,通过ActivityManager.setVrThread()可以将一个线程变为VR线程。如果在VR模式下,这个线程将会有更多的CUP资源来支持VR的大量运算,如果不是在VR模式下面,就不会有影响。这样设计是为了给VR模式带来更好的用户体验,正在开发相关产品的同学可以试试。

8.Demo User Hint

我们可以通过UserManager.isDemoUser()来判断当前的设备是否运行在演示模式下面。比如我们去柜台看手机的时候,会有很多的样机,他们有些是运行在演示的模式下面,现在我们可以通过该api来判断当前的设备是否运行在演示模式下。这样我们就可以单独的为演示模式设计一个界面,或者更多的与用户交互来吸引用户使用我们的app。这个模式我觉得还是非常的有用的,如果有相关需求的同学可以试试这个新特性。

9.APIs for Carriers and Calling Apps

提供了一些新的api,与通信相关的。

Multi-endpoint calling
CDMA voice privacy property
Source type support for Visual Voicemail
Carrier configuration options for managing video telephony

10.New Screen Densities for Wear Devices

这个和android可穿戴设备相关,主要是添加了几个新的屏幕尺寸来适配不通的屏幕。如果你在做可穿戴相关的可以使用下面的3个屏幕尺寸来适配:

DENSITY_260
DENSITY_300
DENSITY_340

欢迎关注我的微信公众号“android教科书”,最新最好的文章第一时间送到手!可以扫描下面的二维码来关注:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android7.1