
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
今天同事遇到这个问题。后来查了一下的原因是:不允许在实例化对象的时候重写的方法。以下两种都是不允许的:1.匿名类直接new 加重写的方式。getSupportFragmentManager().beginTransaction().add(R.id.activitymap, new Fragment(){@Nullable@Overridepublic View on...
flutter不支持反射,所以本来很简单的事情,一下子变复杂了。当然官方也提供了一些工具来方便开发者。
drawPath方法在缩放的情况下,有性能问题,卡帧,掉帧,甚至crash。最近产品上有个图片编辑的需求,需要对编辑区域做放大和缩小, 以方便用户编辑图片。这期间遇到几个问题。多了同样会有性能问题,卡帧,掉帧,甚至crash。在缩放时,CustomPaint会反复刷新,尽可能避免不必要的刷新。做到在缩放时不刷新,在编辑时刷新。如果只是单纯的缩放,没有对缩放的内容进行改变和更新, 那么基本没啥问题。
val与var,val就是C# 的readonly三重引号(“”“)相当于C# 的@”“模板表达式:字符串中有${ }, 那么可以在里面写代码。没有三元运算符,可以用if(a>b) a else b替换。 很怪的用法。if语句成了可以有返回值的方法了。unit类型when表达式, 相当于switch case; 最后的else就是default. 更加灵活。in和!in , 用于表达是否在某
不可变List所谓的不可变List就是:list中没有添加删除性质的api。创建不可变List有三个方法,另外创建list的变量不能匿名,因为要指定泛型。listOf(),创建没有元素的空list。返回的是Kotlin的EmptyList类对象。和Java中的EmptyList差不多,只不过泛型是Nothing。listOf(element:T), 用于创建只有一个元素的List。代码跟下去,会发
Kotin的Flow, 就是Java的RxJava框架, 但是使用更加简洁。 结合协程的作用域,协程被取消时,Flow也会被取消,也能避免内存泄漏。
存储访问框架,简称:SAF, 就是系统文件选择器。通常用来选择文件,和Windows的文件选择框一样。其实绝大多数app,都不会使用这个东西,因为太不方便了。图片,视频,普通文件,需要用户去翻文件夹找,这样的用户体验实在太差了。所以大家都是用第三方的或者自己写一个文件选择器。之所以讲SAF,一,是因为Android11以后,使用MediaStore无法访问到非多媒体文件了,需要依赖SAF了。二,外
Android性能优化(三) 内存优化
前景最近有个需求:PC端传过来的文件,需要保持原来的LastModified time。自然而然的想到了用file.setLastModified(), 实际情况是虽然返回true,但是没有修改成功。一个三星android12的手机除外。通过研究,发现不同厂商,不同android版本, 都有不同表现。总的来说就两个方式:1. Java file APIfile.setLastModified(),
app启动优化就一条:启动过程中少做事情。启动耗时监测1.adb shell am在应用层很难获取到启动耗时。可以使用adb命令获取真实的启动时间。代码如下:adb shell am start -W [packageName]/[packageName.appStartActivity]比如:adb shell am start -W com.gong.test/com.gong.adv.act







