Android Instant Apps教程
在本教程中,我们将讨论什么是Android中的即时应用程序以及如何在我们的Android应用程序中实现它们。
Android Instant Apps
在网络上经常发生的情况是,当我们打开URL链接时,它会要求我们下载该应用程序。
这可能会妨碍用户体验。
因此,谷歌提出了即时应用程序,这是完整应用程序的迷你版本,可以从url启动而无需完全下载该应用程序。
在Google Playstore中,具有即时应用程序功能的应用程序将具有"立即尝试"按钮和安装按钮。
目前,运行Android 5.0及更高版本的设备支持Instant Apps。
Instant Apps要求开发人员对他们的项目进行模块化,以便在不同的模块中包含不同的屏幕/资源。
即时应用程序项目主要由以下模块组成:
- 应用模块
- Instantapp模块
- 基本功能模块
应用模块
应用程序模块包含即时应用程序中不能存在的所有内容。
话虽这么说,applicationId只会在基本功能模块中定义。
基本功能模块
此模块包含将在即时应用程序和应用程序模块中使用的共享活动。
应用程序的" applicationId"位于此处。
这里也定义了AndroidManifest.xml主文件,其中包含所有活动,权限等。
该模块将保存应用程序的所有资源-可绘制,mipmap图标等。
在此模块的build.gradle文件中,我们将插件设置为com.android.feature,并在android块中设置baseFeature true。
功能模块
其中包含即时应用程序特定功能的活动和类。
默认情况下,即时应用程序在加载时将仅下载一个功能和一个基本功能模块以及即时应用程序。
您可以根据需要创建多个功能
Instantapp模块
它不能包含任何代码。
在此模块的build.gradle文件中,我们添加了基本模块和功能模块的依赖项。
下图描述了每个模块之间的关系。
构建APK后,app模块将采用aar格式获取所有功能模块。
启动某些活动的URL链接位于何处?
多亏了App Links Assistant,我们可以创建映射到每个活动的URL链接。
创建之后,将在AndroidManifest.xml文件中设置带有url数据的意图过滤器。
将应用程序上传到Playstore后,哪个网址会首先启动?
我们需要在列表中设置一个" default-url"。
无论设置了哪种活动,都会首先启动。
Playstore上的应用程序与即时应用程序兼容后,我们可以使用以下链接启动它:https://play.google.com/store/apps/details?id = {package_name}&launch = true
。
开发即时应用程序的前提条件:
- Android SDK Build-Tools 26.x或者更高版本
- Android SDK平台工具25.x或者更高版本
- Android SDK工具(最新)
- Instant Apps Development SDK(最新)
- 支持资料库(最新)
- 对于模拟器,必须安装Google Play图片
- 您需要为需要用户登录的即时应用程序实施Smart Lock。
让我们在Android Studio中创建第一个AndroidInstantApps应用程序。
Android Instant Apps入门
在下一个屏幕上,设置功能模块的名称:
在以下屏幕中,选择活动模板。
我们使用了"登录活动"模板。
在下一个屏幕上,它将要求您为第一个活动提供应用程序链接。
以下是我们设置的随机网址路径:
完成此操作后,我们将准备好我们的项目结构,如下所示:
浏览文件夹后,您会看到该活动已在我们的功能模块中创建。
列表文件位于同一位置:
现在要运行该应用程序,我们需要在列表中设置一个默认URL。
我们有两种方法可以这样做:
使用列表列表中的默认网址设置元数据标签。
<meta-data android:name="default-url" android:value="https://www.theitroad.local/preview"
另外,我们可以设置要从"编辑配置"启动的活动的网址。
上面的应用程序的输出是:
从最近的标签屏幕截图中可以看到,该应用程序图标上带有即时应用程序徽章。
单击信息按钮将显示以下屏幕:
单击安装将安装完整的应用程序。
到目前为止,我们还没有在应用模块中添加任何内容。
让我们在应用模块中创建一个活动,然后尝试分别运行"即时应用"和"应用"模块。
在App模块中创建活动
在应用程序模块中的main上单击鼠标右键,然后创建一个名为java的新目录。
在java文件夹中创建一个名称为com.theitroad.androidinstantapps.app
的新包。
在包内,通过右键单击然后单击新建|创建活动。
活动|设置活动。
以下是项目结构的外观:
由于这是一个Instant App项目,我们也需要在app模块中添加活动的URL。
这是因为Instant Apps通过URL在相同模块和不同模块内的活动之间导航。
因此,转到工具|应用链接助手|打开URL映射编辑器。
在那儿为SettingsActivity添加一个新的URL映射器。
app/main/AndroidManifest.xml
现在转到功能模块中的LoginActivity.java类,并替换以下代码:
mEmailSignInButton.setOnClickListener(new OnClickListener() { @Override public void onClick(View view) { Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://theitroad.local/settings")); intent.setPackage(getPackageName()); intent.addCategory(Intent.CATEGORY_BROWSABLE); startActivity(intent); //remove the below line and add the above ones. //attemptLogin(); } });
因此,在Intent中,我们传入了在应用模块中创建的SettingsActivity的链接。
这样,您可以在不同模块中的活动之间切换。
现在,在应用程序模块配置中运行该应用程序。