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

本文介绍了如何在Flutter中开发一个插件,用于监听Android应用的安装来源,并实现APK的自动安装。通过创建Flutter Plugin,引入插件到Flutter App,并给出获取版本号和实现自动安装的示例代码,帮助开发者提升Android集成能力。
摘要由CSDN通过智能技术生成

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

每日早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.png installApk代码实现如下所示 b05c95721e3d388958e1d17203bfa06c.png除此之外,还需修改 AndroidManifest.xml内的代码,如下面代码所示 3a815bb43fb868e54a56cbc9d7efcd43.png file_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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值