一、什么是Android Instant App

1、简单的理解就是google提出的小程序,大小限制在4M,依赖于google play的服务实现类似于打开网页url的方式来打开小程序。

2、优点:免安装,体积小,借助于Android Studio 3.0和gradle4.0可以在原有项目基础上调整为支持instant app和installed app的工程结构。

3、缺点:依赖google account和play的服务,功能受限比如需要运行时权限、目前不支持通知等。

二、环境相关

1、AndroidStudio 3.0

2、Instant SDK

3、API23+

4、Gradle4.0

三、工程结构

1、Instant app与Installed app工程结构关系如下图

(1)Instant app module:图中对应的就是即时应用,具体如下工程截图,注意该module只有一个build.gradle文件,

当选择运行instantapp配置之后,会在该模块目录下生成build目录,同时可以看到这个神奇的即时应用就是一个压缩包。

重点看看这个gradle文件:

apply plugin: 'com.android.instantapp'dependencies {implementation project(':feature')implementation project(':base')
}

通过这个com.android.instantapp插件,分别编译这个base和feature工程代码最后压缩成instantapp-debug.zip,通过解压这个文件可以验证一个module编译

成一个单独的apk,如下图

(2)App module:这个对应的就是installed app,即需要下载安装的应用,它倒是与原来的AS工程结构变化不大,主要是在build.gradle这个文件,具体代码如下:

apply plugin: 'com.android.application'android {compileSdkVersion 25buildToolsVersion "26.0.0"defaultConfig {applicationId "com.example.myfirstinstantapp"minSdkVersion 23targetSdkVersion 26versionCode 1versionName "1.0"}buildTypes {release {minifyEnabled falseproguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'}}
}dependencies {implementation project(':feature')implementation project(':base')
}

改动的地方与前面提到的类似,通过依赖的方式引入feature和base工程,也就是说是以工程库(aar)的方式打包到apk中的,可以验证这个,点击运行就会生成熟悉的apk,如下图

(3)base feature:由上图可以看出,其它的Feature module都是要依赖这个模块,因此其作用就比较明显了,是用于放置通用的代码和资源文件。

总之,编译instant app是以apk的方式参与打包;而编译installed app 则是以aar的方式参与打包。具体看看它的gradle文件

apply plugin: 'com.android.feature'android {compileSdkVersion 25buildToolsVersion "26.0.0"baseFeature truedefaultConfig {minSdkVersion 23targetSdkVersion 26versionCode 1versionName "1.0"}buildTypes {release {minifyEnabled falseproguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'}}
}dependencies {application project(':app')feature project(':feature')implementation 'com.android.support:appcompat-v7:25.+'api 'com.android.support:appcompat-v7:25.4.0'api 'com.android.support.constraint:constraint-layout:1.0.2'
}

说明:首先需要添加com.android.feature这个插件,其次是在依赖配置处,application project和feature project就是与app和feature两个模块建立起联系的关键配置,

或者说就是决定了base模块参与打包的方式。

注意:每一个feature module都需要在这个地方进行声明。

(4)最终看看instant app运行图:

(5)官网文档:https://developer.android.com/topic/instant-apps/overview.html

Android Instant App相关推荐

  1. 转: include android instant app support 是什么?

    include android instant app support 是什么? 想象一下,你的一个朋友给你发送了一个关于小猫视频的链接,他们承诺你肯定会很喜欢,但是当你点击链接的时候,你才发现需要下 ...

  2. Android Instant App 介绍

    开篇说明 每年Google 的 IO 大会上都会有令人惊喜的黑科技发布,今年也不例外,今年谷歌针对Android 发布了一个名为 instant app 的新技术. 关于这个新技术,网上大部分都是介绍 ...

  3. Android Instant App调研报告

    概述 instant app 是谷歌推出的类似微信小程序(或者说小程序类似于instant app)的一项技术,用户无须安装应用,用完就走,同时兼备h5的便捷和原生应用的优质体验. 工作方式和应用场景 ...

  4. Instant App 常见问题官方指南 | Android 开发者 FAQ Vol.6

    我们被大家的热情惊到了 -- 事实上我们发出上一篇 Instant App 的文章没几天就收到了一大堆问题.由于涉及到的类目太多,我们这里简单归纳了一下,方便大家查看.如果还有更多问题也请随时通过留言 ...

  5. 备受瞩目的Instant App即将到来

    我们一向致力于让用户能以更加省力的方式发现并使用各种应用,而 Android Instant App 正是这一理念的集中体现--这是一种用户无需安装即可运行 Android 应用的全新方式. 正如上图 ...

  6. Tensorflow Lite Android Demo App

    Tensorflow Lite Android Demo App 本文仅演示如何打通Tensorflow Lite官方demo.  Building in Android Studio using T ...

  7. Android 必须知识 PWA Android Instant Apps

    2019独角兽企业重金招聘Python工程师标准>>> 1.Progressive Web Apps (以下简称 PWA)是 Google 在 2015 年推出的项目,是一种致力于将 ...

  8. Android Instant Apps教程

    In this tutorial, we'll be discussing what are Instant Apps in Android and how to implement them in ...

  9. Introducing Android Instant Apps - Google I-O 2016 翻译字幕

    上周几乎没怎么学习,一直在忙字幕组的考核,干脆就把我翻译的字幕贴出来吧--这可真是最新的Android技术了. YouTube视频链接:https://www.youtube.com/watch?v= ...

最新文章

  1. SQL Serer闩锁 和 闩锁超时故障排除
  2. Android平台利用OpenCL框架实现并行开发初试
  3. python【蓝桥杯vip练习题库】ADV-306输出三个整数的最大数
  4. 京东java社招面试6_2020最新京东java面试题分享,京东社招
  5. 手动配置泛域名https (资源)
  6. AdGuard for Mac(专业的广告拦截工具)
  7. android Cursor用法
  8. 数据结构和算法——树结构(二叉树的创建、查找、遍历和删除)
  9. KB2999226安装提示 此更新不适用你的计算机
  10. Nginx设置404错误页面跳转
  11. war包的解压和打包为原来的war包的方法
  12. 基于MATLAB的温度报警,基于Matlab的小型温度检测系统设计
  13. 5.1.3 NoSQL数据库-Redis(键值key-value)-五大数据类型
  14. 汽车座椅测试能力全解析
  15. ninja: error: ‘xxx‘, needed by ‘xxx‘, missing and no known rule to make it
  16. An工具介绍之宽度工具、变形工具与套索工具
  17. php怎么开发微信网页,PHP实现微信网页授权开发的步骤
  18. ch1_系统启动_setup.S
  19. Kafka术语:AR、OSR、ISR、HW和LEO以及之间的关系
  20. C++基础-介绍·数据结构·排序·算法

热门文章

  1. 【论文速读】自动解题+认知推理+常识发现
  2. 开源的ERP:WebERP
  3. 空间路面matlab,基于Matlab的三维随机路面联合建模与仿真研究
  4. 【台大郭彦甫】Matlab入门教程超详细学习笔记六:高阶绘图(附PPT链接)
  5. Windows之内存映射文件
  6. 百度推广的八大误区,你有没有中招?!
  7. socket 端口复用
  8. 【数值分析×机器学习】使用CNN进行雅可比预条件子的生成(烦)
  9. 类的定义,成员函数和内置成员函数
  10. 【C语言】指针进阶(2)