自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(265)
  • 资源 (24)
  • 收藏
  • 关注

原创 如何在原生项目中集成flutter

因为flutter的Android engine是用来Java8的特性,所以在引入flutter时需要配置你的项目都Java8编译选项(app/build.gradle)//--org后面为域名 flutter_module为module名称。开发着更新一下依赖。就可以完成功能的更新。这样的话Native。这种集成方式不需要所有团队成员都安装flutter。2.attach到Android项目中。的代码,并不知道具体实现方式。1.关闭app(这一步很关键)开发者在开发完功能模块。

2024-04-17 23:20:00 909 2

原创 windows常用命令

该工具可以允许用户扫描所有受保护的系统文件,并且检查系统文件的完整性,然后恢复Windows损坏的系统文件。重装系统后,如果在不联网的情况下进入到安装界面“让我们为你连接到网络”这一步,到这里就不能再继续了,“下一步”这个按钮是灰的,不能点击,也没有其他任何可以点击的选项。文件的密钥与当前账户绑定到了一起,如果某个人获取了文件但是没有密钥,他无法查看内容。curl简单来说是一个命令行的网络请求工具,他请求了 ipinfo.io这个网址,网站则返回了我的公网IP地址。接下来介绍三个有用的网络命令,

2024-04-09 11:49:55 693

原创 flutter性能优化总结

选择一个特定的单元格作为 “锚” —所有单元格的尺寸都将相对于这个单元格。例如,你想要所有单元格都具有或大或小的效果(或类似需要轮询所有单元格的计算)时,就会发生内部传递。方法中进行重复且耗时的工作,因为当父 widget 重建时,子 Wdiget 的。在构建可复用的 UI 代码时,最好使用 StatelessWidget 而不是函数。将嵌套过多的 widget拆成不同的 widget,并进行封装。避免在动画中裁剪,尽可能的在动画开始之前预先裁剪图像。widget,尤其是在动画中避免使用。

2024-04-06 00:17:14 519 2

原创 flutter项目ffi相关

Flutter 使用FFI+CustomPainter实现全平台渲染视频_flutter ffi-CSDN博客

2024-04-04 11:50:54 408

原创 flutter项目使用ffi和原生交互问题积累

build 目录可能在 Android Studio 内看不到,到文件夹下去操作就行,release 阶段也需要在对应目录放置库文件。使用xcode打开Runner.xcworkspace,在linkBinaryWithLibraries里把xxx.a包含进来。项目名/build/app/intermediates/merged_native_libs/debug/out/lib。然后在AppDelegate.m里对静态库里面的任意函数如:native_add的调用。2.flutter项目中运行。

2024-03-25 22:49:41 321

原创 CMakeLists生成动态库.so和静态库.a

一、下载NDKCMake- NDK : 26.2.11394342 或 23.1.7779620二、新建android\app\CMakeLists.txt文件CMakeLists.txt内容三、app/build.gradle配置四、放c++代码:/android/app/cpp/native_lib.cpp。

2024-03-25 22:36:40 583

原创 xcode生成静态库.a

一、生成静态库1.打开 Xcode 创建一个新的 Static Library 工程,取名applestudio2.创建工程完毕后,简化目录结构删除系统自动创建的同名类:applestudio.h和applestudio.m把自己的代码复制进去,如例子:guiconnect.h 和 guiconnect.m3.设置适配所有模拟器架构:project -> buildSeting -> Build Active Architecture Only 设为 NO。

2024-03-25 22:26:08 705

原创 ios开发错误积累

2、下载完成后,执行以下命令添加:xcrun simctl runtime add /路径/iOS_17.4_Simulator_Runtime.dmg(这个是自己下载的文件的地址)1、去官网下载自己需要 地址(

2024-03-14 20:54:52 659

转载 Flutter 小技巧之优化使用的 BuildContext

这是因为 Element 里会判断此时的 ​​_StateLifecycle​​​ 状态,如果此时是 ​​ _StateLifecycle.created​​​ 或者 ​​ _StateLifecycle.defunct​​​ ,也就是在 ​​initState​​​ 和 ​​dispose ​​​ ,是不允许执行 ​​of(context)​​ 操作。​​​ 获取到 ​​sm​​​ 对象,之后就算你直接退出当前的列表页面,5秒过后 ​​SnackBar​​ 也能正常弹出。还记得前面的 log 吗?

2024-01-11 15:47:13 78

转载 git中fork的使用

在 Git 中,Fork 是指复制一个已有的 GitHub 项目到自己的账户下,然后在自己的账户中对该项目进行操作。Fork 操作在协作开发中非常常见,它可以帮助开发者更好地参与到开源项目中来。当一个开源项目被 fork 后,其他开发者可以在自己的 fork 项目中修改代码,然后通过 Pull Request 向原项目提交代码贡献,既方便了个人的开发,也为原项目贡献了更多的代码。Fork 操作只在远程仓库中进行,不会影响你的本地代码库。

2024-01-09 23:57:05 567

原创 flutter中枚举的使用

Dart 2.17 增加了对枚举成员变量的支持,推荐使用方式三。

2024-01-07 17:45:52 1229

原创 Kotlin 中的作用域函数

Kotlin 中的作用域函数

2023-12-15 17:20:56 314 1

原创 flutter 图片相关

Flutter中ListView加载图片数据的优化方案:当开始滚动时不加载图片,滚动结束后再加载图片,用到的关键技术:NotificationListener监听滚动状态。2.如果要优化下载,需要把图片缓存在磁盘上,下次直接从磁盘读取,就像 web 缓存那样,缓存用三方插件:cached_network_image。BoxFit.cover最常用 显示可能拉伸,可能裁切,充满(图片要 不要求全图显示,充满整个容器,还不变形)。BoxFit.fitWidth:宽度充满(横向充满),显示可能拉伸, 可能裁切。

2023-07-30 11:29:43 1071

原创 flutter多版本切换

执行完后,当前目录下会生成一个 ​​.fvm​​​ 文件夹,考虑将 ​​.fvm/ 添加到 .gitignore 文件,避免误传上库。参考链接:https://blog.csdn.net/qq_33220645/article/details/127012269。在当前 flutter_project 目录执行 ​​fvm use version​​ 即可切换flutter SDK版本。2、删除文件夹flutter目录文件(这里的flutter是原来的符号连接)1、项目clean然后切换自己需要的分支。

2023-06-09 10:12:37 3950

原创 flutter 如何在一个页面调用另一个页面的方法

在 PageB 里调用 PageAState 的 reloadData() 方法。

2023-04-10 18:04:16 972 1

原创 Flutter中Map、List数组的常用方法

list.add('我是文本');// [我是文本, 0.66]}

2023-04-03 15:05:00 3054

原创 flutter版本升级时遇到的问题解决

flutter升级的问题

2022-10-24 19:11:44 1925

原创 flutter面试

1、main()和runApp()函数在flutter的作用分别是什么?有什么关系吗?main函数是类似于java语言的程序运行入口函数 runApp函数是渲染根widget树的函数 一般情况下runApp函数会在main函数里执行2.widget生命周期,widget类型http://t.csdn.cn/z90io3、在flutter里streams是什么?有几种streams?有什么场景用到它?Stream 用来处理连续的异步操作,Stream 是一个抽象类,用于表示一系列异步数.

2022-05-22 20:39:26 652

原创 flutter异步相关

被async*标记的函数会在返回一组返回值,这些返回值会被包裹在Stream中。==================Dart中async和async*的区别start==============================================Dart中async和async*的区别end==============================StreamController(),只能有一个监听,会缓存数据,如上面的代码,10秒之前用户的操作在10秒之后会被打印出来。

2022-04-21 15:44:39 148

转载 flutter中compute和isolate

async和await: 对于普通的任务,使用async和await可实现异步处理任务,而async的处理方式并非使用的是多线程,而是依然在UI线程中处理任务,是在同一个线程上的并发操作。 对于比较繁重的处理任务,可使用compute来开启新isolate,来处理任务。 isolate: 是类似于线程,但不共享内存的独立的worker。是一个独立的dart程序执行环境。 对于每一个flutter应用,当应用被启动时都会有一个默认的isolate,称为root isolate。我们自己的..

2022-03-22 11:19:23 1765

原创 flutter状态管理库provider使用笔记

1.为保留状态,选择ChangeNotifierProvider.value,销毁自己手动处理(provider销毁自己手动处理参考:flutter_deer_master开源项目中GoodsSortBottomSheet类里面的处理方式, goods_edit_page.dart :dispose())Selector类和Consumer类似,只是对build调用Widget方法时提供更精细的控制,简单点来说,Selector也是一个消费者,它允许你可以从模型中准备定义哪些属性。

2022-03-21 10:07:54 291

原创 Flutter中数组list的浅拷贝和深拷贝问题

浅拷贝:拷贝指针 深拷贝:拷贝一份新的对象浅拷贝出现的问题:操作一个数组另一个数组也发生改变List list = ['1', '2', '3', '4', '5'];List copyList = list;copyList[0] = 'abc';print(list);///打印: [abc,2,3,4,5]print(copyList);///打印: [abc,2,3,4,5]上面问题解决办法:使用深拷贝list.from()List list = ['1', '2

2022-02-24 09:47:47 4029 1

原创 flutter web 微信授权和微信支付

flutter web 微信授权1 .通过微信开放平台获取授权参数参数说明appid 公众号的唯一标识redirect_uri 授权后重定向的回调链接地址, 请使用 urlEncode 对链接进行处理response_type 返回类型,请填写codescope 应用授权作用域,snsapi_base (不弹出授权页面,直接跳转,只能获取用户openid),snsapi_userinfo (弹出授权页面,可通过openid拿到昵称、性别、所在地。并且, 即使在未关注的情况下,只要用户授

2022-01-24 10:08:14 4474

原创 flutter开发web项目

让项目支持web :flutter create .运行:flutter run -d chromeflutter run -d chrome --web-renderer html打包:flutter build web --web-renderer html官方链接:Flutter on the Web参考视频:构建 Flutter web 应用 (From Mobile App to web App)_哔哩哔哩_bilibili部署参考链接:「Flutter for Web..

2021-12-20 11:45:01 13918

原创 flutter和原生交互

Flutter与原生通信

2021-11-23 13:46:56 3162

原创 Mac下Homebrew的安装

简介Homebrew 官方网站Homebrew是一个包管理器,用于安装Apple没有预装但你需要的UNIX工具。(比如著名的wget)。Homebrew会将软件包安装到独立目录(/usr/local/Cellar),并将其文件软链接至/usr/local。Homebrew不会将文件安装到它本身目录之外,所以您可将Homebrew安装到任意位置。Homebrew使macOS更完整。使用gem来安装gems、用brew来安装那些依赖包。wget是一个从网络上自动下载文件的自由工具,支持

2021-09-22 15:01:44 390

原创 flutter中state生命周期与app生命周期与路由监听

State生命周期initStateinitState 是 StatefulWidget 创建完后调用的第一个方法,而且只执行一次,类似于 Android 的 onCreate、iOS 的 viewDidLoad(),所以在这里 View 并没有渲染,但是这时 StatefulWidget 已经被加载到渲染树里了,这时 StatefulWidget 的mounted的值会变为 true,直到dispose调用的时候才会变为 false。可以在initState里做一些初始化的操作。...

2021-08-27 10:13:16 1955

原创 kotlin学习笔记

kotlin官方学习网站:https://developer.android.google.cn/kotlin/add-kotlin.kt编译成.javatools--->kotlin--->Show Kotlin Bytecode-->DecompileKotlin 基础语法1.Var 与 Valvar 关键字: 可变变量var <标识符> : <类型> = <初始化值>// 可以改,可以读 get set 如:var i..

2021-08-04 15:44:48 218

转载 flutter单例设计模式

单例设计模式(Singleton Design Pattern) 理解起来非常简单。一个类只允许创建一个实例,那这个类就是一个单例类,这种设计模式就叫作单例设计模式,简称单例模式。作为最简单的一种设计模式之一,对于单例本身的概念,大家一看就能明白,但在某些情况下也很容易使用不恰当。相比其他语言,Dart 和 Flutter 中的单例模式也不尽相同,本篇文章我们就一起探究看看它在 Dart 和 Flutter 中的应用。Flutter(able) 的单例模式一般来说,要在代码中使用单.

2021-08-02 14:03:25 473

原创 OkHttp使用与源码分析

OKhttp介绍https://square.github.io/okhttp/由Square公司贡献的一个处理网络请求的开源项目,是目前Android使用最广泛的网络框架。从Android4.4开始HttpURLConnection的底层实现采用的是OkHttp。支持HTTP/2并允许对同一主机的所有请求共享一个套接字 通过连接池,减少了请求延迟 默认通过GZip压缩数据 响应缓存,避免了重复请求的网络 请求失败自动重试主机的其他ip,自动重定向使用方法OKh..

2021-07-24 15:47:21 126

原创 Handler相关

什么是Handler机制在Android开发的过程中,会将耗时的一些操作放在子线程(work thread)中去执行,然后将执行的结果告诉UI线程(main thread),因为UI的更新要通过Main thread来进行(其实特殊子线程也可以更新UI)。那么这里就涉及到了如何将子线程的数据传递给主线程的问题。所以Android系统提供了一个消息传递的机制——Handler,可用于将子线程的数据传递给主线程,其实,Handler不仅仅能将子线程的数据传递给主线程,它能实现任意两个线程的数据传递。H

2021-07-20 17:29:15 639 1

原创 flutter中的动画基础知识

1.动画介绍Flutter中的动画系统基于Animation对象的,它不是一个Widget,这是因为Animation对象本身和UI渲染没有任何关系。Animation是一个抽象类,就相当于一个定时器,它用于保存动画的插值和状态,并执行数值的变化。widget可以在build函数中读取Animation对象的当前值, 并且可以监听动画的状态改变。2.在Flutter中有哪些类型的动画?在Flutter中动画分为两类:基于tween或基于物理的。补间(Tween)动画:在补间动画中,定义了开始

2021-07-09 14:25:10 1607 2

原创 flutter性能分析

官网文档地址:https://flutter.cn/docs/testing/ui-performance代码优化工具 : PerformanceOverlayA. 在 Flutter 项目中打开 PerformanceOverlay1.首先打开 PerformanceOverlay 工具,在 AndroidStudio -> Preference -> Language&Frameworks -> Flutter 中打开相应开关,如图:2.然后 run 我

2021-07-07 10:13:36 1646 1

原创 flutter异常处理

Dart代码运行时发生的异常与Java、kotlin、OC等具有多线程模型的编程语言不同,Dart是一门单线程的编程语言,采用事件循环机制来运行任务,所以各个任务的运行状态是互相独立的。也即是说,当程序运行过程中出现异常时,即使没有像Java那样使用try-catch机制来捕获异常,Dart程序也不会退出,只会导致当前任务后续的代码不会被执行,而其它功能仍然可以继续使用。异常捕获根据异常代码的执行时序,Dart异常可以分为同步和异步异常两类。首先我们看同步异常的捕获方式:同步异常的捕获方式

2021-07-06 14:46:32 1220

原创 Android知识总结

Android中Activity的四种LaunchMode和Intent 的flag的使用https://blog.csdn.net/haoxuhong/article/details/81297259对Android之事件分发机制的理解https://blog.csdn.net/haoxuhong/article/details/100110200Android中集合总结https://blog.csdn.net/haoxuhong/article/details/80576045

2021-07-05 15:24:43 52

转载 ConstraintLayout的使用

前言ConstraintLayout 是一个使用“相对定位”灵活地确定微件的位置和大小的一个布局,在 2016 年 Google I/O 中面世,它的出现是为了解决开发中过于复杂的页面层级嵌套过多的问题——层级过深会增加绘制界面需要的时间,影响用户体验,以灵活的方式定位和调整小部件。从 Android Studio 2.3起,创建layout文件就已经是默认ConstraintLayout了,但是尽管Google如此大力推这项技术,但在当时很少有人使用,近些年逐渐被大家拿起来,啊真香!(此处无图

2021-07-05 11:07:25 308

原创 Android-Flutter面试

分了五个模块java、Android、网络、dart、flutterjavaGC机制垃圾回收需要完成两件事:找到垃圾,回收垃圾。 找到垃圾一般的话有两种方法:引用计数法: 当一个对象被引用时,它的引用计数器会加一,垃圾回收时会清理掉引用计数为0的对象。但这种方法有一个问题,比方说有两个对象 A 和 B,A 引用了 B,B 又引用了 A,除此之外没有别的对象引用 A 和 B,那么 A 和 B 在我们看来已经是垃圾对象,需要被回收,但它们的引用计数不为 0,没有达到回收的条件。正因为这个循环引用

2021-07-02 10:45:24 555

原创 flutter页中嵌入Android控件---AndroidView

AndroidView在Flutter小部件上嵌入一个Android的View,与UiKitView对应,UiKitView是在Flutter小部件上嵌入一个ios的View.源码属性 释义 viewType → String 这个小部件要嵌入的Android视图类型的唯一标识符。 clipBehavior → Clip 内容被剪辑的方式,默认是Cli

2021-07-01 17:10:33 1673

原创 Flutter的核心渲染模块三棵树

​​​​​​​Flutter 中有三棵树:Widget 树,Element 树和 RenderObject 树。当应用启动时 Flutter 会遍历并创建所有的 Widget 形成 Widget Tree,同时与 Widget Tree 相对应,通过调用 Widget 上的 createElement() 方法创建每个 Element 对象,形成 Element Tree。最后调用 Element 的 createRenderObject() 方法创建每个渲染对象,形成一个 Render Tree。 E

2021-07-01 09:47:46 3185

原创 flutter空安全适配

一、空安全介绍1.什么是空安全从Flutter 2开始,Flutter便在配置中默认启用了空安全,通过将空检查合并到类型系统中,可以在开发过程中捕获这些错误,从而防止再生产环境导致的崩溃。时至今日,空安全已经是一个屡见不鲜的话题,目前像主流的编程语言Kotlin、Swift、Rust 等都对空安全有自己的支持。Dart从2.12版本开始支持了空安全,通过空安全开发人员可以有效避免null错误崩溃。空安全性可以说是Dart语言的重要补充,它通过区分可空类型和非可空类型进一步增强了类型系统。2.

2021-06-24 14:28:48 4108 2

Android热修复之手写Dex补丁加载

Android热修复之手写Dex补丁加载:将修复好的classes2.dex下载到本机,并替换有bug的.dex文件

2019-02-15

Android热修复demo

Android热修复demo:包含两个例子,andfixdemo和tinkerdemo

2019-01-22

Android 仿美团网实现左右滑动查看更多分类的功能

Android 仿美团网,使用ViewPager+GridView或使用ViewPager+RecyclerView实现左右滑动查看更多分类的功能

2019-01-15

viewpager使用总结

viewpager使用总结:①splash界面的实现,②一个界面显示多个item③一个界面显示多个fragment

2018-09-27

Android中常见的弹框:Spinner、Dialog、PopupMenu、PopupWindow

Android中常见的弹框:Spinner、Dialog、PopupMenu、PopupWindow等控件基本使用总结

2018-09-14

CollapsingToolbarLayout折叠toolbar的使用说明

CollapsingToolbarLayout折叠toolbar的使用说明:详情请看https://blog.csdn.net/haoxuhong/article/details/82184893

2018-08-29

popupmenu的详细使用demo

popupmenu的详细使用demo:设置背景颜色,字体大小,单行点击事件

2018-08-13

listview异步加载图片乱序的解决

listview异步加载图片乱序的解决:用到的技术LruCache图片缓存、asynctask异步下载图片

2018-08-02

android中显示本地或网络GIF图片

android中显示本地或网络GIF图片:通过Movie实现的,网络(Movie .decodeByteArray),本地(Movie.decodeStream)

2018-07-20

线程池demo

线程池demo:四类线程池的详细使用,newCachedThreadPool, newFixedThreadPool, newScheduledThreadPool, newSingleThreadExecutor

2018-07-05

android中实现滑动标题栏颜色渐变(scrollview)

android中实现滑动标题栏颜色渐变(scrollview):实现滚动scrollview来改变标题栏的颜色

2018-06-08

android中实现滑动标题栏颜色渐变(RecyclerView)

android中实现滑动标题栏颜色渐变(RecyclerView):其中包含有头部视图和没有头部视图两种情况

2018-06-08

Android自定义View实现类似水波扩散效果

Android自定义View实现类似水波扩散效果,里面有实现多种方式

2018-06-04

ios仿淘宝购物车demo

别人写的demo,我的项目中就是根据这个demo改的,具体实现了单选、多选、滑动单行删除等功能

2018-05-25

Android仿淘宝购物车demo

Android ExpandableListView 实现购物车页面 全选 多选 单选 编辑删除

2018-05-17

android6.0权限管理封装demo

android6.0权限处理的封装demo,使用简单,6.0权限介绍看博客https://mp.csdn.net/postedit/80140934

2018-05-15

android基于ijkplayer的直播例子

例子里面有编译好的各个版本的.so文件,且有ijkplayer的使用解析

2018-04-20

Android生成随机的图形验证码

该例子里面包含了自定义view和工具类两种方式,有随机数,干扰线,随机文本字体颜色,随机背景颜色

2018-04-19

Android蓝牙4.0开发demo

主要实现了往蓝牙模块中读写WiFi名和WiFi密码的功能,包含了写数据长度超过20个字节的分包发送

2018-04-11

Android直播ijkplayer库集成好的可以运行的例子

这个例子可以运行,且里面有集成好的可以直接使用的.so文件

2018-04-02

ios 直播集成好的IJKMediaFramework.framework(0.8.8版本)

iOS直播例子,测试过可以用的,里面包含了集成好的0.8.8版本的库

2018-03-31

ios 直播集成好的IJKMediaFramework.framework

上个资源有点问题,这个是经过测试的,没有问题,可以放心使用

2018-03-28

ios直播打包好的真机IJKMediaFramework.framework

iOS直播第三方库,参考https://www.jianshu.com/p/1f06b27b3ac0

2018-03-28

iOS蓝牙4.0开发demo

实现的是蓝牙4.0在iOS下的一个demo,主要用于往蓝牙模块写WiFi名和密码的功能

2018-03-16

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除