谷歌最近更新了他们关于即时应用的文档:准备应用程序
除3.如有需要,重构应用程序外,大多数要点都很清楚。
他们建议零售模块,如浏览,搜索,项目细节,和结帐。
问题:如何将应用程序划分为功能齐全的模块& URL可寻址?
我在这里确实看到了几个问题:
有人能把光线暴露在黑暗中吗?谢谢!
发布于 2017-04-16 22:23:07
使用以下步骤可以轻松地完成即时应用程序所需的适当模块分离:
发布于 2017-05-17 22:44:53
现在请参考官方文件,因为开发人员通常可以使用即时应用程序。
总之,所有即时应用程序至少都有一个基本功能模块,其中包含跨即时应用程序的通用代码。最重要的是,即时应用程序还可以有一个或更多依赖于基本功能模块的附加功能库。每个功能模块都可以有自己的入口点,这些入口点是URL可寻址的,尽管功能模块本身不需要相互依赖。如果其中一个需要调用另一个,这可以通过一个基于URL的意图来实现。
来自docs站点的图表有一点帮助:

所有的功能模块都使用新的com.android.feature插件,它的使用方式与传统的com.android.library插件类似,可以在安卓项目中使用,因此图书馆文献可以用作参考。就其不同之处而言,当与可安装的应用程序模块一起使用时,它将输出一个常规的AAR文件,当与新的Instant模块一起使用时,它将输出一个特性APK。
发布于 2017-05-30 12:32:41
考虑一下这张图表。

问:我如何将应用程序划分成功能齐全的模块& URL可寻址?
基本模块:包含应用程序所需的所有公共资源。因此,在我们的示例中,来自feature1和feature2的所有活动都将使用来自基本module.It的共享res,这些库可能有匕首、蝴蝶刀之类的库。
现在,是时候将整个应用程序分解成一个更小的单元,称为功能。一个单一的功能可能包含多个活动,这些活动可能只是让您的应用程序一瞥,或者完成一个驱动用户安装该应用程序的目标。现在,这完全取决于你想要向用户交付什么东西,用户坚持让他们下载你的应用程序。
feature1 :,所以我们把应用分成了feature1和feature2。在这个feature1中,我们为用户提供搜索和浏览项目的功能。每当用户单击项目时,我们需要从feature2加载项目详细信息,因此,单击“浏览活动中的项目”,我们将调用如下
Intent intent = new Intent(Intent.ACTION_VIEW,
Uri.parse("https://yourdomain.com/itemdetail"));
intent.setPackage(getPackageName());
intent.addCategory(Intent.CATEGORY_BROWSABLE);
startActivity(intent);因为: feature1的Activity1不能在feature2中直接调用Activity2。为此,您必须从activity2请求activity1的URL地址。
Feature2 : Now,Feature2加载到即时应用程序中,这样我们就可以看到项目细节活动了。
注意:在拆分应用程序功能时,您还应该考虑功能的大小,因为每个功能都不能超过4MB大小,否则在上传apk以存储.时会发生验证。
https://stackoverflow.com/questions/42091283
复制相似问题