implementation project(’:flutter’)
3.2?AndroidStudio?工具引入
可采用?Flie -> Sync Project with Grdle Files?时,可通过?Import Flutter Module?方式引入;此时若报?The Gradle files could not be updated automatically?则需要手动?3.1?操作;
4. 原生与 Flutter 交互
Android?引用?Flutter?通常是两种,一种是新建一个?View?用来展示?Flutter?页面,另一种是?Fragment;其本质还是将?Flutter View?作为?Android View?的子?View?展示;
新建一个无标题栏的?FlutterActivity?和一个?FlutterFragment,在?MainActivity?添加一个按钮跳转到?FlutterActivity?展示?FlutterFragment;
public class FlutterActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_flutter);
getSupportFragmentManager().beginTransaction() .replace(R.id.container, new FlutterFragment()) .commit(); } }
public class FlutterFragment extends Fragment { @Nullable @Override public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View rootView = inflater.inflate(R.layout.fragment_main, container, false); getActivity().getSupportFragmentManager() .beginTransaction() .add(R.id.container, Flutter.createFragment("/")) .addToBackStack(“flFlutter.createFragmentutter”) .commit();
return rootView; } }
通过?Flutter.createFragment("/")?设置跳转路由;
5. 签名打包
直接运行?debuge?模式一切正常,只是在跳转?Flutter?时不如直接跳转原生流畅,后期优化;而打包成?release?包与?Android?原生相同,无需特别处理?Flutter Module;
注意事项
1. minSdkVersion >= 16
在集成过程中,使用?Flutter?时会提示?SDK?最低版本在?16?以上,需注意;
2. Flutter Module 路径
在学习过程中,无论是命令行创建还是?AndroidStudio?工具创建?Flutter Module?路径并非一定要与?Android Project?同级,关键是?setting.gradle
《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》
【docs.qq.com/doc/DSkNLaERkbnFoS0ZF】 完整内容开源分享
路径配置;
new File?文件第一个参数?settingsDir.parentFile?即?Android Project?所在文件路径,第二个参数为?Flutter Module?中?.groovy?路径;我们可以使用只有一个参数的完整路径;
// 两个参数 evaluate(new File( settingsDir.parentFile, ‘my_flutter/.android/include_flutter.groovy’ ))
// 一个参数 evaluate(new File( ‘/Users/user/Documents/workspace/ACE_Flutter/flutter_module01/flutter_module01/.android/include_flutter.groovy’ ))
3. 新的 evalute 会覆盖上一个
测试是,在?setting.gradle?中引入多个?evalue,以为可以同时引入多个?Flutter Module,而实际是后面的引入会覆盖先前的引入,以最后一个?evalue module?为准;
最后
最后我想说:对于程序员来说,要学习的知识内容、技术有太多太多,要想不被环境淘汰就只有不断提升自己,从来都是我们去适应环境,而不是环境来适应我们!
这里附上上述的技术体系图相关的几十套腾讯、头条、阿里、美团等公司19年的面试题,把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节,由于篇幅有限,这里以图片的形式给大家展示一部分。
相信它会给大家带来很多收获:
上述【高清技术脑图】以及【配套的架构技术PDF】可以 关注我 【主页简介】 或者【简信】免费获取
Android学习PDF+架构视频+面试文档+源码笔记
639027674080)]
上述【高清技术脑图】以及【配套的架构技术PDF】可以 关注我 【主页简介】 或者【简信】免费获取
Android学习PDF+架构视频+面试文档+源码笔记
|