- 博客(65)
- 收藏
- 关注
原创 flutter实践:混合app在部分android旧机型上显示异常
问题现象:flutter页面黑屏/白屏/花屏问题机器:oppo reno2 Z。
2025-11-17 19:23:51
250
原创 flutter实践:DropdownButton2使用示例
selectedItemBuilder:自定义 下拉按钮中显示的“已选项”内容(即选中后在按钮上显示的 Widget),不影响下拉菜单中的选项显示。iconStyleData:专门用于 定制下拉按钮右侧的图标(通常是 ▼ 箭头)menuItemStyleData:配置每个下拉选项(item)样式。value:当前选中的值(必须与items中某一项value相等)buttonStyleData:配置下拉按钮本身的样式。hint:未选择时显示的提示文本/控件。items:下拉选项列表。
2025-11-14 11:21:36
238
原创 git常用指令
当你运行这个命令后,Git会更新其索引,将 gradlew 文件的模式(mode)从代表普通文件的 100644 更改为代表可执行文件的 100755。你可以使用 git ls-files --stage gradlew 命令来验证这一变化。用于选择性地将一个或多个提交从一个分支应用到另一个分支上。这个命令可以用于合并单个提交或一系列提交,而不需要将整个分支合并过来。git push origin dev_ck:dev_ck 本地新建分支名:远程仓库新分支名。本地直接推送到远程仓库的一个新分支。
2025-10-28 09:53:06
142
原创 android实践:loadUrl执行JavaScript异常
如urlStr过长会导致webView无响应,无报错分析:loadUrl()有长度限制。
2025-10-27 16:10:46
150
原创 android实践:PopupWindow引起的崩溃
PopupWindow弹出过程所依附的activity已经销毁。弹出时检查状态判断是否可弹。
2025-10-27 14:44:32
136
原创 android实践:Bugly专业版Android SDK集成
a.初始化过程可能会采集部分用户信息,必须在同意隐私政策后进行初始化。b.Context需要传递ApplicationContext。需求:app集成Bugly SDK,上报崩溃问题。1.注册产品,获取AppID和AppKey。
2025-07-01 15:07:15
507
原创 android实践:Bunder缓冲区溢出
Android 使用 Binder 机制在组件(如 Activity、Service)间传递数据,数据会被封装为。 虽未超过 1MB,但如果同时有其他事务占用缓冲区,仍可能触发异常。处理方案:使用文件传递。
2025-07-01 10:33:51
235
原创 android实践:拍照图片在相册中不显示
问题:拉起系统相机拍照并存储到公共区域,图片文件可见,系统相册中却看不到。2.照片存储使用FileProvider。1.需要发送广播给系统,刷新数据库。
2025-06-27 19:57:24
254
原创 android实践:Canvas绘图
需求:身份证/银行卡上传自定义View,左上角显示关闭按键,中间是一个取景框用于定位证件,右侧显示扫描/相册。
2025-06-24 17:25:35
225
原创 flutter实践:断点调试踩坑
分析:开始误以为是flutterSDK出了问题折腾了一天,后来又怀疑是lauch.json配置有问题折腾了半天,然后又看到VSCode自动升级更新了,更新的时间节点刚好是打断点不生效的那天,然后又回退VSCode版本折腾了半天。问题:使用VSCode开发flutter,最近突然开始打断点不生效,程序可以attach,修改有日志输出,但是断点处怎么都停不了,程序异常断点会停。2.VSCode是集成开发环境,升级一般不会影响代码运行调试,应该排除怀疑。原因:最后发现是扩展组件自动更新引起的,吐血。
2025-03-11 14:39:36
693
1
原创 Android实践:查看Activity信息
这个命令用于获取Android设备上当前Activity堆栈、任务(Tasks)以及其他与Activity Manager服务相关的信息的详细快照。这个命令对于调试和理解应用程序的生命周期以及系统如何管理Activity非常有帮助。但是信息太多,需要过滤一下更直观。问题:本地Android SDK的monitor无法正常运行,看不了进程相关信息,确认当前显示Activity十分不便。解决办法:使用adb shell指令可以快速查看。
2024-05-15 20:11:50
856
原创 Android权限问题
它赋予应用查询设备上所有已安装应用的能力。这个权限在Android 11(API级别30)及以后版本中变得尤为重要,因为从这个版本开始,为了保护用户隐私,Android引入了更严格的权限管理策略,限制了应用访问其他应用信息的能力。问题:mate60pro弹出了一个读取已安装应用列表的权限弹框,需确认相关场景。1.AndroidManifest.xml中声明了权限标签。2.调用此接口在高版本手机上就会弹出权限申请框。
2024-04-28 17:57:50
1495
1
原创 Android Studio查看viewtree
前言:之前开发过程一直看的是手机上开发者选项中的显示布局边界,开关状态需要手动来回切换,今天偶然在Android Studio中弄出了布局树觉得挺方便的。
2024-04-20 16:11:58
976
1
原创 Android集成Sentry实践
需求:之前使用的是tencent的bugly做为崩溃和异常监控,好像是要开始收费了,计划使用开源免费的sentry进行替换。说明: 最开始把dsn配置在AndroidManifest中测试一直没有成功,后来改成这种在代码里配置才好了。这应该注册账号后本地部署的一个项目,这里直接使用了。
2024-04-20 11:35:11
1569
1
原创 flutter实践:使用三方组件syncfusion_flutter_datagrid
第二个问题考虑在行的第一个格子中使用OverflowBox使其超出父组件显示,这样就可以在整个行的区域进行显示。项目中有两个需求,一是在列表中要使用可变高度,就是数据行是一个高度,还要实现一个标签行且标签行的高度要不一样;二是标签行要实现自定义的UI,即列表的网格不能满足需求。是一个用于 Flutter 的数据网格组件,它提供了丰富的功能来显示和编辑数据。这个组件提供了灵活的配置选项,使得开发者能够根据需要定制数据的显示和编辑方式。对于第一个问题,组件中的参数onQueryRowHeight可满足。
2024-01-29 10:13:17
1663
原创 Dialog dismiss()引起的崩溃问题
FLAG_ACTIVITY_CLEAR_TOP是一个Android系统中的标志(flag),用于控制Activity的启动行为。当设置了这个标志并且要启动的Activity已经在当前的任务中存在时,系统会关闭这个Activity之上的所有其他Activity,并把这个Intent作为新的Intent投递给位于栈顶的Activity。结论:由于使用了这个标记,再次打开的页面被销毁了,导致在这个页面中打开的dialog没有被正确的释放,所以在dismiss时会出现上述错误。
2024-01-29 09:50:38
670
原创 flutter实践:慎用Expanded(二)
分析:可能是在Row的外层使用了Expanded的关系,导致release版本异常。其实这里去掉Expanded这一层也可以实现横向滑动。问题:又一次遇到使用Expanded引起的问题,debug模式调试正常,release版本导致页面卡死。
2024-01-03 19:12:39
760
原创 flutter实践:Isolate应用实例二
在 Dart 中,Isolate 之间的消息传递是通过。需求:尝试将Isolate封装一层便于直接使用。是 Dart 中进行进程间通信的工具。时,它将自动生成一个与之关联的。发送消息,然后在对应的。3.定义一个Message。4.开启isolate处理。
2023-12-29 15:03:55
985
原创 flutter实践:Isolate应用实例一
观察堆栈可以看到每次Isolate调用返回结果集后自行关闭了,资源应该也得到了释放。但是在连续输入字符的时候会触发多个Isolate,每个Isolate都会返回一次结果,可能会占用大量资源,存在性能隐患。需求:要在本地实现数据搜索,在数据量超大的情况下遍历搜索可能非常耗时,考虑使用Isolate避免造成页面卡顿。dataModule.dataList为数据源List。_searchText为输入字符。
2023-12-27 10:29:33
479
原创 华为平行视界适配遇到的问题
问题:应用支持华为平行视界后测试发现主activity点击打开一个activity后,再点击左边activity不响应,点击第二次恢复正常。分析过程:查看activity生命周期后发现,在打开第二个activity后发现左边activity进入onPause状态,此时点击左边无响应,发现左边进入了onResume状态,再次点击响应了。
2023-10-27 17:08:36
783
原创 WebView注入JavaScript代码
应用需要统计网页打开情况,部分三方网页在网页跳转时无法在onPageFinished中监测到。使用代码注入在网页url发生变化时调用原生代码,传入新的url。
2023-10-23 10:28:14
1606
原创 Dialog显示适配问题
调整 Dialog 的样式和外观:有时 Dialog 的样式和外观可能会受到设备的系统设置影响。您可以尝试自定义 Dialog 的样式,例如设置边距为 0,以确保 Dialog 充满屏幕。问题:原业务是在页面上弹出一个显示在屏幕底部的弹框,宽度占满整个屏幕,测试发现在vivo x60机型上这个框在左右两边以及底部都出现了空隙。
2023-07-20 11:05:14
301
原创 浮动视频窗项目总结
果然两三天后产品开始找我了,视频窗需要圆角显示,因为矩形框不够美观,视频窗上的控制按钮也需要考虑到与用户的交互,什么时候显示,什么时候隐藏,视频窗的拖动区域也需要限定避免遮挡顶部或底部,两侧也需要空出一段距离避免曲面屏上滑出显示区域。当时也是很多不解,为什么不早说?在多次测试后,又有新的问题出现了,视频播放过程前后台切换,点击二级页面再返回,视频加载过程页面出现卡顿,初看感觉哪一个问题都没头绪,关键是开发过程我似乎完全没有考虑到这些场景和细节,解决这些问题就是需要反复的调试,排除,验证。
2023-07-17 16:28:41
320
原创 Rhino初探
Rhino是一种基于Java的JavaScript引擎。它允许在Java应用程序中嵌入JavaScript脚本,从而实现动态脚本功能。Rhino是由Mozilla基金会开发的,它是开源的,并且可以在商业和非商业应用程序中免费使用。Rhino支持ECMAScript 5.1标准,并提供了许多扩展功能,例如Java和JavaScript之间的无缝交互。Rhino在android上运行。java中执行script。java中执行js文件。
2023-07-12 16:52:48
817
原创 QQ聊天记录导入
问题:更换了一台办公电脑,重新安装QQ后以前的聊天记录都没了,大部分是工作相关的。C:\Users\用户\Documents\Tencent Files\QQ号。2.使用新安装的QQ导入聊天数据。1.更换前保存了磁盘数据。
2023-05-22 16:59:22
2841
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅