新生成的代码是什么"This was auto-generated to implement the App Indexing API."?
What is the new generated code "This was auto-generated to implement the App Indexing API."?
背景
我今天刚刚创建了一个新的 POC(关于 activity 转换,但这不是主题),我注意到在 "onCreate" 方法中写了一个新行主要活动:
// ATTENTION: This was auto-generated to implement the App Indexing API.
// See https://g.co/AppIndexing/AndroidStudio for more information.
mClient = new GoogleApiClient.Builder(this).addApi(AppIndex.API).build();
还有更多:
@Override
public void onStart() {
super.onStart();
// ATTENTION: This was auto-generated to implement the App Indexing API.
// See https://g.co/AppIndexing/AndroidStudio for more information.
mClient.connect();
Action viewAction = Action.newAction(
Action.TYPE_VIEW, // TODO: choose an action type.
"SinglePhotoViewer Page", // TODO: Define a title for the content shown.
// TODO: If you have web page content that matches this app activity's content,
// make sure this auto-generated web page URL is correct.
// Otherwise, set the URL to null.
Uri.parse("http://host/path"),
// TODO: Make sure this auto-generated app deep link URI is correct.
Uri.parse("android-app://com.example.user.transitionstest/http/host/path")
);
AppIndex.AppIndexApi.start(mClient, viewAction);
}
@Override
public void onStop() {
super.onStop();
// ATTENTION: This was auto-generated to implement the App Indexing API.
// See https://g.co/AppIndexing/AndroidStudio for more information.
Action viewAction = Action.newAction(
Action.TYPE_VIEW, // TODO: choose an action type.
"SinglePhotoViewer Page", // TODO: Define a title for the content shown.
// TODO: If you have web page content that matches this app activity's content,
// make sure this auto-generated web page URL is correct.
// Otherwise, set the URL to null.
Uri.parse("http://host/path"),
// TODO: Make sure this auto-generated app deep link URI is correct.
Uri.parse("android-app://com.example.user.transitionstest/http/host/path")
);
AppIndex.AppIndexApi.end(mClient, viewAction);
mClient.disconnect();
}
这已添加到清单中:
<!-- ATTENTION: This was auto-generated to add Google Play services to your project for
App Indexing. See https://g.co/AppIndexing/AndroidStudio for more information. -->
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version"/>
问题
看了那个写的网站,还是没看懂
我想 this 是如何使用它,但我不明白它是如何工作的。
此外,奇怪的是我创建的任何其他新项目都没有显示这行新代码
问题
- 这是什么?它有什么作用?
- 我应该用它做什么?
- 是否有任何定制?有什么建议吗?
- 这行代码是在什么情况下生成的?我没有注意到它是如何以及何时创建的...
根据我在网站上阅读和看到的内容,我的猜测是,这仅用于可以执行某种搜索的应用程序,以便 Google 可以向用户显示以前的查询和更快的结果。
你是对的:该代码是由 Android Studio 自动为你创建的,以帮助实施 App Indexing API。
但是,它不是通过简单地向您的应用添加新的 activity 创建的。您需要明确要求 Android Studio 创建此代码。然后,您需要使用 activity 的详细信息更新它:操作类型、标题、深度 Link、相应的网页(如果存在)。
要为您生成此代码,您可以通过 Alt + Enter使用 pop-up 意图列表,select“插入应用索引API代码”:
或者您可以使用 pop-up 代码生成列表 通过 Alt + Insert, select “应用程序索引 API 代码”:
这是相关的 Google 开发者文档:
https://developers.google.com/app-indexing/android/test#link-creation
实际上只有四个部分需要调整:
// What type of action is this? (TYPE_VIEW, TYPE_LISTEN, TYPE_WATCH, etc...)
Action.TYPE_VIEW
// Title of your page, just like the web
"SinglePhotoViewer Page"
// The web url of corresponding content, if exists, otherwise leave blank, ""
Uri.parse("http://host/path")
// Your deep link starting with "android-app://"
Uri.parse("android-app://com.example.user.transitionstest/http/host/path")
作为最佳做法,您应该选择一个能够最准确地描述您应用中深层 link 位置的内容的标题。就像您在 HTML 网页 header.
中的 <TITLE></TITLE>
标签一样
实施后,最终用户查看的任何 activity 都会向 Android OS 报告此深度 link。然后,当用户在 Google 快速搜索框中键入查询时,它将出现在“建议自动完成”结果中。如果用户查询通过关键字匹配您的标题,您的应用程序图标和您提供的标题将显示在建议结果中。
这是一个示例,从最终用户的角度来看,在 Live Nation 应用程序中,假设他之前访问过左侧“建议”结果中显示的两个页面:
此外,通过实施 App Indexing API,您将在搜索结果中获得排名提升,如您在原始问题中提供的 link 所述:
This enables query autocompletions for your app users, as well as
richer search results, improved Search quality, and enhanced ranking
signals.
最后,您可能对此代码实验室感兴趣,将其作为附加资源:
https://codelabs.developers.google.com/codelabs/app-indexing/#0
如果这有帮助,您可以通过以下方式禁用该选项:
Settings > Intentions > Android > Insert App Indexing API code
并取消选中它。
您可以通过取消选中以下选项来禁用该选项:
Settings > Editor > Intentions > Android > Insert App Indexing API code
要找到它,请在“文件”>“设置”window 的搜索框中键入 "api code"。
它在我安装的 Android Studio 2.2.3
中
背景
我今天刚刚创建了一个新的 POC(关于 activity 转换,但这不是主题),我注意到在 "onCreate" 方法中写了一个新行主要活动:
// ATTENTION: This was auto-generated to implement the App Indexing API.
// See https://g.co/AppIndexing/AndroidStudio for more information.
mClient = new GoogleApiClient.Builder(this).addApi(AppIndex.API).build();
还有更多:
@Override
public void onStart() {
super.onStart();
// ATTENTION: This was auto-generated to implement the App Indexing API.
// See https://g.co/AppIndexing/AndroidStudio for more information.
mClient.connect();
Action viewAction = Action.newAction(
Action.TYPE_VIEW, // TODO: choose an action type.
"SinglePhotoViewer Page", // TODO: Define a title for the content shown.
// TODO: If you have web page content that matches this app activity's content,
// make sure this auto-generated web page URL is correct.
// Otherwise, set the URL to null.
Uri.parse("http://host/path"),
// TODO: Make sure this auto-generated app deep link URI is correct.
Uri.parse("android-app://com.example.user.transitionstest/http/host/path")
);
AppIndex.AppIndexApi.start(mClient, viewAction);
}
@Override
public void onStop() {
super.onStop();
// ATTENTION: This was auto-generated to implement the App Indexing API.
// See https://g.co/AppIndexing/AndroidStudio for more information.
Action viewAction = Action.newAction(
Action.TYPE_VIEW, // TODO: choose an action type.
"SinglePhotoViewer Page", // TODO: Define a title for the content shown.
// TODO: If you have web page content that matches this app activity's content,
// make sure this auto-generated web page URL is correct.
// Otherwise, set the URL to null.
Uri.parse("http://host/path"),
// TODO: Make sure this auto-generated app deep link URI is correct.
Uri.parse("android-app://com.example.user.transitionstest/http/host/path")
);
AppIndex.AppIndexApi.end(mClient, viewAction);
mClient.disconnect();
}
这已添加到清单中:
<!-- ATTENTION: This was auto-generated to add Google Play services to your project for
App Indexing. See https://g.co/AppIndexing/AndroidStudio for more information. -->
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version"/>
问题
看了那个写的网站,还是没看懂
我想 this 是如何使用它,但我不明白它是如何工作的。
此外,奇怪的是我创建的任何其他新项目都没有显示这行新代码
问题
- 这是什么?它有什么作用?
- 我应该用它做什么?
- 是否有任何定制?有什么建议吗?
- 这行代码是在什么情况下生成的?我没有注意到它是如何以及何时创建的...
根据我在网站上阅读和看到的内容,我的猜测是,这仅用于可以执行某种搜索的应用程序,以便 Google 可以向用户显示以前的查询和更快的结果。
你是对的:该代码是由 Android Studio 自动为你创建的,以帮助实施 App Indexing API。
但是,它不是通过简单地向您的应用添加新的 activity 创建的。您需要明确要求 Android Studio 创建此代码。然后,您需要使用 activity 的详细信息更新它:操作类型、标题、深度 Link、相应的网页(如果存在)。
要为您生成此代码,您可以通过 Alt + Enter使用 pop-up 意图列表,select“插入应用索引API代码”:
或者您可以使用 pop-up 代码生成列表 通过 Alt + Insert, select “应用程序索引 API 代码”:
这是相关的 Google 开发者文档:
https://developers.google.com/app-indexing/android/test#link-creation
实际上只有四个部分需要调整:
// What type of action is this? (TYPE_VIEW, TYPE_LISTEN, TYPE_WATCH, etc...)
Action.TYPE_VIEW
// Title of your page, just like the web
"SinglePhotoViewer Page"
// The web url of corresponding content, if exists, otherwise leave blank, ""
Uri.parse("http://host/path")
// Your deep link starting with "android-app://"
Uri.parse("android-app://com.example.user.transitionstest/http/host/path")
作为最佳做法,您应该选择一个能够最准确地描述您应用中深层 link 位置的内容的标题。就像您在 HTML 网页 header.
中的<TITLE></TITLE>
标签一样
实施后,最终用户查看的任何 activity 都会向 Android OS 报告此深度 link。然后,当用户在 Google 快速搜索框中键入查询时,它将出现在“建议自动完成”结果中。如果用户查询通过关键字匹配您的标题,您的应用程序图标和您提供的标题将显示在建议结果中。
这是一个示例,从最终用户的角度来看,在 Live Nation 应用程序中,假设他之前访问过左侧“建议”结果中显示的两个页面:
此外,通过实施 App Indexing API,您将在搜索结果中获得排名提升,如您在原始问题中提供的 link 所述:
This enables query autocompletions for your app users, as well as richer search results, improved Search quality, and enhanced ranking signals.
最后,您可能对此代码实验室感兴趣,将其作为附加资源:
https://codelabs.developers.google.com/codelabs/app-indexing/#0
如果这有帮助,您可以通过以下方式禁用该选项:
Settings > Intentions > Android > Insert App Indexing API code
并取消选中它。
您可以通过取消选中以下选项来禁用该选项:
Settings > Editor > Intentions > Android > Insert App Indexing API code
要找到它,请在“文件”>“设置”window 的搜索框中键入 "api code"。 它在我安装的 Android Studio 2.2.3
中