±³¾°
2012 ÄêÖУ¬Î¢ÐÅÖ§³Ö°üÀ¨ Android¡¢iOS¡¢Symbian µÈÈý¸öƽ̨¡£µ«ÔÚ¸÷¸öƽ̨ÉÏ£¬Î¢Ðſͻ§¶ËûÓÐÈκÎͳһµÄ»ù´¡Ä£¿é¡£2012
ÄêµÄ΢ÐÅÕý´¦ÓÚ¸ßËÙ·¢Õ¹Ê±ÆÚ£¬¸÷ƽ̨µÄµü´úËٶȲ»Ò»¡¢Ê¹Óõıà³ÌÓïÑÔ¸÷Ò죬ºǫ́¼Ü¹¹Ò²´¦ÔÚ²»¶Ï̽Ë÷µÄ¹ý³ÌÖС£¶àÖÖÒòËØÊ¹µÃ¸÷¸öƽ̨»ù´¡Ä£¿éµÄʵÏÖ³öÏÖÁ˲îÒ죬µ¼Ö³öÏÖ¶à´ÎÐèÒª·þÎñÆ÷×ö¼æÈݵÄÉÆºó¹¤×÷¡£ÍøÂç×÷Ϊ΢ÐŵĻù´¡£¬ÖØÒªÐÔ²»ÑÔ¶øÓ÷¡£ÈκÎÍøÂçʵÏÖµÄ
Bug ¶¼¿ÉÄܵ¼ÖÂÖØ´óʹʡ£ÀýÈç΢ÐŵÄÈÝÔÖʵÏÖ£¬Èç¹ûÒòΪ°æ±¾µÄʵÏÖ²îÒ죬µ¼ÖÂijЩ°æ±¾ÉÏÎÞ·¨½øÐÐÈÝÔÖ»Ö¸´£¬½«»áÑÏÖØµÄÓ°ÏìÓû§ÌåÑ飬ÉõÖÁÔì³ÉÓû§µÄÁ÷ʧ¡£ÎÒÃǼ±ÐèÒ»Ì×ͳһµÄÍøÂç»ù´¡¿â£¬ÎªÎ¢ÐŵĸßËÙ·¢Õ¹±£¼Ý»¤º½¡£
Ç¡ºÃ£¬Õâ¸öʱºòÈû°à½¥ÈëÈÕĺ£¬Î¢ÐŶÔÈû°àµÄÖ§³ÖÒ²Öð½¥¼õÈõ¡£ÀÏ´ó´ÓÈû°à×é³éµ÷ÈËÁ¦£¬×é³ÉÒ»¸öÈýÈËС Team
µÄ³õʼÍŶӣ¬¿ªÊ¼×ÅÊÖ×öͨÓõĻù´¡×é¼þ¡£Õâ¸ö»ù´¡×é¼þ×î³õ¾Í¶¨Î»Îª£º¿çƽ̨¡¢¿çÒµÎñµÄ»ù´¡×é¼þ¡£ÏÖÔÚ¿´£¬Õâ¸ö×é¼þ³ýÁ˽â¾öÁËÒÑÓÐÎÊÌ⣬»¹¸øÎ¢ÐŵĸßËÙ·¢Õ¹´øÀ´Á˺ܶàÓÅÊÆ£¬ÀýÈ磺
»ù´¡×é¼þ·½±ãÁË¿ªÕ¹×¨ÏîµÄÍøÂç»ù´¡Ñо¿ÓëÓÅ»¯¡£
»ù´¡×é¼þΪ¶àƽ̨µÄ¿ìËÙʵÏÖÌṩÁËÓÐÁ¦µÄÖ§³Ö¡£
¾¹ýËÄÄê¶àµÄ·¢Õ¹£¬¿çƽ̨µÄ»ù´¡×é¼þÒѾ°üº¬ÁËÍøÂç×é¼þ¡¢ÈÕÖ¾×é¼þÔÚÄڵĶà¸ö×é¼þ¡£»ØÍ·¿´£¬ÕâÊÇÒ»Ìõ¿ª»Ä·¡£
Éè¼ÆÔÔò
ÔÚ»ù´¡Ä£¿éµÄ¿ª·¢ÖУ¬Éè¼ÆÓÈÎªÖØÒª¡£ÔÚÉè¼ÆÉÏ£¬Î¢ÐÅ»ù´¡×é¼þÒÔ¿çÆ½Ì¨¡¢¿çÒµÎñΪǰÌᣬ×ñ´Ó¸ß¿ÉÓᢸßÐÔÄÜ¡¢¸ºÔؾùºâµÄÉè¼ÆÔÔò¡£
¿ÉÓÃÊÇÒ»¸ö¼´Ê±Í¨Ñ¶Àà App µÄÁ¢ÉíÖ®±¾¡£¸ß¿ÉÓÃÓÖÌåÏÖÔÚ¶à¸ö²ãÃæÉÏ£ºÍøÂçµÄ¿ÉÓÃÐÔ¡¢ App µÄ¿ÉÓÃÐÔ¡¢ÏµÍ³µÄ¿ÉÓÃÐԵȡ£
ÍøÂçµÄ¿ÉÓÃÐÔ
ÒÆ¶¯»¥ÁªÍøÓÐ×Ŷª°üÂʸߡ¢´ø¿íÊÜÏÞ¡¢ÑÓ³Ù²¨¶¯¡¢µÚÈý·½Ó°ÏìµÈÌØµã£¬Ê¹µÃÍøÂçµÄ¿ÉÓÃÐÔ£¬ÓÈÆäÊÇÈõÍøÂçϵĿÉÓÃÐÔ±äµÃÓÈΪ¹Ø¼ü¡£Mars
µÄ STN ×é¼þ×÷Ϊ»ùÓÚ socket ²ãµÄÍøÂç½â¾ö·½°¸£¬Ôںܶàϸ½ÚÉè¼ÆÉÏ»á³ä·Ö¿¼ÂÇÈõÍøÂçϵĿÉÓÃÐÔ¡£
App µÄ¿ÉÓÃÐÔ
App µÄ¿ÉÓÃÐÔ°üº¬Îȶ¨ÐÔ¡¢ÔËÐÐÐÔÄܵȶà¸ö·½Ãæ¡£ÎÄÕ¸ßÐÔÄÜÈÕ־ģ¿é xlog ÃèÊöÁË xlog ÔÚ²»Ó°Ïì
App ÔËÐÐÐÔÄܵÄǰÌáϽøÐеĴóÁ¿Éè¼ÆË¼¿¼¡£
ϵͳµÄ¿ÉÓÃÐÔ
³ýÁË¿¼ÂÇÕý³£µÄʹÓó¡¾°£¬APPµÄÉè¼Æ»¹ÐèÒª´ÓÕû¸öϵͳµÄ½Ç¶È½øÐÐÉè¼ÆË¼¿¼¡£ÀýÈçÔÚÈÝÔÖÉè¼ÆÉÏ£¬Mars ²»½öʹÓÃÁË·þÎñÆ÷ÈÝÔÖ·½°¸£¬Ò²Éè¼ÆÁ˿ͻ§¶ËµÄ±¾µØÈÝÔÖ¡£µ±²¿·Ö·þÎñÆ÷³öÔÖʱ£¬Ä¿Ç°Î¢ÐÅ¿ÉÒÔ×öµ½£¬15min
ÄÚ°Ñ95%ÒÔÉϵÄÓû§×ªÒƵ½¿ÉÓ÷þÎñÆ÷ÉÏ¡£
±£Õϸ߿ÉÓò¢²»´ú±í¿ÉÒÔÎþÉüÐÔÄÜ£¬¶ÔÓÚÒ»¸öÓû§Ê¹ÓÃ×îÆµ·±µÄÓ¦Ó㬷´¶ø¸üÒª¶ÔʹÓõÄ×ÊÔ´¾«´òϸËã¡£ÀýÈçÔÚ Mars
ÐÅÁî´«Ê䳬ʱÉè¼ÆÖУ¬¶à¼¶³¬Ê±µÄÉè¼Æ³ä·ÖµÄ¿¼ÂÇÁË¿ÉÓÃÐÔÓë¸ßÐÔÄÜÖ®¼äµÄƽºâÈ¡Éá¡£
Èç¹û˵¸ß¿ÉÓøßÐÔÄÜÖ»Êǿͻ§¶Ë±¾ÉíµÄ¿¼Âǵϰ£¬¸ºÔؾùºâ¾ÍÐèÒª½áºÏ·þÎñÆ÷¶ËÀ´¿¼ÂÇÁË£¬×öÒ»¸ö¿Í»§¶ËÍøÂçÓÀÔ¶²»ÄÜÖ»°ÑÑÛ¹â·ÅÔÚ¿Í»§¶ËÉÏ¡£ÈκÎÓйØÍøÂç·ÃÎʵľö²ß¶¼Òª¿¼ÂǸø·þÎñÆ÷Ëù´øÀ´µÄ¶îÍâѹÁ¦ÊǶà´ó¡£ÎªÁËÑ¡ÓÃÖÊÁ¿½ÏºÃµÄ
IP£¬Ôø¾Ð´ÁËÍêÕûµÄ¿Í»§¶Ë²âËÙ´úÂ룬ºóÀ´É¾µô£¬ÆäÖÐÒ»¸öÔÒòÊÇÒòΪ²»Ïë¸ø·þÎñÆ÷´øÀ´¶îÍâµÄ¸ºµ£¡£Mars µÄ´úÂëÖУ¬Ñ¡Ôñ
IP ʱÓÃÁË´óÁ¿µÄËæ»úº¯ÊýÒ²ÊÇΪÁ˹æ±Ü´óÁ¿µÄÓû§Í¬Ê±·ÃÎÊͬһ̨·þÎñÆ÷¶ø×öµÄ¡£
ÔÚÕâËÄÄ꣬ÎÒѧµ½×î¶àµÄ¾ÍÊǼòµ¥ºÍƽºâ¡£ °Ñ·½°¸×öµÄ¾¡¿ÉÄܼòµ¥£¬ÕâÑù²Å²»ÈÝÒ׳ö´í¡£Éè¼Æ·½°¸Ê±´ó¶àÊýʱºò¶¼²»¿ÉÄÜÂú×ãËùÓÐÏë´ïµ½µÄÌõ¼þ£¬Õâ¸öʱºò¾ÍÐèҪȥƽºâ¸÷¸öÒòËØ¡£ÔÚ×é¼þÖÐÒ»¸öºÜºÃµÄÀý×Ó¾ÍÊdz¤Á¬½ÓµÄÁ¬½ÓƵÂÊ(¾ßÌåʵÏÖ¼ûlonglink_connect_monitor.cc)£¬Õâ¸öÁ¬½ÓƵÂʾÍÊÇ×ۺϺĵçÁ¿£¬Á÷Á¿£¬ÍøÂç¸ß¿ÉÓã¬Óû§ÐÐΪµÈÒòËØ½øÐÐ×ۺϿ¼Âǵġ£
Mars µÄ·¢Õ¹Àú³Ì
½×¶ÎÒ»£ºÈÃ΢ÐÅÅÜÆðÀ´
¿çƽ̨»ù´¡×é¼þµÄÐèÇóÆðÔ´ÓÚ΢ÐÅ£¬Ê×ҪĿ±êµ±È»ÊÇÏȳÐÔØÆð΢ÐÅÒµÎñ¡£ÎªÁ˲»¾ÖÏÞÓÚ΢ÐÅ£¬Âú×ã¿çƽ̨¡¢¿çÒµÎñµÄÉè¼ÆÄ¿±ê£¬ÔÚÉè¼ÆÉÏ£¬ÍøÂç×é¼þ¶¨Î»Îª¿Í»§¶ËÓë·þÎñ¶ËÖ®¼äµÄÎÞ×´Ì¬ÍøÂçÐÅÁîͨµÀ£¬¼´½»»¥·½Ê½Ö÷Òª°üº¬Ò»À´Ò»»Ø¡¢Ö÷¶¯pushÁ½ÖÖ·½Ê½¡£ÕâʹµÃ»ù´¡×é¼þÎÞÐ迼ÂÇÇëÇó¼äµÄ¹ØÁªÐÔ¡¢Ê±ÐòÐÔ£¬ºËÐĽӿڵõ½Á˼«´óµÄ¼ò»¯¡£Í¬Ê±£¬¼ò½àµÄ½»»¥Ò²Ê¹µÃÒµÎñÂß¼µÄñîºÏ¼«ÉÙ¡£Ä¿Ç°»ù´¡×é¼þÓëÒµÎñµÄ½»»¥Ö»°üÀ¨£º±à½âÂë¡¢auth״̬²éѯÁ½²¿·Ö¡£ºËÐĽӿÚÈçÏ£º£¨¾ßÌå¼ûstn_logic.h£©¡£
void StartTask(...); int OnTaskEnd(...); void OnPush(...); bool Req2Buf(...); int Buf2Resp(...); bool MakeSureAuthed(); |
ÔÚÏß³ÌÄ£Ð͵ÄÑ¡ÔñÉÏ£¬×îÔçʹÓõÄÊǶàÏß³ÌÄ£ÐÍ¡£µ±ÐèÒªÒì²½×öÒ»¸ö¹¤×÷£¬¾ÍÆðÒ»¸öÏ̡߳£¶àÏß³ÌÊÆ±ØÉÙ²»ÁËËø¡£µ«µ±»Ò¶È¼¸´ÎÖ®ºó·¢ÏÖ£¬ÏëÒª¹æ±ÜËÀËøµÄËĸö±ØÒªÌõ¼þ²¢Ã»ÓÐÏëÏóÖеÄÄÇôÈÝÒס£Óû§Ê¹Óó¡¾°¸´ÔÓ£¬¿Í»§¶ËµÄʱÐò¡¢×´Ì¬µÄÓ°ÏìÒòËØ¶à£¬ÀýÈçÍøÂçÇл»Ê¼þ¡¢Ç°ºǫ́ʼþ¡¢¶¨Ê±Æ÷ʼþ¡¢ÍøÂçʼþ¡¢ÈÎÎñʼþµÈ£¬µ¼ÖÂÁ˲»ÉÙµÄËÀËøÏÖÏóºÍ¶ÔÏóÎö¹¹Ê±Ðò´íÂÒµ¼ÖµÄÄÚ´æ·Ç·¨·ÃÎÊÎÊÌâ¡£
Õâʱ£¬ÎÒÃÇ¿ªÊ¼Ë¼¿¼£¬¶àÏß³ÌȷʵÓÐËüµÄÓŵ㣺¿ÉÒÔ²¢·¢ÉõÖÁ²¢ÐÐÌá¸ßÔËÐÐËÙ¶È¡£µ«ÊǶÔÓÚÍøÂçÄ£¿éÀ´Ëµ£¬ÐÔÄÜÆ¿¾±Ö÷ÒªÊÇÔÚÍøÂçºÄʱÉÏ£¬²¢²»ÔÚÓÚ±¾µØ³ÌÐòÖ´ÐÐËÙ¶ÈÉÏ¡£ÄÇΪºÎ²»°Ñ´ó²¿·Ö³ÌÐòÖ´Ðиijɴ®Ðеģ¬ÕâÑù¾Í²»»á´æÔÚ¶àÏß³ÌÁÙ½çÇøµÄÎÊÌ⣬ÎÞËø×ÔÈ»¾Í²»»áËÀËø¡£
Òò´Ë£¬ÎÒÃÇĿǰʹÓÃÁËÏûÏ¢¶ÓÁеķ½°¸(¾ßÌåʵÏÖ¼û comm/messagequeue Ŀ¼)£¬°Ñ¾ø´ó¶àÊý·Ç×èÈû²Ù×÷·Åµ½ÏûÏ¢¶ÓÁÐÀïÖ´ÐС£²¢Çҹ涨£¬»ù´¡×é¼þÓëµ÷Ó÷½Ö®¼äµÄ½»»¥±ØÐ룺
¾¡¿ìÍê³É£¬²»½øÐÐÈκÎ×èÈû²Ù×÷£»
µ¥Ïòµ÷Ó㬱ÜÃâÐγɻ·×´µÄ¸´ÔÓʱÐò¡£
ÏûÏ¢¶ÓÁеÄÒýÈëºÜºÃµÄ¸ÄÉÆÁËËÀËøÎÊÌ⣬µ«ÏûÏ¢¶ÓÁеÄÏß³ÌÄ£ÐÍÖУ¬ÎÒÃÇ»¹ÊDz»ÄܱÜÃâ´æÔÚÐèÒª×èÈûµÄµ÷Óã¬ÀýÈçÍøÂç²Ù×÷¡£ÔÚδÀ´µÄ³¢ÊÔÖУ¬ÎÒÃǼƻ®ÒýÈëг̵ķ½Ê½£¬½«Ïß³ÌÄ£Ð;¡¿ÉÄܵļò»¯¡£
ÔÚÆäËû¼¼ÊõÑ¡ÐÍÉÏ£¬ÓÐʱÉõÖÁÐèҪϸ½Úµ½ API µÄʹÓ㬱ÈÈ翼ÂÇÆ½Ì¨¼æÈÝÐÔÎÊÌ⣬ÉáÆúÁËһЩº¯ÊýµÄḬ̈߳²È«°æ±¾£¬Ê¹ÓÃÁË
asctime¡¢localtime¡¢rand µÈ·ÇḬ̈߳²È«µÄ°æ±¾¡£
½×¶Î¶þ£ºÐÞÁ¶ÄÚ¹¦
ÔÚ¶à´ÎµÄ»Ò¶ÈÑéÖ¤¡¢Êý¾Ý±È¶ÔÏ£¬Î¢ÐŸ÷ƽ̨µÄÍøÂçÂ߼˳ÀûµÄ¹ý¶Éµ½ÁËͳһ»ù´¡×é¼þ¡£ÎªÁËÓÐЧµÄÑéÖ¤×é¼þµÄЧ¹û£¬ÎÒÃÇ¿ª·¢ÁË
smc µÄͳ¼Æ¼à¿Ø×é¼þ£¬¿ªÊ¼¹Ø×¢ÍøÂçµÄ¸÷ÏîÖ¸±ê£¬½øÐÐÍøÂç»ù´¡Ñо¿ÓëÓÅ»¯£¬ÓÈÆäÊǹØ×¢Òƶ¯ÍøÂçµÄÌØÕ÷¡£
»ù´¡ÍøÂçÓÅ»¯¡£
³£¹æµÄÍøÂçÄÜÁ¦£¬ÀýÈç DNS ·À½Ù³Ö¡¢¶¯Ì¬ IP Ï·¢¡¢¾Í½ü½ÓÈë¡¢ÈÝÔÖ»Ö¸´µÈ£¬ÔÚÕâÒ»½×¶ÎµÃµ½Ö𲽵Ľ¨ÉèÓëÍêÉÆ¡£³ý´ËÖ®Í⣬Mars
µÄÍøÂçÄ£¿éÊÇ»ùÓÚ socket ²ãµÄÍøÂç½â¾ö·½°¸£¬ÔÚȱʧ´ó¶øÈ«µÄ HTTP ÄÜÁ¦µÄͬʱ£¬È´¿ÉÒÔ½«ÓÅ»¯×öµ½¸üϸÖ£¬Ï¸Öµ½Á¬½Ó²ßÂÔ¡¢Á¬½Ó³¬Ê±¡¢¶à¼¶¶Áд³¬Ê±¡¢ÊÕ·¢²ßÂÔµÈÿ¸öÍøÂç¹ý³ÌÖС£ÀýÈ磬µ±Óöµ½ÈõÍøÂçÏÂÁ¬Í¨Âʽϵͣ¬»òÕßijЩÁ¬Í¨Âʲ»ºÃµÄµÄ·þÎñÆ÷Ó°ÏìʹÓÃʱ£¬ÎÒÃÇʹÓÃÁ˸´ºÏÁ¬½Ó(´úÂë¼ûcomplexconnect.inl)ºÍ
IP ÅÅÐò(´úÂë¼ûsimple_ipport_sort.cc)µÄ·½°¸ºÜºÃµÄÓ¦¶ÔÕâÁ½¸öÎÊÌâ¡£
Æ½Ì¨ÌØÐÔÓÅ»¯¡£ËäÈ» Mars ÊÇ¿çÆ½Ì¨µÄ»ù´¡×é¼þ£¬µ«ÔںܶàÉè¼ÆÉÏÊÇÐèÒª½áºÏ¸÷ƽ̨µÄÌØÐԵġ£ÀýÈçΪÁ˾¡Á¿¼õÉÙÆµ·±µÄ»½ÐÑÊÖ»ú£¬ÒýÈëÁËÖÇÄÜÐÄÌø£¬²¢ÇÒÔÚÖÇÄÜÐÄÌøÖп¼ÂÇÁË
Android µÄ alarm ¶ÔÆëÌØÐÔ(¾ßÌåʵÏÖ¼ûsmart_heartbeat.cc)¡£ÔÙÈçÔÚÍøÂçÇл»Ê±£¬ÎªÁËÆ½»¬Çл»µÄ¹ý³Ì£¬Ê¹ÓÃÁË
iOS ÖÐÍøÂçµÄÌØÐÔ£¬ÔÚ iOS ÖÐ×öÁËÑÓ³Ù´¦ÀíµÈ¡£
ÒÆ¶¯ÌØÐÔÓÅ»¯¡£Î¢ÐŵÄʹÓó¡¾°´ó²¿·ÖÊÇÔÚÊÖ»ú¶Ë½øÐÐʹÓã¬ÔÚ×é¼þµÄÉè¼Æ¹ý³ÌÖУ¬ÎÒÃÇÒ²»áÑо¿Òƶ¯É豸µÄÌØÐÔ£¬²¢½øÐнáºÏÓÅ»¯¡£ÀýÈ磬½áºÏÒÆ¶¯É豸µÄÎÞÏßµç×ÊÔ´¿ØÖÆÆ÷£¨RRC£©µÄ״̬Çл»£¬¶ÔһЩÐÔÄÜÒªÇóÌØ±ðÌØ±ðÃô¸ÐµÄÇëÇ󣬽øÐÐÌáǰ¼¤»îµÄÓÅ»¯´¦ÀíµÈ¡£
½×¶ÎÈý£º¡°×¥Ñý¼Ç¡±
»ù´¡×é¼þÈ«Á¿ÉÏÏß΢Ðźó£¬ÒÔ΢ÐŵÄÓû§Á¿£¬µ±È»Ò²»áÓöµ½¸÷ÖÖ¸÷ÑùµÄ¡°Ñý¡±¡£ÀýÈç£¬Ð´ÍøÂç³ÌÐò¶ã²»¿ªÔËÓªÉÌ¡£Ó¡Ïó±È½ÏÉî¿ÌµÄijµØµÄÓû§·´À¡Á¬½Ó
WiFi ʱ£¬Î¢ÐŲ»¿ÉÓ㬺óÀ´ tcpdump ·¢ÏÖ£¬µ±°üµÄ´óС³¬¹ýÒ»¶¨´óСºó¾Í·¢²»³öÈ¥¡£½â¾ö·½°¸£ºÔÚ
WiFi ÍøÂçÏÂÇ¿ÖÆ°Ñ MSS ¸ÄΪ1400(´úÂë¼û unix_socket.cc)¡£
×öÒÆ¶¯¿Í»§¶Ë¸ü±Ü²»¿ªÊÖ»ú³§ÉÌ¡£Ò»´ÎÓöµ½ÁËÒ»¸ö°Ù˼²»µÃÆä½âµÄ crash£¬¶ÑÕ»ÈçÏ£º
#00 pc 0x43e50 /system/lib/libc.so (???) #01 pc 0x3143 /system/vendor/lib/libvendorconn.so (handleDpmIpcReq+154) #02 pc 0x2f6d /system/vendor/lib/libvendorconn.so (send_ipc_req+276) #03 pc 0x30ff /system/vendor/lib/libcneconn.so (connect+438) |
¿´¶ÑÕ»½áºÏ³ÌÐò xlog ·ÖÎö£¬·Ç×èÈû socket ¿¨ÔÚÁË connect º¯ÊýÀﳬ¹ýÁË6 min,
±»ÎÒÃÇ×Ô´øµÄ anr ¼ì²â(´úÂë¼ûanr.cc)·¢ÏÖÈ»ºó×Ôɱ¡£×îºóʵÔÚÊøÊÖÎ޲ߣ¬ÁªÏµ³§ÉÌÒ»ÆðÅŲ飬×îÖÕ²éÃ÷ÔÒò£ºÎªÁËÊ¡µç£¬µ±ÊÖ»úËøÆÁʱÁ¬µÄ²»ÊÇ
WiFi ÇÒÓÖûÓÐÏÂÐÐÍøÂçÊý¾Ýʱ£¬Ð¾Æ¬ gate »á¹Ø±Õ£¬block סËùÓÐÍøÂçÇëÇó£¬Ö±µ½ÓÐÏÂÐÐÊý¾Ý»òÕß³¬¹ý
20min ²Å»á·Å¿ª¡£µ±ÊÖ»úÓÐÍøÂ缴ʹÊÇÊÖ»úÍøÂçµÄÇé¿öÏ£¬ºÜÄÑûÓÐÏÂÐÐÊý¾Ý£¬ËùÒÔ»ù±¾²»»á´¥·¢×é¼þ×Ô´øµÄ
anr ¼ì²â£¬µ«µ±ÊÖ»úûÁ¬½ÓÈκÎÍøÂçʱ£¬¾ÍºÜÈÝÒ×´¥·¢¡£½â¾ö·½°¸£º³§ÉÌÐ޸ĴúÂëÂß¼£¬µ±Ã»ÓÐÈκÎÍøÂçʱ²» block
ÍøÂçÇëÇó¡£
ÔËÓªÉ̺ÍÊÖ»ú³§É̶ÔÎÒÃÇÀ´ËµÒѾÊÇÒ»¸öºÚºÐ£¬µ«ÆäʵҲÓöµ½¹ý¸üºÚµÄºÚºÐ¡£µ±ÊÖ»ú³¤Ê±¼ä²»ÖØÆô£¬Óм«Ð¡¸ÅÂʲ»ÄܼÌÐøÊ¹ÓÃ΢ÐÅ£¬ÖØÆôÊÖ»ú»á»Ö¸´¡£µ«ÒòΪһֱÕÒ²»µ½Ò»¸öÔ¸ÒâÅäºÏÎÒÃÇÓÖÂú×ãÌõ¼þµÄÓû§£¬µ¼ÖÂÕâ¸öÎÊÌâºÜ³¤Ò»¶Îʱ¼äÄÚ¶¼Ã»ÓÐÈκνøÕ¹£¬×îÖÕżȻһ¸ö»ú»á£¬ÔÚһ̨²âÊÔ»úÆ÷ÉÏÖØÏÖÁ˸ÃÎÊÌ⣬tcpdump
·¢ÏÖÔÚÈý²½ÎÕÊֽ׶Σ¬·þÎñÆ÷´ø»ØµÄ¿Í»§¶Ë´ø¹ýÈ¥µÄ tsval ×ֶα»´Û¸Ä£¬µ¼ÖÂÈý²½ÎÕÊÖÖ±½Óʧ°Ü£¬¶øÇÒÕâ¸ö´Û¸Ä·¢ÉúÔÚÀ뿪·þÎñÆ÷Ö®ºóµ½´ï¿Í»§¶Ë֮ǰ¡£


Õâ¸öÎÊÌâÊÇ΢ÐÅÍøÂçÄ£¿éÖÐÅŲéʱ¼ä×ҲÊÇ»¨·Ñ¾«Á¦×î¶àµÄÒ»¸öÎÊÌ⣬²»½öÒòΪºÜ³¤Ò»¶Îʱ¼äÄÚÎÞ°¸Àý¿É·ÖÎö£¬Ò²ÒòΪÔÚÖØÏÖºó£¬ÁªÏµÁË´óÁ¿µÄͬʺÍÍⲿÓйØÈ˵İïæ£¬ÏëÅŲé³ö×ï¿ý»öÊס£µ«ÒòΪÖмäÉæ¼°µÄ»·½ÚºÍÔËÓªÉÌÏà¹Ø²¿ÃŹý¶à£¬ÎÞ·¨¼ÌÐøÅŲéÏÂÈ¥£¬×îÖÕҲûÕÒµ½¸ù±¾ÔÒò¡£
½â¾ö°ì·¨£º·þÎñÆ÷¸ü¸Ä net.ipv4.tcp_timestamps = 0¡£ |
Õâ¶Îʱ¼äÊÇÍ´²¢¿ìÀÖ×Å£¬¼ûʶµ½Á˸÷ÖÖ¼«²îµÄÍøÂ磬²ÅÇзô¸ÐÊܵ½Òƶ¯ÍøÂç»·¾³µÄ¶ñÁӳ̶ȣ¬µ«¿´×ÅÎÒÃǵÄÍøÂçÐÔÄÜÊý¾ÝÔÚÎȲ½ÌáÉýÓÖÓÐÖÖÂú×ã¸Ð¡£½ØÖ¹µ½½ñÌ죬ÒѾºÜÉÙÓÐÕæÕýµÄÍøÂçÎÊÌâÐèÒª¸ú½øÁË¡£ÕâÒ²ÊÇÎÒÃÇÄÜÓÐʱ¼ä¿ªÊ¼°ÑÕâЩ´úÂ뿪Դ³öÈ¥µÄºÜ´óµÄÒ»¸öÔÒò¡£
Mars ½éÉÜ
½²ÊöÁËÒ»´ó¶Ñ Mars µÄ·¢Õ¹Àú³Ì£¬ÖÕÓÚÀ´µ½Ö÷½ÇµÄ½éÉÜÁË¡£´ó¸ÅÒ»Äêǰ£¬ÎÒÃÇ¿ªÊ¼ÓÐÏë·¨°Ñ»ù´¡×é¼þ¿ªÔ´³öÈ¥£¬µ±Ê±´ó¼Ò¶¼ÔÚ¾À½á½ÐʲôÃû×ÖºÃÄØ£¿´Ëʱǡ·ê¡¶»ðÐǾÈÔ®¡·ÕýÔÚÈÈÓ³£¬Ò»Î»Í¬ÊÂ˵¸É´à½Ð
Mars °É£¬ÓÚÊǾͶ¨ÏÂÀ´½ÐÁË Mars¡£¿´ÁË¿´´úÂ룬·¢ÏÖÏëÒª¿ªÔ´³öÈ¥¿ÉÄÜ»¹ÊÇÐèÒª×öһЩÆäËû¹¤×÷µÄ¡£
´úÂëÖØ¹¹
Ê×ÏÈ£¬´úÂë·ç¸ñ·½Ã棬ÒòΪ×î³õÎÒÃÇʹÓÃÎļþÃû¡¢º¯ÊýÃû¡¢±äÁ¿ÃûµÄ¹æÔòÊÇÄÚ²¿¶¨ÒåµÄ¹æÔò£¬ÎªÁËÄÜÈÃÆäËûÈ˶ÁÆðÀ´¸üÊæÐÄ£¬ÎÒÃǾö¶¨°Ñ´úÂë·ç¸ñ¸ÄΪ¹È¸è·ç¸ñ£¬±ÈÈ磺±äÁ¿ÃûÒ»ÂÉСд,
µ¥´ÊÖ®¼äÓÃÏ»®ÏßÁ¬½Ó£»×ó´óÀ¨ºÅ²»»»Ðеȵȡ£µ«ÊÇΪÁ˸üºÃµÄÇø·Ö·ÃÎʿռ䣬ÎÒÃÇÓÖÔڹȸè´úÂë·ç¸ñ½øÐÐÁËһЩ±äͨ£¬±ÈÈ磺˽Óк¯ÊýÈ«²¿ÊÇ"__"¿ªÍ·£»º¯Êý²ÎÊýÈ«²¿ÒÔ"_"¿ªÍ·µÈµÈ¡£
Æä´Î£¬ËäÈ»×î³õµÄÉè¼ÆÒ»Ö±ÊDZü³Ð×ÅÒµÎñÐÔÎ޹صÄÉè¼Æ£¬µ«ÔÚʵ¼Ê¿ª·¢¹ý³ÌÖÐÈÔÈ»ÄÑÃâ´øÉÏÁË΢ÐŵÄÒµÎñÐÔÏà¹Ø´úÂ룬±È½ÏµäÐ͵ľÍÊÇ
newdns ¡£ÎªÁË Mars ÒÔºóµÄά»¤ÒÔ¼°±£Ö¤¿ªÔ´³öÈ¥´úÂëµÄͬԴ£¬ÔÚ¿ªÔ´³öȥ֮ǰ±ØÐë°ÑÕâЩҵÎñÐÔÓйصĴúÂë³éÀë³öÀ´£¬³éÀëºóµÄ½á¹¹ÈçÏ£º
mars-open Ò²¾ÍÊÇÒª¿ªÔ´³öÈ¥µÄ´úÂ룬¶ÀÁ¢ git repo¡£
mars-private ÊÇ¿ÉÄÜ¿ªÔ´³öÈ¥µÄ´úÂ룬ÒÀÀµ mars-open¡£
mars-wechat ÊÇ΢ÐÅÒµÎñÐÔÏà¹ØµÄ´úÂ룬ÒÀÀµ mars-open ºÍ mars-private¡£
×îºó£¬ÎªÁ˽ӿڸüÒ×Ó㬶Ե÷ÓýӿÚÒÔ¼°»Øµ÷½Ó¿ÚµÄ²ÎÊýÒ²½øÐÐÁË·´¸´Ë¼¿¼ÓëÐ޸ġ£
±àÒëÓÅ»¯
ÔÚ Mars ֮ǰ£¬ÊÇÖ±½Ó¸ø Android Ìṩ¶¯Ì¬¿â(.so)£¬ÒòΪ´úÂëÂß¼¶¼ÒѾ¹Ì¶¨£¬²»ÐèÒªÓпɶ¨ÖƵIJ¿·Ö¡£¸ø
Apple ϵƽ̨Ìṩ¾²Ì¬¿â(.a)£¬ÒòΪ¶ÔÍⱩ¶µÄº¯Êý¼¸ºõ²»»á¸Ä±ä£¬Ö±½Ó°ÑÏàÓ¦µÄÍ·Îļþ·Åµ½ÏàÓ¦µÄÏîÄ¿Àï¾ÍÐС£µ«¶ÔÍ⿪Դ¾ÍÍêÈ«²»Ò»ÑùÁË£ºÈÕÖ¾µÄ¼ÓÃÜËã·¨¿ÉÄܱðÈËÐèÒª×Ô¼ºÊµÏÖ£»³¤Á¬»òÕß¶ÌÁ¬µÄ°üÍ·ÓÐÈËÐèÒª×Ô¼º¶¨ÖÆ£»¶ÔÍâ½Ó¿ÚµÄÍ·ÎļþÎÒÃÇ¿ÉÄÜ»áÐ޸ġ¡
ΪÁËÈÃʹÓÃÕ߿ɶ¨ÖÆ´úÂ룬¶ÔÓÚ±àÒë Android ƽ̨ÎÒÃÇÌṩÁËÁ½ÖÖÑ¡Ôñ£º1. ¶¯Ì¬¿â¡£ÓÐЩ¿ÉÄÜÐèÒª¶¨ÖƵĴúÂë¶¼ÌṩÁËĬÈÏʵÏÖ¡£2.
ÏȱàÒ뾲̬¿â£¬ÔÙ±àÒ붯̬¿â¡£±àÒë³öÀ´¾²Ì¬¿âºó£¬ÊµÏÖ×Ô¼ºÐèÒª¶¨ÖƵĴúÂëºó£¬Ö´ÐÐ ndk-build ºó¼´¿É±àÒë³öÀ´¶¯Ì¬¿â¡£
¶ÔÓÚ Apple ϵƽ̨£¬°ÑÍ·ÎļþÈ«²¿ÊÕ£Ϊ Mars ά»¤£¬Ö±½Ó±àÒë³ö Framework¡£
ΪÁËÄÜÈÿª·¢Õß¿ìËÙµÄÈëÃÅ£¬ÎÒÃÇÌṩÁË Android¡¢iOS¡¢OS X ƽ̨µÄ demo£¬ÆäËûƽ̨µÄ±àÒëºÍ
demo »áÔÚ²»¾Ã¾Í¼ÓÉÏÖ§³Ö¡£
³ÉÐ굀 Mars ½á¹¹Í¼ÈçÏ£º

Òµ½ç¶Ô±È
ÎÒÃÇ×öµÄÒ»Ö±¶¼²»ÊÇÂú×ãËùÓÐÐèÇóµÄ×é¼þ£¬Ö»ÊÇ×öÁËÒ»¸ö¸üÊʺÏÎÒÃÇʹÓõÄ×é¼þ£¬ÕâÀïÒ²ÁÐÁËϺÍͬÀàÐ͵ĿªÔ´´úÂëµÄ¶Ô±È¡£

¿ÉÒÔ¿´³ö£º
Mars ÖаüÀ¨Ò»¸öÍêÕûµÄ¸ßÐÔÄܵÄÈÕÖ¾×é¼þ xlog£»
Mars ÖÐ STN ÊÇÒ»¸ö¿çƽ̨µÄ socket ²ã½â¾ö·½°¸£¬²¢²»Ö§³ÖÍêÕûµÄ HTTP ÐÒ飻
Mars ÖÐ STN Ä£¿éÊǸü¼ÓÌùºÏ¡°Òƶ¯»¥ÁªÍø¡±¡¢¡°Òƶ¯Æ½Ì¨¡±ÌØÐÔµÄÍøÂç½â¾ö·½°¸£¬ÓÈÆäÕë¶ÔÈõÍøÂç¡¢Æ½Ì¨ÌØÐÔµÈÓкܶàµÄÏà¹ØÓÅ»¯²ßÂÔ¡£
×ܵÄÀ´Ëµ£¬Mars ÊÇÒ»¸ö½áºÏÒÆ¶¯ App ËùÉè¼ÆµÄ»ùÓÚ socket ²ãµÄ½â¾ö·½°¸£¬ÔÚÍøÂçµ÷ÓÅ·½ÃæÓиüºÃµÄ¿É¿ØÐÔ£¬¶ÔÓÚ
HTTP ÍêÕûÐÒéµÄÖ§³Ö£¬ÒѾ¿¼ÂǺóÐø°æ±¾»á¼ÓÈë¡£
×ܽá
¾³£ÓÐÅóÓѺÍÎÒ˵£º·¢ÏÖÍøÂçÐźŲîµÄʱºò»òÕ߯äËûÓ¦Óò»ÄÜÓõÄʱºò£¬Î¢ÐÅÈÔÈ»ÄÜ·¢³öÈ¥ÏûÏ¢¡£²»Öª²»¾õÎÒÃǺÃÏñʲô¶¼Ã»×ö£¬»ØÍ·¿´£¬ÔÀ´ÎÒÃÇÒѾ×öÁËÕâô¶à¡£ÎÒÏ룬²¢²»ÊÇÈκÎÒ»ÐдúÂë¶¼¿ÉÒÔ¾ÀúÈÕ»îÔ¾5ÒÚÓû§µÄ¿¼Ñ飬¸Ðл΢ПøÎÒÃÇÌṩÁËÕâôһ¸öƽ̨¡£ÏÖÔÚÎÒÃÇÏë°ÑÕâЩ´úÂëºÍÄãÃÇ·ÖÏí£¬ÔËÓª·½Ê½ÉÏ
Mars Ëù¿ªÔ´³öÈ¥µÄ´úÂë»áºÍ΢ÐÅËùÓõĴúÂë±£³ÖͬԴ£¬ËùÓпªÔ´³öÈ¥µÄ´úÂëÒ²Ê×ÏÈ»áÔÚ΢ÐÅÉÏÑé֤ͨ¹ýºóÔÙ¹«¿ª¡£¿ªÔ´²¢²»ÊǽáÊø£¬Ö»ÊÇ¿ªÊ¼¡£ÎÒÃǺóÐøÈÔÈ»»á¼ÌÐøÌ½Ë÷ÔÚÒÆ¶¯»¥ÁªÍøÏµÄÍøÂçÓÅ»¯¡£Talk
is cheap, show you our code.
|