µÚÒ»Õ£ºË½Á¢Å®Ð£ÒÆÖ²ÊÖÒÕÏÖ×´ÓëÍ»ÆÆ
ÏñËØÀàŮУÖ÷ÌâÓÎÏ·µÄÒÆ¶¯¶ËÒÆÖ²ÃæÁÙË«ÖØÌôÕ½£º¼ÈÓйŰåÒÆÖ²¹¤³ÌµÄ¹²Í¨ÄÑÌ⣬ÓÖÐèÓ¦¶ÔÌØÊâÌâ²ÄϵͳµÄÊÊÅäÐèÇó¡£Ë½Á¢Å®Ð£µÄÌôÕ½ÏñËØÌÒ×ÓÒÆÖ²ÏÂÔØÏîÄ¿½ÓÄÉÄæÏò¹¤³Ì£¨Reverse Engineering£©ÊÖÒÕ£¬Í¨¹ý¶ÔUnityÒýÇæ¼Ü¹¹µÄÉî¶ÈÆÊÎö£¬ÀÖ³ÉʵÏÖÓÎÏ·½¹µãÄ£¿é½â°ü¡£ÔÚOpenGL£¨¿ª·ÅͼÐο⣩µ½VulkanͼÐÎAPIת»»Àú³ÌÖУ¬¿ª·¢ÍŶÓÔËÓö¯Ì¬×ÅÉ«Æ÷±àÒëÊÖÒÕ£¬Ê¹±¬ÒÂϵͳµÄÁ£×ÓЧ¹ûµÃÒÔ±£´æ¡£
µÚ¶þÕ£º±¬ÒÂϵͳÊÖÒÕÊÊÅäÒªº¦µã
½ÇÉ«»¥ÄîÍ·ÖÆÖеı¬ÒÂЧ¹ûÒÆÖ²±£´æÈý´óÊÊÅäÄѵ㣺ÎïÀíÒýÇæ²ÎÊýÆ¥Åä¡¢´¥¿Ø²Ù×÷ÊÊÅäÒÔ¼°Òƶ¯¶ËÐÔÄÜÓÅ»¯¡£Í¨¹ý½«Ô°æBox2DÎïÀíϵͳµ÷½âΪÇáÁ¿¼¶PhysXÒÆ¶¯°æ£¬ÊµÏÖÁË´ò°çËéÁÑЧ¹ûµÄ׼ȷģÄâ¡£¿ª·¢ÈÕÖ¾ÏÔʾ£¬ÔÚÇø·ÖÂÊÊÊÅä½×¶Î£¬½ÓÄɶ¯Ì¬Íø¸ñϸ±ðÀëÒÕʹ½Çɫģ×ÓµÄ768¸ö¼«µãÍêÉÆÊÊÅä²î±ðÆÁÄ»³ß´ç¡£ÕâÖÖÊÖÒÕÍ»ÆÆÊ¹Ë½Á¢Å®Ð£µÄÌôÕ½ÏñËØÌÒ×ÓÒÆÖ²±¬ÒÂЧ¹û¸æ¿¢98%԰滹Զȡ£
µÚÈýÕ£ºÒÆÖ²¹¤¾ßÁ´ÉèÖüƻ®
ÔõÑùÑ¡Ôñ¸ßЧµÄÒÆÖ²¹¤¾ß³ÉΪ¿ª·¢Òªº¦£¿×¨ÒµÍŶÓÍÆ¼ö½ÓÄÉARM Mali GPUµ÷ÊÔÌ×¼þÅäºÏAndroid Studio¾ÙÐÐ¿çÆ½Ì¨ÒÆÖ²¡£ÔÚ±àÒë»·½ÚÒýÈëIL2CPPת»»ÊÖÒÕ£¬Ê¹C#¾ç±¾µÄÖ´ÐÐЧÂÊÌáÉý40%¡£ÌØÊâÊÇÕë¶Ô˽Á¢Å®Ð£µÄÌôÕ½ÏñËØÌÒ×ÓÒÆÖ²ÏÂÔØÐèÇ󣬿ª·¢Ö°Ô±¶ÔAssetBundle×ÊÔ´°ü¾ÙÐÐÁËLZ4HCѹËõÓÅ»¯£¬×°ÖðüÌå»ýËõ¼õÖÁÔ°æµÄ65%¡£
µÚËÄÕ£ºÊÖ»ú¶Ë²Ù×÷ÓÅ»¯Õ½ÂÔ
´¥ÆÁ×°±¸µÄ²Ù×÷ÊÊÅäÖ±½ÓÓ°ÏìÓÎÏ·ÌåÑé¡£Ñз¢ÍŶÓΪ˽Á¢Å®Ð£µÄÌôÕ½Éè¼ÆÁËÌØÓеÄ˫ָ´¥¿ØÓ³É伯»®£¬½«Ô±¾ÐèÒª×éºÏ¼ü²Ù×÷µÄ±¬Ò»úÖÆ×ªÎª»¬¶¯+³¤°´ÊÖÊÆ¡£ÔÚUI½çÃæÖØ¹¹·½Ã棬ÔËÓÃÏìӦʽ½á¹¹ÊÖÒÕÈ·±£¸÷ÔªËØÔÚ²î±ðÆÁÄ»±ÈÀýϵÄ׼ȷÏÔʾ¡£²âÊÔÊý¾ÝÏÔʾ£¬¾ÓÉÓÅ»¯µÄÐéÄâÒ¡¸Ë¾«×¼¶ÈÏà½Ï¹Å°å¼Æ»®ÌáÉý32%£¬ÕâΪÊÖ»ú¶ËÍêÉÆÊµÏÖ½ÇÉ«»¥ÄîÍ·ÖÆµÓÚ¨ÁË»ù´¡¡£
µÚÎåÕ£º×°Öõ÷ÊÔÓë¼æÈÝÐÔ°ü¹Ü
Íê³É˽Á¢Å®Ð£µÄÌôÕ½ÏñËØÌÒ×ÓÒÆÖ²ÏÂÔØºó£¬ÔõÑù¾ÙÐÐ×°±¸ÊÊÅäµ÷ÊÔ£¿½¨Òé½ÓÄÉ·Ö¼¶²âÊÔ·¨£ºÍ¨¹ýAndroid Virtual Device¾ÙÐлù´¡¹¦Ð§ÑéÖ¤£¬ÔÙʹÓÃÖ÷Á÷Æ·ÅÆÕæ»ú¾ÙÐÐѹÁ¦²âÊÔ¡£ÔÚÔËÐн׶Σ¬¿ª·¢ÍŶӷ¢Ã÷²¿·Ö»úÐͱ£´æÎÆÀí˺ÁÑÎÊÌ⣬×îÖÕͨ¹ýÇ¿ÖÆ¿ªÆôÈýÖØ»º³å£¨Triple Buffering£©½â¾ö¼Æ»®¡£Õë¶Ô±¬ÒÂÌØÐ§Ôì³ÉµÄGPU¹ýÔØ£¬ÌØÊ⿪·¢Á˶¯Ì¬»Öʵ÷ÀíÄ£¿é£¬¿ÉÔÚÔËÐÐʱ×Ô¶¯Æ½ºâ»ÃæÖÊÁ¿ÓëÖ¡ÂÊ¡£
˽Á¢Å®Ð£µÄÌôÕ½ÏñËØÌÒ×ÓÒÆÖ²ÏÂÔØ¹¤³ÌÕ¹ÏÖÁËÏÖ´úÓÎÏ·ÒÆÖ²ÊÖÒÕµÄÍ»ÆÆÐÔÏ£Íû¡£´ÓͼÐÎAPIÊÊÅäµ½ÎïÀíÒýÇæÓÅ»¯£¬´Ó²Ù×÷Ó³É伯»®µ½×°ÖðüѹËõ£¬Ã¿¸öÊÖÒÕ»·½Ú¶¼Äý¾Û×Å¿ª·¢Õß¶Ô¶þ´ÎÔªÓÎÏ·ÒÆÖ²µÄÉî¶ÈÃ÷È·¡£Ëæ×ÅÒÆ¶¯×°±¸ÐÔÄܵÄÒ»Á¬ÌáÉý£¬Ë½Á¢Å®Ð£µÄÌôÕ½ÕâÀàÌØÊâÌâ²ÄÓÎÏ·ÒÆÖ²½«ÓÀ´¸üÁÉÀ«µÄÉú³¤¿Õ¼ä£¬ÆÚ´ý¸ü¶àÍæ¼ÒÄÜÌåÑéµ½ÔÖÔζµÄ±¬ÒÂϵͳÓë½ÇÉ«»¥ÄîÍ·ÖÆ¡£µÚÒ»Õ£ºË½Á¢Å®Ð£ÒÆÖ²ÊÖÒÕÏÖ×´ÓëÍ»ÆÆ
ÏñËØÀàŮУÖ÷ÌâÓÎÏ·µÄÒÆ¶¯¶ËÒÆÖ²ÃæÁÙË«ÖØÌôÕ½£º¼ÈÓйŰåÒÆÖ²¹¤³ÌµÄ¹²Í¨ÄÑÌ⣬ÓÖÐèÓ¦¶ÔÌØÊâÌâ²ÄϵͳµÄÊÊÅäÐèÇó¡£Ë½Á¢Å®Ð£µÄÌôÕ½ÏñËØÌÒ×ÓÒÆÖ²ÏÂÔØÏîÄ¿½ÓÄÉÄæÏò¹¤³Ì£¨Reverse Engineering£©ÊÖÒÕ£¬Í¨¹ý¶ÔUnityÒýÇæ¼Ü¹¹µÄÉî¶ÈÆÊÎö£¬ÀÖ³ÉʵÏÖÓÎÏ·½¹µãÄ£¿é½â°ü¡£ÔÚOpenGL£¨¿ª·ÅͼÐο⣩µ½VulkanͼÐÎAPIת»»Àú³ÌÖУ¬¿ª·¢ÍŶÓÔËÓö¯Ì¬×ÅÉ«Æ÷±àÒëÊÖÒÕ£¬Ê¹±¬ÒÂϵͳµÄÁ£×ÓЧ¹ûµÃÒÔ±£´æ¡£
µÚ¶þÕ£º±¬ÒÂϵͳÊÖÒÕÊÊÅäÒªº¦µã
½ÇÉ«»¥ÄîÍ·ÖÆÖеı¬ÒÂЧ¹ûÒÆÖ²±£´æÈý´óÊÊÅäÄѵ㣺ÎïÀíÒýÇæ²ÎÊýÆ¥Åä¡¢´¥¿Ø²Ù×÷ÊÊÅäÒÔ¼°Òƶ¯¶ËÐÔÄÜÓÅ»¯¡£Í¨¹ý½«Ô°æBox2DÎïÀíϵͳµ÷½âΪÇáÁ¿¼¶PhysXÒÆ¶¯°æ£¬ÊµÏÖÁË´ò°çËéÁÑЧ¹ûµÄ׼ȷģÄâ¡£¿ª·¢ÈÕÖ¾ÏÔʾ£¬ÔÚÇø·ÖÂÊÊÊÅä½×¶Î£¬½ÓÄɶ¯Ì¬Íø¸ñϸ±ðÀëÒÕʹ½Çɫģ×ÓµÄ768¸ö¼«µãÍêÉÆÊÊÅä²î±ðÆÁÄ»³ß´ç¡£ÕâÖÖÊÖÒÕÍ»ÆÆÊ¹Ë½Á¢Å®Ð£µÄÌôÕ½ÏñËØÌÒ×ÓÒÆÖ²±¬ÒÂЧ¹û¸æ¿¢98%԰滹Զȡ£
µÚÈýÕ£ºÒÆÖ²¹¤¾ßÁ´ÉèÖüƻ®
ÔõÑùÑ¡Ôñ¸ßЧµÄÒÆÖ²¹¤¾ß³ÉΪ¿ª·¢Òªº¦£¿×¨ÒµÍŶÓÍÆ¼ö½ÓÄÉARM Mali GPUµ÷ÊÔÌ×¼þÅäºÏAndroid Studio¾ÙÐÐ¿çÆ½Ì¨ÒÆÖ²¡£ÔÚ±àÒë»·½ÚÒýÈëIL2CPPת»»ÊÖÒÕ£¬Ê¹C#¾ç±¾µÄÖ´ÐÐЧÂÊÌáÉý40%¡£ÌØÊâÊÇÕë¶Ô˽Á¢Å®Ð£µÄÌôÕ½ÏñËØÌÒ×ÓÒÆÖ²ÏÂÔØÐèÇ󣬿ª·¢Ö°Ô±¶ÔAssetBundle×ÊÔ´°ü¾ÙÐÐÁËLZ4HCѹËõÓÅ»¯£¬×°ÖðüÌå»ýËõ¼õÖÁÔ°æµÄ65%¡£
µÚËÄÕ£ºÊÖ»ú¶Ë²Ù×÷ÓÅ»¯Õ½ÂÔ
´¥ÆÁ×°±¸µÄ²Ù×÷ÊÊÅäÖ±½ÓÓ°ÏìÓÎÏ·ÌåÑé¡£Ñз¢ÍŶÓΪ˽Á¢Å®Ð£µÄÌôÕ½Éè¼ÆÁËÌØÓеÄ˫ָ´¥¿ØÓ³É伯»®£¬½«Ô±¾ÐèÒª×éºÏ¼ü²Ù×÷µÄ±¬Ò»úÖÆ×ªÎª»¬¶¯+³¤°´ÊÖÊÆ¡£ÔÚUI½çÃæÖØ¹¹·½Ã棬ÔËÓÃÏìӦʽ½á¹¹ÊÖÒÕÈ·±£¸÷ÔªËØÔÚ²î±ðÆÁÄ»±ÈÀýϵÄ׼ȷÏÔʾ¡£²âÊÔÊý¾ÝÏÔʾ£¬¾ÓÉÓÅ»¯µÄÐéÄâÒ¡¸Ë¾«×¼¶ÈÏà½Ï¹Å°å¼Æ»®ÌáÉý32%£¬ÕâΪÊÖ»ú¶ËÍêÉÆÊµÏÖ½ÇÉ«»¥ÄîÍ·ÖÆµÓÚ¨ÁË»ù´¡¡£
µÚÎåÕ£º×°Öõ÷ÊÔÓë¼æÈÝÐÔ°ü¹Ü
Íê³É˽Á¢Å®Ð£µÄÌôÕ½ÏñËØÌÒ×ÓÒÆÖ²ÏÂÔØºó£¬ÔõÑù¾ÙÐÐ×°±¸ÊÊÅäµ÷ÊÔ£¿½¨Òé½ÓÄÉ·Ö¼¶²âÊÔ·¨£ºÍ¨¹ýAndroid Virtual Device¾ÙÐлù´¡¹¦Ð§ÑéÖ¤£¬ÔÙʹÓÃÖ÷Á÷Æ·ÅÆÕæ»ú¾ÙÐÐѹÁ¦²âÊÔ¡£ÔÚÔËÐн׶Σ¬¿ª·¢ÍŶӷ¢Ã÷²¿·Ö»úÐͱ£´æÎÆÀí˺ÁÑÎÊÌ⣬×îÖÕͨ¹ýÇ¿ÖÆ¿ªÆôÈýÖØ»º³å£¨Triple Buffering£©½â¾ö¼Æ»®¡£Õë¶Ô±¬ÒÂÌØÐ§Ôì³ÉµÄGPU¹ýÔØ£¬ÌØÊ⿪·¢Á˶¯Ì¬»Öʵ÷ÀíÄ£¿é£¬¿ÉÔÚÔËÐÐʱ×Ô¶¯Æ½ºâ»ÃæÖÊÁ¿ÓëÖ¡ÂÊ¡£
˽Á¢Å®Ð£µÄÌôÕ½ÏñËØÌÒ×ÓÒÆÖ²ÏÂÔØ¹¤³ÌÕ¹ÏÖÁËÏÖ´úÓÎÏ·ÒÆÖ²ÊÖÒÕµÄÍ»ÆÆÐÔÏ£Íû¡£´ÓͼÐÎAPIÊÊÅäµ½ÎïÀíÒýÇæÓÅ»¯£¬´Ó²Ù×÷Ó³É伯»®µ½×°ÖðüѹËõ£¬Ã¿¸öÊÖÒÕ»·½Ú¶¼Äý¾Û×Å¿ª·¢Õß¶Ô¶þ´ÎÔªÓÎÏ·ÒÆÖ²µÄÉî¶ÈÃ÷È·¡£Ëæ×ÅÒÆ¶¯×°±¸ÐÔÄܵÄÒ»Á¬ÌáÉý£¬Ë½Á¢Å®Ð£µÄÌôÕ½ÕâÀàÌØÊâÌâ²ÄÓÎÏ·ÒÆÖ²½«ÓÀ´¸üÁÉÀ«µÄÉú³¤¿Õ¼ä£¬ÆÚ´ý¸ü¶àÍæ¼ÒÄÜÌåÑéµ½ÔÖÔζµÄ±¬ÒÂϵͳÓë½ÇÉ«»¥ÄîÍ·ÖÆ¡£