
flutter
文章平均质量分 56
ameryzhu
这个作者很懒,什么都没留下…
展开
-
aspectd调试用脚本
aspectd自身也有一些尚未完善的地方,部分注解并不支持,比如对构造函数做一些注解生成。有一些问题,如:1.构造函数带参数类2.构造函数带泛型类3.构造函数带const类型这些就需要修改到aspectd的源码了,修改了源码又要重新生成一些中间产物。如果每次都手动去删除一些文件和目录就很繁琐。写了一个脚本,方便调试。如下:#!/bin/bashprojectPath=/Users/local-admin/Documents/coderm -rf $projectPath/load_m原创 2021-02-22 14:21:21 · 218 阅读 · 0 评论 -
关于flutter pubspec.yaml动态版本号问题
问题:拉出老的release库的代码,发现flutter部分的代码无法编译通过,打不出老的release包。问题分析:develop分支flutter库代码中的pubspec.yaml中的版本号都是动态模式。加了^符号,会默认指向a.b.c 版本号中c的最高位置。例如: ^0.1.2如果远端的pub库上的最新版本是0.1.3,那么本地使用的实际最终会是0.1.3。在自动对齐的过程中,有可能出现一些三方库的api变更,导致flutter编译的时候第三方库指向了最新版本的不.原创 2021-01-27 18:57:32 · 2634 阅读 · 0 评论 -
Aspectd 原理浅析
以一个简单的例子来解释aspectd改造后的代码的调用过程。声明一个简单的类Aclass A { int m;}void main() { A a = A(); print('a value :${a.m}'); ...}在main()方法中打印一下。写一个注解,hook 一个名为A的类的构造函数。向该类调用的前后点加注释。import 'package:aspectd/aspectd.dart';@Aspect()@pragma("vm:entry原创 2021-01-11 00:08:25 · 710 阅读 · 2 评论 -
AspectD 构建流程
项目构建流程下面分析一下aspectd是的执行过程是怎样的,我们先看一下aspectd给flutter tools打的git patch上的代码。主要改了两个类。一个新添加的aspectd.dart,另一个common.dart是系统原有的类。我们先看common.dart可以看到对KernelSnapShot类的build方法做了一些修改。也就是修改了原来生成dill的流程。把原来的编译流程抽取出来到buildImpl()方法中。增加了如下判断。 await b原创 2021-01-10 23:27:16 · 337 阅读 · 1 评论 -
AspectD 项目结构分析
应用场景AspectD是一款闲鱼推出的开源的代码插桩工具。使用它需要hook flutter的sdk。因为它需要修改flutter的构建流程。flutter产物有一个从dart代码到app.dill再到kernel.bin的过程。分析项目如何集成我们先以官方的example为例来分析一下。对于普通的flutter工程,你可能以为example是项目的入口,其实不是。aspectd因为要去做一些hook操作。修改了项目的入口,每次都会去找项目中是否有aspectd_impl目录,如果有的原创 2021-01-10 23:26:34 · 363 阅读 · 0 评论 -
Flutter web 跨域问题
背景:用flutterweb工程做了一个产物化平台,现在想在里面去展示aar构建的信息。nexus有api可以对外来访问。通过dio去拿相应的数据即可。问题:80端口下面的flutter web工程访问8081端口下的nexus服务,请求失败。http://127.0.0.1:8081/service/rest/v1/components/bWF2ZW4tcmVsZWFzZXM6Zjg5OGIzOTAzY2I5OWM1OTYyNTVjZGUzNDQ2N2Q0OGE通过postman或者客原创 2020-05-26 18:58:49 · 3913 阅读 · 0 评论 -
flutter --version卡死解决办法
开启verbose查看信息。flutter --version --verbose看到一直卡在github.com pull这里,于是考虑到修改flutter git镜像到国内。修改_flutterGit的路径为再次运行运行顺利。原创 2020-05-13 16:44:20 · 3263 阅读 · 0 评论 -
windows、ubuntu一个机器配两套flutter环境方法
如果下两份fluttersdk,然后手动修改.bash_rc就会非常麻烦。而经常会有这样的需求,比如:1.想从旧的sdk 1.9升级代码到新的sdk 1.12.13,需要两个环境都跑2.想在develop、master分支跑flutter web等等有没有简单的办法?利用alias1.修改~/.bash_rc如果没有添加如下脚本则手动加上if [ -f ~/.bash_aliases ]; then. ~/.bash_aliasesfi2.touch .bash_al原创 2020-05-12 22:51:12 · 334 阅读 · 0 评论 -
Flutter For Web配合Nginx搭建一个简单的网页
Ubuntu上部署的项目多了,想弄个entrance一起管理一下。先看下最终效果:1.开启flutter的web模式//只有master和develop等分支支持flutter web,stable是不行的。flutter channel master//开启支持web模式flutter config --enable-web trueflutter devices可以看到新增了chrome//创建一个新web项目flutter create .flutt原创 2020-05-12 20:07:47 · 1711 阅读 · 1 评论 -
Android工程通过Aar远端集成maven仓库中的flutter产物
1.搭建nexus maven仓库2.搭建jenkins3.修改flutter tool中的源码,改变flutter build aar 执行的代码最开始项目是通过源码来依赖flutter工程的,这样,原生的开发人员,避免不了要不断地拉flutter代码,项目复杂后经常容易报错,而非flutter的开发人员调试起来又感到茫然,而且降低工作效率。于是想到把flutter的通过aar集成到原生中。1.搭建nexus maven仓库最好搭建一台ubuntu的机器,这样服务比较稳定。.原创 2020-05-12 16:03:23 · 639 阅读 · 0 评论 -
dart pub私有仓库搭建、私有仓库上传方法、上传工具定制
dart 的官方网站提供了一个simple dart server,具体使用方法参考相关github的地址。https://github.com/dart-lang/pub_server我们选了一个PC作为服务器,24小时不关机。然后在内网中部署服务。配置好后,服务启起来。主要障碍在于上传的过程需要科学上网,科学上网结束后,又需要切回到内网。使用flutter 默认的pub c...原创 2019-09-29 15:18:01 · 6464 阅读 · 1 评论 -
Android AppHost源码挂载flutter,gradle sync失败,源码编译不过的常见排查手段:
每次切库,真是件痛苦的事情,一堆环境问题,特别是项目1.gradle sync失败windows: del /s /q *.iml,删除所有的.iml文件,然后删除AppHost,app等目录下里的.idea文件夹。2.Android宿主找不到flutter类检查AppHost中的app工程的build.gradle对flutter依赖是漏掉implementation pr...原创 2019-08-20 19:11:08 · 464 阅读 · 0 评论 -
flutter配置相关的bug
2019-07-23 11:35:07.367 11006-11006/? A/DEBUG: r0 00000000 r1 00002a8c r2 00000006 r3 000000082019-07-23 11:35:07.367 11006-11006/? A/DEBUG: r4 00002a8c r5 00002a8c r6 ffaae8fc ...原创 2019-07-23 11:41:06 · 934 阅读 · 0 评论 -
flutter 上手感悟
Android端flutter开发上手体会:调试效率有了质的提升。flutter上面很多东西比较新,按道理来说从接触dart,到开发出一个flutter页面比Android原生开发要慢很多的,但是很重要一点,flutter支持热重载,dart在debug与release模式下分别是JIT,AOT。开发模式下通过JIT模式,修改代码后,ctrl+s 保存一下,自动刷新到Android手机,1s...原创 2019-07-17 10:08:49 · 1367 阅读 · 1 评论