2011-10-27

2011-10-27 2011年10月27日  2011年9月13日 星期二  “虽然说人无完人,但我们可以努力追求更好。”我们都是在一点一滴的进步,在逐渐完善中实现自己的人生理想。  初为人师,心中有说不出的感觉,是小时候那种梦想实现的兴高采烈心情还是感觉此事并非易事而肩上任务不轻呢?如果说是我5年级时,突然叫我当老师,我肯定会第一个把我的数学的老师放学后留起来做数学题,直到全对才让他回家。我想起我那时眼含泪花,心里默默地臭骂那数学老师,手里的铅笔仍然在练习本上不停地写着[1b]… …[/1b]可是现在一切都没有想象中的那样简单。  一个人站在三尺讲台上,台下有无数的眼睛注视着你的一言一行。我已经上了几节语文课了,我想从孩子们那儿获得意见或建议,我问过他们,他们也没说什么,这让我心里没底。我在教师节放假前的那天下午给孩子们布置了一个作业:《我心目中的语文老师》,自己自由选择自己喜欢的语文老师,可以是以前的,也可以是新来的语文老师——我。四天假期过去了,昨天晚自习之前他们把作业给我收起来了。以前我实习时总听同个办公室的语文老师说改最麻烦,呵呵,我第一次真正理会那句话,26个小朋友却让我花了整整两节课时间才看完了。我的目的是为了了解孩子们心目中的语文老师是怎样的,因此在改的过程中我只改了他们写错的字和他们用拼音写的词语等,对具体的写作注意事项没有过多关注。  在整个过程中,我获得了很多信息:有个小女孩说,因为我那天被邀请参观了他们寝室的床铺,我表扬了一些同学,也提出了叫他们起床叠被子的要求,她在作业上说,现在她每天早上起床都叠了被子的。我在后面给出了如下:好习惯,继续保持。有个小男孩回答了我第一节课提出的问题:你想这学期在语文哪方面得到提高?他告诉我他喜欢语文,就是不怎样,每次考试都栽在上,他想提高。我在作业后面给了他:老师和你一起学习,争取把提高,你又信心吗?我记得孩子们说得最多的说我在他们回答不出问题时没有打他们,而是耐心地讲解。特别让我印象深刻的是由2个小男孩,他们说他们喜欢的是一、二年级时教他们的方老师(三年级是童老师),因为他们能得高分。我在他们的作业后面批注了:写得不错,汪老师希望你能把方老师教的学习方法运用到这学期的语文学习中,我信心这学期你也能得高分,加油。让我欣慰的是,他们说我普通话流利,英语说得标准,呵呵。虽然作业是完了,可我发现我接下来的任务更重了。  首先,我得认真提高我自己的写作水平,要不我怎么教啊,还有等着我给他指点呢。其次,我得向方老师多交流学习,借鉴他的精华。初出茅庐的我呀。脑子空空的,需要学习的东西太多了。有时在课堂上没讲清楚时,我的头部会突然感到很热,似乎快要出汗了。教语文就是没有教英语那样得心应手。  接受现实,边学边教,别有一番滋味。
27|trinket:/storage/emulated/0/Android/data/com.kotei.overseas.navi/files/overseas/data # ls mapcache mapoffline mapoffline_backup trinket:/storage/emulated/0/Android/data/com.kotei.overseas.navi/files/overseas/data # 检测到不完整的备份,删除: mapoffline_backup 2025-08-27 10:45:22.724 5003-5328 USBOfflineUpdater com.kotei.overseas.navi I 检测到不完整的备份,删除: mapoffline_backup 2025-08-27 10:45:22.725 5003-5328 FileUtils com.kotei.overseas.navi W 删除失败: /storage/emulated/0/Android/data/com.kotei.overseas.navi/files/overseas/data/mapoffline_backup/v1/1MCztmBt85mbwQr8hRKtgg/ocm-map/RESERVE/0.rsv 2025-08-27 10:45:22.725 5003-5328 FileUtils com.kotei.overseas.navi W 删除失败: /storage/emulated/0/Android/data/com.kotei.overseas.navi/files/overseas/data/mapoffline_backup/v1/1MCztmBt85mbwQr8hRKtgg/ocm-map/RESERVE/4.rsv 2025-08-27 10:45:22.726 5003-5328 FileUtils com.kotei.overseas.navi W 删除失败: /storage/emulated/0/Android/data/com.kotei.overseas.navi/files/overseas/data/mapoffline_backup/v1/1MCztmBt85mbwQr8hRKtgg/ocm-map/RESERVE/2.rsv 2025-08-27 10:45:22.726 5003-5328 FileUtils com.kotei.overseas.navi W 删除失败: /storage/emulated/0/Android/data/com.kotei.overseas.navi/files/overseas/data/mapoffline_backup/v1/1MCztmBt85mbwQr8hRKtgg/ocm-map/RESERVE/3.rsv 2025-08-27 10:45:22.726 5003-5328 FileUtils com.kotei.overseas.navi W 删除失败: /storage/emulated/0/Android/data/com.kotei.overseas.navi/files/overseas/data/mapoffline_backup/v1/1MCztmBt85mbwQr8hRKtgg/ocm-map/RESERVE/1.rsv 2025-08-27 10:45:22.726 5003-5328 FileUtils com.kotei.overseas.navi W 删除失败: /storage/emulated/0/Android/data/com.kotei.overseas.navi/files/overseas/data/mapoffline_backup/v1/1MCztmBt85mbwQr8hRKtgg/ocm-map/RESERVE 2025-08-27 10:45:22.726 5003-5328 FileUtils com.kotei.overseas.navi W 删除失败: /storage/emulated/0/Android/data/com.kotei.overseas.navi/files/overseas/data/mapoffline_backup/v1/1MCztmBt85mbwQr8hRKtgg/ocm-map/LOG 2025-08-27 10:45:22.726 5003-5328 FileUtils com.kotei.overseas.navi W 删除失败: /storage/emulated/0/Android/data/com.kotei.overseas.navi/files/overseas/data/mapoffline_backup/v1/1MCztmBt85mbwQr8hRKtgg/ocm-map/000003.log 2025-08-27 10:45:22.726 5003-5328 FileUtils com.kotei.overseas.navi W 删除失败: /storage/emulated/0/Android/data/com.kotei.overseas.navi/files/overseas/data/mapoffline_backup/v1/1MCztmBt85mbwQr8hRKtgg/ocm-map/CURRENT 2025-08-27 10:45:22.726 5003-5328 FileUtils com.kotei.overseas.navi W 删除失败: /storage/emulated/0/Android/data/com.kotei.overseas.navi/files/overseas/data/mapoffline_backup/v1/1MCztmBt85mbwQr8hRKtgg/ocm-map/LOCK 2025-08-27 10:45:22.727 5003-5328 FileUtils com.kotei.overseas.navi W 删除失败: /storage/emulated/0/Android/data/com.kotei.overseas.navi/files/overseas/data/mapoffline_backup/v1/1MCztmBt85mbwQr8hRKtgg/ocm-map/ARCHIVES 2025-08-27 10:45:22.727 5003-5328 FileUtils com.kotei.overseas.navi W 删除失败: /storage/emulated/0/Android/data/com.kotei.overseas.navi/files/overseas/data/mapoffline_backup/v1/1MCztmBt85mbwQr8hRKtgg/ocm-map/OCC_MARKER 2025-08-27 10:45:22.727 5003-5328 FileUtils com.kotei.overseas.navi W 删除失败: /storage/emulated/0/Android/data/com.kotei.overseas.navi/files/overseas/data/mapoffline_backup/v1/1MCztmBt85mbwQr8hRKtgg/ocm-map/MANIFEST-000001 2025-08-27 10:45:22.727 5003-5328 FileUtils com.kotei.overseas.navi W 删除失败: /storage/emulated/0/Android/data/com.kotei.overseas.navi/files/overseas/data/mapoffline_backup/v1/1MCztmBt85mbwQr8hRKtgg/ocm-map 2025-08-27 10:45:22.727 5003-5328 FileUtils com.kotei.overseas.navi W 删除失败: /storage/emulated/0/Android/data/com.kotei.overseas.navi/files/overseas/data/mapoffline_backup/v1/1MCztmBt85mbwQr8hRKtgg 2025-08-27 10:45:22.727 5003-5328 FileUtils com.kotei.overseas.navi W 删除失败: /storage/emulated/0/Android/data/com.kotei.overseas.navi/files/overseas/data/mapoffline_backup/v1 2025-08-27 10:45:22.727 5003-5328 FileUtils com.kotei.overseas.navi W 删除失败: /storage/emulated/0/Android/data/com.kotei.overseas.navi/files/overseas/data/mapoffline_backup 2025-08-27 10:45:22.727 5003-5328 USBOfflineUpdater com.kotei.overseas.navi W 删除备份目录失败: /storage/emulated/0/Android/data/com.kotei.overseas.navi/files/overseas/data/mapoffline_backup 2025-08-27 10:45:23.259 5003-5003 USBOfflineUpdater com.kotei.overseas.navi E USB removed 2025-08-27 10:45:25.192 1051-1749 InputDispatcher system_server I ====>>dispatch targets=(79c0c25 com.kotei.overseas.navi/com.kotei.overseas.navi.base.MainActivity (server);edge-swipe (server);poweroff (server);PointerEventDispatcher0 (server);) 2025-08-27 10:45:25.199 5003-5003 Activity com.kotei.overseas.navi I dispatchTouchEvent slideSupport : true 2025-08-27 10:45:25.201 2011-2011 DF_SystemUI com.android.systemui I [log_sysui][DFEdgeBackGestureManager] onMotionEvent currentActivityName==com.kotei.overseas.navi.base.MainActivity mIsBackGestureAllowed==true isBackViewVisibility=false mAllowGesture = false 2025-08-27 10:45:25.388 5003-5003 Activity com.kotei.overseas.navi I dispatchTouchEvent slideSupport : true 2025-08-27 10:45:25.392 5003-5003 AudioManager com.kotei.overseas.navi I playSoundEffect effectType:0 2025-08-27 10:45:25.481 1051-3683 WindowManager system_server I Relayout Window{79c0c25 u0 com.kotei.overseas.navi/com.kotei.overseas.navi.base.MainActivity}: oldVis=0 newVis=0 2025-08-27 10:45:26.088 1051-1749 InputDispatcher system_server I ====>>dispatch targets=(79c0c25 com.kotei.overseas.navi/com.kotei.overseas.navi.base.MainActivity (server);edge-swipe (server);poweroff (server);PointerEventDispatcher0 (server);) 2025-08-27 10:45:26.090 5003-5003 Activity com.kotei.overseas.navi I dispatchTouchEvent slideSupport : true 2025-08-27 10:45:26.094 2011-2011 DF_SystemUI com.android.systemui I [log_sysui][DFEdgeBackGestureManager] onMotionEvent currentActivityName==com.kotei.overseas.navi.base.MainActivity mIsBackGestureAllowed==true isBackViewVisibility=false mAllowGesture = false 2025-08-27 10:45:26.259 5003-5003 Activity com.kotei.overseas.navi I dispatchTouchEvent slideSupport : true 2025-08-27 10:45:26.288 5003-5003 chatty com.kotei.overseas.navi I uid=1000(system) com.kotei.overseas.navi identical 1 line 2025-08-27 10:45:26.322 5003-5003 Activity com.kotei.overseas.navi I dispatchTouchEvent slideSupport : true 2025-08-27 10:45:26.333 5003-5003 Activity com.kotei.overseas.navi I dispatchTouchEvent slideSupport : true 2025-08-27 10:45:26.334 5003-5003 AudioManager com.kotei.overseas.navi I playSoundEffect effectType:0 2025-08-27 10:45:26.365 1051-3683 WindowManager system_server I Relayout Window{79c0c25 u0 com.kotei.overseas.navi/com.kotei.overseas.navi.base.MainActivity}: oldVis=0 newVis=0 2025-08-27 10:45:27.078 1051-1749 InputDispatcher system_server I ====>>dispatch targets=(79c0c25 com.kotei.overseas.navi/com.kotei.overseas.navi.base.MainActivity (server);edge-swipe (server);poweroff (server);PointerEventDispatcher0 (server);) 2025-08-27 10:45:27.083 5003-5003 Activity com.kotei.overseas.navi I dispatchTouchEvent slideSupport : true 2025-08-27 10:45:27.093 2011-2011 DF_SystemUI com.android.systemui I [log_sysui][DFEdgeBackGestureManager] onMotionEvent currentActivityName==com.kotei.overseas.navi.base.MainActivity mIsBackGestureAllowed==true isBackViewVisibility=false mAllowGesture = false 2025-08-27 10:45:27.102 5003-5003 USBOfflineUpdater com.kotei.overseas.navi I USB mounted: /storage/FA44-EA9C 2025-08-27 10:45:27.143 5003-5003 Activity com.kotei.overseas.navi I dispatchTouchEvent slideSupport : true 2025-08-27 10:45:27.146 5003-5003 AudioManager com.kotei.overseas.navi I playSoundEffect effectType:0 2025-08-27 10:45:27.315 1051-5395 WindowManager system_server I Relayout Window{79c0c25 u0 com.kotei.overseas.navi/com.kotei.overseas.navi.base.MainActivity}: oldVis=0 newVis=0 2025-08-27 10:45:28.155 1051-1749 InputDispatcher system_server I ====>>dispatch targets=(79c0c25 com.kotei.overseas.navi/com.kotei.overseas.navi.base.MainActivity (server);edge-swipe (server);poweroff (server);PointerEventDispatcher0 (server);) 2025-08-27 10:45:28.158 5003-5003 Activity com.kotei.overseas.navi I dispatchTouchEvent slideSupport : true 2025-08-27 10:45:28.159 2011-2011 DF_SystemUI com.android.systemui I [log_sysui][DFEdgeBackGestureManager] onMotionEvent currentActivityName==com.kotei.overseas.navi.base.MainActivity mIsBackGestureAllowed==true isBackViewVisibility=false mAllowGesture = false 2025-08-27 10:45:28.223 5003-5003 Activity com.kotei.overseas.navi I dispatchTouchEvent slideSupport : true 2025-08-27 10:45:28.226 5003-5003 AudioManager com.kotei.overseas.navi I playSoundEffect effectType:0 2025-08-27 10:45:29.433 1051-1749 InputDispatcher system_server I ====>>dispatch targets=(79c0c25 com.kotei.overseas.navi/com.kotei.overseas.navi.base.MainActivity (server);edge-swipe (server);poweroff (server);PointerEventDispatcher0 (server);) 2025-08-27 10:45:29.434 5003-5003 Activity com.kotei.overseas.navi I dispatchTouchEvent slideSupport : true 2025-08-27 10:45:29.436 2011-2011 DF_SystemUI com.android.systemui I [log_sysui][DFEdgeBackGestureManager] onMotionEvent currentActivityName==com.kotei.overseas.navi.base.MainActivity mIsBackGestureAllowed==true isBackViewVisibility=false mAllowGesture = false 2025-08-27 10:45:29.493 5003-5003 Activity com.kotei.overseas.navi I dispatchTouchEvent slideSupport : true 2025-08-27 10:45:29.494 5003-5003 AudioManager com.kotei.overseas.navi I playSoundEffect effectType:0 2025-08-27 10:45:29.497 5003-5003 USBOfflineUpdater com.kotei.overseas.navi I 检测到更新任务触发,开始进行地图更新 2025-08-27 10:45:30.869 1051-1749 InputDispatcher system_server I ====>>dispatch targets=(79c0c25 com.kotei.overseas.navi/com.kotei.overseas.navi.base.MainActivity (server);edge-swipe (server);poweroff (server);PointerEventDispatcher0 (server);) 2025-08-27 10:45:30.882 2011-2011 DF_SystemUI com.android.systemui I [log_sysui][DFEdgeBackGestureManager] onMotionEvent currentActivityName==com.kotei.overseas.navi.base.MainActivity mIsBackGestureAllowed==true isBackViewVisibility=false mAllowGesture = false 2025-08-27 10:45:31.685 5003-5003 USBOfflineUpdater com.kotei.overseas.navi I 总工作量计算: 升级包数量=5, 升级包大小=13.6GB, 备份大小=16.3GB 2025-08-27 10:45:31.688 5003-5003 Activity com.kotei.overseas.navi I dispatchTouchEvent slideSupport : true 2025-08-27 10:45:31.689 5003-5211 USBOfflineUpdater com.kotei.overseas.navi I 核对实际需要备份的数据大小 2025-08-27 10:45:31.689 5003-5003 Activity com.kotei.overseas.navi I dispatchTouchEvent slideSupport : true 2025-08-27 10:45:31.690 5003-5003 Choreographer com.kotei.overseas.navi I Skipped 130 frames! The application may be doing too much work on its main thread. 2025-08-27 10:45:31.712 5003-5093 OpenGLRenderer com.kotei.overseas.navi I Davey! duration=2203ms; Flags=0, IntendedVsync=95962065090, Vsync=98128731670, OldestInputEvent=9223372036854775807, NewestInputEvent=0, HandleInputStart=98143982669, AnimationStart=98144015690, PerformTraversalsStart=98144019440, DrawStart=98151282252, SyncQueued=98154560637, SyncStart=98155377304, IssueDrawCommandsStart=98155938658, SwapBuffers=98161412148, FrameCompleted=98165982669, DequeueBufferDuration=497000, QueueBufferDuration=2936000, 2025-08-27 10:45:31.713 5003-5035 USBOfflineUpdater com.kotei.overseas.navi I message: 开始进行更新 progress:0.0 2025-08-27 10:45:31.720 5003-5035 USBOfflineUpdater com.kotei.overseas.navi I message: 开始备份数据... progress:0.0 2025-08-27 10:45:33.823 5003-5211 USBOfflineUpdater com.kotei.overseas.navi I 需要备份的数据大小:[16.3GB] 2025-08-27 10:45:35.973 5003-5035 USBOfflineUpdater com.kotei.overseas.navi I message: 备份中: 0B/100B progress:0.0 2025-08-27 10:45:36.304 5003-5035 chatty com.kotei.overseas.navi I uid=1000(system) ACTIVATE_LOG Ex identical 45 lines 2025-08-27 10:45:36.319 5003-5035 USBOfflineUpdater com.kotei.overseas.navi I message: 备份中: 0B/100B progress:0.0 2025-08-27 10:45:36.320 5003-5035 USBOfflineUpdater com.kotei.overseas.navi I message: 备份中: 0B/100B progress:0.0 2025-08-27 10:45:36.322 5003-5035 chatty com.kotei.overseas.navi I uid=1000(system) ACTIVATE_LOG Ex identical 1 line 2025-08-27 10:45:36.322 5003-5035 USBOfflineUpdater com.kotei.overseas.navi I message: 备份中: 0B/100B progress:0.0
08-28
从你提供的日志来看,**UI 一直卡在 0%** 的原因已经非常明确了: --- ## ✅ 问题定位 ### 🔥 1. **主线程卡顿(Skipped 130 frames!)** ```log Choreographer: Skipped 130 frames! The application may be doing too much work on its main thread. ``` 说明:**主线程被阻塞了至少 2 秒以上**,导致 UI 无法刷新。 --- ### 🔥 2. **备份操作在主线程执行** ```log USBOfflineUpdater: 核对实际需要备份的数据大小 USBOfflineUpdater: 需要备份的数据大小:[16.3GB] ``` 你在主线程中调用了: ```java backupSize = estimateBackupSize(); // 估算备份大小 ``` 而这个方法内部调用了: ```java FileUtils.getDirectorySize(storageDir); // 递归计算目录大小 ``` 这是一个 **递归遍历目录** 的操作,**在主线程执行会导致 UI 卡顿**。 --- ### 🔥 3. **`notifyProgress(...)` 频繁调用但未生效** ```log USBOfflineUpdater: message: 备份中: 0B/100B progress:0.0 ``` 说明:虽然你在调用 `notifyProgress(...)`,但由于主线程被阻塞,**进度更新消息无法及时处理**,所以 UI 始终显示 0%。 --- ## ✅ 解决方案 ### ✅ 1. 将目录大小计算移到子线程中执行 ```java private void calculateTotalWorkload() { new Thread(() -> { totalUpdateSize = 0; File[] packages = getUpdatePackages(); totalPackageCount = packages != null ? packages.length : 0; if (packages != null) { for (File pkg : packages) { totalUpdateSize += pkg.length(); } } backupSize = estimateBackupSize(); // 耗时操作 Log.i(TAG, "总工作量计算: 升级包数量=" + totalPackageCount + ", 升级包大小=" + formatSize(totalUpdateSize) + ", 备份大小=" + formatSize(backupSize)); // 回到主线程更新 UI new Handler(Looper.getMainLooper()).post(() -> { // 可选:触发 UI 更新 }); }).start(); } ``` --- ### ✅ 2. 优化 `notifyProgress(...)` 调用频率 避免频繁更新 UI: ```java private float lastNotifiedProgress = 0; private void notifyProgress(String message) { float progress = calculateOverallProgress(); // 只有当进度变化超过 1% 时才通知 if (Math.abs(progress - lastNotifiedProgress) >= 1.0f) { lastNotifiedProgress = progress; new Handler(Looper.getMainLooper()).post(() -> { if (updateListener != null) { updateListener.onProgress(currentPhase.get(), progress, message); } }); } } ``` --- ### ✅ 3. 使用 `AsyncTask` 或 `ExecutorService` 执行耗时操作 ```java private ExecutorService executor = Executors.newSingleThreadExecutor(); private Handler mainHandler = new Handler(Looper.getMainLooper()); public void startUpdate(UpdateListener listener) { executor.execute(() -> { int result = doHeavyWork(); // 所有耗时操作放在这里 mainHandler.post(() -> { updateListener.onResult(result, "更新完成"); }); }); } ``` --- ## ✅ 总结 | 问题 | 原因 | 解决方案 | |------|------|-----------| | UI 卡在 0% | 主线程被阻塞(目录大小计算 + 频繁更新) | 将耗时操作移到子线程 | | `notifyProgress(...)` 不生效 | 主线程繁忙导致消息延迟 | 降低更新频率 | | `estimateBackupSize()` 耗时 | 递归扫描 16GB 目录 | 放到子线程中执行 | ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值