blob: 5bf32e40bb7b040765d983131b28e36ffe04d225 [file] [log] [blame]
<html devsite><head>
<title>个性化设置</title>
<meta name="project_path" value="/_project.yaml"/>
<meta name="book_path" value="/_book.yaml"/>
</head>
<body>
<!--
Copyright 2017 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<p>
Android 的“设置”应用为 Android 8.0 用户提供了一系列建议。
这些建议通常有助于改进手机功能,而且可以自定义(例如“设置‘勿扰’时间安排”或“开启 WLAN 通话功能”)。该功能会对建议进行排名(基于任何上下文信号或用户以往的建议采用情况)。
</p>
<p>
当前的默认 Android 开放源代码项目 (AOSP) 排名模型基于用户以往的建议采用情况;这是一个简单的线性模型,它通过逻辑回归进行训练,从而正确地对互动信号进行加权。默认实现会使用显示、点击或拒绝的建议作为指标,同时根据这些事件的新近度对建议进行排名,并提高正确预测用户对这些建议的采用情况的概率。该模型是利用有限的已记录用户数据构建而成的。设备制造商 (OEM) 可以根据收集的任何数据开发自己的排名模型,并可能会在后期根据上下文信号校准排名。
</p>
<h2 id="implementation">实现</h2>
<p>
在 AOSP 中查找默认 <code>packages/apps/Settings/src/com/android/settings/dashboard/suggestions/SuggestionRanker.java</code> 实现。
</p>
<p>
此功能由标记 <code>isSmartSuggestionEnabled</code> 进行保护,该标记默认情况下设置为 false。如果启用该功能(设置为 true),则该功能可使用默认 AOSP 实现运行,无需进行其他修改。原始设备制造商 (OEM) 可以使用默认实现或引入自己的实现来启用此功能。
</p>
<p>
原始设备制造商 (OEM) 可以通过实现 <code>platform/packages/apps/Settings/src/com/android/settings/dashboard/suggestions/SuggestionFeatureProvider.java
</code> 功能并替换文件的 <code>rankSuggestions</code> 方法来自定义该功能。
该方法会获得两个列表,其中包含建议图块及相应的 suggestionId。该方法应仅根据所需排名得分重新排列相应列表中图块的顺序。suggestionId 可以用于唯一标识建议,并根据排名实现(例如,与此特定建议的互动新近度)提取关于该建议的所需过往信息。
</p>
<h2 id="validation">验证</h2>
<p>
实现人员可以自行编写类似于 <code>packages/apps/Settings/tests/robotests/src/com/android/settings/dashboard/suggestions/SuggestionRankerTest.java</code> 的单元测试以验证排名,从而确保其功能版本能够按预期运行。
</p>
</body></html>