自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 资源 (1)
  • 收藏
  • 关注

原创 flutter开发性能优化

15:熟悉flutter的渲染管线,flutter rebuild ,relayout ,repaint的原理机制,在页面绘制中尤其是动画中,尽量降低局部变化对全局的rebuild,relayout,repaint,这边需要注意,平时只会注意局部rebuild对全局rebuild的影响,其实还要考虑是否引起了不必要的relayout和repaint,rebuild 比较好监听,可以在代码中打断点或者查看。5. 避免更改组件树的结构和组件的类型,树结构改变会导致树重新rebuild。

2024-05-21 11:04:27 763

原创 flutter 中同步异步以及Future,await和async的深入理解

这是出于安全性考虑,因为await的作用是等待执行,会阻塞后面的代码,如果允许在main队列里面使用,会阻塞主线程,这是系统框架所不允许的,但是异步方法体(event队列)的执行优先级本身就是最低的,因此,可以在异步方法体里面执行await等待操作(反正main里面任务都执行完了,你想等就等吧)首先要知道await的作用是什么,顾名思义,等待,等待前面执行完,获得结果,再执行后面的代码,比如请求网络,获得结果,再渲染页面。所以,async方法体里面如果没有await,那么就没有意义,可以删除该标记。

2023-10-09 12:26:21 902

原创 flutter系统自适应宽高和ScreenUtils手动适配宽高的原理与区别

因此可以得出结论,当ScreenUtils初始化的时候的宽高和设备的逻辑宽高完全一致的时候,效果是完全一样的,换言之,如果初始化设置的宽高和设备的逻辑宽高不一致,则强制使用初始化设置的宽高为准,这样,不同的手机,都会强制使用screenUtils初始化时设置的宽高作为标准来达成统一。如果使用screenutils,那当前的100就不能当初逻辑像素,需要先转换一次(最终的逻辑宽度=设置的宽度(100)*设备逻辑宽度/ScreenUtils初始化时设置的宽度),然后再乘以设备像素比,最终得到物理像素。

2023-07-25 16:48:21 1350

原创 flutter获取屏幕宽高和某个控件 的宽高

flutter中经常需要获取很多系统宽高或者某个widget的宽高1:手机屏幕的宽高,注意,系统提供两个方法,一个是MediuQuery.of(context).size.width,一个是window.physicalSize.width,这两个是有区别的,第一个是逻辑宽度,第二个是物理宽度,记住公式(物理宽度=逻辑宽度*密度系数),我们开发里面用的宽高基本上都是逻辑宽高,系统会帮我们自动转换成实际宽高2:某个widget的宽高final GlobalKey globalKey = Globa

2022-05-30 11:00:08 8395

原创 安卓/flutter中的逻辑高宽和实际宽高和像素比和手机分辨率之间的关系

众所周知,flutter中获取宽高有两种方法(1)MediaQuery.of(context).size.width(2)window.physicalSize.width其实这两种获取宽高的方法其实是一样的,第一种就是获取的第二种,如下图所示size = window.physicalSize / window.devicePixelRatio,window.physicalSize就是物理像素,也就是一屏宽实际包含的像素点,那后面的window.devicePixelRatio是什么呢?

2022-05-30 10:26:47 1908

原创 关于安卓以及flutter项目迁移报错的各种坑

开发过程中难免会有迁移代码的情况发生,拉取别人的代码或者把自己的代码在另一台电脑上运行,但是一套常规配置下来,会发现结果各种异常报错,在此梳理需要注意的点,以及遇到各种问题需要解决的办法注意点1:尽量保持所有的项目配置一致工具:android studio ,vscode版本保持一致,最好关闭工具的自升级功能,工具升级之后有时会带来奇怪的事情~~jdk,sdk,flutter sdk,版本一致,并且sdk和flutter sdk路径确保一致gradle和gradle插件确保一致,这边也是

2022-04-26 14:51:03 427

原创 安卓滑动事件的冲突解决

子view中处理重写子view里面的dispatchTouchEvent,写上getParent().requestDisallowInterceptTouchEvent(true);即可请求父布局不要拦截事件,并且在onTouchEvent中返回true(不把事件继续往父布局传递)...

2020-04-15 18:39:21 141

原创 android studio git版本控制常规操作

1:使用AS创建本地项目,项目名以美团为例2:紧接着需要进行版本管理,在码云或者gitlab等第三方远程仓库创建项目,(登录网址,注册,创建项目,邀请成员,然后获取项目的.git地址)3:本地项目通过AS与远程仓库关联,大致流程如下参考链接:https://blog.csdn.net/u013184970/article/details/886607224:本地仓库与远程仓库关联之...

2020-04-14 10:57:55 165

原创 关于安卓中的RecyclerView,ListView,ScrollView等控件嵌套之后子控件长度显示不全的问题

RecyclerView和ListView以及ScrollView之间的嵌套是一种比较常见的操作,但是通常会有一个很尴尬的问题,就是,子控件的高度显示不全,比如RecyclerView嵌套ListView,RecyclerView和ListView在xml中高度都设置为wrapContent(想象中的情况是,自适应,listView的高度根据数据全部显示,然后外面的RecyclerView的高度也...

2020-04-10 16:50:12 290

原创 安卓的lambda表达式,刚入门很懵,看懂之后真香的操作

何为lambda表达式,名字的意义不知道,但是在安卓中的用处却是很多的,单反是接口或者匿名内部类的使用都可以用一句话写完,例如如下:getSms.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { }});可以转换成如下写...

2020-04-09 09:41:56 174

原创 安卓答疑系列之私有进程和公有进程以及进程共享,跳转

本文解决安卓开发路程上的疑惑点如下:1:AndroidManifest.xml中的permisson配置,有啥用?原理是怎样的?2:安卓的Uid和Pid的区别3:安卓activity跨进程调用的时候为什么要加android:export,这个属性配置之后究竟干了什么?4:安卓的两个不同的应用之间互相调用总共有几种配置方式?众所周知,Pid是进程ID,Uid是用户ID,只是And...

2020-03-30 15:32:25 331

原创 安卓NDK开发流程(适合新手学习)

为什么需要用到DNK(也就是jni)?因为安卓有很多功能是实现不了的,尤其是和底层硬件交互的一些操作,比如打印操作,直接用安卓连接底层打印机,就很难实现,但是用C就可以和硬件交互,这个时候就需要用安卓去调用C语音的方法,然后C再和底层硬件交互OK,言归正传,看一下NDK的简单开发流程(确保自己可以把NDK操作完整地跑一边,就基本上可以明白DNK的作用了)第一步:下载ndk以及配置ndk路径...

2020-03-16 12:48:57 542

原创 安卓style.xml与attrs.xml的深入解析

首先打开项目的布局文件接着,打开styles.xml,我截取了一段,如图所示:         可以看到里面定义了许多的style,每个style有自己的名字,并且会有父style,不难想象,子style会继承父style的所有的item ,那么重点来了!这里的这么多的item到底是什么鬼??数量如此之多,而且很陌生。其实这里所有的name里面的属性都是安卓定义好的,如

2017-08-30 16:49:57 949

原创 安卓动画阶段总结

安卓的动画分为三大类,帧动画,补间动画以及属性动画用的最多最常见的是补间动画:分为四个种类,分别是alpha,translate,scale,rotate四种。这类动画的细节适用不再描述,使用方式分为两种,一种是现在xml文件中定义好,然后在java代码中取出使用,demo如下:            android:duration="500"       

2017-08-25 10:38:49 161

原创 关于安卓View中onMeasure的详细分析

先来看一段我的自定义的VIew叫MyViewpublic class MyView extends View {public MyView(Context context) {super(context);// TODO Auto-generated constructor stub}@Overrideprotected void onMeasure(int

2016-12-15 15:09:34 373

安卓 rtmp推流+录屏+远程控制

本应用使用rtmp推流+录屏+instrutation模拟点击实现远程控制操作,由于有跨进程模拟鼠标操作,所以需要root权限,该服务需要适配后台服务器一起使用,安卓中的ip和端口等注意需要根据实际情况修改,最后祝大家爬坑愉快~

2018-07-31

空空如也

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

TA关注的人

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