今天小编给大家分享一下go打包aar及flutter调用aar流程是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。使用flutter加载与调用第三方aar包。go可以编译为第三方平台的可执行程序,而flutter可以是一个用于开发跨平台UI的工具,如果开发一个程序,go用于后台服务,flutter只用于描绘UI,是否可以做到。查询了下github上的开源项目,有几个类似的:思源:使用go与安卓/IOS嵌入jsAppflowy: 使用rust与flutterrustdesk: 使用rust与flutter上述三个,大致都是将flutter做为一个跨平台的UI工具来进行使用(思源不是flutter),然后使用第三方语言实现基本业务逻辑。go如何打包为移动端的包flutter如何调用该包第一步需要解决的是环境配置,想打包安卓的包,肯定需要安卓的工具。下载android studio
打开SDK Tools
工具库,安装NDK
,请务必安装该版本:21.0.6113669
NDK解释:Native Development Kit
,是 Android
的一个工具开发包快速开发C
、 C++
的动态库,并自动将so
和应用一起打包成 APK
,即可通过NDK
在Android
中 使用JNI
与本地代码(如C、C++)交互踩坑:默认安装是23最高版本,打包失败,请勾选show package details
,会展开更加详细的NDK
版本,务必下载21.0.6113669
版本!!!golang.org/x/mobile/cmd/gomobile在项目中执行命令:go build golang.org/x/mobile/cmd/gomobile
gomobile init使用gomobile库可以将go程序打包为移动端的包本项目程序截图:在cmd/mobile中有一个kernel.go文件,该文件就是提供给移动端方法调用的入口StartKernel
,里面是启动一个协程,该协程中会启动对应的http服务。在我本地,我增加了一个构建安卓aar包的脚本执行该脚本,本地output会生成两文件:mobile-sources.jar — 具体实现的可以看该包,内部提供了免费云主机域名一些静态本地方法mobile.aar — 我们真正需要的包mobile-sources.jar内容:好了,现在我们已经拿到了aar包了。找半天文章,没有看到flutter直接调用aar包,如果你找到了请告诉我。我现在的解决方案是参考官网的:用写插件的方式去实现,安卓加载aar,然后flutter再调用。在android文件夹下的app/libs 中放入mobile.aar文件,如果没有libs文件夹的话就创一个。编辑app/build.gradle文件,增加如下代码:注释的是本人尝试后有问题的使用方式,本人非安卓开发人员,不是很清楚为什么不能那么使用,如果你知道的话可以告诉下我,没有注释的是本人亲试没问题的加载方式。参考该文章,实现 configureFlutterEngine 方法,通过向 configureFlutterEngine 注册方法,可以实现调用native的方法。MethodChannel的名字与flutter代码约定好,必须一模一样。简短写一下,调用还是挺简单的,MethodChannel(“name”),name的名字必须要与java中约定的通道名称一致。以上就是“go打包aar及flutter调用aar流程是什么”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注百云主机行业资讯频道。
相关推荐: Python中的函数参数传递方法*args与**kwargs怎么使用
本文小编为大家详细介绍“Python中的函数参数传递方法*args与**kwargs怎么使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“Python中的函数参数传递方法*args与**kwargs怎么使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入…
免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。