android 监听安装来源_Flutter插件开发之APK自动安装

点击上方的终端研发部,右上角选择“设为星标

每日早9点半,技术文章准时送上

公众号后台回复“学习”,获取作者独家秘制精品资料

7695c3aa17cd9a743871341b2a07a7dc.png

往期文章

记五月的一个Android面试经

今日头条屏幕适配方案落地研究

图解算法:说一道字节跳动的算法题

除了敲代码,你还有什么副业吗?

Android 须知2019流行的框架库及开发语言

告急!fastjson又被发现漏洞,这次危害可导致服务瘫痪!

7695c3aa17cd9a743871341b2a07a7dc.png

来源:技术Yuzo

原文链接:https://www.jianshu.com/p/ce70c8fd752f

Flutter插件开发之APK自动安装
本文适用于Android开发人员

个人博客

https://yuzopro.github.io

什么是Flutter Plugin

Flutter Plugin是一种特殊的包,包含一个用Dart编写的API定义,结合Android和iOS的平台特定实现,从而达到二者兼容。1、应用的Flutter部分通过平台通道(platform channel)将消息发送到其应用程序的所在的宿主(iOS或Android)2、宿主监听的平台通道,并接收该消息。然后它会调用特定于该平台的API(使用原生编程语言) - 并将响应发送回客户端,即应用程序的Flutter部分使用平台通道在客户端(Flutter UI)和宿主(平台)之间传递消息,如下图所示2cecb6a9e30b7b7c7cbbb650099b4749.png

创建Flutter App

相关代码见运行第一个Flutter App

创建Flutter Plugin

右键工程->New->Module,如下图所示39e308ac2da0655b1cee711731466d07.png选择Flutter Plugin,点击Next,如下图所示55ad0a8f532f90a82da8380b2dd8640c.png输入工程名(Project name),点击Next,如下图所示779e44d07afe2f35b4bcb8242fccfead.png输入包名(Package name),点击Finish,入下图所示240680fbfd83cb9e7c6cb1dc2912e042.png到此Flutter plugin创建完成。

引入插件

在工程目录下找到pubspec.yaml文件,在dev_dependencies添加如下依赖,如下图所示f1a2206fe3847217236179802789e7ec.png相关代码如下ca572ce5493635d59ca36bcaf8fba0a1.png

获取版本号demo

打开插件lib下的dart文件,会有平台自动生成的代码,具体是实现获取APP版本号,如下面代码所示ac5098e6e38cd145a0ad48a8261bc7ec.pngjava部分的代码如下面所示c29c90aaf3a57901c598533a397181bc.png

实现自动安装APK

实现自动安装APK,需要从Flutter应用层传入一个APK安装包的地址到host层,dart代码如下所示:1064045f8db0f236a699f2d6ecf9ef26.pngjava部分的代码如下所示f6a32bf8d1af35dcd7825af9f4b580ae.png到此,host层就能获取到APK安装包的路径了,后面只需实现Android安装APK的代码逻辑即可,在日志下面添加如下代码0cedbd886b5f7b8d60852b4efae915c2.pnginstallApk代码实现如下所示b05c95721e3d388958e1d17203bfa06c.png除此之外,还需修改AndroidManifest.xml内的代码,如下面代码所示3a815bb43fb868e54a56cbc9d7efcd43.pngfile_path.xml放在res->xml文件夹下面,如下面代码所示60735676b86f530c6fe4bcf864357cfe.png运行代码如下图所示

9ad9def2733aaee30c74da78c746b0eb.gif

源代码

项目地址-OpenGit客户端:https://github.com/Yuzopro/OpenGit_Flutter

初探:Java虚拟机那点破事十个Android面试技术知识点Android社招最全面试题生还是死?Android 进程优先级详解图解算法:说一道字节跳动的算法题将20M文件从30秒压缩到1秒,我是如何做到的?

相信自己,没有做不到的,只有想不到的

在这里获得的不仅仅是技术!

5effa2b9fa878486697a38775ef0cce4.png

b637bf7cfb265acdb31d45f78e0894e0.gif

喜欢就给个“在看” 410fdc598f5c65e4fa2d96a59c61976c.gif

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/326773.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JavaScript学习总结(一)——JavaScript基础

转载自 JavaScript学习总结(一)——JavaScript基础 一、JavaScript语言特点 1.1、JavaScript是基于对象和事件驱动的(动态的) 它可以直接对用户或客户输入做出响应,无须经过Web服务程序。它对用户的响应,是采用以事件驱动的方式进行的。所谓事件驱动…

idea下使用springinitializr创建项目时 初始化失败的解决

idea自带的地址无使用使用阿里的就可以了 idea下使用springinitializr创建项目时 初始化失败的解决 周山 关注 2020.08.05 13:32:26字数 10阅读 1,085 image.png 修改初始化创建时Custom处 https://start.aliyun.com/ image.png

ssh(Spring+Spring mvc+hibernate)——EmpDaoImpl.java

/** * Title: EmpDaoImpl.java * Package org.dao.impl * Description: TODO该方法的主要作用: * author A18ccms A18ccms_gmail_com * date 2017-11-21 上午10:05:13 * version V1.0 */ package org.dao.impl;import java.io.Serializable; import java.util…

如何使Mac Docker支持SQL on Linux容器Volume特性

问题引入 这天老鸟火急火燎的找到菜鸟:“鸟儿啊,按照你之前的文章SQL on Linux Run on Docker,当我销毁SQL on Linux Docker容器以后,我容器中的所有数据库数据丢失啦,怎么办,怎么办啊?”。菜鸟…

JavaScript学习总结(二)——逻辑Not运算符详解

转载自 JavaScript学习总结(二)——逻辑Not运算符详解 在JavaScript 中,逻辑NOT运算符与C和Java中的逻辑 NOT 运算符相同,都由感叹号(!)表示。与逻辑 OR 和逻辑 AND 运算符不同的是,逻辑 NOT 运算符返回的一定是 Boo…

赫夫曼树+图解

图解 代码实现 package com.atguigu.huffmanTree;import javax.swing.*; import java.awt.geom.RoundRectangle2D; import java.util.ArrayList; import java.util.Collections; import java.util.List;/*** 创建人 wdl* 创建时间 2021/3/26* 描述*/ public class HuffmanTree…

四足爬行机器人运动_有自我意识机器人横空出世,还能自我复制,专家表示需警惕其失控...

有自我意识是什么样的?人类自身其实就是有自我意识的生命体,那作为有自我意识的生命体,你想过自我意识是指哪些特征吗?指尖科技说小编先跟你探讨一下:1.主动做事情。就是说在没有其他人控制的情况下,它可以…

IDEA中创建maven项目详细步骤,很清晰

IDEA中创建maven项目详细步骤,很清晰_格子衫111的博客-CSDN博客_idea maven构建 前言 在IDEA中创建Maven项目,前提是已经安装配置好Maven环境 。 如还未配置安装Maven的,请先下载安装。如何下载安装,可参考我另外篇文章&#xff1…

ssh(Spring+Spring mvc+hibernate)——IDeptService.java和IEmpService.java

IEmpService.java的代码: /** * Title: IEmpService.java * Package org.service * Description: TODO该方法的主要作用: * author A18ccms A18ccms_gmail_com * date 2017-11-21 上午10:08:05 * version V1.0 */ package org.service;import org.…

微软AirSim,一个无人机和机器人的模拟器

微软开发并开源了AirSim,一个用于模拟无人机在全世界的飞行的工具。这个模拟器基于虚幻引擎(Unreal Engine)构建,微软很快会增加对机器人和其它类型移动设备的支持。 微软在内部开发了航空信息系统和机器人平台,这个研…

JavaScript学习总结(四)——逻辑OR运算符详解

转载自 JavaScript学习总结(四)——逻辑OR运算符详解 在JavaScript中,逻辑OR运算符用||表示 var bTrue true;var bFalse false;var bResult bTrue || bFalse; 下面的真值表描述了逻辑AND运算符的行为: 运算数 1运算数 2结果truetruetruetruefalsetruefals…

android 渐变蒙版_干货分享(第八期):PS蒙版教学,利用蒙版制造渐隐效果

哈喽,大家好,在下乔安生,之前已经跟大家说过图层蒙版的一个应用。今天再跟大家分享下,如何利用蒙版制造出渐隐的一个效果。利用图层蒙版 ,为图像增加渐隐的感觉,然后利用画笔工具来修改图层蒙版以及改变图层…

ssh(Spring+Spring mvc+hibernate)——DeptController.java

/** * Title: DeptController.java * Package org.action * Description: TODO该方法的主要作用: * author A18ccms A18ccms_gmail_com * date 2017-12-27 上午10:54:42 * version V1.0 */ package org.action;import java.util.List;import org.entity.Dept;…

Java Long类型处理精度丢失问题 传递给前端精度丢失

推荐统一处理 不需要单独处理了 package com.wochanye.ssc.portal.config; import org.springframework.boot.autoconfigure.AutoConfigureAfter; import org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration; import org.springframework.context.a…

ssh(Spring+Spring mvc+hibernate)——EmpController

/** * Title: DeptController.java * Package org.action * Description: TODO该方法的主要作用: * author A18ccms A18ccms_gmail_com * date 2017-12-27 上午10:54:42 * version V1.0 */ package org.action;import java.text.SimpleDateFormat; import jav…

LEANSOFT领航员 – 基于Docker的DevOps实战培训

2016年,LEANSOFT推出了一系列广受开发人员欢迎的培训,包括《构建高效DevOps团队》,《基于Azure的容器化DevOps数据中心》和《Docker基础培训》。在这些培训中,我们得到了很多反馈,大家对使用Docker来支持DevOps的场景有…

高德地图路线规划 时间_路线准、播报拥堵及时,这次自驾出行高德地图可算是帮了大忙...

在我们日常生活中,自驾已经成为一种很普遍的出行方式,不仅在时间上灵活,特别是一家人出行也比较方便。伴随自驾出行的除了爱车外,一款靠谱的地图导航软件也成为了必不可少的旅行伙伴。目前比较常用的地图导航软件当属高德、百度和腾讯,不少人手机里都会有这三款软件中的其中一个…

JavaScript学习总结(七)——JavaScript函数(function)

转载自 JavaScript学习总结(七)——JavaScript函数(function) 一、函数基本概念 为完成某一功能的程序指令(语句)的集合,称为函数。 二、JavaScript函数的分类 1、自定义函数(我们自己编写的函数),如:function funName(){} 2、系统函数(J…

ssh(Spring+Spring mvc+hibernate)——applicationContext-servlet.xml

<?xml version"1.0" encoding"UTF-8"?> <beansxmlns"http://www.springframework.org/schema/beans"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xmlns:p"http://www.springframework.org/schema/p"xm…