请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

.android工程疑问

请问flutter_module中的.android工程和flutter_module同目录下的Android工程有什么区别?还有flutter_module是如何打包进运行的apk中的呢?

正在回答 回答被采纳积分+3

1回答

CrazyCodeBoy 2023-11-09 08:27:28
对于Flutter模块中的.android目录和同级目录下的原生Android模块,主要有以下几点区别:

1. .android目录是Flutter模块编译生成的,包含了Dart代码编译到Java和Native代码后的结果,是Flutter模块能够在Android上运行所必须的。同级的原生Android模块是开发者自己编写的Java/Kotlin代码。

2. .android目录包含了Flutter编译好的Library,这个Library封装了Dart编译后的代码并提供了Java接口,可以被宿主Android App调用。原生模块需要自行封装提供接口给Flutter模块调用。

3. .android目录包含了Flutter引擎所需要的一些资源和配置,例如Flutter的icudtl.dat文件。原生模块不包含这些Flutter特有的资源。

4. .android目录包含了Flutter定义的AndroidManifest.xml配置。原生模块有自己的AndroidManifest.xml。

5. .android目录包含了编译Flutter模块所生成的R文件、BuildConfig等文件。原生模块有自己独立的这些文件。

综上,.android目录为Flutter提供了在Android上运行所必须的Java和Native接口、资源文件等。而原生模块是独立的Android Library。

关于Flutter模块如何打包到APK中,主要步骤是:

1. 使用Android Studio编译Flutter模块,生成.android目录。

2. 在app module的build.gradle中依赖Flutter模块的.android目录。

3. 将Flutter模块的资源文件复制到app module的资源目录。

4. 合并Flutter模块的AndroidManifest.xml到app module中。

5. 最后构建生成的APK包中会包含Flutter模块编译后的代码和资源,所以可以运行Dart写的页面和逻辑。

这样Flutter模块就与原生Android代码打包在了一个APK中,运行时二者可以相互调用接口实现交互。
0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信