return Scaffold(
appBar: AppBar(title: Text(title),),
body: Center(child: Text(title),)
);
}
}
设置启动
startActivity(FlutterActivity
.withNewEngine()
.initialRoute(“/a”)
.build(this)
)
效果图
3.1 默认启动方式
myButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
startActivity(
FlutterActivity.createDefaultIntent(currentActivity)
);
}
});
2.3 缺点
-
启动Flutter模块时,会有明显延迟
-
会有一段时间的白屏
四 使用缓存的FlutterEngine启动FlutterActivity
4.1 说明
-
默认情况下,每个FlutterActivity都会创建自己的FlutterEngine
-
每个FlutterEngine都有预热时间,这意味着在FlutterActivity在可视之前,都会有延迟
-
为了减少延迟,在创建FlutterActivity之前,预先创建FlutterEngine,然后使用预先创建的FlutterEngine
-
要预先创建FlutterEngine,可以在应用程序中找到一个合适的位置来实例化FlutterEngine,一般在Application中完成
4.2 创建FlutterEngine(Application中)
public class MyApplication extends Application {
public FlutterEngine flutterEngine;
@Override
public void onCreate() {
super.onCreate();
// Instantiate a FlutterEngine.
flutterEngine = new FlutterEngine(this);
// Start executing Dart code to pre-warm the FlutterEngine.
flutterEngine.getDartExecutor().executeDartEntrypoint(
DartEntrypoint.createDefault()
);
// Cache the FlutterEngine to be used by FlutterActivity.
FlutterEngineCache
.getInstance()
.put(“my_engine_id”, flutterEngine);
}
}
说明:
-
my_engine_id:是个ID标识
-
请确保传递到FlutterActivity或FlutterFragment的ID跟通过FlutterEngine创建的是同一个
4.3 Activity页面中使用FlutterEngine
startActivity(
FlutterActivity
.withCachedEngine(“my_engine_id”)
.build(this)
);
说明:
- withCachedEngine(“my_engine_id”)跟Application中定义的my_engine_id是同一个
4.4 效果图
五 带有缓存引擎的初始路由启动FlutterActivity
5.1 说明
-
通过FlutterEngine配置启动FlutterActivity或FlutterFragment时,同样也可以设置初始路由
-
不可以在FlutterActivity或FlutterFragment中配置初始路由,因为缓存引擎已经在运行Dart代码中,这时配置初始化路由为时已晚
-
想要其缓存引擎从自定义初始路由开始的开发人员可以将其缓存的
FlutterEngine
配置为在执行Dart入口点之前使用自定义初始路由
5.2 创建带FlutterEngine的初始化路由
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
// Instantiate a FlutterEngine.
flutterEngine = new FlutterEngine(this);
// Configure an initial route.
flutterEngine.getNavigationChannel().setInitialRoute(“/b”); //your/route/here
// Start executing Dart code to pre-warm the FlutterEngine.
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V:vip204888 备注Android获取(资料价值较高,非无偿)
最后
在这里小编整理了一份Android大厂常见面试题,和一些Android架构视频解析,都已整理成文档,全部都已打包好了,希望能够对大家有所帮助,在面试中能顺利通过。
喜欢本文的话,不妨顺手给我点个小赞、评论区留言或者转发支持一下呗
roid获取(资料价值较高,非无偿)**
[外链图片转存中…(img-DNxPigFK-1711559662988)]
最后
在这里小编整理了一份Android大厂常见面试题,和一些Android架构视频解析,都已整理成文档,全部都已打包好了,希望能够对大家有所帮助,在面试中能顺利通过。
[外链图片转存中…(img-QGxNVlYr-1711559662989)]
[外链图片转存中…(img-7WObHx0r-1711559662990)]
喜欢本文的话,不妨顺手给我点个小赞、评论区留言或者转发支持一下呗