锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲女初尝黑人巨高清,亚洲AV无码专区在线观看成人,国产成人亚洲综合无http://m.tkk7.com/TiGERTiAN/----TiGERTiANzh-cnFri, 09 May 2025 04:54:54 GMTFri, 09 May 2025 04:54:54 GMT60MVC/MVP/MVVMhttp://m.tkk7.com/TiGERTiAN/archive/2017/05/10/432509.htmlTiGERTiANTiGERTiANWed, 10 May 2017 03:03:00 GMThttp://m.tkk7.com/TiGERTiAN/archive/2017/05/10/432509.htmlhttp://m.tkk7.com/TiGERTiAN/comments/432509.htmlhttp://m.tkk7.com/TiGERTiAN/archive/2017/05/10/432509.html#Feedback0http://m.tkk7.com/TiGERTiAN/comments/commentRss/432509.htmlhttp://m.tkk7.com/TiGERTiAN/services/trackbacks/432509.html鍚?/h2>

濡傛灉鎶婅繖涓夎呮斁鍦ㄤ竴璧鋒瘮杈冿紝鍏堣涓涓嬩笁鑰呯殑鍏卞悓鐐癸紝涔熷氨鏄疢odel鍜孷iew錛?/p>

  • Model錛氭暟鎹璞★紝鍚屾椂錛屾彁渚涙湰搴旂敤澶栭儴瀵瑰簲鐢ㄧ▼搴忔暟鎹殑鎿嶄綔鐨勬帴鍙o紝涔熷彲鑳藉湪鏁版嵁鍙樺寲鏃跺彂鍑哄彉鏇撮氱煡銆?span style="box-sizing: border-box; outline: 0px !important; font-weight: 700;">Model涓嶄緷璧栦簬View鐨勫疄鐜?/span>錛屽彧瑕佸閮ㄧ▼搴忚皟鐢∕odel鐨勬帴鍙e氨鑳藉瀹炵幇瀵規(guī)暟鎹殑澧炲垹鏀規(guī)煡銆?/p>

  • View錛歎I灞傦紝鎻愪緵瀵規(guī)渶緇堢敤鎴風(fēng)殑浜や簰鎿嶄綔鍔熻兘錛屽寘鎷琔I灞曠幇浠g爜鍙?qiáng)涓浜涚浉鍏崇殑鐣岄潰閫昏緫浠g爜銆?/p>

寮?/h2>

涓夎呯殑宸紓鍦ㄤ簬濡備綍綺樺悎View鍜孧odel錛屽疄鐜扮敤鎴風(fēng)殑浜や簰鎿嶄綔浠ュ強(qiáng)鍙樻洿閫氱煡

  • Controller

Controller鎺ユ敹View鐨勬搷浣滀簨浠訛紝鏍規(guī)嵁浜嬩歡涓嶅悓錛屾垨鑰呰皟鐢∕odel鐨勬帴鍙h繘琛屾暟鎹搷浣滐紝鎴栬呰繘琛孷iew鐨勮煩杞紝浠庤屼篃鎰忓懗鐫涓涓狢ontroller鍙互瀵瑰簲澶氫釜View銆侰ontroller瀵筕iew鐨勫疄鐜頒笉澶叧蹇?jī)锛屽彧浼?xì)琚姩鍦版帴鏀訛紝Model鐨勬暟鎹彉鏇翠笉閫氳繃Controller鐩存帴閫氱煡View錛岄氬父View閲囩敤瑙傚療鑰呮ā寮忕洃鍚琈odel鐨勫彉鍖栥?/p>

  • Presenter

Presenter涓嶤ontroller涓鏍鳳紝鎺ユ敹View鐨勫懡浠わ紝瀵筂odel榪涜鎿嶄綔錛涗笌Controller涓嶅悓鐨勬槸Presenter浼?xì)鍙嶄綔鐢ㄤ簬View錛孧odel鐨勫彉鏇撮氱煡棣栧厛琚玃resenter鑾峰緱錛岀劧鍚嶱resenter鍐嶅幓鏇存柊View銆備竴涓狿resenter鍙搴斾簬涓涓猇iew銆傛牴鎹甈resenter鍜孷iew瀵歸昏緫浠g爜鍒嗘媴鐨勭▼搴︿笉鍚岋紝榪欑妯″紡鍙堟湁涓ょ鎯呭喌錛歅assive View鍜孲upervisor Controller銆?/p>

  • ViewModel

娉ㄦ剰榪欓噷鐨?#8220;Model”鎸囩殑鏄疺iew鐨凪odel錛岃窡MVVM涓殑涓涓狹odel涓嶆槸涓鍥炰簨銆傛墍璋揤iew鐨凪odel灝辨槸鍖呭惈View鐨勪竴浜涙暟鎹睘鎬у拰鎿嶄綔鐨勮繖涔堜竴涓笢涓滐紝榪欑妯″紡鐨勫叧閿妧鏈氨鏄暟鎹粦瀹氾紙data binding錛夛紝View鐨勫彉鍖栦細(xì)鐩存帴褰卞搷ViewModel錛孷iewModel鐨勫彉鍖栨垨鑰呭唴瀹逛篃浼?xì)鐩存帴浣撶幇鍦╒iew涓娿傝繖縐嶆ā寮忓疄闄呬笂鏄鏋舵浛搴旂敤寮鍙戣呭仛浜?jiǎn)涓浜涘伐浣滐紝寮鍙戣呭彧闇瑕佽緝?yōu)畱鐨勪唬鐮仦p兘瀹炵幇姣旇緝澶嶆潅鐨勪氦浜掋?/p>

TiGERTiAN 2017-05-10 11:03 鍙戣〃璇勮
]]>Volley+Gson+MQTT瀹炵幇涓濂楁帴媧懼崟緋葷粺http://m.tkk7.com/TiGERTiAN/archive/2016/08/20/431647.htmlTiGERTiANTiGERTiANSat, 20 Aug 2016 04:23:00 GMThttp://m.tkk7.com/TiGERTiAN/archive/2016/08/20/431647.htmlhttp://m.tkk7.com/TiGERTiAN/comments/431647.htmlhttp://m.tkk7.com/TiGERTiAN/archive/2016/08/20/431647.html#Feedback0http://m.tkk7.com/TiGERTiAN/comments/commentRss/431647.htmlhttp://m.tkk7.com/TiGERTiAN/services/trackbacks/431647.htmlGson綆鍖栦簡(jiǎn)Json鐨勫鐞嗭紝浣垮緱瀵硅薄鍜孞son鎶ユ枃涔嬮棿鐨勪簰鐩歌漿鎹㈠彉寰楀緢瀹規(guī)槗錛屼唬鐮佹洿綆媧侊紱
MQTT瀹炵幇娑堟伅鐨勬帹閫佽繕鏄緢涓嶉敊鐨勶紱

TiGERTiAN 2016-08-20 12:23 鍙戣〃璇勮
]]>
Android浼犳劅鍣ㄤ粙緇?/title><link>http://m.tkk7.com/TiGERTiAN/archive/2015/11/18/428265.html</link><dc:creator>TiGERTiAN</dc:creator><author>TiGERTiAN</author><pubDate>Wed, 18 Nov 2015 07:33:00 GMT</pubDate><guid>http://m.tkk7.com/TiGERTiAN/archive/2015/11/18/428265.html</guid><wfw:comment>http://m.tkk7.com/TiGERTiAN/comments/428265.html</wfw:comment><comments>http://m.tkk7.com/TiGERTiAN/archive/2015/11/18/428265.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/TiGERTiAN/comments/commentRss/428265.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/TiGERTiAN/services/trackbacks/428265.html</trackback:ping><description><![CDATA[     鎽樿: 澶у鏁癆ndroid璁懼鏈夊唴緗殑浼犳劅鍣紝鏉ユ祴閲忚繍鍔紝鏂瑰悜鍜屽悇縐嶇幆澧冩潯浠躲傝繖浜涗紶鎰熷櫒鑳芥彁渚涢珮綺懼害鍜屽噯紜害鐨勫師濮嬫暟鎹紝濡傛灉浣犳兂鐩戞帶璁懼涓夌淮榪愬姩鎴栬呬綅緗紝鎴栬呬綘鎯崇洃鎺ц澶囧懆鍥寸殑鐜鍙樺寲錛屾槸闈炲父鏈夌敤鐨勩備緥濡傦紝娓告垙鍙兘璺熻釜璁懼閲嶅姏浼犳劅鍣ㄧ殑鏁版嵁錛屾潵鎺ㄦ柇澶嶆潅鐨勭敤鎴烽楗板拰鍔ㄤ綔錛屼緥濡傚炬枩錛岄渿鍔紝鏃嬭漿錛屾垨鑰呮尟騫呫傚悓鏍風(fēng)殑錛屽ぉ姘斿簲鐢ㄥ彲鑳戒嬌鐢ㄨ澶囩殑娓╁害浼犳劅鍣ㄥ拰婀垮害浼犳劅鍣ㄧ殑鏁版嵁鏉ヨ綆楀拰鎶ュ憡緇撻湶鐐癸紝鎴栬呮梾琛屽簲鐢ㄥ彲鑳戒嬌鐢ㄧ鍦轟紶鎰?..  <a href='http://m.tkk7.com/TiGERTiAN/archive/2015/11/18/428265.html'>闃呰鍏ㄦ枃</a><img src ="http://m.tkk7.com/TiGERTiAN/aggbug/428265.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/TiGERTiAN/" target="_blank">TiGERTiAN</a> 2015-11-18 15:33 <a href="http://m.tkk7.com/TiGERTiAN/archive/2015/11/18/428265.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>OSGi and Hadoop and Node.jshttp://m.tkk7.com/TiGERTiAN/archive/2015/02/23/422997.htmlTiGERTiANTiGERTiANMon, 23 Feb 2015 02:12:00 GMThttp://m.tkk7.com/TiGERTiAN/archive/2015/02/23/422997.htmlhttp://m.tkk7.com/TiGERTiAN/comments/422997.htmlhttp://m.tkk7.com/TiGERTiAN/archive/2015/02/23/422997.html#Feedback0http://m.tkk7.com/TiGERTiAN/comments/commentRss/422997.htmlhttp://m.tkk7.com/TiGERTiAN/services/trackbacks/422997.htmlOpen Service Gateway initiative(寮鏀炬湇鍔$綉鍏沖崗璁?span style="color: #545454; font-family: arial, sans-serif; font-size: small; font-weight: bold; line-height: 18.2000007629395px; background-color: #ffffff;">)
http://www.osgi.org/Technology/HomePage

Hadoop
http://hadoop.apache.org/

Node.js
https://cnodejs.org/
http://nodejs.org/


TiGERTiAN 2015-02-23 10:12 鍙戣〃璇勮
]]>
javacc宸ュ叿灝忚http://m.tkk7.com/TiGERTiAN/archive/2015/01/31/422602.htmlTiGERTiANTiGERTiANSat, 31 Jan 2015 05:12:00 GMThttp://m.tkk7.com/TiGERTiAN/archive/2015/01/31/422602.htmlhttp://m.tkk7.com/TiGERTiAN/comments/422602.htmlhttp://m.tkk7.com/TiGERTiAN/archive/2015/01/31/422602.html#Feedback0http://m.tkk7.com/TiGERTiAN/comments/commentRss/422602.htmlhttp://m.tkk7.com/TiGERTiAN/services/trackbacks/422602.htmlhttps://javacc.java.net/

Java Compiler Compiler tm (JavaCC tm) is the most popular parser generator for use with Java tm applications. A parser generator is a tool that reads a grammar specification and converts it to a Java program that can recognize matches to the grammar. In addition to the parser generator itself, JavaCC provides other standard capabilities related to parser generation such as tree building (via a tool called JJTree included with JavaCC), actions, debugging, etc.

涓嬭澆鍚庣殑浣跨敤鏂瑰紡錛圡ac&Linux錛夛細(xì)

echo 'java -cp /path/to/javacc.jar $(basename $0) "$@"' > javacc

chmod 755 javacc

ln -s javacc jjtree

ln -s javacc jjdoc





TiGERTiAN 2015-01-31 13:12 鍙戣〃璇勮
]]>
榪樻槸榪欓噷姣旇緝瀹夐潤(rùn)http://m.tkk7.com/TiGERTiAN/archive/2013/12/10/407419.htmlTiGERTiANTiGERTiANTue, 10 Dec 2013 13:46:00 GMThttp://m.tkk7.com/TiGERTiAN/archive/2013/12/10/407419.htmlhttp://m.tkk7.com/TiGERTiAN/comments/407419.htmlhttp://m.tkk7.com/TiGERTiAN/archive/2013/12/10/407419.html#Feedback0http://m.tkk7.com/TiGERTiAN/comments/commentRss/407419.htmlhttp://m.tkk7.com/TiGERTiAN/services/trackbacks/407419.html寰崥--寰堝皯涓婁簡(jiǎn)
鏈嬪弸鍦?-浜哄お澶?br />铏芥劅瑙夌ぞ浜や綋緋昏秺鏉ヨ秺鍚戠瀵嗗寲鍙戝睍錛屼絾榪樻槸榪欓噷濂斤紝娌′漢鐭ワ紝娌′漢璇嗭紝涔熶笉浼?xì)鏈夐偅涔堝錆h璇勮鎴戝彂鐨勪笢瑗匡紝鎴栬呮棤鑱婄殑鐐?#8220;璧?#8221;銆?br />鍓嶄袱騫寸殑榪瘋尗錛屽埌鐜板湪鐨勯噸鑾鋒柟鍚戯紝涔︽湰鑰屼笉鏄漢璁╂垜鎰熻鏇村畨蹇?jī)锛屽枩娆㈠仛涓涓埍瀛︿範(fàn)鐨勪漢銆傚墠閫斿啀榪瘋尗錛屼篃涓嶈兘榪峰け鑷繁錛涢亾璺啀鑸掓湇錛屼篃涓嶈兘蹇樿鑷繁銆?br />甯屾湜鑷繁涓嶈嫻戞祽鍣╁櫓灝辮繖鏍瘋蛋浜?jiǎn)銆?br />





TiGERTiAN 2013-12-10 21:46 鍙戣〃璇勮
]]>
鍧戠埞鐨凙ndroid鏂癆DThttp://m.tkk7.com/TiGERTiAN/archive/2013/05/13/399233.htmlTiGERTiANTiGERTiANMon, 13 May 2013 13:18:00 GMThttp://m.tkk7.com/TiGERTiAN/archive/2013/05/13/399233.htmlhttp://m.tkk7.com/TiGERTiAN/comments/399233.htmlhttp://m.tkk7.com/TiGERTiAN/archive/2013/05/13/399233.html#Feedback0http://m.tkk7.com/TiGERTiAN/comments/commentRss/399233.htmlhttp://m.tkk7.com/TiGERTiAN/services/trackbacks/399233.html


TiGERTiAN 2013-05-13 21:18 鍙戣〃璇勮
]]>
濡備綍寮鍚疉ndroid鏂版墜鏈虹殑璋冭瘯妯″紡http://m.tkk7.com/TiGERTiAN/archive/2013/04/09/397602.htmlTiGERTiANTiGERTiANTue, 09 Apr 2013 12:48:00 GMThttp://m.tkk7.com/TiGERTiAN/archive/2013/04/09/397602.htmlhttp://m.tkk7.com/TiGERTiAN/comments/397602.htmlhttp://m.tkk7.com/TiGERTiAN/archive/2013/04/09/397602.html#Feedback0http://m.tkk7.com/TiGERTiAN/comments/commentRss/397602.htmlhttp://m.tkk7.com/TiGERTiAN/services/trackbacks/397602.html鍦?/system/etc/init.d 榪欎釜鐩綍涓嬶紝鏈夊緢澶氳剼鏈紝鎶婂畠浠叏閮ㄥ鍑猴紙鏂逛究鏌ユ壘錛?鏃犳剰涓湪 99snakes 榪欎釜鏂囦歡鎵懼埌浜?jiǎn)涓鍙?/span>
  1. # disable logger - (comment and reboot for logcat)
  2. rm /dev/log/main
澶嶅埗浠g爜
鎰熷姩涓傘傘傛妸rm /dev/log/main 榪欏彞鍘繪帀灝辮浜?jiǎn)~閲嶅惎鍚庡氨鍙互璋冭瘯浜?jiǎn)锛寴q欎笅涓嶇敤鍒峰洖鍘熺敓鐨勫唴鏍鎬簡(jiǎn)錛屽搱鍝堬紝鐖絶

TiGERTiAN 2013-04-09 20:48 鍙戣〃璇勮
]]>
WindowsPhone涓祫婧愬浗闄呭寲鐨勫紑鍙?/title><link>http://m.tkk7.com/TiGERTiAN/archive/2012/09/14/387708.html</link><dc:creator>TiGERTiAN</dc:creator><author>TiGERTiAN</author><pubDate>Fri, 14 Sep 2012 03:28:00 GMT</pubDate><guid>http://m.tkk7.com/TiGERTiAN/archive/2012/09/14/387708.html</guid><wfw:comment>http://m.tkk7.com/TiGERTiAN/comments/387708.html</wfw:comment><comments>http://m.tkk7.com/TiGERTiAN/archive/2012/09/14/387708.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/TiGERTiAN/comments/commentRss/387708.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/TiGERTiAN/services/trackbacks/387708.html</trackback:ping><description><![CDATA[1銆佸浜庡簲鐢ㄥ悕縐?App Title)鍜屽紑濮嬪睆騫曠殑蹇嵎鏂瑰紡(Tile)鍚嶇О錛岄渶瑕佸弬鐓?a >http://msdn.microsoft.com/en-us/library/windowsphone/develop/ff967550%28v=vs.92%29.aspx</a> 鏉ュ紑鍙戯紝榪欓噷鎻愪緵涓涓揩鎹風(fēng)殑鐢熸垚宸ュ叿<a href="/Files/TiGERTiAN/WP7AppResLib.zip">/Files/TiGERTiAN/WP7AppResLib.zip<br /></a>鍦╓MAppManifest.xml涓殑璋冪敤鏂瑰紡Title="@AppResLib.dll,-100"     <Title>@AppResLib.dll,-200</Title>錛?00鍜?00鍒嗗埆瀵瑰簲浜?jiǎn)App Title鍜孴ile銆?br /><br />2銆佸湪紼嬪簭鍐呯殑鍥介檯鍖栵紝鍦ㄥ紑鍙戝伐紼嬩腑錛屾柊寤轟竴涓猂esource鐩綍錛屼笅闈㈡柊寤篈ppResource.resx璧勬簮錛岄拡瀵逛笉鍚岃璦鍙互寤虹珛涓嶅悓鐨勮祫婧怉ppResource.en-US.resx絳夈傚湪紼嬪簭涓洿鎺ヤ嬌鐢ㄤ互涓嬪嚱鏁板氨鍙互璋冪敤宸茬粡閰嶇疆濂界殑鍥介檯鍖栬祫婧愶細(xì)<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->        <span style="color: #0000FF; ">private</span> <span style="color: #0000FF; ">static</span> <span style="color: #0000FF; ">readonly</span> ResourceManager ResourceManager = <span style="color: #0000FF; ">new</span> ResourceManager("XXXX.Resource.AppResource", Assembly.GetExecutingAssembly());<br />        <br />        <span style="color: #0000FF; ">public</span> <span style="color: #0000FF; ">static</span> <span style="color: #0000FF; ">string</span> GetString(<span style="color: #0000FF; ">string</span> keyName)<br />        {<br />            <span style="color: #0000FF; ">return</span> Utilities.ResourceManager.GetString(keyName);<br />        }</div><br />3銆佸浜庨渶瑕佹敮鎸佺殑璇█錛岃繕瑕佷慨鏀筩sproj鏂囦歡錛屼慨鏀瑰涓嬶細(xì)<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->    <span style="color: #0000FF; "><</span><span style="color: #800000; ">SilverlightApplication</span><span style="color: #0000FF; ">></span>true<span style="color: #0000FF; "></</span><span style="color: #800000; ">SilverlightApplication</span><span style="color: #0000FF; ">></span><br />    <span style="color: #0000FF; "><</span><span style="color: red; ">SupportedCultures</span><span style="color: #0000FF; ">></span>zh-CN;en-US;<br />    <span style="color: #0000FF; "></</span><span style="color: red; ">SupportedCultures</span><span style="color: #0000FF; ">></span><br />    <span style="color: #0000FF; "><</span><span style="color: #800000; ">XapOutputs</span><span style="color: #0000FF; ">></span>true<span style="color: #0000FF; "></</span><span style="color: #800000; ">XapOutputs</span><span style="color: #0000FF; ">></span></div><img src ="http://m.tkk7.com/TiGERTiAN/aggbug/387708.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/TiGERTiAN/" target="_blank">TiGERTiAN</a> 2012-09-14 11:28 <a href="http://m.tkk7.com/TiGERTiAN/archive/2012/09/14/387708.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>Android搴旂敤鍐呭絳懼悕姣旇緝http://m.tkk7.com/TiGERTiAN/archive/2012/07/04/382227.htmlTiGERTiANTiGERTiANWed, 04 Jul 2012 13:18:00 GMThttp://m.tkk7.com/TiGERTiAN/archive/2012/07/04/382227.htmlhttp://m.tkk7.com/TiGERTiAN/comments/382227.htmlhttp://m.tkk7.com/TiGERTiAN/archive/2012/07/04/382227.html#Feedback0http://m.tkk7.com/TiGERTiAN/comments/commentRss/382227.htmlhttp://m.tkk7.com/TiGERTiAN/services/trackbacks/382227.html鍦ˋndroid緋葷粺澶栭儴鍜屽唴閮ㄨ鍙朅ndroid搴旂敤鐨勭鍚?/a>錛夛紝鍙戠幇鍦ㄦ煇浜涙満鍣ㄤ笂錛岃鍙栧畨瑁呭寘鐨勭鍚嶆湁鐨勬椂鍊欎負(fù)絀猴紝鎵浠ユ壘浜?jiǎn)鍏朵粬鍔炴硶銆?br />
    public static String getPathWithPackageName(Context paramContext,
            String paramString) {
        PackageManager pm = paramContext.getPackageManager();
        try {
            PackageInfo pi = pm.getPackageInfo(paramString, 1);
            System.out.println(pi.applicationInfo.publicSourceDir);
            return pi.applicationInfo.publicSourceDir;
        } catch (PackageManager.NameNotFoundException localNameNotFoundException) {

        }
        return null;
    }

    public static String getFileSignatureMd5(String filePath) {
        try {
            JarFile jarFile = new JarFile(filePath);
            JarEntry jarEntry = jarFile.getJarEntry("AndroidManifest.xml");
            if (jarEntry != null) {
                try {
                    Certificate[] certs = jarEntry.getCertificates();
                    byte[] certBytes = certs[0].getEncoded();
                    String main = StringUtilities
                            .bytesToHexString(CryptoUtilities
                                    .encryptByMD5(certBytes));
                    System.out.println("new to Char " + main.length() + " apk:"
                            + main);
                    return main;
                } catch (CertificateEncodingException localCertificateEncodingException) {

                }
            }
        } catch (IOException e) {
            e.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }

    Handler handler3;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        String installedPath = getPathWithPackageName(this,
                "cn.emagsoftware.gamehall");
        System.out.println("installedPath=" + installedPath);
        String installedSig = getFileSignatureMd5(installedPath);
        System.out.println("installedSig=" + installedSig);

        String apk = "/sdcard/1.apk";
        String remoteSig = getFileSignatureMd5(apk);
        System.out.println("remoteSig=" + remoteSig);
        System.out.println(installedSig.equals(remoteSig));
    }










TiGERTiAN 2012-07-04 21:18 鍙戣〃璇勮
]]>
2012騫寸涓瀛e害縐誨姩浜掕仈緗戝簲鐢ㄤ互鍙?qiáng)寮鍙戣呯幇鐘舵姤鍛?/title><link>http://m.tkk7.com/TiGERTiAN/archive/2012/06/03/379840.html</link><dc:creator>TiGERTiAN</dc:creator><author>TiGERTiAN</author><pubDate>Sun, 03 Jun 2012 02:16:00 GMT</pubDate><guid>http://m.tkk7.com/TiGERTiAN/archive/2012/06/03/379840.html</guid><wfw:comment>http://m.tkk7.com/TiGERTiAN/comments/379840.html</wfw:comment><comments>http://m.tkk7.com/TiGERTiAN/archive/2012/06/03/379840.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/TiGERTiAN/comments/commentRss/379840.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/TiGERTiAN/services/trackbacks/379840.html</trackback:ping><description><![CDATA[<p style="margin: 0px; padding: 0px; text-indent: 2em; line-height: 23px; color: #333333; font-family: Tahoma, 瀹嬩綋; background-color: #ffffff; "><span style="margin: 0px; padding: 0px; color: #696969; ">2012騫達(dá)紝涓浗縐誨姩浜掕仈緗戠浉姣旀鍓嶏紝鍙戝睍灝嗘洿榪呴燂紝緇堢璁懼灝嗘洿鏅強(qiáng)錛岄偅涔堬紝鎴戜滑鑳戒粠榪囧幓鐨勭涓瀛e害錛岀湅鍑轟粖騫翠腑鍥界Щ鍔ㄤ簰鑱旂綉浼?xì)鍛堢幇鎬庢牱鐨勫彂灞曡秼鍔垮憿錛?/span></p><p style="margin: 0px; padding: 0px; text-indent: 2em; line-height: 23px; color: #333333; font-family: Tahoma, 瀹嬩綋; background-color: #ffffff; "><span style="margin: 0px; padding: 0px; color: #696969; ">榪戞湡錛屾垜浠牴鎹弸鐩熺Щ鍔ㄧ粺璁″垎鏋愬鉤鍙扮殑閮ㄥ垎鏁版嵁錛屽涓浗縐誨姩搴旂敤鍙戝睍鐜扮姸榪涜浜?jiǎn)鐮斀I跺拰鍒嗘瀽錛屽茍涓旈氳繃瀵瑰箍澶хЩ鍔ㄥ簲鐢ㄥ紑鍙戣呯殑璋冩煡閫忚浜?jiǎn)鍥藉唴APP寮鍙戣呯殑鐜扮姸銆傚笇鏈涜兘澶熶負(fù)縐誨姩浜掕仈緗戝垱涓氳呮彁渚涙渶鏈変環(huán)鍊肩殑鍙傝冿紒</span></p><p style="margin: 0px; padding: 0px; text-indent: 2em; line-height: 23px; color: #333333; font-family: Tahoma, 瀹嬩綋; background-color: #ffffff; "> </p><p style="margin: 0px; padding: 0px; text-indent: 2em; line-height: 23px; color: #333333; font-family: Tahoma, 瀹嬩綋; background-color: #ffffff; "><span style="margin: 0px; padding: 0px; font-size: 16px; "><span style="margin: 0px; padding: 0px; color: #696969; "><strong style="margin: 0px; padding: 0px; ">2011騫?鏈?#8212;—2012騫?鏈?TOP100搴旂敤澧為暱瓚嬪娍</strong></span></span></p><p style="margin: 0px; padding: 0px; text-indent: 2em; line-height: 23px; color: #333333; font-family: Tahoma, 瀹嬩綋; background-color: #ffffff; "><a rel="" target="" title="" style="margin: 0px; padding: 0px; text-decoration: none; color: #3f6dcc; cursor: url(http://blog.umeng.com/wp-content/plugins/auto-highslide/highslide/graphics/zoomin.cur), pointer; outline: none; "><img alt="" size-full="" wp-image-1714"="" data-pinit="registered" height="465" src="http://blog.umeng.com/wp-content/uploads/2012/06/1.jpg" title="1" width="574" style="margin: 0px; padding: 0px 0px 18px; border: 0px; max-width: 100%; " /></a></p><p style="margin: 0px; padding: 0px; text-indent: 2em; line-height: 23px; color: #333333; font-family: Tahoma, 瀹嬩綋; background-color: #ffffff; "><span style="margin: 0px; padding: 0px; color: #696969; ">     浠?011騫寸殑3鏈堜喚鍒頒粖騫寸殑3鏈堜喚錛岀Щ鍔ㄥ簲鐢ㄦ棤璁烘槸媧昏穬鐢ㄦ埛榪樻槸鏃ュ惎鍔ㄦ鏁伴兘鏈変簡(jiǎn)鍗佽凍鐨勫闀褲傛垜浠寜鐓у簲鐢ㄧ殑绱瀹夎閲忎綔涓烘帓搴忔爣鍑嗭紝閫夊彇浜?jiǎn)TOP100鐨勫簲鐢ㄤ綔涓虹粺璁℃牱鏈紝鐮旂┒鍚庡彂鐜版椿璺冪敤鎴峰拰鏃ュ惎鍔ㄥ潎姣斿幓騫寸殑3鏈堜喚澧為暱浜?鍊嶄箣澶氥傚彲瑙佽秺鏉ヨ秺澶氱殑鐢ㄦ埛寮濮嬫帴鍙楀茍浜敤縐誨姩浜掕仈緗戜負(fù)浜轟滑鐢熸椿甯︽潵鐨勪究鍒┿?/span></p><p style="margin: 0px; padding: 0px; text-indent: 2em; line-height: 23px; color: #333333; font-family: Tahoma, 瀹嬩綋; background-color: #ffffff; "> </p><p style="margin: 0px; padding: 0px; text-indent: 2em; line-height: 23px; color: #333333; font-family: Tahoma, 瀹嬩綋; background-color: #ffffff; "><span style="margin: 0px; padding: 0px; font-size: 16px; "><span style="margin: 0px; padding: 0px; color: #696969; "><strong style="margin: 0px; padding: 0px; ">鐢ㄦ埛鍦扮悊鍒嗗竷&鑱旂綉鏂瑰紡&榪愯惀鍟嗗垎甯?/strong></span></span></p><p style="margin: 0px; padding: 0px; text-indent: 2em; line-height: 23px; color: #333333; font-family: Tahoma, 瀹嬩綋; background-color: #ffffff; "><a rel="" target="" title="" style="margin: 0px; padding: 0px; text-decoration: none; color: #3f6dcc; cursor: url(http://blog.umeng.com/wp-content/plugins/auto-highslide/highslide/graphics/zoomin.cur), pointer; outline: none; "><img alt="" size-full="" wp-image-1715"="" data-pinit="registered" height="437" src="http://blog.umeng.com/wp-content/uploads/2012/06/2.jpg" title="2" width="576" style="margin: 0px; padding: 0px 0px 18px; border: 0px; max-width: 100%; " /></a></p><p align="left" style="margin: 0px; padding: 0px; text-indent: 2em; line-height: 23px; color: #333333; font-family: Tahoma, 瀹嬩綋; background-color: #ffffff; "><span style="margin: 0px; padding: 0px; color: #696969; ">鍏充簬涓浗縐誨姩浜掕仈緗戠敤鎴風(fēng)殑鍦扮悊鍒嗗竷錛屽箍涓溿佹睙鑻忋佸寳浜佹禉姹熷拰紱忓緩浜旂渷鎴栬呯洿杈栧競(jìng)鎺掑湪浜?jiǎn)鍓嶄簲鍚嶇殑浣嵕|紝鍗犳嵁浜?jiǎn)鍏ㄥ浗鐢ㄦ埛鋯鹃鐨?0.7%銆傚湪2011騫寸涓夊搴︾殑鏃跺欙紝鎴戜滑涔熷彂甯冧竴浠芥暟鎹姤鍛?鏄劇ず鐢ㄦ埛浠介鍓嶄簲鐨勭渷浠芥垨鑰呯洿杈栧競(jìng)鏄箍涓溿佹睙鑻忋佹禉姹熴佸寳浜拰涓婃搗錛屽崰鎹叏鍥界敤鎴蜂喚棰濈殑44.6%銆傚彟澶栵紝2011騫寸浜屽搴﹀墠浜斿悕鐪佷喚鎴栫洿杈栧競(jìng)鎵鍗犳諱喚棰濇槸49.4%銆備笉闅劇湅鍑猴紝縐誨姩浜掕仈緗戝悜浜岀嚎鍩庡競(jìng)钄撳歡鐨勮秼鍔夸緷鐒舵槸鎸佺畫騫朵笖涓嶅彲閫嗚漿鐨勩?/span></p><p style="margin: 0px; padding: 0px; text-indent: 2em; line-height: 23px; color: #333333; font-family: Tahoma, 瀹嬩綋; background-color: #ffffff; "></p><p align="left" style="margin: 0px; padding: 0px; text-indent: 2em; line-height: 23px; color: #333333; font-family: Tahoma, 瀹嬩綋; background-color: #ffffff; "><span style="margin: 0px; padding: 0px; color: #696969; ">鍏充簬鑱旂綉鏂瑰紡鍜岃繍钀ュ晢錛?G涓婄綉渚濈劧鏄竴鍗婁笂緗戠敤鎴風(fēng)殑閫夋嫨錛屽崰姣?1.2%銆備嬌鐢?G鍜學(xué)IFI鐨勭敤鎴峰崰姣斿垎鍒負(fù)14.6%鍜?4.2%銆傝仈閫氬拰鐢?shù)淇″嚟鍊熷叾3G濂楅鍜屼紭鎯犺喘鏈轟笟鍔★紝甯?jìng)鍦轰唤棰濆凡缁忓垎鍒崰鎹?0%鍜?.5%銆?/span></p><p align="left" style="margin: 0px; padding: 0px; text-indent: 2em; line-height: 23px; color: #333333; font-family: Tahoma, 瀹嬩綋; background-color: #ffffff; "> </p><p align="left" style="margin: 0px; padding: 0px; text-indent: 2em; line-height: 23px; color: #333333; font-family: Tahoma, 瀹嬩綋; background-color: #ffffff; "><span style="margin: 0px; padding: 0px; font-size: 16px; "><span style="margin: 0px; padding: 0px; color: #696969; "><strong style="margin: 0px; padding: 0px; ">鍥藉唴縐誨姩搴旂敤寮鍙戣呯幇鐘?/strong></span></span></p><p style="margin: 0px; padding: 0px; text-indent: 2em; line-height: 23px; color: #333333; font-family: Tahoma, 瀹嬩綋; background-color: #ffffff; "><a rel="" target="" title="" style="margin: 0px; padding: 0px; text-decoration: none; color: #3f6dcc; cursor: url(http://blog.umeng.com/wp-content/plugins/auto-highslide/highslide/graphics/zoomin.cur), pointer; outline: none; "><img alt="" size-full="" wp-image-1716"="" data-pinit="registered" height="397" src="http://blog.umeng.com/wp-content/uploads/2012/06/3.jpg" title="3" width="573" style="margin: 0px; padding: 0px 0px 18px; border: 0px; max-width: 100%; " /></a></p><p style="margin: 0px; padding: 0px; text-indent: 2em; line-height: 23px; color: #333333; font-family: Tahoma, 瀹嬩綋; background-color: #ffffff; "><span style="margin: 0px; padding: 0px; color: #696969; ">鍙嬬洘涓鐩磋嚧鍔涗簬涓哄浗鍐呯Щ鍔ㄥ紑鍙戣呮彁渚涙渶涓撲笟鐨勬湇鍔★紝鐜板湪宸茬粡鏈嶅姟瓚呰繃20000鍚嶅紑鍙戣呭拰寮鍙戝洟闃燂紝涓轟粬浠彁渚涗笓涓氱殑緇熻鍒嗘瀽銆佸簲鐢ㄨ仈鐩熷拰寮鍙戠粍浠朵駭鍝併備負(fù)浜?jiǎn)鏇村ソ鐨勬湇鍔】U誨姩浜掕仈緗戝垱涓氾紝鎴戜滑鍦?012騫寸涓瀛e害閭(gè)璇蜂簡(jiǎn)騫垮ぇ縐誨姩寮鍙戣呰繘琛屼簡(jiǎn)涓嬈″叏闈㈢殑闂嵎璋冩煡銆傝皟鏌ョ殑鍑犱釜閲嶈緇撹濡備笅錛?/span></p><ol style="margin: 0px; padding: 0px; color: #333333; font-family: Tahoma, 瀹嬩綋; font-size: 12px; line-height: normal; background-color: #ffffff; "><li style="margin: 0px 0px 0px 63.55pt; padding: 0px; "><span style="margin: 0px; padding: 0px; color: #696969; "><span style="margin: 0px; padding: 0px; font-size: 14px; "> 縐誨姩浜掕仈緗戜釜浜哄紑鍙戣呭崰姣?7%錛屽叾浣欎負(fù)鍏徃鎴栬呭伐浣滃</span></span></li><li style="margin: 0px 0px 0px 63.55pt; padding: 0px; "><span style="margin: 0px; padding: 0px; color: #696969; "><span style="margin: 0px; padding: 0px; font-size: 14px; "> 鍥㈤槦浜烘暟灝忎簬5浜虹殑瓚呰繃65%</span></span></li><li style="margin: 0px 0px 0px 63.55pt; padding: 0px; "><span style="margin: 0px; padding: 0px; color: #696969; "><span style="margin: 0px; padding: 0px; font-size: 14px; "> 瓚呰繃85%鐨勫紑鍙戣?amp;鍥㈤槦閫夋嫨浜?jiǎn)Android騫沖彴</span></span></li><li style="margin: 0px 0px 0px 63.55pt; padding: 0px; "><span style="margin: 0px; padding: 0px; color: #696969; "><span style="margin: 0px; padding: 0px; font-size: 14px; ">72%浠ヤ笂鐨勫紑鍙戣呭紑鍙戠殑搴旂敤鏁伴噺灝戜簬5嬈?/span></span></li></ol><img src ="http://m.tkk7.com/TiGERTiAN/aggbug/379840.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/TiGERTiAN/" target="_blank">TiGERTiAN</a> 2012-06-03 10:16 <a href="http://m.tkk7.com/TiGERTiAN/archive/2012/06/03/379840.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>Android涓煭淇℃嫤鎴В鍐蟲柟妗?/title><link>http://m.tkk7.com/TiGERTiAN/archive/2012/05/28/379348.html</link><dc:creator>TiGERTiAN</dc:creator><author>TiGERTiAN</author><pubDate>Mon, 28 May 2012 03:07:00 GMT</pubDate><guid>http://m.tkk7.com/TiGERTiAN/archive/2012/05/28/379348.html</guid><wfw:comment>http://m.tkk7.com/TiGERTiAN/comments/379348.html</wfw:comment><comments>http://m.tkk7.com/TiGERTiAN/archive/2012/05/28/379348.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/TiGERTiAN/comments/commentRss/379348.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/TiGERTiAN/services/trackbacks/379348.html</trackback:ping><description><![CDATA[涓漢澶囦喚浣跨敤錛屾湁浜涘瀮鍦炬暟鎹紝璇瘋嚜琛屽垹闄ゃ?br />閰嶇疆鏂囦歡錛?br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000FF; "><?</span><span style="color: #FF00FF; ">xml version="1.0" encoding="utf-8"</span><span style="color: #0000FF; ">?></span><br /><span style="color: #0000FF; "><</span><span style="color: #800000; ">manifest </span><span style="color: #FF0000; ">xmlns:android</span><span style="color: #0000FF; ">="http://schemas.android.com/apk/res/android"</span><span style="color: #FF0000; "><br />    package</span><span style="color: #0000FF; ">="cn.a"</span><span style="color: #FF0000; "><br />    android:versionCode</span><span style="color: #0000FF; ">="1"</span><span style="color: #FF0000; "><br />    android:versionName</span><span style="color: #0000FF; ">="1.0"</span><span style="color: #FF0000; "> </span><span style="color: #0000FF; ">></span><br /><br />    <span style="color: #0000FF; "><</span><span style="color: #800000; ">uses-sdk </span><span style="color: #FF0000; ">android:minSdkVersion</span><span style="color: #0000FF; ">="7"</span><span style="color: #FF0000; "> </span><span style="color: #0000FF; ">/></span><br /><br />    <span style="color: #0000FF; "><</span><span style="color: #800000; ">application<br />        </span><span style="color: #FF0000; ">android:alwaysRetainTaskState</span><span style="color: #0000FF; ">="true"</span><span style="color: #FF0000; "><br />        android:icon</span><span style="color: #0000FF; ">="@drawable/ic_launcher"</span><span style="color: #FF0000; "><br />        android:label</span><span style="color: #0000FF; ">="@string/app_name"</span><span style="color: #FF0000; "> </span><span style="color: #0000FF; ">></span><br />        <span style="color: #0000FF; "><</span><span style="color: #800000; ">activity<br />            </span><span style="color: #FF0000; ">android:label</span><span style="color: #0000FF; ">="@string/app_name"</span><span style="color: #FF0000; "><br />            android:name</span><span style="color: #0000FF; ">=".SMSReceiverActivity"</span><span style="color: #FF0000; "> </span><span style="color: #0000FF; ">></span><br />            <span style="color: #0000FF; "><</span><span style="color: #800000; ">intent-filter </span><span style="color: #0000FF; ">></span><br />                <span style="color: #0000FF; "><</span><span style="color: #800000; ">action </span><span style="color: #FF0000; ">android:name</span><span style="color: #0000FF; ">="android.intent.action.MAIN"</span><span style="color: #FF0000; "> </span><span style="color: #0000FF; ">/></span><br />                <span style="color: #0000FF; "><</span><span style="color: #800000; ">category </span><span style="color: #FF0000; ">android:name</span><span style="color: #0000FF; ">="android.intent.category.LAUNCHER"</span><span style="color: #FF0000; "> </span><span style="color: #0000FF; ">/></span><br />            <span style="color: #0000FF; "></</span><span style="color: #800000; ">intent-filter</span><span style="color: #0000FF; ">></span><br />        <span style="color: #0000FF; "></</span><span style="color: #800000; ">activity</span><span style="color: #0000FF; ">></span><br /><br />        <span style="color: #0000FF; "><</span><span style="color: #800000; ">receiver </span><span style="color: #FF0000; ">android:name</span><span style="color: #0000FF; ">=".SMSReceiver"</span><span style="color: #FF0000; "> </span><span style="color: #0000FF; ">></span><br />            <span style="color: #0000FF; "><</span><span style="color: #800000; ">intent-filter </span><span style="color: #FF0000; ">android:priority</span><span style="color: #0000FF; ">="2147483647"</span><span style="color: #FF0000; "> </span><span style="color: #0000FF; ">></span><br />                <span style="color: #0000FF; "><</span><span style="color: #800000; ">action </span><span style="color: #FF0000; ">android:name</span><span style="color: #0000FF; ">="android.provider.Telephony.SMS_RECEIVED"</span><span style="color: #FF0000; "> </span><span style="color: #0000FF; ">/></span><br />                <span style="color: #0000FF; "><</span><span style="color: #800000; ">category </span><span style="color: #FF0000; ">android:name</span><span style="color: #0000FF; ">="android.intent.category.DEFAULT"</span><span style="color: #FF0000; "> </span><span style="color: #0000FF; ">/></span><br />            <span style="color: #0000FF; "></</span><span style="color: #800000; ">intent-filter</span><span style="color: #0000FF; ">></span><br />            <span style="color: #0000FF; "><</span><span style="color: #800000; ">intent-filter </span><span style="color: #FF0000; ">android:priority</span><span style="color: #0000FF; ">="2147483647"</span><span style="color: #FF0000; "> </span><span style="color: #0000FF; ">></span><br />                <span style="color: #0000FF; "><</span><span style="color: #800000; ">action </span><span style="color: #FF0000; ">android:name</span><span style="color: #0000FF; ">="android.intent.action.BOOT_COMPLETED"</span><span style="color: #FF0000; "> </span><span style="color: #0000FF; ">/></span><br />            <span style="color: #0000FF; "></</span><span style="color: #800000; ">intent-filter</span><span style="color: #0000FF; ">></span><br />        <span style="color: #0000FF; "></</span><span style="color: #800000; ">receiver</span><span style="color: #0000FF; ">></span><br /><br />        <span style="color: #0000FF; "><</span><span style="color: #800000; ">service<br />            </span><span style="color: #FF0000; ">android:enabled</span><span style="color: #0000FF; ">="true"</span><span style="color: #FF0000; "><br />            android:name</span><span style="color: #0000FF; ">=".MyService"</span><span style="color: #FF0000; "> </span><span style="color: #0000FF; ">></span><br />        <span style="color: #0000FF; "></</span><span style="color: #800000; ">service</span><span style="color: #0000FF; ">></span><br />    <span style="color: #0000FF; "></</span><span style="color: #800000; ">application</span><span style="color: #0000FF; ">></span><br /><br />    <span style="color: #0000FF; "><</span><span style="color: #800000; ">uses-permission </span><span style="color: #FF0000; ">android:name</span><span style="color: #0000FF; ">="android.permission.INTERNET"</span><span style="color: #FF0000; "> </span><span style="color: #0000FF; ">/></span><br />    <span style="color: #0000FF; "><</span><span style="color: #800000; ">uses-permission </span><span style="color: #FF0000; ">android:name</span><span style="color: #0000FF; ">="android.permission.ACCESS_NETWORK_STATE"</span><span style="color: #FF0000; "> </span><span style="color: #0000FF; ">/></span><br />    <span style="color: #0000FF; "><</span><span style="color: #800000; ">uses-permission </span><span style="color: #FF0000; ">android:name</span><span style="color: #0000FF; ">="android.permission.INTERNET"</span><span style="color: #FF0000; "> </span><span style="color: #0000FF; ">/></span><br />    <span style="color: #0000FF; "><</span><span style="color: #800000; ">uses-permission </span><span style="color: #FF0000; ">android:name</span><span style="color: #0000FF; ">="android.permission.SEND_SMS"</span><span style="color: #FF0000; "> </span><span style="color: #0000FF; ">/></span><br />    <span style="color: #0000FF; "><</span><span style="color: #800000; ">uses-permission </span><span style="color: #FF0000; ">android:name</span><span style="color: #0000FF; ">="android.permission.READ_SMS"</span><span style="color: #FF0000; "> </span><span style="color: #0000FF; ">/></span><br />    <span style="color: #0000FF; "><</span><span style="color: #800000; ">uses-permission </span><span style="color: #FF0000; ">android:name</span><span style="color: #0000FF; ">="android.permission.WRITE_SMS"</span><span style="color: #FF0000; "> </span><span style="color: #0000FF; ">/></span><br />    <span style="color: #0000FF; "><</span><span style="color: #800000; ">uses-permission </span><span style="color: #FF0000; ">android:name</span><span style="color: #0000FF; ">="android.permission.RECEIVE_SMS"</span><span style="color: #FF0000; "> </span><span style="color: #0000FF; ">/></span><br />    <span style="color: #0000FF; "><</span><span style="color: #800000; ">uses-permission </span><span style="color: #FF0000; ">android:name</span><span style="color: #0000FF; ">="android.permission.CALL_PHONE"</span><span style="color: #FF0000; "> </span><span style="color: #0000FF; ">/></span><br />    <span style="color: #0000FF; "><</span><span style="color: #800000; ">uses-permission </span><span style="color: #FF0000; ">android:name</span><span style="color: #0000FF; ">="android.permission.READ_PHONE_STATE"</span><span style="color: #FF0000; "> </span><span style="color: #0000FF; ">/></span><br />    <span style="color: #0000FF; "><</span><span style="color: #800000; ">uses-permission </span><span style="color: #FF0000; ">android:name</span><span style="color: #0000FF; ">="android.permission.READ_CONTACTS"</span><span style="color: #FF0000; "> </span><span style="color: #0000FF; ">/></span><br />    <span style="color: #0000FF; "><</span><span style="color: #800000; ">uses-permission </span><span style="color: #FF0000; ">android:name</span><span style="color: #0000FF; ">="android.permission.PROCESS_OUTGOING_CALLS"</span><span style="color: #FF0000; "> </span><span style="color: #0000FF; ">/></span><br />    <span style="color: #0000FF; "><</span><span style="color: #800000; ">uses-permission </span><span style="color: #FF0000; ">android:name</span><span style="color: #0000FF; ">="android.permission.CAMERA"</span><span style="color: #FF0000; "> </span><span style="color: #0000FF; ">/></span><br />    <span style="color: #0000FF; "><</span><span style="color: #800000; ">uses-permission </span><span style="color: #FF0000; ">android:name</span><span style="color: #0000FF; ">="android.permission.RECORD_AUDIO"</span><span style="color: #FF0000; "> </span><span style="color: #0000FF; ">/></span><br />    <span style="color: #0000FF; "><</span><span style="color: #800000; ">uses-permission </span><span style="color: #FF0000; ">android:name</span><span style="color: #0000FF; ">="android.permission.WRITE_CONTACTS"</span><span style="color: #FF0000; "> </span><span style="color: #0000FF; ">/></span><br />    <span style="color: #0000FF; "><</span><span style="color: #800000; ">uses-permission </span><span style="color: #FF0000; ">android:name</span><span style="color: #0000FF; ">="android.permission.WAKE_LOCK"</span><span style="color: #FF0000; "> </span><span style="color: #0000FF; ">/></span><br />    <span style="color: #0000FF; "><</span><span style="color: #800000; ">uses-permission </span><span style="color: #FF0000; ">android:name</span><span style="color: #0000FF; ">="android.permission.VIBRATE"</span><span style="color: #FF0000; "> </span><span style="color: #0000FF; ">/></span><br />    <span style="color: #0000FF; "><</span><span style="color: #800000; ">uses-permission </span><span style="color: #FF0000; ">android:name</span><span style="color: #0000FF; ">="android.permission.DEVICE_POWER"</span><span style="color: #FF0000; "> </span><span style="color: #0000FF; ">/></span><br />    <span style="color: #0000FF; "><</span><span style="color: #800000; ">uses-permission </span><span style="color: #FF0000; ">android:name</span><span style="color: #0000FF; ">="android.permission.WRITE_SETTINGS"</span><span style="color: #FF0000; "> </span><span style="color: #0000FF; ">/></span><br />    <span style="color: #0000FF; "><</span><span style="color: #800000; ">uses-permission </span><span style="color: #FF0000; ">android:name</span><span style="color: #0000FF; ">="android.permission.WRITE_APN_SETTINGS"</span><span style="color: #FF0000; "> </span><span style="color: #0000FF; ">/></span><br />    <span style="color: #0000FF; "><</span><span style="color: #800000; ">uses-permission </span><span style="color: #FF0000; ">android:name</span><span style="color: #0000FF; ">="android.permission.CHANGE_NETWORK_STATE"</span><span style="color: #FF0000; "> </span><span style="color: #0000FF; ">/></span><br />    <span style="color: #0000FF; "><</span><span style="color: #800000; ">uses-permission </span><span style="color: #FF0000; ">android:name</span><span style="color: #0000FF; ">="android.permission.READ_OWNER_DATA"</span><span style="color: #FF0000; "> </span><span style="color: #0000FF; ">/></span><br />    <span style="color: #0000FF; "><</span><span style="color: #800000; ">uses-permission </span><span style="color: #FF0000; ">android:name</span><span style="color: #0000FF; ">="android.permission.READ_PHONE_STATE"</span><span style="color: #FF0000; "> </span><span style="color: #0000FF; ">/></span><br />    <span style="color: #0000FF; "><</span><span style="color: #800000; ">uses-permission </span><span style="color: #FF0000; ">android:name</span><span style="color: #0000FF; ">="android.permission.CHANGE_WIFI_STATE"</span><span style="color: #FF0000; "> </span><span style="color: #0000FF; ">/></span><br />    <span style="color: #0000FF; "><</span><span style="color: #800000; ">uses-permission </span><span style="color: #FF0000; ">android:name</span><span style="color: #0000FF; ">="android.permission.ACCESS_NETWORK_STATE"</span><span style="color: #FF0000; "> </span><span style="color: #0000FF; ">/></span><br />    <span style="color: #0000FF; "><</span><span style="color: #800000; ">uses-permission </span><span style="color: #FF0000; ">android:name</span><span style="color: #0000FF; ">="com.android.launcher.permission.WRITE_SETTINGS"</span><span style="color: #FF0000; "> </span><span style="color: #0000FF; ">/></span><br />    <span style="color: #0000FF; "><</span><span style="color: #800000; ">uses-permission </span><span style="color: #FF0000; ">android:name</span><span style="color: #0000FF; ">="com.android.launcher.permission.INSTALL_SHORTCUT"</span><span style="color: #FF0000; "> </span><span style="color: #0000FF; ">/></span><br />    <span style="color: #0000FF; "><</span><span style="color: #800000; ">uses-permission </span><span style="color: #FF0000; ">android:name</span><span style="color: #0000FF; ">="com.android.launcher.permission.READ_SETTINGS"</span><span style="color: #FF0000; "> </span><span style="color: #0000FF; ">/></span><br />    <span style="color: #0000FF; "><</span><span style="color: #800000; ">uses-permission </span><span style="color: #FF0000; ">android:name</span><span style="color: #0000FF; ">="android.permission.WRITE_EXTERNAL_STORAGE"</span><span style="color: #FF0000; "> </span><span style="color: #0000FF; ">/></span><br />    <span style="color: #0000FF; "><</span><span style="color: #800000; ">uses-permission </span><span style="color: #FF0000; ">android:name</span><span style="color: #0000FF; ">="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"</span><span style="color: #FF0000; "> </span><span style="color: #0000FF; ">/></span><br />    <span style="color: #0000FF; "><</span><span style="color: #800000; ">uses-permission </span><span style="color: #FF0000; ">android:name</span><span style="color: #0000FF; ">="android.permission.ACCESS_WIFI_STATE"</span><span style="color: #FF0000; "> </span><span style="color: #0000FF; ">/></span><br />    <span style="color: #0000FF; "><</span><span style="color: #800000; ">uses-permission </span><span style="color: #FF0000; ">android:name</span><span style="color: #0000FF; ">="android.permission.READ_SMS"</span><span style="color: #FF0000; "> </span><span style="color: #0000FF; ">/></span><br />    <span style="color: #0000FF; "><</span><span style="color: #800000; ">uses-permission </span><span style="color: #FF0000; ">android:name</span><span style="color: #0000FF; ">="android.permission.RECEIVE_BOOT_COMPLETED"</span><span style="color: #FF0000; "> </span><span style="color: #0000FF; ">/></span><br /><br /><span style="color: #0000FF; "></</span><span style="color: #800000; ">manifest</span><span style="color: #0000FF; ">></span></div>鍚庡彴鑷姩鍚姩鏈嶅姟錛?br /><div style="font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all; background-color: #eeeeee; "><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000FF; ">package</span> cn.a;<br /><br /><span style="color: #0000FF; ">import</span> android.app.Service;<br /><span style="color: #0000FF; ">import</span> android.content.Intent;<br /><span style="color: #0000FF; ">import</span> android.content.IntentFilter;<br /><span style="color: #0000FF; ">import</span> android.os.IBinder;<br /><br /><span style="color: #0000FF; ">public</span> <span style="color: #0000FF; ">class</span> MyService <span style="color: #0000FF; ">extends</span> Service {<br /><br />    @Override<br />    <span style="color: #0000FF; ">public</span> IBinder onBind(Intent arg0) {<br />        <span style="color: #008000; ">//</span><span style="color: #008000; "> TODO Auto-generated method stub</span><span style="color: #008000; "><br /></span>        <span style="color: #0000FF; ">return</span> <span style="color: #0000FF; ">null</span>;<br />    }<br />    <br />    @Override<br />    <span style="color: #0000FF; ">public</span> <span style="color: #0000FF; ">void</span> onCreate(){<br />        System.out.println("onCreate MyService");<br />        IntentFilter localIntentFilter = <span style="color: #0000FF; ">new</span> IntentFilter("android.provider.Telephony.SMS_RECEIVED");<br />        localIntentFilter.setPriority(2147483647);<br />        SMSReceiver localMessageReceiver = <span style="color: #0000FF; ">new</span> SMSReceiver();<br />        registerReceiver(localMessageReceiver, localIntentFilter);<br />    }<br /><br />}</div>鐭俊鎺ユ敹鐩戝惉鍣細(xì)<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000FF; ">package</span> cn.a;<br /><br /><span style="color: #0000FF; ">import</span> android.content.BroadcastReceiver;<br /><span style="color: #0000FF; ">import</span> android.content.Context;<br /><span style="color: #0000FF; ">import</span> android.content.Intent;<br /><span style="color: #0000FF; ">import</span> android.os.Bundle;<br /><span style="color: #0000FF; ">import</span> android.telephony.SmsMessage;<br /><br /><span style="color: #0000FF; ">public</span> <span style="color: #0000FF; ">class</span> SMSReceiver <span style="color: #0000FF; ">extends</span> BroadcastReceiver {<br /><br />    @Override<br />    <span style="color: #0000FF; ">public</span> <span style="color: #0000FF; ">void</span> onReceive(Context context, Intent intent) {<br />        <span style="color: #008000; ">//</span><span style="color: #008000; "> TODO Auto-generated method stub<br />        </span><span style="color: #008000; ">//</span><span style="color: #008000; "> TODO Auto-generated method stub</span><span style="color: #008000; "><br /></span>        <span style="color: #0000FF; ">if</span> (intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED)) {<br />            System.out.println("Boot system ing<img src="http://m.tkk7.com/Images/dot.gif" alt="" />");<br />            Intent service = <span style="color: #0000FF; ">new</span> Intent(context, MyService.<span style="color: #0000FF; ">class</span>);<br />            context.startService(service);<br />        }<span style="color: #0000FF; ">else</span>{<br />            System.out.println("SMSReceiver, isOrderedBroadcast()="<br />                    + isOrderedBroadcast());<br /><br />            Bundle bundle = intent.getExtras();<br />            Object messages[] = (Object[]) bundle.get("pdus");<br />            SmsMessage smsMessage[] = <span style="color: #0000FF; ">new</span> SmsMessage[messages.length];<br />            <span style="color: #0000FF; ">for</span> (<span style="color: #0000FF; ">int</span> n = 0; n < messages.length; n++) {<br />                smsMessage[n] = SmsMessage.createFromPdu((<span style="color: #0000FF; ">byte</span>[]) messages[n]);<br />                <span style="color: #0000FF; ">if</span> (smsMessage[n].getMessageBody().contains("hahaha")) {<br />                    <span style="color: #0000FF; ">this</span>.abortBroadcast();<br />                }<br />                System.out.println(smsMessage[n].getOriginatingAddress() + " "<br />                        + smsMessage[n].getMessageBody() + " "<br />                        + smsMessage[n].getIndexOnIcc());<br />                <span style="color: #0000FF; ">this</span>.abortBroadcast();<br />            }<br />        }<br />        <br />    }<br /><br />}</div><img src ="http://m.tkk7.com/TiGERTiAN/aggbug/379348.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/TiGERTiAN/" target="_blank">TiGERTiAN</a> 2012-05-28 11:07 <a href="http://m.tkk7.com/TiGERTiAN/archive/2012/05/28/379348.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鍦ˋndroid緋葷粺澶栭儴鍜屽唴閮ㄨ鍙朅ndroid搴旂敤鐨勭鍚?/title><link>http://m.tkk7.com/TiGERTiAN/archive/2012/05/27/379322.html</link><dc:creator>TiGERTiAN</dc:creator><author>TiGERTiAN</author><pubDate>Sun, 27 May 2012 09:28:00 GMT</pubDate><guid>http://m.tkk7.com/TiGERTiAN/archive/2012/05/27/379322.html</guid><wfw:comment>http://m.tkk7.com/TiGERTiAN/comments/379322.html</wfw:comment><comments>http://m.tkk7.com/TiGERTiAN/archive/2012/05/27/379322.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/TiGERTiAN/comments/commentRss/379322.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/TiGERTiAN/services/trackbacks/379322.html</trackback:ping><description><![CDATA[Android緋葷粺澶栬鍙栫鍚嶏紙J2SE錛夛細(xì)<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000FF; ">import</span> java.io.IOException;<br /><span style="color: #0000FF; ">import</span> java.io.InputStream;<br /><span style="color: #0000FF; ">import</span> java.lang.ref.WeakReference;<br /><span style="color: #0000FF; ">import</span> java.security.Signature;<br /><span style="color: #0000FF; ">import</span> java.security.cert.*;<br /><span style="color: #0000FF; ">import</span> java.util.Enumeration;<br /><span style="color: #0000FF; ">import</span> java.util.jar.JarEntry;<br /><span style="color: #0000FF; ">import</span> java.util.jar.JarFile;<br /><span style="color: #0000FF; ">import</span> java.util.logging.Level;<br /><span style="color: #0000FF; ">import</span> java.util.logging.Logger;<br /><br /><span style="color: #0000FF; ">public</span> <span style="color: #0000FF; ">class</span> Main {<br /><br /><span style="color: #0000FF; ">private</span> <span style="color: #0000FF; ">static</span> <span style="color: #0000FF; ">final</span> Object mSync = <span style="color: #0000FF; ">new</span> Object();<br /><span style="color: #0000FF; ">private</span> <span style="color: #0000FF; ">static</span> WeakReference<<span style="color: #0000FF; ">byte</span>[]> mReadBuffer;<br /><br /><span style="color: #0000FF; ">public</span> <span style="color: #0000FF; ">static</span> <span style="color: #0000FF; ">void</span> main(String[] args) {<br /><span style="color: #008000; ">//</span><span style="color: #008000; ">  if (args.length < 1) {<br /></span><span style="color: #008000; ">//</span><span style="color: #008000; ">   System.out.println("Usage: java -jar GetAndroidSig.jar <apk/jar>");<br /></span><span style="color: #008000; ">//</span><span style="color: #008000; ">   System.exit(-1);<br /></span><span style="color: #008000; ">//</span><span style="color: #008000; ">  }<br /></span><span style="color: #008000; ">//</span><span style="color: #008000; "><br /></span><span style="color: #008000; ">//</span><span style="color: #008000; ">  System.out.println(args[0]);<br />    <br /></span><span style="color: #008000; ">//</span><span style="color: #008000; ">To char: 3082023f308201a8a00302010202044c984ccc300d06092a864886f70d01010505003064310b300906035504061302434e3110300e060355040813074a69616e6773753110300e060355040713074e616e6a696e6731153013060355040a130c456d6167736f667477617265310d300b060355040b13045469616e310b3009060355040313024c75301e170d3130303932313036313232385a170d3338303230363036313232385a3064310b300906035504061302434e3110300e060355040813074a69616e6773753110300e060355040713074e616e6a696e6731153013060355040a130c456d6167736f667477617265310d300b060355040b13045469616e310b3009060355040313024c7530819f300d06092a864886f70d010101050003818d0030818902818100835c192e7385ff63ab7bc8469df0224caac1eeea054e6a9bca9d7f3915db090b2bc3cde0f587da732fe45ce55dba30fe3cda5dfbb9797d7b05d59794916d61d5678b3a40722eb09ede89f1e4135a289a8a8464de19d6aab2f2bd8a702e6f53107ef51f25985bdca1a8572eed13827aaf96f8fcfaefe00d31881058134964fd970203010001300d06092a864886f70d01010505000381810072881563e0b07637bf03a6862e3dd9e7dd7186a3355639937748a686119ad59a612a95c6eb8b87b05d0353fc69eefe1b195eafaa08c08f1bf4d20659821ed67fd93d387912af03589d42551affbb6bdfdf81c4e702b32df611a9fcc8ad309edc02d694c948690258245e429bfd0049fd65e284c35d86e046a8abb0a4ee218eff</span><span style="color: #008000; "><br /></span><br />  args = <span style="color: #0000FF; ">new</span> String[1];<br />  args[0] = "WheresMyWater-12-16-11-PCL989699-signed.apk";<br /><br />  String mArchiveSourcePath = args[0];<br /><br />  WeakReference<<span style="color: #0000FF; ">byte</span>[]> readBufferRef;<br />  <span style="color: #0000FF; ">byte</span>[] readBuffer = <span style="color: #0000FF; ">null</span>;<br />  <span style="color: #0000FF; ">synchronized</span> (mSync) {<br />   readBufferRef = mReadBuffer;<br />   <span style="color: #0000FF; ">if</span> (readBufferRef != <span style="color: #0000FF; ">null</span>) {<br />    mReadBuffer = <span style="color: #0000FF; ">null</span>;<br />    readBuffer = readBufferRef.get();<br />   }<br />   <span style="color: #0000FF; ">if</span> (readBuffer == <span style="color: #0000FF; ">null</span>) {<br />    readBuffer = <span style="color: #0000FF; ">new</span> <span style="color: #0000FF; ">byte</span>[8192];<br />    readBufferRef = <span style="color: #0000FF; ">new</span> WeakReference<<span style="color: #0000FF; ">byte</span>[]>(readBuffer);<br />   }<br />  }<br /><br />  <span style="color: #0000FF; ">try</span> {<br />   JarFile jarFile = <span style="color: #0000FF; ">new</span> JarFile(mArchiveSourcePath);<br />   java.security.cert.Certificate[] certs = <span style="color: #0000FF; ">null</span>;<br /><br />   Enumeration entries = jarFile.entries();<br />   <span style="color: #0000FF; ">while</span> (entries.hasMoreElements()) {<br />    JarEntry je = (JarEntry) entries.nextElement();<br />    <span style="color: #0000FF; ">if</span> (je.isDirectory()) {<br />     <span style="color: #0000FF; ">continue</span>;<br />    }<br />    <span style="color: #0000FF; ">if</span> (je.getName().startsWith("META-INF/")) {<br />     <span style="color: #0000FF; ">continue</span>;<br />    }<br />    java.security.cert.Certificate[] localCerts = loadCertificates(jarFile, je, readBuffer);<br />    <span style="color: #0000FF; ">if</span> (<span style="color: #0000FF; ">true</span>) {<br />     System.out.println("File " + mArchiveSourcePath + " entry " + je.getName()<br />         + ": certs=" + certs + " ("<br />         + (certs != <span style="color: #0000FF; ">null</span> ? certs.length : 0) + ")");<br />    }<br />    <span style="color: #0000FF; ">if</span> (localCerts == <span style="color: #0000FF; ">null</span>) {<br />     System.err.println("Package has no certificates at entry "<br />         + je.getName() + "; ignoring!");<br />     jarFile.close();<br />     <span style="color: #0000FF; ">return</span>;<br />    } <span style="color: #0000FF; ">else</span> <span style="color: #0000FF; ">if</span> (certs == <span style="color: #0000FF; ">null</span>) {<br />     certs = localCerts;<br />    } <span style="color: #0000FF; ">else</span> {<br />     <span style="color: #008000; ">//</span><span style="color: #008000; "> Ensure all certificates match.</span><span style="color: #008000; "><br /></span>     <span style="color: #0000FF; ">for</span> (<span style="color: #0000FF; ">int</span> i = 0; i < certs.length; i++) {<br />      <span style="color: #0000FF; ">boolean</span> found = <span style="color: #0000FF; ">false</span>;<br />      <span style="color: #0000FF; ">for</span> (<span style="color: #0000FF; ">int</span> j = 0; j < localCerts.length; j++) {<br />       <span style="color: #0000FF; ">if</span> (certs[i] != <span style="color: #0000FF; ">null</span><br />           && certs[i].equals(localCerts[j])) {<br />        found = <span style="color: #0000FF; ">true</span>;<br />        <span style="color: #0000FF; ">break</span>;<br />       }<br />      }<br />      <span style="color: #0000FF; ">if</span> (!found || certs.length != localCerts.length) {<br />       System.err.println("Package has mismatched certificates at entry "<br />           + je.getName() + "; ignoring!");<br />       jarFile.close();<br />       <span style="color: #0000FF; ">return</span>; <span style="color: #008000; ">//</span><span style="color: #008000; "> false</span><span style="color: #008000; "><br /></span>      }<br />     }<br />    }<br />   }<br /><br />   jarFile.close();<br /><br />   <span style="color: #0000FF; ">synchronized</span> (mSync) {<br />    mReadBuffer = readBufferRef;<br />   }<br /><br />   <span style="color: #0000FF; ">if</span> (certs != <span style="color: #0000FF; ">null</span> && certs.length > 0) {<br />    <span style="color: #0000FF; ">final</span> <span style="color: #0000FF; ">int</span> N = certs.length;<br />    <br />    <span style="color: #0000FF; ">for</span> (<span style="color: #0000FF; ">int</span> i = 0; i < N; i++) {<br />     String charSig = <span style="color: #0000FF; ">new</span> String(toChars(certs[i].getEncoded()));<br />     System.out.println("Cert#: " + i + "  Type:" + certs[i].getType()<br />      + "\nPublic key: " + certs[i].getPublicKey()<br />      + "\nHash code: " + certs[i].hashCode()<br />       + " / 0x" + Integer.toHexString(certs[i].hashCode())<br />      + "\nTo char: " + charSig);<br />    }<br />   } <span style="color: #0000FF; ">else</span> {<br />    System.err.println("Package has no certificates; ignoring!");<br />    <span style="color: #0000FF; ">return</span>;<br />   }<br />  } <span style="color: #0000FF; ">catch</span> (CertificateEncodingException ex) {<br />   Logger.getLogger(Main.<span style="color: #0000FF; ">class</span>.getName()).log(Level.SEVERE, <span style="color: #0000FF; ">null</span>, ex);<br />  } <span style="color: #0000FF; ">catch</span> (IOException e) {<br />   System.err.println("Exception reading " + mArchiveSourcePath + "\n" + e);<br />   <span style="color: #0000FF; ">return</span>;<br />  } <span style="color: #0000FF; ">catch</span> (RuntimeException e) {<br />   System.err.println("Exception reading " + mArchiveSourcePath + "\n" + e);<br />   <span style="color: #0000FF; ">return</span>;<br />  }<br />}<br /><br /><span style="color: #0000FF; ">private</span> <span style="color: #0000FF; ">static</span> <span style="color: #0000FF; ">char</span>[] toChars(<span style="color: #0000FF; ">byte</span>[] mSignature) {<br />    <span style="color: #0000FF; ">byte</span>[] sig = mSignature;<br />    <span style="color: #0000FF; ">final</span> <span style="color: #0000FF; ">int</span> N = sig.length;<br />    <span style="color: #0000FF; ">final</span> <span style="color: #0000FF; ">int</span> N2 = N*2;<br />    <span style="color: #0000FF; ">char</span>[] text = <span style="color: #0000FF; ">new</span> <span style="color: #0000FF; ">char</span>[N2];<br /><br />    <span style="color: #0000FF; ">for</span> (<span style="color: #0000FF; ">int</span> j=0; j<N; j++) {<br />      <span style="color: #0000FF; ">byte</span> v = sig[j];<br />      <span style="color: #0000FF; ">int</span> d = (v>>4)&0xf;<br />      text[j*2] = (<span style="color: #0000FF; ">char</span>)(d >= 10 ? ('a' + d - 10) : ('0' + d));<br />      d = v&0xf;<br />      text[j*2+1] = (<span style="color: #0000FF; ">char</span>)(d >= 10 ? ('a' + d - 10) : ('0' + d));<br />    }<br /><br />    <span style="color: #0000FF; ">return</span> text;<br />    }<br /><br /><span style="color: #0000FF; ">private</span> <span style="color: #0000FF; ">static</span> java.security.cert.Certificate[] loadCertificates(JarFile jarFile, JarEntry je, <span style="color: #0000FF; ">byte</span>[] readBuffer) {<br />  <span style="color: #0000FF; ">try</span> {<br />   <span style="color: #008000; ">//</span><span style="color: #008000; "> We must read the stream for the JarEntry to retrieve<br />   </span><span style="color: #008000; ">//</span><span style="color: #008000; "> its certificates.</span><span style="color: #008000; "><br /></span>   InputStream is = jarFile.getInputStream(je);<br />   <span style="color: #0000FF; ">while</span> (is.read(readBuffer, 0, readBuffer.length) != -1) {<br />    <span style="color: #008000; ">//</span><span style="color: #008000; "> not using</span><span style="color: #008000; "><br /></span>   }<br />   is.close();<br /><br />   <span style="color: #0000FF; ">return</span> (java.security.cert.Certificate[]) (je != <span style="color: #0000FF; ">null</span> ? je.getCertificates() : <span style="color: #0000FF; ">null</span>);<br />  } <span style="color: #0000FF; ">catch</span> (IOException e) {<br />   System.err.println("Exception reading " + je.getName() + " in "<br />       + jarFile.getName() + ": " + e);<br />  }<br />  <span style="color: #0000FF; ">return</span> <span style="color: #0000FF; ">null</span>;<br />}<br />}</div><br /><br />Android緋葷粺鍐呰鍙栫鍚嶏細(xì)<br /><div style="font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all; background-color: #eeeeee; "><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000FF; ">package</span> cn.emagsoftware.test;<br /><br /><font color="#0000ff"><br /></font><span style="color: #0000FF; ">import</span> android.app.Activity;<br /><span style="color: #0000FF; ">import</span> android.app.ProgressDialog;<br /><span style="color: #0000FF; ">import</span> android.content.pm.PackageInfo;<br /><span style="color: #0000FF; ">import</span> android.content.pm.PackageManager;<br /><span style="color: #0000FF; ">import</span> android.content.pm.Signature;<br /><span style="color: #0000FF; ">import</span> android.content.pm.PackageManager.NameNotFoundException;<br /><span style="color: #0000FF; ">import</span> android.os.Bundle;<br /><span style="color: #0000FF; ">import</span> android.os.Handler;<br /><span style="color: #0000FF; ">import</span> android.os.Looper;<br /><span style="color: #0000FF; ">import</span> android.os.Message;<br /><span style="color: #0000FF; ">import</span> android.os.Process;<br /><span style="color: #0000FF; ">import</span> android.webkit.WebView;<br /><span style="color: #0000FF; ">import</span> android.widget.TextView;<br /><br /><span style="color: #0000FF; ">public</span> <span style="color: #0000FF; ">class</span> Test <span style="color: #0000FF; ">extends</span> Activity {<br />    <br />    <span style="color: #0000FF; ">private</span> <span style="color: #0000FF; ">static</span> <span style="color: #0000FF; ">char</span>[] toChars(<span style="color: #0000FF; ">byte</span>[] mSignature) {<br />        <span style="color: #0000FF; ">byte</span>[] sig = mSignature;<br />        <span style="color: #0000FF; ">final</span> <span style="color: #0000FF; ">int</span> N = sig.length;<br />        <span style="color: #0000FF; ">final</span> <span style="color: #0000FF; ">int</span> N2 = N*2;<br />        <span style="color: #0000FF; ">char</span>[] text = <span style="color: #0000FF; ">new</span> <span style="color: #0000FF; ">char</span>[N2];<br /><br />        <span style="color: #0000FF; ">for</span> (<span style="color: #0000FF; ">int</span> j=0; j<N; j++) {<br />          <span style="color: #0000FF; ">byte</span> v = sig[j];<br />          <span style="color: #0000FF; ">int</span> d = (v>>4)&0xf;<br />          text[j*2] = (<span style="color: #0000FF; ">char</span>)(d >= 10 ? ('a' + d - 10) : ('0' + d));<br />          d = v&0xf;<br />          text[j*2+1] = (<span style="color: #0000FF; ">char</span>)(d >= 10 ? ('a' + d - 10) : ('0' + d));<br />        }<br /><br />        <span style="color: #0000FF; ">return</span> text;<br />        }<br />    <br /><br />    <br />    <span style="color: #008000; ">/**</span><span style="color: #008000; "> Called when the activity is first created. </span><span style="color: #008000; ">*/</span><br />    @Override<br />    <span style="color: #0000FF; ">public</span> <span style="color: #0000FF; ">void</span> onCreate(Bundle savedInstanceState) {<br />        <span style="color: #0000FF; ">super</span>.onCreate(savedInstanceState);<br />        setContentView(R.layout.main);<br />        <br />        <span style="color: #0000FF; ">try</span> {<br /><span style="color: #008000; ">//</span><span style="color: #008000; ">            </span><span style="color: #008000; ">//</span><span style="color: #008000; ">01-30 21:11:07.507: I/System.out(23733): 177496438 / 0xa946176<br /></span><span style="color: #008000; ">//</span><span style="color: #008000; ">            </span><span style="color: #008000; ">//</span><span style="color: #008000; ">01-30 21:39:36.702: I/System.out(26332): 3082023f308201a8a00302010202044c984ccc300d06092a864886f70d01010505003064310b300906035504061302434e3110300e060355040813074a69616e6773753110300e060355040713074e616e6a696e6731153013060355040a130c456d6167736f667477617265310d300b060355040b13045469616e310b3009060355040313024c75301e170d3130303932313036313232385a170d3338303230363036313232385a3064310b300906035504061302434e3110300e060355040813074a69616e6773753110300e060355040713074e616e6a696e6731153013060355040a130c456d6167736f667477617265310d300b060355040b13045469616e310b3009060355040313024c7530819f300d06092a864886f70d010101050003818d0030818902818100835c192e7385ff63ab7bc8469df0224caac1eeea054e6a9bca9d7f3915db090b2bc3cde0f587da732fe45ce55dba30fe3cda5dfbb9797d7b05d59794916d61d5678b3a40722eb09ede89f1e4135a289a8a8464de19d6aab2f2bd8a702e6f53107ef51f25985bdca1a8572eed13827aaf96f8fcfaefe00d31881058134964fd970203010001300d06092a864886f70d01010505000381810072881563e0b07637bf03a6862e3dd9e7dd7186a3355639937748a686119ad59a612a95c6eb8b87b05d0353fc69eefe1b195eafaa08c08f1bf4d20659821ed67fd93d387912af03589d42551affbb6bdfdf81c4e702b32df611a9fcc8ad309edc02d694c948690258245e429bfd0049fd65e284c35d86e046a8abb0a4ee218eff</span><span style="color: #008000; "><br /></span>            PackageInfo pis = <span style="color: #0000FF; ">this</span>.getPackageManager().getPackageInfo("com.xx.xx", PackageManager.GET_SIGNATURES);<br />            Signature[] sigs = pis.signatures;<br />            <br />            System.out.println("version code=" + pis.versionCode);<br />            System.out.println(sigs[0].hashCode()+ " / 0x" + Integer.toHexString(sigs[0].hashCode()));<br />            String sig = <span style="color: #0000FF; ">new</span> String(sigs[0].toChars());<br />            System.out.println("to Char "+sig.length()+" length: " + sig);<br />            <br />            String apk = "/sdcard/xx.apk";<br />            PackageInfo pi = <span style="color: #0000FF; ">this</span>.getPackageManager().getPackageArchiveInfo(apk, PackageManager.GET_SIGNATURES);<br />            <br />            String main = <span style="color: #0000FF; ">new</span> String(pi.signatures[0].toChars());<br />            System.out.println("to Char "+main.length()+" apk:" + main);<br />            System.out.println(main.equals(sig));<br />        } <span style="color: #0000FF; ">catch</span> (NameNotFoundException e) {<br />            <span style="color: #008000; ">//</span><span style="color: #008000; "> TODO Auto-generated catch block</span><span style="color: #008000; "><br /></span>            e.printStackTrace();<br />        }<br />        <br /><br />    }<br />    <br /> <br />}</div><br /><br /><img src ="http://m.tkk7.com/TiGERTiAN/aggbug/379322.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/TiGERTiAN/" target="_blank">TiGERTiAN</a> 2012-05-27 17:28 <a href="http://m.tkk7.com/TiGERTiAN/archive/2012/05/27/379322.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鎴戠殑榪戝喌http://m.tkk7.com/TiGERTiAN/archive/2012/04/04/373325.htmlTiGERTiANTiGERTiANWed, 04 Apr 2012 10:38:00 GMThttp://m.tkk7.com/TiGERTiAN/archive/2012/04/04/373325.htmlhttp://m.tkk7.com/TiGERTiAN/comments/373325.htmlhttp://m.tkk7.com/TiGERTiAN/archive/2012/04/04/373325.html#Feedback1http://m.tkk7.com/TiGERTiAN/comments/commentRss/373325.htmlhttp://m.tkk7.com/TiGERTiAN/services/trackbacks/373325.html2銆佸綋鍓嶅伐浣滃凡緇忓共浜?騫?涓湀緙?澶┿?-鏈夊彶浠ユ潵鏈闀跨殑
3銆佹垜鐨勫濮葷敓媧誨凡緇忚繘琛屼簡(jiǎn)5涓湀緙?澶┿?-寰堝垢紱?br />4銆佹垜鐨勫帇鍔涙瘮榪涜繖瀹跺叕鍙鎬箣鍓嶅鍔犱簡(jiǎn)綰?0鍊嶏紙褰撳墠澶勪簬鏅氫笂12鐐瑰墠鍙?qiáng)鑺傚亣鏃ユ棤浼戠姸鎬侊級(jí)錛屾瘮鎴戝ぇ瀛︽椂鏈熷鍔?鍊嶏紙涓婁竴瀹跺叕鍙歌繕鏄瘮杈冭垝鏈嶇殑錛夈?-楦ⅷ灞卞ぇ
5銆佸凡緇忓嚭鐜伴噸搴︾劍铏戠棁2涓湀闆?澶┿?-絳夊緟鍗囩駭涓烘姂閮佺棁
6銆侀瀵煎洟闃熺殑浜烘暟浠?涓漢澧炲姞鍒?5涓漢銆?-棰勮榪樿double涓涓?br />
鎴戠殑鐢熸椿鏄惁闇瑕佹敼鍙樹竴涓嬶紵

TiGERTiAN 2012-04-04 18:38 鍙戣〃璇勮
]]>
Windows Phone 7涓殑Background Agenthttp://m.tkk7.com/TiGERTiAN/archive/2012/02/05/369413.htmlTiGERTiANTiGERTiANSun, 05 Feb 2012 11:43:00 GMThttp://m.tkk7.com/TiGERTiAN/archive/2012/02/05/369413.htmlhttp://m.tkk7.com/TiGERTiAN/comments/369413.htmlhttp://m.tkk7.com/TiGERTiAN/archive/2012/02/05/369413.html#Feedback0http://m.tkk7.com/TiGERTiAN/comments/commentRss/369413.htmlhttp://m.tkk7.com/TiGERTiAN/services/trackbacks/369413.html

鍦╓P7.1涓拡瀵笲ackground Agent鐨勬柊API澧炲姞浜?jiǎn)铔闈炲父寮哄ぇ鐨勯儴鍒嗗Q屼互涓嬪皢浠嬬粛Scheduled Multi Tasking鐨勯儴鍒嗐?/p>

銆銆Scheduled Multi Tasking涓昏鏄Application鏀彺澶氬伐妯″紡鏉ユ墽琛屼換鍔★紝璁〢pplication涓嶅湪鍓嶆櫙妯″紡涓嬩篃鍙互緇х畫鍦ㄨ儗鏅墽琛屾煇浜涚壒瀹氱殑浠誨姟錛屼緥濡傦細(xì)鑳屾櫙涓嬭澆銆佽儗鏅洿鏂拌祫鏂欍佽儗鏅斂鍙湇鍔?#8230;絳夈?/p>

銆銆鐒惰岋紝W(xué)P7.1鎻愪緵Agent鐨勬ā寮忥紝璁╁紑鍙慉pplication鏃跺皢瑕佽儗鏅墽琛岀殑閫昏緫錛岀嫭绔嬫斁緗簬Agent涔嬩腑閫忚繃鎺掔▼鏉ュ畬鎴愪換鍔°?/p>

銆銆浣嗚娉ㄦ剰鐨勬槸錛孉gent涓嶢pplication蹇呯珶榪樻槸灞炰簬涓嶅悓鐨勪笓妗堬紝鍥犱負(fù)IsolatedStorage涓殑IsolatedStorageSettings鏃犳硶鍏辯敤錛岃浜ゆ崲璧勬枡闇閫忚繃IsolatedStorage妗f鎴栧叾浠栨柟寮忔潵浜ゆ崲銆?/p>

銆銆鍥犳錛屽湪璁捐涓涓敮鎻碆ackground Agent(ScheduledTaskAgent)鐨凙pplication鏃訛紝鎴戜釜浜轟細(xì)鏈夊嚑涓冮噺錛?/p>

銆銆1. 灝嗚儗鏅墽琛岀殑閫昏緫鐙珛鎴愪竴涓被鍒垨妯$粍錛岀敱璇ユā緇勫畬鎴愭墍鏈夎儗鏅殑浠誨姟;

銆銆2. 浣跨敤璁懼畾妗?config)鐨勬柟寮忥紝灝嗗弬鏁版垨鎵ц緇撴灉鐙珛浜庢。妗堬紝鎻愪緵Application涓嶢gent鍧囧彲浠ュ彇寰?

銆銆3. Agent鏄儗鏅殑浠誨姟錛屽湪鑳屾櫙鍙戠敓Exception鐨勫閿欐満鍒墮渶瑕佺壒鍒璁★紝灝介噺閫忚繃閫氱煡鍛婄煡鐢ㄦ埛;

銆銆鎺ヤ笅鏉ワ紝灝嗙粏閮ㄥ幓璁ㄨScueduled Tasking鐢遍偅浜涢噸瑕佺殑鍏冪礌緇勬垚錛?/p>

銆銆銆塎icrosoft.Phone.Scheduler - Scheduled Multi Tasking錛?/p>

銆銆WP7.1鍏佽Schedule Task涓嶣ackground Agent鍦ㄨ儗鏅墽琛屽畠浠殑浠誨姟錛岀劧鑰孲chedule Task涓嶣ackground Agent浣跨敤涓婂嵈鏈夋墍涓嶅悓錛?/p>

銆銆‧Schedule Task錛氶噸鐐瑰湪浜庢寚瀹氥岄辨湡鎬?寤惰繜鎬с嶆墽琛屼換鍔★紝閫忚繃璁懼畾Schedule鐨勬椂闂撮鐜囬噸瑕嗗湴鍘繪墽琛屼換鍔?

銆銆‧Background Agent錛氭牴鎹笉鍚岀殑Agent鍙湪緇嗗垎浣跨敤閲嶇偣錛屼絾杈冨睘鎬т竴嬈℃т換鍔℃垨鎺ユ敹澶栭儴浜嬩歡鎵瑙﹀彂鐨勪換鍔?

銆銆鍦∕icrosoft.Phone.Scheculer閽堝Scheulde鎻愪緵浜?jiǎn)Task涓嶯otification鐨勪嬌鐢紝鍏剁敤娉曚笂Schedule Task鍙堟槸鍙︿竴縐嶇敤閫旓紝閽堝Schedule Notification浼?xì)鍦ㄥ彟涓綃?lt;>榪涜璇存槑銆?/p>

銆銆鐒惰岋紝鍦⊿cheulde Task鐨勪嬌鐢ㄤ笂鏈夊嚑涓噸瑕佸厓緋諱竴瀹氳鍘諱簡(jiǎn)瑙g殑錛屼互涓嬪皢璇︾粏璇存槑錛?/p>

銆銆A. ScheduledActionService錛?/p>

銆銆涓撶敤浜庣鐞嗚璁懼鎵鏈夌殑Scheduled Actions銆係cheduled Actions鍖呮嫭浜?jiǎn)鍙敤浜庨氱煡鐨凙larm銆丷eminder錛屾洿鍖呮嫭涓嬫柟浠嬬粛鐨勪簩涓繍琛屼簬Background Agent鐨凱eriodic Task涓嶳esource-Intensive Task銆傚叾閲嶈鐨勬柟娉曞涓嬶細(xì)

鍚嶇О璇存槑
Add鍚戜綔涓氱郴緇熻ɑ鍐屼竴涓猄cheduled Action銆備富瑕侀忚繃Scheduled Action鐨凬ame鍋氫負(fù)璇嗗埆鍊箋?/td>
Find閫忚繃鐗瑰畾鐨凬ame鎵懼嚭Scheduled Action銆?/td>
GetActions(Of T)鍥炰紶緋葷粺涓墍鏈夌壒瀹氱被鍨嬬殑Scheduled Actions銆?/td>
LaunchForTest鎸囧畾鐗瑰畾鐨勫歡榪熸椂闂翠笌ScheduledTask鍚庯紝瑕佹眰Background Agent鎵ц璇cheduledTask銆?/td>
Remove浠嶴cheduled Action Service灝嗘寚瀹氱殑鍚嶇О鐨凷cheduled Action縐婚櫎銆?/td>
Replace閫氬父浼?xì)閰嶅悎F(tuán)ind鎵懼嚭鎸囧畾Name鐨凷cheduled Action錛屽茍鍔犱互鍙栦唬瀹冦?/td>

銆銆B. PeriodicTask錛?/p>

銆銆Periodic(瀹氭湡) Task鏄竴縐嶅畾鏈熶唬鐞嗚繍浣滅殑瑙傚康錛屼笓闂ㄩ拡瀵硅繍浣滆儗鏅換鍔℃墍闇鏃墮棿杈冨皯錛岃屼笖鏄墽琛岄殧闂村叿鏈夎寰嬮辨湡鎬х殑鎯呭銆?/p>

銆銆甯歌鐨勪嬌鐢ㄦ儏澧冿紝渚嬪錛氬畾鏈熶笂浼犳墜鏈虹殑Location璧勮銆佸畬鎴愬皯閲忚祫鏂欑殑鍚屾銆佹洿鏂癟ile鐘舵?#8230;絳夈?/p>

銆銆B-1. 浣跨敤Periodic Task鐨勭害鏉熶笌鏃墮棿閫辨湡寤鴻

綰︽潫/寤鴻璇存槑
鎺掔▼鏃墮棿闂撮殧錛?0鍒?/td>閫氬父姣?0鍒嗘墽琛屼竴嬈★紝鍦ㄧ數(shù)鍔涚姸鍐典笉閿欑殑鎯呭艦涓嬪彲浠ラ厤鍚堝叾浠朾ackground process浣跨敤鏃訛紝涔熷彲浠ヨ瀹氭帴榪戜笂涓嬪樊璺?0縐掔殑浣跨敤銆?/td>
鎺掔▼鎸佺畫鏃墮棿閫氬父鏀彺鎸佺畫鎵ц25縐掞紝浣嗕篃鍙兘鍥犱負(fù)鍏朵粬濉洜閫犳垚璇gent琚彁鏃╃粨鏉熴?/td>
鐢墊睜涓鴻妭綰︽ā寮忔椂錛岃兘闃叉Exception鐢變簬鐢墊睜鏄惁瑕佷嬌鐢ㄨ妭綰︽ā寮忔槸鐢辯敤鎴瘋嚜琛岄夋嫨銆傚鏋滆妯″紡琚夋嫨鏃訛紝褰撶數(shù)姹犺繘鍏ヨ妭綰︽ā寮忔椂錛宲eriodic task灝嗘湁鍙兘鏃犳硶浣跨敤銆?/td>
姣忎竴涓澶囧湪Periodic Task鐨勯檺鍒?/td>涓轟簡(jiǎn)璁╃數(shù)姹犳渶澶у寲浣跨敤錛屼笉鍚岀殑璁懼瀵圭數(shù)姹犵殑浣跨敤鏈変竴瀹氱殑鎺у埗綃勫洿錛屽洜姝わ紝鍙兘闄愬埗涓涓澶囨渶澶氭湁鍑犱釜Agent鍙互琚墽琛岋紝濡傛灉瓚呰繃錛屽畠浼?xì)鑷姩琚玹urn off銆?/td>

銆銆C. ResourceIntensiveTask錛?/p>

銆銆Resource-Intensive(璧勬簮瀵嗛泦) Task鏄拡瀵歸渶瑕佺浉瀵硅緝闀跨殑澶勭悊鏃墮棿錛屾垨鏄亣鍒伴渶浣跨敤澶ч噺鎵嬫満鐢墊簮銆佺綉璺瓑璧勬簮鏃惰緝涓洪傜敤鐨勭被鍨嬨?/p>

銆銆甯歌鐨勪嬌鐢ㄦ儏澧冿紝渚嬪錛氬悓姝ュぇ閲忕殑璧勬枡(濡侫pp闇瑕佷笅杞藉ぇ閲忕殑璧勬枡鑷蟲墜鏈虹鎵嶈兘璁〢pp榪愯)…絳夈?/p>

銆銆C-1. 浣跨敤ResourceIntensiveTask鐨勭害鏉熶笌鏃墮棿閫辨湡寤鴻

綰︽潫/寤鴻璇存槑
鎸佺畫鏃墮棿錛?0鍒嗛悩閫氬父resource-intensive agent涓鑸墽琛屾寔緇害10鍒嗛悩錛屽鏋滄湁鍏朵粬濡備笅鏂圭殑闄愬埗錛屽皢浼?xì)鎻愭棭鍋滄agent鐨勬墽琛屻?/td>
澶栭儴鐢?shù)鍔涢渶姹?/td>闄ら潪璁懼宸茶繛鎺ュ閮ㄧ殑鐢?shù)鍔涙潵婧愬Q屽惁鍒欐棤娉曟墽琛屻?/td>
鏃犺鍔ㄧ綉璺兘綰胯兘鍔?/td>闄ら潪璁懼宸查氳繃Wi-Fi銆佽鍔ㄧ綉璺垨榪炴帴鍒癙C錛屽惁鍒欐棤娉曟墽琛屻?/td>
鏈灝忕數(shù)鍔涢渶姹?/td>闄ら潪鐢?shù)鍔洯憛杩?0%鐨勬儏褰紝鍚﹀垯鏃犳硶鎵цresource-intensive agent銆?/td>
璁懼钀ゅ箷琚攣瀹氱姸鎬?/td>闄ら潪鐢?shù)璇濆浜庨攣瀹氱殑鐘舵侊紝鍚﹀垯鏃犳硶鎵цresource-intensive agent銆?/td>
閫氳瘽涓棤娉曚嬌鐢?/td>褰撴墜鏈哄浜庨氫腑鐘舵佹椂錛宺esource-intensive agent鏃犳硶浣跨敤銆?/td>
涓嶈兘鏀瑰彉緗戣礬鐘舵佷負(fù)琛屽姩緗戣礬濡傛灉resource-intensive agent浼佸浘鍘誨斂鍙獳ssociateToNetworkInterface(Socket, NetworkInterfaceInfo)鏉ユ寚瀹氫換浣曚竴縐嶈鍔ㄧ綉璺?GSM鎴朇DMA)錛屽垯浼?xì)澶辫触銆?/td>

銆銆榪欎簩涓厓绱犲叾瀹為兘鏄敱ScheduleAction涓嶴cheduledTask鎶借薄綾誨埆瀹炰綔鍑烘潵鐨勶紝瀹冧滑鍒嗗埆鏈夎嚜韜嬌鐢ㄧ殑鎯呭涓庨傜敤鎬э紝

銆銆浜岃呮渶澶х殑宸埆鍗沖湪浜庝嬌鐢ㄦ儏澧冧笌闇瑕佽楃敤鎵嬫満璧勬簮鐨勫灝戯紝浠ュ強(qiáng)resource-intensive task瑕佸湪钀ゅ箷閿佸畾涓庣數(shù)鍔?0%浠ヤ笂鎵嶈兘鎵ц銆?/p>

銆銆鐢變簬浣跨敤resource-intensive task瑕佹眰鐨勯檺鍒跺疄鍦ㄥ緢澶氾紝鍥犳錛屽湪璁捐Scheduled Task鏃墮渶瑕佺壒鍒冭檻榪欎釜閮ㄥ垎錛岃嚦浜庡叾浠栫浉鍏崇殑

銆銆灞炴у氨澶у悓灝忓紓浜?jiǎn)锛屼互涓嫿巰浠嬪叾杈冮暱浣跨敤鍒扮殑灞炴э細(xì)

鍚嶇О璇存槑
Description璁懼畾/鍙栧緱鏈夊叧璇cheduled Task鐨勬弿榪般傝鎻忚堪鐨勫唴瀹瑰皢浼?xì)鍑虹庮C簬鎵嬫満銆孲ettings/Applications/Background Tasks Settings銆嶇殑鐢婚潰涓?nbsp;
濡備笅鍥撅細(xì)浠ackground Scheulde涓虹▼寮忓悕縐幫細(xì) 
0000 0001
ExpirationTime璁懼畾/鍙栧緱Scheduled Task鍒版湡鐨勬椂闂淬?/td>
IsScheduled鍙栧緱Scheduled Task鐘舵佹槸鍚︿負(fù)鍚姩銆?/td>
LastExitReason鍙栧緱Agent鎵ц鏈榪戜竴嬈ask琚粨鏉熺殑鐞嗙敱銆?/td>
LastScheduledTime鍙栧緱Agent鎵ц鏈榪戜竴嬈ask鐨勬椂闂達(dá)紝浠ユ墜鏈烘椂闂翠負(fù)涓匯?/td>
Name鍙栧緱Scheduled Action鐨勫悕縐般?/td>

銆銆浜?jiǎn)瑙d簡(jiǎn)浜屼釜鍏冪礌鐨勫熀鏈睘鎬т笌浣跨敤鎯呭鍚庯紝鏈夊嚑涓嬌鐢˙ackground Agent瑕佺壒鍒敞鎰忕殑錛?/p>

銆銆1. 涓涓狝pplication鍙兘鏈変竴涓狟ackground agent(ScheduledTaskAgent)錛屼絾Agent鍙互鍗曠嫭浣跨敤PeriodicTask銆丷esourceIntensiveTask

銆銆鎴栬呬簩涓悓鏃朵嬌鐢ㄣ傝娉ㄦ剰鐨勬槸涓涓狝gent鍙兘鏈変竴涓狿eriodicTask涓庝竴涓猂esourceIntensiveTask銆?/p>

銆銆2. Background Agent(ScheduledTaskAgent)錛?/p>

銆銆2-1. 閫忚繃OnInvoke(ScheduleTask)瑙﹀彂Agent閫昏緫鐨勯儴鍒?

銆銆2-2. 宸叉垚鍔熸墽琛屽畬鎵鏈変換鍔℃椂錛岃寰楀斂鍙玁otifyComplete()鍛婄煡Agent宸插畬鎴愪換鍔?

銆銆2-3. 濡傛灉鍦ㄦ墽琛岃繃紼嬪彂鐢熼敊璇垨鏄棤娉曟墽琛孴ask鏃訛紝瑕佽寰楀斂鍙獳bort()鍛婄煡Agent鎺ヤ笅鏉ュ彇娑堣繍浣滐紝鐒惰屽嵆鍙互鍦ˋpplication绔彇寰?/p>

銆銆ScheduledTask涓殑IsScheduled灞炴т負(fù)false銆備絾瑕佹敞鎰忕殑鏄浣旳bort()涔嬪悗錛岃璁板緱浣跨敤ShellToast鍛婄煡鐢ㄦ埛錛屼互鍏嶇敤鎴蜂笉鐭ラ亾銆?/p>

銆銆3. Background Agent鍦ㄨ蹇嗕綋浣跨敤閲忕殑鎺у埗錛?/p>

銆銆3-1. Periodic agents涓巖esource-intensive agents鍏佽鍦ㄦ瘡嬈℃墽琛孴ask鏃訛紝涓嶈秴榪?MB璁板繂浣撶敤閲忋?/p>

銆銆3-2. Audio agents鍒欓檺鍒朵笉鑳借秴榪?5MB璁板繂浣撶敤閲忋?/p>

銆銆3-3. 鍦―ebug妯″紡涓嬪垯涓嶉檺鍒訛紝浣嗗彲浠ラ忚繃API鍘繪煡璇㈠湪姣忎竴涓儴鍒嗕嬌鐢ㄨ浣撳繂鐨勭姸鍐點(diǎn)?/p>

銆銆4. 棰勮Agent涓轟簩涓槦鏈熷悗闇瑕侀噸鏂板畨鎺扴cheduled錛?/p>

銆銆铏界劧鍙互閫忚繃ScheduledTask涓殑LastScheduledTime鍘葷‘璁ょ┒绔熸渶榪戜竴嬈℃墽琛岀殑Datetime涓轟綍錛屽茍涓斾嬌鐢‥xpirationTime鍘繪寚瀹歍ask

銆銆鍙繍琛岀殑鏃墮棿闀垮害銆備絾鏄嬌鐢⊿cheduledTask鍙兘鍥犱負(fù)鏉′歡闄愬埗(渚嬪閬囧埌鎵цTask鏃舵病緗戣礬鑳藉姏錛岃嚜鍔ㄨ姹侫gent寤跺悗鎵ц)錛岄犳垚Task

銆銆闀挎椂闂存病鏈夎鎵ц錛屼負(fù)浜?jiǎn)纭繚Task涓嶄細(xì)涓鐩村崰浣忎笉浣跨敤錛岄忚繃璁懼畾2涓槦鏈熷彲瀛樻椿鏃墮棿錛屽彲浠ヨ嚜鍔ㄨВ鍐寵繖涓棶棰樸傝瀹欵xpirationTime鍙?/p>

銆銆鍦ㄦ瘡涓嬈℃墽琛孉pplication浜庡墠鏅姸鍐墊椂錛岃繘琛屽垽鏂笌璁懼畾銆?/p>

銆銆5. Scheduled Agent鍦ㄨ繛緇簩涓狢rash鍚庤嚜鍔ㄥ彇娑堬細(xì)

銆銆鐢變簬浣跨敤Periodic agents涓巖esource-intensive agetns鏄氦鐢盇gent鍘繪帶鍒訛紝鍥犳錛屽綋Agent榪炵畫鍑虹幇浜屾浠ヤ笂鐨凜rash鎴栨棤娉曢鏈熺殑閿欒錛?/p>

銆銆璇gent灝嗕細(xì)琚仠姝紝闇閫忚繃Application鍥炲埌鍓嶆櫙妯″紡鍐嶉噸鏂板惎鍔ㄥ畠銆?/p>

TiGERTiAN 2012-02-05 19:43 鍙戣〃璇勮
]]>
主站蜘蛛池模板: 亚洲国产一区二区三区| 久久精品国产亚洲AV未满十八| 特黄特色的大片观看免费视频| 毛片大全免费观看| 亚洲国产精品成人精品小说| 国产亚洲精品成人AA片新蒲金| 亚洲欧洲自拍拍偷午夜色无码| 一个人看www免费高清字幕| 亚洲精品99久久久久中文字幕 | 亚洲成在人线av| fc2免费人成在线| 亚洲国产另类久久久精品黑人| 中出五十路免费视频| 久久久久久久尹人综合网亚洲| a级成人毛片免费视频高清| 国产精品免费观看| 99热亚洲色精品国产88| 国产成人精品男人免费| 成人a毛片视频免费看| 亚洲日韩国产精品第一页一区| 日韩精品在线免费观看| 亚洲国产精品yw在线观看| 免费观看男人免费桶女人视频| 阿v免费在线观看| 亚洲AV成人无码久久精品老人| 99久久免费国产香蕉麻豆| 亚洲爆乳AAA无码专区| 亚洲精品麻豆av| 91精品手机国产免费| 亚洲乱码日产精品一二三| 国产亚洲精品高清在线| 亚洲免费电影网站| 亚洲AV成人无码网天堂| 国产成人麻豆亚洲综合无码精品| 在线成人爽a毛片免费软件| 亚洲av永久无码精品网址| 自拍偷自拍亚洲精品情侣| 波多野结衣中文字幕免费视频| 羞羞视频网站免费入口| 亚洲成人激情在线| 免费国产在线观看|