Android Instant App
来源:互联网 发布:qq for linux 2017 编辑:程序博客网 时间:2024/05/28 19:23
一、什么是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 25 buildToolsVersion "26.0.0" defaultConfig { applicationId "com.example.myfirstinstantapp" minSdkVersion 23 targetSdkVersion 26 versionCode 1 versionName "1.0" } buildTypes { release { minifyEnabled false proguardFiles 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 25 buildToolsVersion "26.0.0" baseFeature true defaultConfig { minSdkVersion 23 targetSdkVersion 26 versionCode 1 versionName "1.0" } buildTypes { release { minifyEnabled false proguardFiles 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 介绍
- Android Instant App 介绍
- Android Instant APP
- Android Instant App
- Android Studio提示错误:Error running app: Instant Run requires
- Error running app: Instant Run requires 'Tools | Android | Enable Adb...
- Instant App 常见问题官方指南 | Android 开发者 FAQ Vol.6
- Instant App 常见问题官方指南 | Android 开发者 FAQ Vol.6
- Instant Run(App加壳)
- Android studio 常见问题 Error running app:Instant Run requires "Tools|Android|Enable ADB integration"to
- android studio Error running app: Instant Run requires 'Tools | Android | Enable ADB integration' t
- android studio 出现 Error running app: Instant Run requires 'Tools | Android | Enable ADB integration'
- android studio运行出现 Error running app: Instant Run requires 'Tools | Android | Enable ADB
- Android Studio 运行程序异常Error running app: Instant Run requires 'Tools | Android | Enable ADB integrati
- 运行Android Studio,一直提示:Error running app: Instant Run requires 'Tools | Android | Enable ADB integrat
- Error running app: Instant Run requires 'Tools | Android | Enable ADB integration' to be enabled.
- Error running app: Instant Run requires 'Tools | Android | Enable ADB integration' to be enabled
- Error running app: Instant Run requires 'Tools | Android | Enable ADB integration' to be enabled.解决方
- 软件质量的定义
- 解决微信小程序中Date.parse()获取时间戳IOS不兼容的问题(IOS为NaN的问题)
- 第五章 总结
- 一种WPF下的界面生成框架
- JAVA设计模式之原型模式
- Android Instant App
- 如何打开高清语音VOLTE
- TCP/IP协议族名称和国际网络组织名称的缩写和全称
- 在ubuntu上遇到的一个错误。记录一下。
- vue项目构建步骤
- 《Advanced Bash-scripting Guide》学习(十二):占位符":"及其他
- vim的配置文件vimrc让vim强大起来
- 抽象代数学习笔记(4)置换
- linux 内核编译错误