1889. Max’s game

TAG 种子染色 flood fill 队列 数据结构

使用类似种子染色的方法,从起点开始染色,使用队列保证花费小的先染到。

//1.07 sec 1476 KB 2839 Bytes #include <stdio.h> #include <queue> #include <memory.h> using namespace std; const int DY[]={0, 1, 0, -1}; const int DX[]={-1, 0, 1, 0}; struct point { int x,y; bool operator==(const point &p) const { return x==p.x && y==p.y; } }; point start,end; int row, col; char map[500][501]; int order[500][500]; bool inRange(point p) { if ( p.x>=0 && p.x<row && p.y>=0 && p.y<col) { return true; } return false; } void fill(point pt) { queue<point> qu1; qu1.push(pt); while ( !qu1.empty() ) //设此时qu1中的元素为A { point tmp1=qu1.front(); queue<point> qu2(qu1); while ( !qu2.empty() )//对A中相邻颜色相同的染色 { point tmp2=qu2.front(); qu2.pop(); for (int i=0; i<4; ++i) { point tmp; tmp.x=tmp2.x+DX[i]; tmp.y=tmp2.y+DY[i]; if ( inRange(tmp) && map[ tmp.x ][ tmp.y]==map[ tmp2.x ][ tmp2.y] && order[ tmp.x ][tmp.y ]==0 ) { order[ tmp.x ][tmp.y ]=order[ tmp2.x ][tmp2.y ]; if ( tmp==end ) { return; //have found the ans. } qu1.push(tmp); qu2.push(tmp); } } } while ( !qu1.empty() )//与A相邻但颜色不同的入列,并去掉A { point tar=qu1.front(); if ( order[tmp1.x][tmp1.y] != order[tar.x][tar.y] ) { break; } qu1.pop(); for (int i=0; i<4; ++i) { point tmp; tmp.x=tar.x+DX[i]; tmp.y=tar.y+DY[i]; if ( inRange(tmp) && map[ tmp.x ][ tmp.y]!=map[ tar.x ][ tar.y] && order[ tmp.x ][tmp.y ]==0 ) { order[ tmp.x ][tmp.y ]=order[ tar.x ][tar.y ]+1; if ( tmp==end ) { return; //have found the ans.能有效减少时间 } qu1.push( tmp ); } } } } } int main(int argc, char *argv[]) { while ( scanf("%d%d", &row, &col)!=EOF ) { for (int i=0; i<row; ++i) { scanf("%s", map[i]); } scanf("%d%d%d%d", &start.x, &start.y, &end.x, &end.y); memset( order, 0, sizeof(order) ); order[start.x][start.y]=1; fill(start); /* for (int i=0; i<row; ++i) { for (int j=0; j<col; ++j) printf("%d ", order[i][j]); printf("/n"); } */ printf("%d/n", order[end.x][end.y]-1 ); } return 0; }

HwOcrImeController: updateMultiWindow focus window = com.fengyun.game.qp/org.cocos2dx.lua.AppActivity mIsInMultiScreen = false 行 31920: 11-16 10:16:30.875 1360 1407 I AGPService: FrameRateManager:[HandleFrameRateRefresh] currPkgName: com.fengyun.game.qp, strategyCode 1242: dynamicCode 1, isFactor 0, min 30, max 90, down 90, idle 60 行 32137: 11-16 10:16:31.943 1056 1317 I aptouch_daemon: Excute:86: cmd=TSA_ExecuteCommand, param=THP_UpdateViewsLocation com.fengyun.game.qp#SCENE_WINDOW_FOCUS_CHANGE 行 32138: 11-16 10:16:31.943 1056 1317 I tpd_client: TSA_ExecuteCommand, THP_UpdateViewsLocation com.fengyun.game.qp#SCENE_WINDOW_FOCUS_CHANGE 行 32264: 11-16 10:16:32.852 1056 1317 I aptouch_daemon: Excute:86: cmd=TSA_ExecuteCommand, param=THP_UpdateViewsLocation com.fengyun.game.qp#SCENE_GESTURE_SINGLE_TAP 行 32265: 11-16 10:16:32.852 1056 1317 I tpd_client: TSA_ExecuteCommand, THP_UpdateViewsLocation com.fengyun.game.qp#SCENE_GESTURE_SINGLE_TAP 行 32472: 11-16 10:16:34.457 1858 2762 I ContentProviderHelper: Successfully start provider ContentProviderRecord{46a5a9 u0 com.fengyun.game.qp/com.tencent.android.tpush.SettingsContentProvider} launchingApp=null caller pid= 26315 行 32509: 11-16 10:16:35.022 1056 1317 I aptouch_daemon: Excute:86: cmd=TSA_ExecuteCommand, param=THP_UpdateViewsLocation com.fengyun.game.qp#SCENE_GESTURE_SINGLE_TAP 行 32510: 11-16 10:16:35.022 1056 1317 I tpd_client: TSA_ExecuteCommand, THP_UpdateViewsLocation com.fengyun.game.qp#SCENE_GESTURE_SINGLE_TAP 行 32734: 11-16 10:16:37.709 1858 2090 W 00202/hw_netstat: total/145096/15391,com.fengyun.game.qp/145096/15280,com.huawei.hwid/0/111 行 32753: 11-16 10:16:38.028 1056 1317 I aptouch_daemon: Excute:86: cmd=TSA_ExecuteCommand, param=THP_UpdateViewsLocation com.fengyun.game.qp#SCENE_GESTURE_SINGLE_TAP 行 32754: 11-16 10:16:38.028 1056 1317 I tpd_client: TSA_ExecuteCommand, THP_UpdateViewsLocation com.fengyun.game.qp#SCENE_GESTURE_SINGLE_TAP 行 33189: 11-16 10:16:43.510 1056 1317 I aptouch_daemon: Excute:86: cmd=TSA_ExecuteCommand, param=THP_UpdateViewsLocation com.fengyun.game.qp#SCENE_GESTURE_SINGLE_TAP 行 33190: 11-16 10:16:43.510 1056 1317 I tpd_client: TSA_ExecuteCommand, THP_UpdateViewsLocation com.fengyun.game.qp#SCENE_GESTURE_SINGLE_TAP 行 33237: 11-16 10:16:43.743 2390 2390 W InputTransport: channel 45a9e2b com.fengyun.game.qp/org.cocos2dx.lua.AppActivity (client) detect abnormal consume, count is 0 行 33268: 11-16 10:16:44.183 1858 2033 W AlarmManager: WAKEUP alarm trigger action = LOCATION package name is: com.fengyun.game.qp tag: *walarm*:LOCATION window:45000 originWhen:88414098 when:88417098 maxWhen:88462098 行 33269: 11-16 10:16:44.184 1858 2033 I ActivityManager: sendIntentSender target:PendingIntentRecord{d0118ca com.fengyun.game.qp broadcastIntent}, intent:flg=0x4 hwFlg=0x810 行 33270: 11-16 10:16:44.185 1858 2033 I ActivityManager: SendInner finish:PendingIntentRecord{d0118ca com.fengyun.game.qp broadcastIntent} finalIntent:Intent { act=LOCATION hwFlg=0x100 } type:1 callinguid:1000 reslut:0 行 33273: 11-16 10:16:44.196 1858 2762 I BroadcastQueue: Finished with ordered [background] broadcast BroadcastRecord{ff43db9 u0 LOCATION} cost time 12,receiversNum 1,max receiver BroadcastFilter{a5f240e 10231/u0 ReceiverList{c37ba09 2390 com.fengyun.game.qp/10231/u0 remote:4bb4f10}} cost time 5 行 33276: 11-16 10:16:44.201 1858 1905 I 00400/HwGnssLogServices: handlerStatistics:com.fengyun.game.qp, 1 行 33278: 11-16 10:16:44.201 1858 2778 I 00400/HwGpsPowerTracker: recordRequest AppName: com.fengyun.game.qp quality: 100 行 33280: 11-16 10:16:44.202 1858 2778 I 00400/HwQuickTTFFMonitor-V2018.8.27: com.fengyun.game.qp is WhiteApp 行 33281: 11-16 10:16:44.201 1858 2778 I LocationManagerService: request 4D1A8BE0 gps Request[@+900ms HIGH_ACCURACY, WorkSource{10231 com.fengyun.game.qp}] from com.fengyun.game.qp(10231 foreground) 行 33281: 11-16 10:16:44.201 1858 2778 I LocationManagerService: request 4D1A8BE0 gps Request[@+900ms HIGH_ACCURACY, WorkSource{10231 com.fengyun.game.qp}] from com.fengyun.game.qp(10231 foreground) 行 33283: 11-16 10:16:44.202 1858 2778 I 00400/HwQuickTTFFMonitor-V2018.8.27: requestHwQuickTTFF:com.fengyun.game.qp 行 33285: 11-16 10:16:44.202 1858 2778 I LocationManagerService: startOpNoThrow, ops = 41, uid = 10231, packageName = com.fengyun.game.qp 行 33286: 11-16 10:16:44.203 1858 2778 I LocationManagerService: starting location attribution for 10231/com.fengyun.game.qp/4D1A8BE0 行 33287: 11-16 10:16:44.203 1858 2778 I LocationManagerService: startOpNoThrow, ops = 42, uid = 10231, packageName = com.fengyun.game.qp 行 33288: 11-16 10:16:44.205 1858 2778 I 00400/HwLocationManagerService: cache locationRequestInfo=LocationRequestInfo[gps, gps, Request[@+900ms HIGH_ACCURACY, WorkSource{10231 com.fengyun.game.qp}], 10231/com.fengyun.game.qp/4D1A8BE0, 2, android.os.BinderProxy@f5ca7ac] 行 33288: 11-16 10:16:44.205 1858 2778 I 00400/HwLocationManagerService: cache locationRequestInfo=LocationRequestInfo[gps, gps, Request[@+900ms HIGH_ACCURACY, WorkSource{10231 com.fengyun.game.qp}], 10231/com.fengyun.game.qp/4D1A8BE0, 2, android.os.BinderProxy@f5ca7ac] 行 33297: 11-16 10:16:44.204 1858 2116 I GnssLocationProvider: setRequest ProviderRequest[@+900ms, HIGH_ACCURACY, WorkSource{10231 com.fengyun.game.qp}] isGpsEnabled true 行 33307: 11-16 10:16:44.207 1858 27350 I [SECURITY]: [HPS][DEFAULT][PermissionUsingMonitor]: onStartUse, appInfo = 10231com.fengyun.game.qp, permGroupName = android.permission-group.LOCATION 行 33331: 11-16 10:16:44.207 1858 27351 I [SECURITY]: [HPS][DEFAULT][AppNode]: 10231com.fengyun.game.qp addPermission android.permission-group.LOCATION 行 33854: 11-16 10:16:44.559 1056 1317 I aptouch_daemon: Excute:86: cmd=TSA_ExecuteCommand, param=THP_UpdateViewsLocation com.fengyun.game.qp#SCENE_GESTURE_SINGLE_TAP 行 33855: 11-16 10:16:44.559 1056 1317 I tpd_client: TSA_ExecuteCommand, THP_UpdateViewsLocation com.fengyun.game.qp#SCENE_GESTURE_SINGLE_TAP 行 33871: 11-16 10:16:44.718 1858 2762 I ActivityManager: startService: Intent { act=com.tencent.android.tpush.action.start_slave cmp=com.fengyun.game.qp/com.tencent.android.tpush.service.XGPushServiceV3 } callingPid: 2390 callingPackage:com.fengyun.game.qp 行 33871: 11-16 10:16:44.718 1858 2762 I ActivityManager: startService: Intent { act=com.tencent.android.tpush.action.start_slave cmp=com.fengyun.game.qp/com.tencent.android.tpush.service.XGPushServiceV3 } callingPid: 2390 callingPackage:com.fengyun.game.qp 行 33950: 11-16 10:16:44.808 1858 2116 I 00400/LocationManagerService: packageName com.fengyun.game.qp pemission check result 2 行 33951: 11-16 10:16:44.808 1858 2116 I LocationManagerService: handle report location accurate, 10231/com.fengyun.game.qp/4D1A8BE0 行 33952: 11-16 10:16:44.809 1858 2116 I 00400/HwQuickTTFFMonitor-V2018.8.27: isReportQuickTTFFLocation:true, pkgname=com.fengyun.game.qp 行 33953: 11-16 10:16:44.810 1858 2116 I LocationManagerService: key of receiver: 10231/com.fengyun.game.qp/4D1A8BE0 provider: gps permissionLevel:2 行 34004: 11-16 10:16:44.833 1858 2762 I LocationManagerService: finishOp, ops = 42, uid = 10231, packageName = com.fengyun.game.qp 行 34005: 11-16 10:16:44.833 1858 2762 I LocationManagerService: finishOp, ops = 41, uid = 10231, packageName = com.fengyun.game.qp 行 34006: 11-16 10:16:44.833 1858 2762 I LocationManagerService: stopping location attribution for 10231/com.fengyun.game.qp/4D1A8BE0 行 34008: 11-16 10:16:44.834 1858 27350 I [SECURITY]: [HPS][DEFAULT][PermissionUsingMonitor]: onFinishUse, appInfo = 10231com.fengyun.game.qp, permGroupName = android.permission-group.LOCATION 行 34010: 11-16 10:16:44.834 1858 27351 I [SECURITY]: [HPS][DEFAULT][AppNode]: com.fengyun.game.qp stop android.permission-group.LOCATION time is too short, so a delay is needed 行 34011: 11-16 10:16:44.834 1858 2762 I LocationManagerService: remove 4D1A8BE0 gps Request[@+900ms HIGH_ACCURACY, WorkSource{10231 com.fengyun.game.qp}] 行 34014: 11-16 10:16:44.834 1858 2762 I 00400/HwQuickTTFFMonitor-V2018.8.27: removeHwQuickTTFF:com.fengyun.game.qp 行 34020: 11-16 10:16:44.835 1858 1905 I 00400/HwGnssLogServices: handlerStatistics:com.fengyun.game.qp, 0 行 34021: 11-16 10:16:44.835 1858 2762 I 00400/HwGpsPowerTracker: removeRequest: com.fengyun.game.qp 行 34033: 11-16 10:16:44.836 1858 2762 I 00400/HwLocationManagerService: delete locationRequestInfo=LocationRequestInfo[gps, gps, Request[@+900ms HIGH_ACCURACY, WorkSource{10231 com.fengyun.game.qp}], 10231/com.fengyun.game.qp/4D1A8BE0, 2, android.os.BinderProxy@f5ca7ac] 行 34033: 11-16 10:16:44.836 1858 2762 I 00400/HwLocationManagerService: delete locationRequestInfo=LocationRequestInfo[gps, gps, Request[@+900ms HIGH_ACCURACY, WorkSource{10231 com.fengyun.game.qp}], 10231/com.fengyun.game.qp/4D1A8BE0, 2, android.os.BinderProxy@f5ca7ac] 行 34164: 11-16 10:16:44.848 1858 27350 I [SECURITY]: [HPS][DEFAULT][PermissionUsingMonitor]: onStartUse, appInfo = 10231com.fengyun.game.qp, permGroupName = android.permission-group.LOCATION 行 34165: 11-16 10:16:44.848 1858 27350 I [SECURITY]: [HPS][DEFAULT][PermissionUsingMonitor]: onFinishUse, appInfo = 10231com.fengyun.game.qp, permGroupName = android.permission-group.LOCATION 行 34166: 11-16 10:16:44.849 1858 27351 I [SECURITY]: [HPS][DEFAULT][AppNode]: 10231com.fengyun.game.qp addPermission android.permission-group.LOCATION 行 34168: 11-16 10:16:44.849 1858 27351 I [SECURITY]: [HPS][DEFAULT][AppNode]: com.fengyun.game.qp stop android.permission-group.LOCATION time is too short, so a delay is needed 行 34209: 11-16 10:16:44.878 1858 27350 I [SECURITY]: [HPS][DEFAULT][PermissionUsingMonitor]: onStartUse, appInfo = 10231com.fengyun.game.qp, permGroupName = android.permission-group.LOCATION 行 34210: 11-16 10:16:44.878 1858 27350 I [SECURITY]: [HPS][DEFAULT][PermissionUsingMonitor]: onFinishUse, appInfo = 10231com.fengyun.game.qp, permGroupName = android.permission-group.LOCATION 行 34211: 11-16 10:16:44.878 1858 27351 I [SECURITY]: [HPS][DEFAULT][AppNode]: 10231com.fengyun.game.qp addPermission android.permission-group.LOCATION 行 34212: 11-16 10:16:44.878 1858 27351 I [SECURITY]: [HPS][DEFAULT][AppNode]: com.fengyun.game.qp stop android.permission-group.LOCATION time is too short, so a delay is needed 行 34213: 11-16 10:16:44.879 1858 2089 I 00202/HwWifiService: getFilterScanResults, uid = 10231, calling by com.fengyun.game.qp, isNeedApproximateLocation =false 行 34215: 11-16 10:16:44.887 1858 27350 I [SECURITY]: [HPS][DEFAULT][PermissionUsingMonitor]: onStartUse, appInfo = 10231com.fengyun.game.qp, permGroupName = android.permission-group.LOCATION 行 34216: 11-16 10:16:44.887 1858 27350 I [SECURITY]: [HPS][DEFAULT][PermissionUsingMonitor]: onFinishUse, appInfo = 10231com.fengyun.game.qp, permGroupName = android.permission-group.LOCATION 行 34217: 11-16 10:16:44.887 1858 27351 I [SECURITY]: [HPS][DEFAULT][AppNode]: 10231com.fengyun.game.qp addPermission android.permission-group.LOCATION 行 34218: 11-16 10:16:44.887 1858 27351 I [SECURITY]: [HPS][DEFAULT][AppNode]: com.fengyun.game.qp stop android.permission-group.LOCATION time is too short, so a delay is needed 行 34222: 11-16 10:16:44.892 1858 27350 I [SECURITY]: [HPS][DEFAULT][PermissionUsingMonitor]: onStartUse, appInfo = 10231com.fengyun.game.qp, permGroupName = android.permission-group.LOCATION 行 34223: 11-16 10:16:44.892 1858 27351 I [SECURITY]: [HPS][DEFAULT][AppNode]: 10231com.fengyun.game.qp addPermission android.permission-group.LOCATION 行 34224: 11-16 10:16:44.894 1858 27350 I [SECURITY]: [HPS][DEFAULT][PermissionUsingMonitor]: onFinishUse, appInfo = 10231com.fengyun.game.qp, permGroupName = android.permission-group.LOCATION 行 34225: 11-16 10:16:44.894 1858 27351 I [SECURITY]: [HPS][DEFAULT][AppNode]: com.fengyun.game.qp stop android.permission-group.LOCATION time is too short, so a delay is needed 行 34230: 11-16 10:16:44.919 1858 27350 I [SECURITY]: [HPS][DEFAULT][PermissionUsingMonitor]: onStartUse, appInfo = 10231com.fengyun.game.qp, permGroupName = android.permission-group.LOCATION 行 34231: 11-16 10:16:44.919 1858 27350 I [SECURITY]: [HPS][DEFAULT][PermissionUsingMonitor]: onFinishUse, appInfo = 10231com.fengyun.game.qp, permGroupName = android.permission-group.LOCATION 行 34233: 11-16 10:16:44.919 1858 27351 I [SECURITY]: [HPS][DEFAULT][AppNode]: 10231com.fengyun.game.qp addPermission android.permission-group.LOCATION 行 34234: 11-16 10:16:44.919 1858 27351 I [SECURITY]: [HPS][DEFAULT][AppNode]: com.fengyun.game.qp stop android.permission-group.LOCATION time is too short, so a delay is needed 行 34237: 11-16 10:16:44.953 1858 27350 I [SECURITY]: [HPS][DEFAULT][PermissionUsingMonitor]: onStartUse, appInfo = 10231com.fengyun.game.qp, permGroupName = android.permission-group.LOCATION 行 34238: 11-16 10:16:44.954 1858 27350 I [SECURITY]: [HPS][DEFAULT][PermissionUsingMonitor]: onFinishUse, appInfo = 10231com.fengyun.game.qp, permGroupName = android.permission-group.LOCATION 行 34239: 11-16 10:16:44.954 1858 27351 I [SECURITY]: [HPS][DEFAULT][AppNode]: 10231com.fengyun.game.qp addPermission android.permission-group.LOCATION 行 34240: 11-16 10:16:44.954 1858 27351 I [SECURITY]: [HPS][DEFAULT][AppNode]: com.fengyun.game.qp stop android.permission-group.LOCATION time is too short, so a delay is needed 行 34245: 11-16 10:16:44.962 1858 27350 I [SECURITY]: [HPS][DEFAULT][PermissionUsingMonitor]: onStartUse, appInfo = 10231com.fengyun.game.qp, permGroupName = android.permission-group.LOCATION 行 34246: 11-16 10:16:44.962 1858 27350 I [SECURITY]: [HPS][DEFAULT][PermissionUsingMonitor]: onFinishUse, appInfo = 10231com.fengyun.game.qp, permGroupName = android.permission-group.LOCATION 行 34247: 11-16 10:16:44.962 1858 27351 I [SECURITY]: [HPS][DEFAULT][AppNode]: 10231com.fengyun.game.qp addPermission android.permission-group.LOCATION 行 34248: 11-16 10:16:44.963 1858 27351 I [SECURITY]: [HPS][DEFAULT][AppNode]: com.fengyun.game.qp stop android.permission-group.LOCATION time is too short, so a delay is needed 行 34252: 11-16 10:16:44.967 1858 27350 I [SECURITY]: [HPS][DEFAULT][PermissionUsingMonitor]: onStartUse, appInfo = 10231com.fengyun.game.qp, permGroupName = android.permission-group.LOCATION 行 34253: 11-16 10:16:44.968 1858 27351 I [SECURITY]: [HPS][DEFAULT][AppNode]: 10231com.fengyun.game.qp addPermission android.permission-group.LOCATION 行 34254: 11-16 10:16:44.969 1858 27350 I [SECURITY]: [HPS][DEFAULT][PermissionUsingMonitor]: onFinishUse, appInfo = 10231com.fengyun.game.qp, permGroupName = android.permission-group.LOCATION 行 34255: 11-16 10:16:44.969 1858 27351 I [SECURITY]: [HPS][DEFAULT][AppNode]: com.fengyun.game.qp stop android.permission-group.LOCATION time is too short, so a delay is needed 行 34298: 11-16 10:16:45.138 2390 26295 W ContentResolver: provider != null. Start to getTypeAsync:content://com.fengyun.game.qp.AUTH_XGPUSH/token 行 34299: 11-16 10:16:45.139 2390 26295 I XINGE : [TPush] getType uri:content://com.fengyun.game.qp.AUTH_XGPUSH/token,match:50 行 34302: 11-16 10:16:45.143 2390 26295 I XINGE : [TPush] get token from pkg:com.fengyun.game.qp, token: D:\吴潼\临时3\宋洁\hilogs\hiapplogcat-log.I001.20251116-101418\hiapplogcat-log.I002.20251116-101645 (219 命中) 行 4: 11-16 10:16:45.785 2390 26295 W ContentResolver: provider != null. Start to getTypeAsync:content://com.fengyun.game.qp.AUTH_XGPUSH/token 行 5: 11-16 10:16:45.785 2390 26295 I XINGE : [TPush] getType uri:content://com.fengyun.game.qp.AUTH_XGPUSH/token,match:50 行 8: 11-16 10:16:45.789 2390 26295 I XINGE : [TPush] get token from pkg:com.fengyun.game.qp, token: 行 10: 11-16 10:16:45.796 1858 27350 I [SECURITY]: [HPS][DEFAULT][PermissionUsingMonitor]: onStartUse, appInfo = 10231com.fengyun.game.qp, permGroupName = android.permission-group.LOCATION 行 12: 11-16 10:16:45.796 1858 27350 I [SECURITY]: [HPS][DEFAULT][PermissionUsingMonitor]: onFinishUse, appInfo = 10231com.fengyun.game.qp, permGroupName = android.permission-group.LOCATION 行 13: 11-16 10:16:45.796 1858 27351 I [SECURITY]: [HPS][DEFAULT][AppNode]: 10231com.fengyun.game.qp addPermission android.permission-group.LOCATION 行 14: 11-16 10:16:45.796 1858 27351 I [SECURITY]: [HPS][DEFAULT][AppNode]: com.fengyun.game.qp stop android.permission-group.LOCATION time is too short, so a delay is needed 行 111: 11-16 10:16:46.007 26315 26446 W ContentResolver: provider == null. Start to getProviderMimeTypeAsync:content://com.fengyun.game.qp.AUTH_XGPUSH/token 行 112: 11-16 10:16:46.009 1858 2778 I ContentProviderHelper: Successfully start provider ContentProviderRecord{481ec8b u0 com.fengyun.game.qp/com.tencent.android.tpush.XGPushProvider} launchingApp=null caller pid= 1858 行 113: 11-16 10:16:46.012 2627 3531 I PG_ash : pkg null calling: com.fengyun.game.qp, pid: 0 ,type: acquire_provider 行 114: 11-16 10:16:46.015 2390 25801 I XINGE : [TPush] getType uri:content://com.fengyun.game.qp.AUTH_XGPUSH/token,match:50 行 117: 11-16 10:16:46.020 26315 26446 I XINGE : [TPush] get token from pkg:com.fengyun.game.qp, token: 行 294: 11-16 10:16:46.486 26315 26446 W ContentResolver: provider == null. Start to getProviderMimeTypeAsync:content://com.fengyun.game.qp.AUTH_XGPUSH/token 行 295: 11-16 10:16:46.493 1858 7660 I ContentProviderHelper: Successfully start provider ContentProviderRecord{481ec8b u0 com.fengyun.game.qp/com.tencent.android.tpush.XGPushProvider} launchingApp=null caller pid= 1858 行 296: 11-16 10:16:46.495 2390 25801 I XINGE : [TPush] getType uri:content://com.fengyun.game.qp.AUTH_XGPUSH/token,match:50 行 299: 11-16 10:16:46.504 26315 26446 I XINGE : [TPush] get token from pkg:com.fengyun.game.qp, token: 行 365: 11-16 10:16:46.724 26315 26446 W ContentResolver: provider == null. Start to getProviderMimeTypeAsync:content://com.fengyun.game.qp.AUTH_XGPUSH/token 行 367: 11-16 10:16:46.727 1858 7432 I ContentProviderHelper: Successfully start provider ContentProviderRecord{481ec8b u0 com.fengyun.game.qp/com.tencent.android.tpush.XGPushProvider} launchingApp=null caller pid= 1858 行 368: 11-16 10:16:46.729 2390 25801 I XINGE : [TPush] getType uri:content://com.fengyun.game.qp.AUTH_XGPUSH/token,match:50 行 377: 11-16 10:16:46.745 26315 26446 I XINGE : [TPush] get token from pkg:com.fengyun.game.qp, token: 行 396: 11-16 10:16:46.795 1056 1317 I aptouch_daemon: Excute:86: cmd=TSA_ExecuteCommand, param=THP_UpdateViewsLocation com.fengyun.game.qp#SCENE_GESTURE_SINGLE_TAP 行 397: 11-16 10:16:46.795 1056 1317 I tpd_client: TSA_ExecuteCommand, THP_UpdateViewsLocation com.fengyun.game.qp#SCENE_GESTURE_SINGLE_TAP 行 602: 11-16 10:16:47.713 1858 2090 W 00202/hw_netstat: total/50849/17825,com.fengyun.game.qp/50769/17681,com.huawei.hwid/80/144 行 607: 11-16 10:16:47.739 26315 26446 W ContentResolver: provider == null. Start to getProviderMimeTypeAsync:content://com.fengyun.game.qp.AUTH_XGPUSH/token 行 608: 11-16 10:16:47.742 1858 2778 I ContentProviderHelper: Successfully start provider ContentProviderRecord{481ec8b u0 com.fengyun.game.qp/com.tencent.android.tpush.XGPushProvider} launchingApp=null caller pid= 1858 行 609: 11-16 10:16:47.744 2390 25801 I XINGE : [TPush] getType uri:content://com.fengyun.game.qp.AUTH_XGPUSH/token,match:50 行 612: 11-16 10:16:47.749 26315 26446 I XINGE : [TPush] get token from pkg:com.fengyun.game.qp, token: 行 848: 11-16 10:16:48.743 26315 26446 W ContentResolver: provider == null. Start to getProviderMimeTypeAsync:content://com.fengyun.game.qp.AUTH_XGPUSH/token 行 849: 11-16 10:16:48.747 1858 7432 I ContentProviderHelper: Successfully start provider ContentProviderRecord{481ec8b u0 com.fengyun.game.qp/com.tencent.android.tpush.XGPushProvider} launchingApp=null caller pid= 1858 行 850: 11-16 10:16:48.749 2390 25801 I XINGE : [TPush] getType uri:content://com.fengyun.game.qp.AUTH_XGPUSH/token,match:50 行 853: 11-16 10:16:48.758 26315 26446 I XINGE : [TPush] get token from pkg:com.fengyun.game.qp, token: 行 910: 11-16 10:16:48.941 1056 1317 I aptouch_daemon: Excute:86: cmd=TSA_ExecuteCommand, param=THP_UpdateViewsLocation com.fengyun.game.qp#SCENE_GESTURE_SINGLE_TAP 行 911: 11-16 10:16:48.941 1056 1317 I tpd_client: TSA_ExecuteCommand, THP_UpdateViewsLocation com.fengyun.game.qp#SCENE_GESTURE_SINGLE_TAP 行 1046: 11-16 10:16:49.707 26315 26446 W ContentResolver: provider == null. Start to getProviderMimeTypeAsync:content://com.fengyun.game.qp.AUTH_XGPUSH/token 行 1047: 11-16 10:16:49.709 1858 2778 I ContentProviderHelper: Successfully start provider ContentProviderRecord{481ec8b u0 com.fengyun.game.qp/com.tencent.android.tpush.XGPushProvider} launchingApp=null caller pid= 1858 行 1048: 11-16 10:16:49.711 2390 25801 I XINGE : [TPush] getType uri:content://com.fengyun.game.qp.AUTH_XGPUSH/token,match:50 行 1051: 11-16 10:16:49.716 26315 26446 I XINGE : [TPush] get token from pkg:com.fengyun.game.qp, token: 行 1157: 11-16 10:16:50.002 1858 2778 I ActivityManager: makeIntentSenderCanceled: PendingIntentRecord{7d52b5e com.fengyun.game.qp startService}, caller: 26279 行 1181: 11-16 10:16:50.082 1858 27350 I [SECURITY]: [HPS][DEFAULT][PermissionUsingMonitor]: onStartUse, appInfo = 10231com.fengyun.game.qp, permGroupName = android.permission-group.LOCATION 行 1182: 11-16 10:16:50.083 1858 27350 I [SECURITY]: [HPS][DEFAULT][PermissionUsingMonitor]: onFinishUse, appInfo = 10231com.fengyun.game.qp, permGroupName = android.permission-group.LOCATION 行 1184: 11-16 10:16:50.083 1858 27351 I [SECURITY]: [HPS][DEFAULT][AppNode]: 10231com.fengyun.game.qp addPermission android.permission-group.LOCATION 行 1185: 11-16 10:16:50.083 1858 27351 I [SECURITY]: [HPS][DEFAULT][AppNode]: com.fengyun.game.qp stop android.permission-group.LOCATION time is too short, so a delay is needed 行 1314: 11-16 10:16:50.657 26315 26446 W ContentResolver: provider == null. Start to getProviderMimeTypeAsync:content://com.fengyun.game.qp.AUTH_XGPUSH/token 行 1315: 11-16 10:16:50.659 1858 7432 I ContentProviderHelper: Successfully start provider ContentProviderRecord{481ec8b u0 com.fengyun.game.qp/com.tencent.android.tpush.XGPushProvider} launchingApp=null caller pid= 1858 行 1316: 11-16 10:16:50.660 2390 25801 I XINGE : [TPush] getType uri:content://com.fengyun.game.qp.AUTH_XGPUSH/token,match:50 行 1319: 11-16 10:16:50.665 26315 26446 I XINGE : [TPush] get token from pkg:com.fengyun.game.qp, token: 行 1373: 11-16 10:16:50.829 1056 1317 I aptouch_daemon: Excute:86: cmd=TSA_ExecuteCommand, param=THP_UpdateViewsLocation com.fengyun.game.qp#SCENE_GESTURE_SINGLE_TAP 行 1374: 11-16 10:16:50.829 1056 1317 I tpd_client: TSA_ExecuteCommand, THP_UpdateViewsLocation com.fengyun.game.qp#SCENE_GESTURE_SINGLE_TAP 行 1529: 11-16 10:16:51.632 26315 26446 W ContentResolver: provider == null. Start to getProviderMimeTypeAsync:content://com.fengyun.game.qp.AUTH_XGPUSH/token 行 1530: 11-16 10:16:51.635 1858 7660 I ContentProviderHelper: Successfully start provider ContentProviderRecord{481ec8b u0 com.fengyun.game.qp/com.tencent.android.tpush.XGPushProvider} launchingApp=null caller pid= 1858 行 1531: 11-16 10:16:51.637 2627 3531 I PG_ash : pkg null calling: com.fengyun.game.qp, pid: 0 ,type: acquire_provider 行 1532: 11-16 10:16:51.637 2390 25801 I XINGE : [TPush] getType uri:content://com.fengyun.game.qp.AUTH_XGPUSH/token,match:50 行 1536: 11-16 10:16:51.650 26315 26446 I XINGE : [TPush] get token from pkg:com.fengyun.game.qp, token: 行 1745: 11-16 10:16:52.630 26315 26446 W ContentResolver: provider == null. Start to getProviderMimeTypeAsync:content://com.fengyun.game.qp.AUTH_XGPUSH/token 行 1746: 11-16 10:16:52.633 1858 7660 I ContentProviderHelper: Successfully start provider ContentProviderRecord{481ec8b u0 com.fengyun.game.qp/com.tencent.android.tpush.XGPushProvider} launchingApp=null caller pid= 1858 行 1747: 11-16 10:16:52.635 2390 25801 I XINGE : [TPush] getType uri:content://com.fengyun.game.qp.AUTH_XGPUSH/token,match:50 行 1750: 11-16 10:16:52.642 26315 26446 I XINGE : [TPush] get token from pkg:com.fengyun.game.qp, token: 行 1921: 11-16 10:16:53.679 26315 26446 W ContentResolver: provider == null. Start to getProviderMimeTypeAsync:content://com.fengyun.game.qp.AUTH_XGPUSH/token 行 1922: 11-16 10:16:53.682 1858 7432 I ContentProviderHelper: Successfully start provider ContentProviderRecord{481ec8b u0 com.fengyun.game.qp/com.tencent.android.tpush.XGPushProvider} launchingApp=null caller pid= 1858 行 1923: 11-16 10:16:53.685 2390 25801 I XINGE : [TPush] getType uri:content://com.fengyun.game.qp.AUTH_XGPUSH/token,match:50 行 1924: 11-16 10:16:53.685 16370 16637 E MediaProvider: Creating a non-default top level directory or deleting an existing one is not allowed! calling package: com.fengyun.game.qp, tencent
11-20
<think> 首先,用户提到了“com.fengyun.game.qp”这个应用,并想分析它的系统日志信息。日志包含多种数据点:多窗口焦点、帧率管理、触摸事件、定位权限使用、内容提供者启动、消息推送服务启动等。用户可能是在查找应用运行问题的解决方案,或者想了解应用行为。 现在,我需要参考站内引用。站内引用有5个: 1. [^1]: Redis日志分析技巧:深入理解Windows事件日志。提到了Windows任务计划程序、监控工具、自动化警报、日志归档、安全权限配置、监控关键事件、日志级别调整等。 2. [^2]: 闲聊Windows系统日志。解释了Windows事件日志的格式和如何修改日志长度来“删除”日志,使用了DanderSpritz的eventlogedit工具。 3. [^3]: 记一次入侵应急响应分析。讨论了日志格式(w3c格式)、时间线分析、GMT时间转换等。 4. [^4]: 服务更新错误日志分析。具体错误:事件ID 10016,COM服务器权限问题,用户权限配置错误。 5. [^5]: 在没有管理员权限下注册ActiveX/COM组件。提到了ActiveX需要管理员权限的原因,以及使用Enigma Protector和Enigma Virtual Box的解决方案。 用户的问题是关于一个特定应用“com.fengyun.game.qp”的日志分析,涉及多个方面。引用中有些是关于Windows事件日志的通用技巧,有些是特定错误(如COM权限),但用户的应用是Android的,因为包名是“com.fengyun.game.qp” – 典型的Android应用包格式(com.company.app)。 用户说“系统日志信息”,但没有指定操作系统。根据引用,引用[1]到[5]都是关于Windows系统的。用户提到“com.fengyun.game.qp”,这暗示Android应用。所以可能用户是在Windows系统上运行Android模拟器,或者日志是在Android设备上,但用户在Windows上分析。 用户说“系统日志信息”,可能指的是Android系统的日志,因为应用是Android的。但引用都是Windows相关的。所以我需要基于通用原则回答,同时参考引用。 用户的问题:分析包含com.fengyun.game.qp应用的系统日志信息,查找运行问题解决方案或了解行为。 关键数据点:多窗口焦点、帧率管理、触摸事件、定位权限使用、内容提供者启动、消息推送服务启动。 我需要提供分析步骤、工具建议、常见问题解决方案等。 参考引用: - 从[^1]:最佳实践包括设置日志轮转、权限配置、监控关键事件、调整日志级别。适用于通用日志分析。 - 从[^2]:日志格式和修改方法,但可能不相关,除非涉及日志篡改。 - 从[^3]:时间线分析和时间转换(GMT vs local time),可能相关因为日志时间戳重要。 - 从[^4]:COM权限错误(事件ID 10016),如果应用涉及COM组件,但Android应用一般不用COM。 - 从[^5]:ActiveX/COM注册权限问题,可能不直接相关。 所以,最相关的可能是[^1]的通用日志分析技巧和[^3]的时间分析。 现在,构建回答: 1. **结构清晰**:逐步解决问题。 - 步骤1: 识别日志来源和格式。 - 步骤2: 收集和过滤相关日志。 - 步骤3: 分析特定数据点(如焦点、帧率等)。 - 步骤4: 常见问题诊断。 - 步骤5: 解决方案建议。 2. **使用中文**:整个回答用中文。 3. **数学表达式**:用户提到行内数学表达式用$...$,但在这个上下文中,可能不需要数学,除非涉及计算。例如,帧率计算或概率。 4. **独立公式**:可能不需要。 5. **生成相关问题**:在末尾添加相关问题。 6. **引用标识**:在引用段落末尾添加[^n]。 回答中,引用站内内容时添加引用标识。 可能的分析步骤: - **日志来源**:如果是Android应用,使用adb logcat或Android Studio的Logcat。如果是Windows模拟器,检查Windows事件日志。 用户说“系统日志信息”,可能Android系统日志。假设是Android。 - **工具**:建议使用logcat过滤器。 - **分析**: - **多窗口焦点**:查找事件如窗口切换、焦点丢失。 - **帧率管理**:监控帧率下降事件。 - **触摸事件**:分析触摸响应延迟或错误。 - **定位权限使用**:检查权限请求和授予状态。 - **内容提供者启动**:启动时间和错误。 - **消息推送服务启动**:服务启动失败或延迟。 常见问题: - 权限问题(如定位权限未授予)。 - 服务启动失败。 - 性能问题(帧率低)。 解决方案: - 确保权限正确。 - 优化代码。 - 监控和警报。 从引用[^1]:设置日志轮转、权限配置、监控关键事件。所以可以融入这些最佳实践。 引用[^3]:时间转换,提醒注意日志时间戳时区。 引用[^4]:权限错误,如果类似问题。 但Android没有COM,所以可能不直接相关。 回答结构: 1. **引言**:概述分析目标。 2. **日志收集**:如何获取日志。 3. **日志分析步骤**:针对每个数据点。 4. **常见问题诊断**。 5. **解决方案和建议**。 6. **生成相关问题**。 </think>### com.fengyun.game.qp应用系统日志分析指南 针对您提到的“com.fengyun.game.qp”应用(一个典型的Android游戏应用),我将逐步指导您分析其系统日志信息。日志包含多窗口焦点、帧率管理、触摸事件、定位权限使用、内容提供者启动和消息推送服务启动等关键数据点。您的目标可能是诊断运行问题(如卡顿、崩溃或权限错误)或了解应用行为。分析基于Android系统日志(如通过`adb logcat`获取),但通用原则也适用于其他环境(如Windows模拟器)。以下结合站内引用中的最佳实践(如日志归档、权限配置和事件监控)进行结构化说明。 --- ### 步骤1: 识别日志来源和格式 首先,确认日志来源。com.fengyun.game.qp是Android应用,日志通常来自Android系统的`logcat`。使用工具如Android Studio的Logcat或命令行`adb logcat`收集日志。确保日志格式正确: - **时间戳处理**:日志时间戳默认使用GMT时间,而本地时间需转换为GMT+8(例如,日志中的时间需加8小时)。分析时需注意时间偏移,避免误判操作时间线[^3]。 - **日志格式**:Android日志采用文本格式,含标签(tag)和优先级(priority),如`W/WindowManager`表示窗口管理警告。建议启用w3c格式导出,便于结构化分析[^3]。 - **最佳实践**:设置自动日志轮转策略,避免日志文件过大影响性能。例如,使用脚本或工具定期归档日志(如每天轮转),并保留最近7天的日志[^1]。 **工具建议**: - Android Studio Logcat:实时过滤应用日志(包名:`com.fengyun.game.qp`)。 - 命令行示例: ```bash adb logcat -v time | grep "com.fengyun.game.qp" > game_qp_log.txt ``` 此命令过滤应用相关日志并保存到文件。 --- ### 步骤2: 收集和过滤相关日志 针对您的数据点,使用过滤器缩小范围。每个数据点对应特定日志标签或事件ID(Android中无固定ID,但可基于关键字): - **多窗口焦点**:过滤`WindowManager`或`ActivityTaskManager`标签,查找事件如`window_focused`或`window_lost_focus`。常见问题:焦点切换导致应用暂停或崩溃。 - **帧率管理**:搜索`Choreographer`或`SurfaceFlinger`标签,监控帧率值(如`frame_time_ms`)。计算平均帧率: $ \text{平均帧率} = \frac{\text{总帧数}}{\text{时间间隔}} $ 如果帧率低于60 FPS,可能表示性能瓶颈。 - **触摸事件**:查找`InputDispatcher`或`ViewRootImpl`标签,关注`touch_event`或`motion_event`。分析响应延迟(例如,延迟 > 100ms 可能卡顿)。 - **定位权限使用**:检查`LocationManagerService`标签,过滤事件如`permission_granted`或`permission_denied`。权限未授予时,日志显示`ACCESS_FINE_LOCATION denied`。 - **内容提供者启动**:搜索`ContentProvider`标签,监控`provider_started`或`bind_failed`事件。启动失败可能因权限或资源冲突。 - **消息推送服务启动**:查找`FirebaseMessaging`或自定义服务标签(如`PushService`),关注`service_started`或`connection_failed`。 **关键技巧**: - 监控错误和警告级别事件(优先级为`ERROR`或`WARN`),这些是问题高发区。建立自动化警报机制(如使用Python脚本或监控工具),当检测到关键错误时触发通知[^1]。 - 示例过滤器(Logcat语法): ```bash adb logcat -s WindowManager:W Choreographer:W LocationManagerService:E *:S ``` 此命令仅显示窗口管理警告、帧率警告和定位错误日志。 --- ### 步骤3: 分析特定数据点及常见问题诊断 基于日志内容,诊断常见运行问题。以下是典型场景和解决方案: - **多窗口焦点冲突**:如果日志显示频繁`window_lost_focus`,原因可能是多任务处理导致应用后台挂起。解决方案:优化应用生命周期管理(如保存状态),或检查系统资源不足。 - **帧率管理问题**:帧率下降(例如 < 30 FPS)可能因GPU过载或代码低效。计算帧率方差: $ \sigma^2 = \frac{1}{N}\sum_{i=1}^{N} (x_i - \mu)^2 $ 高方差表示不稳定。调整日志级别为`DEBUG`获取更详细渲染数据[^1]。 - **触摸事件延迟**:若日志中`motion_event`延迟高,可能因触摸驱动问题或主线程阻塞。模拟测试:在低性能设备上重现问题。 - **定位权限错误**:权限拒绝(如`permission_denied`)会导致定位功能失败。确保应用在运行时动态请求权限,并检查用户是否已授予[^4]。类似Windows的COM权限错误(事件ID 10016),Android中需配置`AndroidManifest.xml`权限声明[^4][^5]。 - **内容提供者启动失败**:日志显示`bind_failed`时,可能因数据库锁定或权限不足。解决方案:增加超时重试逻辑或检查URI权限。 - **消息推送服务问题**:启动失败(`connection_failed`)常因网络或Firebase配置错误。监控服务启动时间: $ \text{启动时间} = t_{\text{end}} - t_{\text{start}} $ 若 > 2秒,需优化初始化代码。 **诊断原则**: - 重点分析错误事件(如`ERROR`日志),它们直接指向故障点。例如,引用[^4]中的COM权限问题类似Android权限错误,都涉及安全配置。 - 时间线分析:结合日志时间戳,重建事件序列。例如,应用崩溃前是否有帧率骤降或权限拒绝?确保时间转换准确(GMT → GMT+8)[^3]。 --- ### 步骤4: 解决方案和建议 针对问题根源,提供优化措施: 1. **权限修复**: - 如果定位权限未授予,引导用户在设置中启用,或在代码中添加运行时请求(使用`ActivityCompat.requestPermissions`)。 - 类似Windows的权限配置最佳实践,确保应用账户(如Android的`NetworkService`)有足够权限写入日志或访问资源[^1][^4]。 2. **性能优化**: - 帧率问题:使用性能分析工具(如Android Profiler)定位代码瓶颈(如过度渲染)。 - 触摸延迟:优化事件处理线程,避免主线程阻塞。 3. **服务稳定性**: - 消息推送服务:检查网络依赖和重连机制。参考引用[^1]的自动化警报,对服务失败事件设置监控。 - 内容提供者:确保数据库操作异步执行。 4. **日志管理增强**: - 实施日志轮转和归档,避免磁盘占满。生产环境中调整日志级别(如从`VERBOSE`到`INFO`),平衡详细度性能[^1]。 - 使用ELK Stack(Elasticsearch, Logstash, Kibana)或Splunk进行日志可视化,便于跟踪多窗口焦点等行为。 5. **安全监控**: - 监控关键事件(如权限变更或服务启动失败),建立快速响应机制。引用[^2]提到日志修改风险(如长度覆盖),确保日志文件只读权限以防止篡改[^2]。 **总体建议**:如果问题持续,提供日志片段给开发者或使用APM工具(如Firebase Crashlytics)。对于Android模拟器在Windows运行的情况,检查系统事件日志(事件查看器)是否有底层错误(如DCOM事件ID 10016的权限问题)[^4][^5]。 --- ### 相关问题 为了深化您的分析,以下是相关扩展问题: 1. 如何优化Android应用的帧率管理以减少卡顿? 2. 在多窗口环境中,如何诊断和修复焦点丢失导致的崩溃? 3. Android定位权限被拒绝的常见原因及自动化监控方法? 4. 消息推送服务启动失败时,如何进行网络依赖性分析? 5. 在无管理员权限的设备上,如何安全配置应用日志访问(参考ActiveX权限问题)? 通过以上步骤,您可系统性地诊断com.fengyun.game.qp的运行问题。如果提供具体日志片段,我可以进一步针对性分析!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值