Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
´Ó´óÍŶӲ¢¼ç×÷Õ½µ½Ð¡ÍŶӴøÍ·³å·æ£¬ËÕÄþApp²å¼þ»¯Ó¦ÓÃʵ¼ù
 
  2578  次浏览      35
 2018-8-16
 
±à¼­ÍƼö:
±¾ÎÄÀ´×ÔÓÚ51cto£¬½éÉÜÁËËÕÄþÒ×¹ºÒƶ¯¿ª·¢²¿×ÔÖ÷Ñз¢³öÁËÐÂÐͲå¼þ»¯¼¼Êõ¡ª¡ªAPNP¡£

¼ò½é

´Ó´óÍŶӲ¢¼ç×÷Õ½µ½Ð¡ÍŶӴøÍ·³å·æ£¬¸ßЧµÄÑз¢Ä£Ê½Ê¹µÃ App ±¾ÉíµÄÕûÌå±ÀÀ£ÂÊʼÖÕά³ÖÔÚ 0.02% ÒÔÏ¡£

±¾×ÅÒÔÓû§ÎªÖÐÐÄ¡¢ÒÔ¿ª·¢ÕßΪ³ö·¢µã£¬¸ù¾ÝÏÖÓпªÔ´·½°¸È¡³¤²¹¶Ì£¬ËÕÄþÒ×¹ºÒƶ¯¿ª·¢²¿ÓÚ 2017 Äê³õ×ÔÖ÷Ñз¢³öÁËÐÂÐͲå¼þ»¯¼¼Êõ¡ª¡ªAPNP£¨Android Plugin And Play£©£¬Ö¼ÔÚÈÃÑз¢¸üÃô½Ý£¬È÷¢²¼¸üÁé»î£¬×îÖÕÂú×ãÓû§¶Ô²úÆ·µÄ¼«ËÙÌåÑé¡¢°´ÐèÏÂÔØ¡¢¶¯Ì¬¸üС£

ÐèÇó·ÖÎö

¼¼ÊõµÄÒýÈëÀ´×ÔÓÚʵ¼ÊÒµÎñ³¡¾°¶Ô¼¼ÊõµÄÐèÇ󣬲å¼þ»¯ÒàÊÇÈç´Ë£¬ÄÇôµ½µ×ÊÇʲôԭÒòÍÆ¶¯ÁËËÕÄþÒ×¹º App µÄ²å¼þ»¯£¬ÓÖÊÇʲôԭÒòÈÃËÕÄþÒ×¹º¿ª·¢Õß×ßÉÏ×ÔÑвå¼þ»¯µÄµÀ·£¿

ΪʲôËÕÄþÒ×¹º App ÐèÒª²å¼þ»¯£¿

·¢²¼ÖÜÆÚ³¤£¬²úÆ·µü´ú¸ú²»ÉÏÊг¡ÐèÇó

¶ÔÓÚÒ»¸öµçÉÌ App£¬²»Í¬µÄʱ¼ä¡¢µØµã£¬°éËæ×ÅÓû§Ç§±äÍò»¯¡¢ÉÔ×ݼ´ÊŵÄÏû·ÑÐèÇó£¬Ë­ÄÜÔÚµÚһʱ¼äÂú×ãÕâЩÐèÇó£¬Ë­¾ÍÄܰÑÎÕסÐèÇó´øÀ´µÄÏúÁ¿¡£

¶ø´«Í³µÄ App ¿ª·¢Ä£Ê½ÖÜÆÚ¹ý³¤£¬ÎÒÃÇÐèÒª¸üÃô½ÝµÄ·¢²¼·½°¸£¬ËùÒÔÎÒÃÇ×öÁ˲å¼þ»¯£¬ÕâÒ²ÊÇËÕÄþÒ×¹º¶Ô²å¼þ»¯×îԭʼµÄÐèÇó¡£

µ¥ÏßÑз¢£¬¹ÜÀí¡¢Ð­×÷³É±¾¹ý¸ß

Ëæ×ÅËÕÄþÒ×¹ºÒµÎñµÄ²»¶ÏÍØÕ¹¡¢ÏîÄ¿²ÎÓëÈËÔ±ÊýÁ¿µÄÔö¶à£¬µ¥Ïß App ¿ª·¢Ä£Ê½ËùÒþ²ØµÄÎÊÌâÈÕÒæÍ¹ÏÔ£ºÒ»Ãæ´ÓÐèÇó·ÖÎöµ½Ñз¢²âÊÔ£¬ÐèÒª¼à¹ÜµÄÄÚÈÝÔ½À´Ô½¶à£»ÁíÒ»·½Ãæ´Ó·½°¸¾ö²ßµ½Á÷³ÌÉóÅú£¬Ð­×÷¹µÍ¨Ô½À´Ô½Æµ·±£¬³É±¾Ô½À´Ô½¸ß¡£

Òò´ËÎÒÃÇÐèÒª¶àÏß¡¢Ð¡ÍŶӵÄÑз¢Ä£Ê½£¬ÕâÈÃÎÒÃǽøÒ»²½È·ÈÏÁ˲å¼þ»¯¡£

°²×°°ü¹ý´ó£¬ÔËÓªÍÆ¹ãЧÂÊ×ßµÍ

ÐèÇóÔÚÈÕÒæÔö³¤µÄͬʱ£¬°²×°°üÌå»ýÒ²ÔÚͬ²½ÅòÕÍ¡£Ãæ¶ÔºÄʱ¡¢ºÄÁ÷Á¿µÄ°²×°°üÏÂÔØ£¬ÐÂÓû§ÌåÑé¡¢ÀÏÓû§Éý¼¶µÄ×èÁ¦Ò²Ô½À´Ô½´ó¡£

ΪÁ˽â¾öÕâ¸öÎÊÌ⣬ÎÒÃÇÐèÒª²ð°ü¡¢ÐèÒª¶¯Ì¬ÏÂÔØ¡¢ÐèÒª¾Ö²¿¸üУ¬Òò´ËÎÒÃÇÕýʽÒýÈëÁ˲å¼þ»¯¡£

ʲôѡÔñ×ÔÑжø²»ÊÇʹÓÿªÔ´·½°¸£¿

ûÓÐÍêÃÀÎÞϾµÄ¿ªÔ´·½°¸£¬È´Óвã³ö²»ÇîµÄ½ÓÈëÎÊÌâ

ÒÆ¶¯ÍŶÓÔÚÒ»¿ªÊ¼Ñ¡Ôñ¹ý¼¸ÖÖ¿ªÔ´·½°¸£¬¸ö±ð·½°¸µÄ¿ÉÓÃÐÔÒ²±È½Ï¸ß£¬µ«ÊÇÔÚ½ÓÈëÖ®ºó£¬²âÊÔ»·½Ú×Ü»á³öÏÖЩÒÉÄÑÔÓÖ¢£¬ÐÞ¸´ÆðÀ´Ïà¶ÔÀ§ÄÑ£¬Ò»·½ÃæÊÇÔ´Âë±¾ÉíµÄÕÆÎճɱ¾½Ï¸ß£¬ÁíÒ»·½Ãæ¾ÍÊÇ¿ªÔ´·½°¸±¾Éí´æÔÚµÄȱÏÝ¡£

ҪôÁíÆð¯ÔҪôź¶ÏË¿Á¬

ÏÖÓеĿªÔ´·½°¸£¬ÒªÃ´¾ÍÊǶÔÏÖÓй¤³ÌµÄ¸ÄÔì½Ï´ó£¬¿ª·¢ÓÐÐÄÎÞÁ¦£»ÒªÃ´¾ÍÊDzå¼þ¹¤³ÌºÍËÞÖ÷¹¤³ÌÏ໥ÒÀÀµ£¬Ç£Ò»·¢¶ø¶¯È«Éí£¬³É±¾¡¢·çÏÕ¶¼ºÜ¸ß¡£

²å¼þ·½°¸Ñ¡ÐÍ

»ùÓÚÉÏÊöÖÖÖÖÔ­Òò£¬ÎÒÃǾö¶¨×ÔÑвå¼þ»¯¼¼Êõ£¬ÓÚÊǾÍÓÐÁË APNP¡£APNP²ÉÓõIJå¼þ·½°¸ÊÇÖ±½Ó¼ÓÔØ APK Îļþ£¨APK ¸ñʽ²»±ä£¬ÄÚÈÝÓÐËùÐ޸ģ©£¬Ô­ÒòÓÐÈçϼ¸µã£º

¼æÈÝÐÔ¸ß

APK ÎļþµÄ¸ñʽ·Ç³£Îȶ¨£¬Ëü°üº¬Ò»¸ö App Õý³£ÔËÐеıØÒª×ÊÔ´£»Èκΰ汾µÄ Android ϵͳ£¬¶¼Ó¦¸ÃÕý³£½âÎö²¢ÔËÐÐÈÎÒâ°æ±¾Æ¥ÅäµÄ APK Îļþ£¬ÎÞÂÛÕâ¸ö APK ÎļþÊǺÎʱ²úÉúµÄ£»ÎÒÃÇÖ»ÒªÕýÈ·Ä£·Âϵͳ¼ÓÔØ APK µÄÐÐΪ£¬¾Í¿ÉÒÔ¼ÓÔØÈÎÒâÒ»¸ö²å¼þ APK Îļþ¡£

Ñз¢¸ôÀë

¼ÈÈ»ÊÇÖ±½Ó¼ÓÔØ APK Îļþ£¬ËùÒÔÔÚ APNP µÄÉè¼Æ·½°¸ÖУ¬Ã¿¸ö²å¼þ¶¼ÊÇÒ»¸öµ¥¶À¹¤³Ì£¬Õâ¾ÍÒâζ×ųýÁË×îºóµÄ¼¯³É²âÊԽ׶Σ¬²å¼þ¶ÔÓ¦µÄÕû¸öÈí¼þÉúÃüÖÜÆÚ¶¼ÊǶÀÁ¢µÄ£¬¼È½µµÍÁ˹ÜÀí¡¢Ð­×÷³É±¾£¬ÓÖ´Ùʹ²å¼þ²úÆ·µÄ·¢²¼¸ü¼ÓÁé»î¡£

½ÓÈë¼òµ¥

¼ÈÈ»ÊǶÀÁ¢¹¤³Ì£¬ÎÞÂÛÏÖÓеŤ³ÌÊÇÈçºÎÔËתµÄ£¬¿ª·¢ÕßΨһҪ×öµÄ¾ÍÊǰѲå¼þ¹¤³Ì´ÓÏÖÓй¤³ÌÖгéÀë³öÀ´¡£

ºËÐÄÊֶμ°Ô­Àí

Èç¹ûÖ±½Ó¼ÓÔØÒ»¸öԭʼ²å¼þµÄ APK Îļþ£¬¾ø´ó¶àÊýÇé¿öÏÂÊÇÎÞ·¨ÔËÐеģ¬Èç Class pre-verified Òì³£¡¢ResourceNotFound µÈ¡£

Òò´Ë APNP ÔÚ±£³Ö APK ¸ñʽ²»±äµÄÇé¿öÏ£¬¶ÔAPKÀïÃæµÄÄÚÈÝ×öÁËÕë¶ÔÐÔÐ޸ģ¬ºËÐÄÊÖ¶ÎÈçÏ£º

¹²Í¬ Dependency ÌÞ³ý

ÔÚÑз¢¹ý³ÌÖУ¬¾­³£ÐèÒªµÚÈý·½ÒÀÀµ Library£¨Dependency£©£¬¶øµ±²å¼þ¹¤³Ì£¨ÒÔϼò³Æ Plugin£©ºÍËÞÖ÷¹¤³Ì£¨ÒÔϼò³Æ Host£©°üº¬ÏàͬµÄ Dependency ʱ£¬¾ÍÐèÒªÌÞ³ý Plugin ÖÐµÄ Dependency¡£

ÕâÑùÒ»·½Ãæ¿ÉÒÔ±ÜÃâ Class pre-verified Òì³££¬ÁíÒ»·½ÃæÒ²¿ÉÒÔ¼õÉÙ²å¼þ°üµÄ´óС£¬ÌáÉý²å¼þ°üµÄÏÂÔØ & ¼ÓÔØËÙ¶È¡£

ʵÏÖ·½°¸£¨ÒÔ϶¼Ä¬ÈÏ IDE Ϊ Android Studio£©£ºÍ¨¹ý Gradle ²å¼þ£¬ÔÚ Plugin µÄ Transform ¹ý³ÌÖУ¬ÌÞ³ýÓë Host Ïàͬ Dependency µÄËùÓÐ×ÊÔ´¡£

Package ID ÐÞ¸Ä

ÔÚ Android ϵͳÖУ¬App ¶ÔÓ¦µÄ Package ID Êǹ̶¨µÄ£¬Ò²¾ÍÊÇ˵Èç¹ûÎÒÃDz»ÈËΪ¸ÉÔ¤£¬Plugin ºÍ Host ´ò°üÉú²úµÄ APK ÎļþÖУ¬ËùÓÐ Resource ID ÖÐµÄ Package ID ¶¼ÊÇÒ»ÑùµÄ£¬¼´£¨0x7f£©¡£

ÕâʱÈç¹ûÖ±½Ó¼ÓÔØ Plugin APK£¬±ØÈ»»á³öÏÖ Resource ÀàÐͲ»Æ¥Åä¡¢ÏÔʾ´íÂÒµÈÒì³££¬ËùÒÔÎÒÃÇÐÞ¸Ä Plugin µÄ APK µÄ Package ID¡££¨Package ID Âú×ã 0x01 < PID < 0x7f ¼´¿É£©

ʵÏÖ·½°¸£ºÒµÄÚ¹ØÓÚÐÞ¸Ä Package ID µÄ·½°¸ÓкܶࣨÈçÐÞ¸Ä aapt Ô´ÂëµÈ£©£¬APNP ²ÉÓõķ½°¸ÊÇÖ±½ÓÐÞ¸Ä×îºóÉú³ÉµÄ APK Îļþ¡£

ÏÈ¿´ÏÂÒ»¸ö¼òµ¥ APK µÄÎļþ½á¹¹£¬ÈçÏÂͼ£º

Éæ¼° Package ID Ð޸ĵĵط½ÓÐ 3 ´¦£º

R.class£¨classes.dex£©

resources.arsc

xml Îļþ

ÐÞ¸Ä R.class ÖÐµÄ Package ID

ÔÚ Gradle assemble Ö®ºó£¬»áÔÚ build/generated/source/r ÎļþÏÂÉú³ÉÏàÓ¦µÄ R.java Îļþ£¬ÈçÏÂͼ£º

´ËʱÎÒÃǽ« R ÎļþÖÐµÄ 0x7f Ö±½ÓÌæ»»³ÉÄ¿±ê Package ID £¬È»ºó¼ÌÐø½»¸ø Gradle ×öºóÐø²Ù×÷¡£

ÕâÑùÔÚ×îÖÕµÄ classes.dex ÖУ¬ÀïÃæµÄ R.class Îļþ¶ÔÓ¦µÄ Package ID ¾ÍÊÇÎÒÃÇÏëÒªÉèÖÃµÄ Package ID¡£

ÐÞ¸Ä arsc + xml ÖÐµÄ Package ID

²»Í¬ÓÚÉÏÃæÍ¨¹ý Hook Gradle ¹ý³ÌÐÞ¸ÄÖмäÉú³ÉµÄ R Îļþ£¬arsc + xml ÔòÊÇÖ±½Ó½âѹ×îÖÕµÄ APK ²¢ÐÞ¸ÄÄ¿±êÎļþ£¬È»ºóÖØÐÂÇ©Ãû¡£

Ê×ÏÈÎÒÃÇÐèÒª¶Ô APK ÎļþÖÐµÄ arsc + xml µÄÎļþ¸ñʽÓÐÒ»¶¨µÄÈÏʶ£¬Android ΪÁ˳ä·Ö¼õÉÙ APK ×ÔÉíµÄ´óС£¬ÔÚ±àÒëµÄ¹ý³ÌÖлá¶ÔËùÓеÄ×ÊÔ´½øÐÐÖØ×é + ѹËõ¡£

ÀýÈç values ÎļþϵÄÄÚÈݻᱻͳһÊÕ¼¯µ½ arsc ÎļþÖУ¬¶ø²»ÔÙÒÔÎļþµÄÐÎʽ´æÔÚ£»¶ø xml Ò²²»ÔÙÊÇԭʼµÄ xml Îļþ£¬xml ÖÐÄÚÈݻᱻ½øÒ»²½ÕûºÏ + ¸´Óá£

¶øÎÞÂÛÊÇ arsc Îļþ£¬»¹ÊÇ xml Îļþ£¬ÔÚËüÃÇÄÚ²¿¶¼ÊÇͨ¹ýÒ»¸ö¸ö¹Ì¶¨Êý¾Ý½á¹¹µÄ ResChunk ÒÔǶÌ× + ×éºÏµÄÐÎʽ¸÷×Ô´æ´¢×Å¡£

×ÊÔ´ÐÅÏ¢£ºÃ¿¶Î ResChunk µÄÄÚÈݶ¼ÒÔ 8 ×Ö½ÚµÄ ResChunk_header ¿ªÍ·£¬ÓÃÓÚÃèÊö ResChunk µÄÀàÐÍ + ³¤¶È£¬ÈçÏÂͼ£º

Ò²¾ÍÊÇ˵ arsc + xml ÖеÄËùÓÐÄÚÈݶ¼¿ÉÒÔ±»·´Ïò½âÎö³öÀ´£¬µ±³ä·ÖÁ˽âÿ¸ö ResChunk µÄÊý¾Ý½á¹¹ÒÔ¼°ÕÆÎÕ ResChunk ÖÐÄÄЩÄÚÈÝÊÇÐèÒªÐÞ¸ÄµÄ Package ID£¬¾Í¿ÉÒÔÏà¶ÔÇáËɵÄÍê³É¶Ô¶þ½øÖÆÎļþµÄÐ޸ġ£

Library Chunk ²åÈë

ÐÞ¸ÄÍê Package ID ºó£¬»¹ÐèÒªÔÚ resources.arsc ÎļþÖвåÈëÒ»¶Î Library Chunk £¬ÈçÏÂͼ£º

Library Chunk ÔÚ Android 5.0 Ö®ºó²Å³öÏÖ£¬¶ÔÓ¦µÄÀàÐÍÈçÏÂͼ£º

ÄÇôΪʲôÐèÒª²åÈë Library Chunk£¿Ô­ÒòÊÇÔÚ Android 5.0 Ö®ºó£¬ResTableÔÚ»ñÈ¡×ÊÔ´ÐÅϢʱ£¬Èç¹û×ÊÔ´º¬ÓÐ Parent£¨ResTable_map_entry£¬Èç style£©£¬»áÑéÖ¤ Parent µÄ Package ID ÊÇ·ñºÏ·¨£¬Ò²¾ÍÊÇ Package ID ÊDz»ÊÇÒѾ­×¢²á¹ýÁË¡£

Èç¹û lookupResourceId ûÓзµ»Ø NO_ERROR£¬Ôò±¨´í£¬¼ÌÐø¸ú½ø£¬ÈçÏÂͼ:

ÓÉÓÚÔÚÉÏÒ»»·½ÚÖУ¬ÎÒÃÇÒѾ­°Ñ Plugin ÖÐµÄ Package ID ÐÞ¸ÄÁË£¬ÉÏͼÖеľֲ¿±äÁ¿ packageId ¿Ï¶¨²»»áÊÇ APP_PACKAGE_ID ¡£

×îºó»áÔÚ mLookupTable Êý×éÖÐѰÕÒ packageId ÊÇ·ñÓжÔÓ¦µÄÖµ£¬Èç¹ûûÓУ¨ÖµÎª 0£©ÔòÅ׳öÒì³£¡£

ËùÒÔÎÒÃÇÐèÒª°Ñ×Ô¶¨ÒåµÄ Package ID ×¢²áµ½ mLookupTable Êý×éÖУ¬ÄÇôע²áµÄ¶¯×÷ÊÇÔÚʲôʱºò·¢ÉúµÄ£¿

ÔÚ App Æô¶¯²¢×ÊÔ´Ê״μÓÔØÊ±£¬»áµ÷ÓÃÏÂÃæµÄ·½·¨È¥½âÎö arsc Îļþ£¬ÈçÏÂͼ£º

Èç¹û·¢ÏÖÊÇ Library Chunk »áµ÷Óà addMapping£¬ÈçÏÂͼ£º

ÔÚ addMapping ÖУ¬ÎÒÃÇ»á°Ñ Library Chunk ÖÐµÄ packageId ÔÚ mLookupTable Êý×éÖнøÐÐ×¢²á£¨¾ÍÊǼòµ¥µÄ¸³Öµ£©£¬×¢²áÖ®ºóÎÒÃÇ×Ô¶¨ÒåµÄ Package ID ²Å»á±»ÏµÍ³ÈϿɣ¬´Ó¶øÈ·±£º¬ÓÐ Parent ×ÊÔ´µÄÕý³£½âÎö¡£

Attr ID Ìæ»»

Íê³ÉÉÏÃæ 3 ²½ºó£¬APK ¾ÍÒѾ­¿ÉÒÔ¼ÓÔØÁË£¬µ«ÊDzå¼þÉæ¼°µ½×Ô¶¨ÒåÊôÐ﵀ View £¬×Ô¶¨ÒåÊôÐÔ×ÜÊÇÎÞ·¨Õý³£¸³Öµ£¬ÕâÓÖÊÇʲôԭÒòÄØ£¿

ÒÔ ConstraintLayout ΪÀý£¬¼ÙÈç Plugin ºÍ Host µÄ Layout ²¼¾ÖÖж¼°üº¬ ConstraintLayout£¬²¢Í¬Ê±¶¼ÉèÖÃÁË ConstraintLayout µÄ×Ô¶¨ÒåÊôÐÔÈçÏ£º

ÄÇôÔÚ App ÔËÐеĹý³ÌÖУ¬ConstraintLayout »áͨ¹ý android.support.constraint.R.class »ñÈ¡½âÎö×Ô¶¨ÒåÊôÐÔ£¬ÈçÏÂͼ£º

¶ø android.support.constraint.R.class ÔÚÄÚ´æÖÐÖ»ÓÐÒ»·Ý£¬²¢ÇÒ»áÓÅÏȼÓÔØ Host£¬Òò´ËÔÚʵ¼ÊµÄÔËÐÐÄÚ´æÖУ¬R.class À´×ÔÓÚ Host¡£

ÓÉÓÚ Host ÖÐ R.class ÀïÃæµÄ Package ID ¶¼ÊÇ 0x7f £¬¶øÔÚÉÏÃæµÚ¶þ½ÚµÄÐÞ¸Ä Package ID »·½ÚÖУ¬Plugin ÀïÃæµÄ xml µÄ Package ID ÒѾ­±»ÎÒÃÇÐÞ¸ÄÁË£¨°üÀ¨ xml ÖÐËùÒýÓÃµÄ Attr ID£©¡£

Òò´Ëµ± Plugin ͨ¹ý Host µÄ R.class È¥½âÎö ConstrainLayout ʱ£¬±ØÈ»»á³öÏÖ×Ô¶¨ÒåÊôÐÔÎÞ·¨Õý³£½âÎöµÄÒì³£¡£

ËùÔÚ APNP ÔÚÐÞ¸Ä Plugin xml Îļþ Package ID µÄͬʱ£¬Èç¹û·¢ÏÖ Attr ͬÑù´æÔÚÓÚ Host ÖУ¬»á°Ñ Plugin xml ÎļþÖÐµÄ Attr ID Ìæ»»³É Host ÖÐµÄ Attr ID£¬´Ó¶ø±£Ö¤ Plugin ÖÐËùÓеÄ×Ô¶¨ÒåÊôÐÔÄܹ»Õý³£½âÎö£¨ºì¿ò£º0x7f01000f£¬0x7f010022£¬0x7f010026£¬0x7f01002b£©£¬ÈçÏÂͼ£º

·ñÔòÖ±½ÓÐÞ¸Ä Package ID£¨À¶¿ò£º0x7e010000£¬0x7e010001£¬0x7e010002£©¡£

ʵ¼ù³É¹û

ÔÚ APNP ʵ¼ÊÓ¦ÓÃÖ®ºó£¬Í¨¹ýËÕÄþÔÆ¼£Æ½Ì¨µÄʵʱÊý¾Ý¼à¿Ø£¬²¢Ã»Óз¢ÏÖÒò APNP ±¾ÉíÒýÆðµÄÃ÷ÏÔÒì³£¡£

´Ó´óÍŶӲ¢¼ç×÷Õ½µ½Ð¡ÍŶӴøÍ·³å·æ£¬¸ßЧµÄÑз¢Ä£Ê½Ò²Ê¹µÃ App ±¾ÉíµÄÕûÌå±ÀÀ£ÂÊʼÖÕά³ÖÔÚ 0.02% ÒÔÏ¡£

Ïà±È֮ǰµÄÑз¢Á÷³Ì£¬APNP ´øÀ´µÄÓ°ÏìÖ÷ÒªÓÐÏÂÃæ¼¸¸öµã£º

²úÆ·¸ü¾«Ï¸¡¢¶¨Î»¸üÃ÷È·

APNP ÊDzúÆ·¾«Ï¸»®·ÖºÍÃ÷È·¶¨Î»µÄ¼¼ÊõÖ§³Å£¬Ð¡ÍŶӵÄÑз¢Ä£Ê½£¬¼Ó¿ìÁ˲úÆ·µÄÂäʵÓëÉý¼¶¡£

Ñз¢ÖÜÆÚ¶Ì¡¢·¢²¼¸üÁé»î

²å¼þ¿Éµ¥¶ÀÉý¼¶¡¢¿É¶ÀÁ¢·¢²¼µÄÌØÕ÷£¬ÅäºÏ¶ÀÁ¢ÍŶӵÄרÈËרְ£¬µ¥Ò»²úÆ·¿ÉÒÔ´ïµ½Ò»ÖÜÒ»°æ±¾¡£

¹ÜÀí¸üÇáËÉ¡¢Ñз¢¸ü¸ßЧ

ͬ²½²úÆ·Ïߵľ«Ï¸»®·Ö£¬Ñз¢ÍŶÓÒ²Ç÷ÓÚ¸üС¡¢¸ü¶ÀÁ¢£¬¹ÜÀíÒ²ÏԵøü¼ÓÇáËÉ£»Í¬Ê±Ã÷È·µÄÔðÈηֹ¤£¬Ò²´Ù½øÁËÑз¢ÈËÔ±µÄ¹¤×÷ЧÂÊ¡£

·¢Õ¹Ç°¾°

Google ÔÚ½ñÄêµÄ IO ´ó»áÉÏÍÆ³öÁËÒ»ÖÖ¶¯Ì¬¼ÓÔØ·½°¸¡ª¡ªApp Bundles£¬¿ÉÒÔÈÃÓû§Í¨¹ý Google Play ¶¯Ì¬ÏÂÔØÓ¦Óù¦ÄÜ£¬¶øÇÒ App Bundles ²ÉÓõķ½°¸Ò²ÊÇÖ±½Ó¼ÓÔØ APK Îļþ¡£

ͨ¹ý·ÖÎö×îÖÕµÄ Feature Master APK Îļþ£¬Äã»á·¢ÏÖ App Bundles ¶Ô APK ×öÁËºÍ APNP ÏàͬµÄ²Ù×÷£ºÌÞ³ý Dependency¡¢ÐÞ¸Ä Package ID¡¢²åÈë Library Chunk¡¢Ìæ»» Attr ID¡£

Õâ¿´ËÆÇɺÏʵÔò±ØÈ»£¬ÒòΪ App Bundles ºÍ APNP ¶¼ÊÇÖ±½Ó¼ÓÔØ APK Îļþ£¬ËùÒÔÃæ¶ÔµÄÎÊÌâ¶¼ÊÇÒ»ÑùµÄ¡£

ÔÚ·½°¸ÉÏ APNP ¿ÉÒÔ˵ÓÐÁ˹ٷ½±£ÕÏ£¬¶øÇÒ APNP ÔÚºóÃæ»¹¿ÉÒÔ½è¼ø App Bundles µÄʵÏÖϸ½Ú£¬Èòå¼þ¼ÓÔØ¸ü¼Ó¸ßЧ¡¢°²È«¡£

¶øÓÉÓÚ Android P ¶ÔÒþ²Ø API µ÷ÓõÄÏÞÖÆ£¬ºÜ¶àÈËÈÏΪ²å¼þ»¯·½°¸½«²»ÔÙ¿ÉÐС£

µ«ÊÇ Google ҲͬʱÌṩÁË light greylist£¬²¢ÇÒ¹úÄÚÊÖ»ú³§É̿϶¨²»ÔÊÐíÈÃÖ÷Á÷ App ÎÞ·¨Ê¹ÓõÄÇé¿ö·¢Éú£¬ËùÒÔÎÒ¾õµÃÔںܳ¤Ò»¶Îʱ¼äÄÚ£¬²å¼þ»¯ÒÀÈ»¿ÉÒÔÕý³£ÔËת¡£

 
   
2578 ´Îä¯ÀÀ       35
Ïà¹ØÎÄÕÂ

Éî¶È½âÎö£ºÇåÀíÀôúÂë
ÈçºÎ±àд³öÓµ±§±ä»¯µÄ´úÂë
ÖØ¹¹-ʹ´úÂë¸ü¼ò½àÓÅÃÀ
ÍŶÓÏîÄ¿¿ª·¢"±àÂë¹æ·¶"ϵÁÐÎÄÕÂ
Ïà¹ØÎĵµ

ÖØ¹¹-¸ÄÉÆ¼ÈÓдúÂëµÄÉè¼Æ
Èí¼þÖØ¹¹v2
´úÂëÕû½àÖ®µÀ
¸ßÖÊÁ¿±à³Ì¹æ·¶
Ïà¹Ø¿Î³Ì

»ùÓÚHTML5¿Í»§¶Ë¡¢Web¶ËµÄÓ¦Óÿª·¢
HTML 5+CSS ¿ª·¢
ǶÈëʽC¸ßÖÊÁ¿±à³Ì
C++¸ß¼¶±à³Ì