锘??xml version="1.0" encoding="utf-8" standalone="yes"?>国产精品亚洲综合久久,欧美激情第8页,日韩一区二区精品视频http://m.shnenglu.com/finehai/褰撴椂鍙亾鏄甯竳zh-cnWed, 24 Sep 2025 01:30:26 GMTWed, 24 Sep 2025 01:30:26 GMT60銆愯漿銆戣繖浜涢亾鐞嗕笉鎳傦紝浣犳敞瀹氬氨鏄┓鎵撳伐鐨勫懡http://m.shnenglu.com/finehai/archive/2012/04/28/173042.htmlBlueseaBlueseaSat, 28 Apr 2012 06:50:00 GMThttp://m.shnenglu.com/finehai/archive/2012/04/28/173042.htmlhttp://m.shnenglu.com/finehai/comments/173042.htmlhttp://m.shnenglu.com/finehai/archive/2012/04/28/173042.html#Feedback0http://m.shnenglu.com/finehai/comments/commentRss/173042.htmlhttp://m.shnenglu.com/finehai/services/trackbacks/173042.html


鍚屾牱鏄墦宸?/span>錛屼負浠涔堜綘涓涓湀鍙湁2銆?K錛岃屽攼楠忕殑韜環鍗村彲浠ラ珮杈?0浜匡紵鎴栬浣犱細鍙嶉┏鎴戯紝璇翠漢浜洪兘鎴愪負鍞愰獜鐨勬鐜囨湁澶氬ぇ錛熺殑紜紝浜轟漢閮芥垚涓哄攼楠忕殑紜笉鐜?瀹烇紝浣嗘槸緇忚繃鍔姏錛屾湀钖揪鍒?K銆?W鐨勬繪槸澶ф湁浜哄湪鍚э紵铏界劧涓嶈兘杈懼埌澶у瘜澶ц吹錛屼絾涔熶笉鑷充簬涔頒笉璧鋒埧瀛愶紝鎴愬ぉ鎸ゅ湪鍚堢鎴垮惂錛?/span>

寰堝浜洪兘鍠滄鎶辨紝瑙夊緱榪欎釜涓栭亾涓嶅ソ銆備絾鐜板疄鏄紝鍦ㄥ悓鏍蜂笘閬撲笉濂界殑鎯呭喌涓嬶紝涓轟粈涔堟湁鐨勪漢鎴愬姛錛岃屼綘鍗寸紕屾棤涓猴紵宸窛鍦ㄥ摢閲岋紵鎬笘閬撲笉濂藉悧錛熻繕鏄嚜宸辨病鏈?浜嬶紵鎴戣榪欒瘽鍙兘浣犱笉鐖卞惉銆備絾鏄竴涓棤娉曡京椹崇殑浜嬪疄鏄細浣犺鏄湁鏈簨錛屼負浠涔堟湀钖彧鏈?銆?K鎴栬?銆?K錛熶簨瀹炶儨浜庨泟杈┿傛墍浠ワ紝濡傛灉鐪嬪埌榪欓噷榪樻兂鎶辨ㄧ殑 浜猴紝閭d箞錛屼篃璇蜂綘瓚佹棭紱誨紑銆傛姳鎬ㄦ案榪滆В鍐充笉浜嗛棶棰樸?/span>

鑱?鍦烘槸涓涓鏉傜殑緇煎悎浣撱傜湅鍒板埆浜哄湪鑱屽満涓婂懠椋庡敜闆紝浣犺涓哄緢鎯剰錛屾槸涔堬紵浣嗘槸浠栦滑椋庡厜琛ㄩ潰鐨勮儗鍚庯紝鍙堟湁鍑犱釜鏈夌湅鍒頒粬浠浘緇忎粯鍑虹殑宸ㄥぇ鑹拌緵錛熻繖涓ぞ浼氬叾瀹炴槸 寰堝叕騫崇殑銆傚姫鍔涗笉涓瀹氭湁鍥炴姤錛屼絾濡傛灉涓嶅姫鍔涳紝灝變竴瀹氭病鏈夊洖鎶ャ傝鎬紝灝辨嚜宸辨姇閿欒儙錛屾嚜宸辯殑鑰佸瓙娌℃湰浜嬶紝褰撳垵娌℃湁緇欎綘鐣欎笅涓澶х瑪鍙互鎸ラ湇鐨勮祫鏈紒

璇?褰掕錛屽浜庨偅浜涙兂鏀瑰彉鑷繁鐨勬湅鍙嬩滑鏉ヨ錛岃繕鏄渶瑕佺湅娓呮涓浜涗笢瑗匡紝鏈変竴浜涚粡楠屼篃鎯沖拰澶у鍒嗕韓鍒嗕韓銆傚悓鏍鋒槸鑱屽満浜哄+錛屾垜涔熸湁鎴戠殑緇忛獙鍜屾劅鍙椼傚湪鎵撳伐鐨?騫?閲岋紝鎴戝緱鍒頒簡7嬈″姞钖紙鍚屾椂榪涘叆鍏徃鐨勫憳宸ワ紝鍔犺柂涓嶈秴榪?嬈$殑鍛樺伐澶ф湁浜哄湪錛夛紝欏哄埄鍦頒粠鍛樺伐鍋氬埌浜嗘葷洃錛屾槸鍏徃鎵鏈夊憳宸ヤ腑鎴愰暱鏈蹇殑銆傛垜鏁㈣偗瀹氾紝鍦ㄧ湅榪囪繖 綃囨枃绔犵殑浜哄綋涓紝鑲畾鏈変漢姣旀垜鏇翠紭縐銆備絾鏄浜庨偅浜涙洿娓存湜寰楀埌甯姪鐨勬湅鍙嬩滑鏉ヨ錛屾垜榪樻槸甯屾湜鎶婅嚜宸辯殑緇忛獙鍐欏嚭鏉ワ紝涓庡ぇ瀹跺垎浜傛湁浜洪棶鎴戞垚鍔熸湁娌℃湁鎹峰緞錛屾垜 鍛婅瘔浠栵紝鍞竴鐨勬嵎寰勫氨鏄笉璧板集璺備互涓嬬殑9鏉″鏋滀綘鍋氬埌浜嗭紝鎴愬姛瀵逛綘鑰岃█錛屽彧鏄釜鏃墮棿闂銆?/span>


涓銆佷竴瀹氳娓呮鑷繁鏈潵鐨勭洰鏍囨槸浠涔?/strong>


寰堝浜烘妸鑱屽満鎯沖緱澶編濂斤紝鍏跺疄涓嶇劧銆傚鏋滀綘娌℃湁瑙勫垝濂斤紝浣犲氨浼氶毦鍏嶉亣鍒板悇縐嶅悇鏍風殑闂錛氬伐浣滀笉寮蹇冿紱娌℃湁鍓嶈繘鐨勫姩鍔涳紱宸ヤ綔涓嶆槸鑷繁鎯沖儚鐨勯偅涔堝ソ錛涜嚜宸辯殑鎵嶈兘鏃犳硶鍙戞尌錛涚湅鍒頒互鍓嶇殑鍚屽寰呴亣濡備綍濡備綍錛屼究鍙椾笉浜嗗埡嬋錛屾ュ垏鍦版兂璺蟲Ы錛涘綋鍒濅負浜嗙敓瀛樿屾壘鐨勫伐浣滐紝鏍規湰灝變笉閫傚悎鑷繁……

榪?鏄嚑涔庢墍鏈夊垵鍏ヨ亴鍦虹殑鏈嬪弸閮戒細闈復鐨勯棶棰樸傝岃繖浜涢棶棰橀氬父浼氬湪姝ュ叆鑱屽満鐨?錛?騫翠箣鍐呮渶鏄庢樉錛?騫翠箣鍚庝箣鎵浠ヤ笉鏄庢樉錛屾槸鍥犱負浣犲凡緇忚鐜板疄鎶樼(寰楀お涔呬簡錛屽凡 緇忚縐嶇涓嶅鉤鐜拌薄鍚屽寲浜嗭紝鍥犳涔熷氨涔犳儻浜嗐備綘鏇劇粡鐨勭縐嶆姳璐熻鐜板疄紕懼緱綺夌錛屼簬鏄紝浣犱篃浠庝竴涓織鍚戣繙澶х殑騫磋交浜轟竴涓嬪瓙鍙樻垚浜嗕竴涓紕屾棤涓恒佺敇浜庡鉤搴搞佹垚澶?涓轟簡鐢熻鑰屽璧扮殑鏅氭墦宸ヨ咃級銆傚鏋滀笉鍙婃棭瑙e喅榪欎簺闂錛岄偅涔堬紝浣犲氨浼氳崚搴熻繖3騫寸殑鏃墮棿錛堟湁鐨勪漢鍙兘浼氭洿闀匡級錛岃屽浜庝竴涓亴鍦烘柊浜烘潵璇達紝榪?騫磋嚦鍏抽噸瑕侊紝 鏄敾鐐艱兘鍔涖佺Н绱祫鏈殑榛勯噾3騫達紒涓鏃﹂敊榪囷紝鍒欒鑺辮垂鏇村鐨勬椂闂達紝浠庡ご鍐嶆潵錛岄噸鏂板譏琛ワ紒鏇存湁鐢氳咃紝鍙兘涓杈堝瓙閮芥棤娉曞譏琛ワ紒榪欑粷瀵逛笉鏄嵄璦鑰稿惉錛佸洜姝わ紝濡傛灉 浣犵殑鑱屽満騫撮緞榪樻病鏈夎秴榪?騫達紝鎭枩浣狅紝榪樻湁鏀瑰彉鍛借繍鐨勬満浼氥傝屼竴鏃﹁秴榪囦簡3騫達紝閭d箞錛屼綘鐨勬瘡涓嬈℃敼鍙橈紝閮藉皢浠樺嚭宸ㄥぇ鐨勪唬浠鳳紒

涓?浠涔堣娓呮鑷繁鐨勭洰鏍囷紵鍥犱負錛屾湁浜嗙洰鏍囷紝鎵嶆湁琛屽姩鐨勬寚鍗椼傜煡閬撹嚜宸辨兂騫蹭粈涔堬紝鍠滄騫蹭粈涔堬紝榪欐墠鏄綘鍓嶈繘鐨勬渶緇堝姩鍔涖傚伐浣滀笉寮蹇冦佸姩鍔涗笉瓚熾佺洸鐩煩妲界殑鏈鏍?鏈師鍥犳槸鑱屼笟鐩爣涓嶆竻鏅般傛病鏈夌洰鏍囷紝渚挎病鏈変簡榪芥眰錛屼簬鏄紝鎵鏈夌殑琛屽姩鍙槸涓轟簡鎸d竴鍙iキ鍚冦備綘鏍規湰娌℃湁鑰冭檻榪囪嚜宸辯殑鏈潵搴旇绔粈涔堥キ紕椼傛垨璁鎬綘鍦?0宀佷箣鍓?榪樻湁鎸ラ湇鐨勮祫鏈紝鍥犱負騫磋交鍢涳紝鍋氫粈涔堥兘涓嶆曘傝繛騫垮憡涓婇兘璇翠簡錛?#8220;30宀佷箣鍓嶏紝鏈変粈涔堝ソ鎬曠殑錛燂紒”鑰屼竴鏃﹁繃浜?0宀侊紝浣犺蛋鐨勬瘡涓姝ラ兘蹇呴』瑕佹厧涔嬪張鎱庯紝鍥犱負錛?浣犺緇撳銆佷綘瑕佸吇媧昏佸﹩瀛╁瓙銆佷綘瑕佷緵鎴胯捶銆佷綘瑕佷緵鍏誨勾榪堢殑鐖舵瘝銆佸瀛愬ぇ浜嗚繕瑕佷笂瀛︺佺埗姣嶅勾榪堜簡闇瑕佺収欏?#8230;…絳夌瓑絳夌瓑錛屾墍鏈夌殑榪欎簺璐d換錛岄兘瑕佷綘鏉ユ壙鎷呫傚鏋?娌℃湁瑙勫垝錛屼竴鏃﹀嚭鐜伴棶棰橈紝浣犲彧鑳借嚜涔遍樀鑴氥?/span>

浜?鐢熺殑鑱屼笟鍙戝睍濡傚悓鍝佺墝濉戦犱竴鏍鳳紝鍙笉榪囦綘鐨勪駭鍝佸氨鏄綘鑷繁銆備綘鑷繁鐨勫彂灞曠洰鏍囷紝涔熷氨鏄綘浜虹敓鐨勫搧鐗岀洰鏍囥傛湁浜嗙洰鏍囷紝灝辮鑰冭檻璇ユ庝箞璧般傛瘡璧頒竴姝ワ紝閮藉簲璇ョ 鐩爣鏇磋繎錛岃屼笉鏄洿榪溿傛墍浠ワ紝浣犳瘡鍋氫竴涓喅瀹氱殑鏃跺欙紝瑕佽 閲忚繖涓喅瀹氬涓嶅錛屽敮涓鐨勬爣鍑嗗氨鏄細瀹冩槸涓嶆槸鑳藉甯姪浣犵鐩爣鏇磋繎錛熷鏋滀笉鏄紝閭d箞錛岃刀绱т綇鎵嬶紝 鍥犱負錛屼綘璧扮殑璺亸紱諱簡浣犵殑鐩爣錛佸啀璧頒笅鍘伙紝鍙兘閿欏緱鏇寸璋憋紒

瀵?浜庝漢鐢熺洰鏍囷紝娑夊強鍒拌亴涓氱敓娑鍒掔殑闂銆傝繖鏄竴涓佽瘽棰橈紝寰堝浜轟互涓鴻嚜宸卞緢浜嗚В浜嗭紝鍏跺疄鍗磋繙涓嶆槸閭d箞鍥炰簨銆傚ぇ瀹跺彲浠ョ湅涓浜涚浉鍏充功綾嶏紝浣嗗湪涓浗錛屾綾諱功綾嶇殑 鏈澶ч棶棰樺氨鏄鏁欐ф瘮杈冨己錛屽疄鐢ㄦч潪甯稿樊錛佸緢澶氫漢鐪嬩簡涔︿箣鍚庝緷鐒朵竴澶撮浘姘達紝涓嶇煡鎵鎺紝鐪嬩簡涔嬪悗鍙嶈屾洿緋婃秱銆傛垜鐨勬剰瑙佹槸錛屾渶濂借繕鏄壘涓浜涗笓闂ㄧ殑鏈烘瀯鍜ㄨ涓 涓嬨傛敞鎰忥細鏄挩璇紝涓嶆槸嫻嬭瘎銆備簩鑰呯殑鍖哄埆鍦ㄤ簬錛屽挩璇㈢殑鎰忎箟鍦ㄤ簬“涓哄鎴鋒彁渚涘彲搴旂敤鎬х殑瑙e喅鏂規”錛岃屾祴璇勫垯浠呬粎灞闄愪簬“甯姪浣犺璇嗚嚜宸?#8221;錛岃嚦浜庢庝箞鍋氾紝鎬?鏍瘋鍔ㄦ墠鑳芥洿鎺ヨ繎鑷繁鐨勭洰鏍囷紝涓嶇煡閬擄紒鍥犱負嫻嬭瘎鐨勪漢閮芥槸涓撳錛岃屽浗鍐呯殑涓撳閮芥槸鍋氱爺絀剁殑錛屾病鏈夊疄鎴樼粡楠岋紝鐢氳嚦瀵硅亴鍦哄崌榪佹槸鎬庝箞鍥炰簨閮戒笉澶竻妤氾紝鎬庝箞鍙兘鎸?瀵間綘鍋氬疄鎴樿鍒掞紵寤鴻澶у鍘誨仛涓涓嬭亴涓氱敓娑鍒掋傚鏋滅幇鍦ㄤ笉瑙e喅錛屾亹鎬曟湭鏉?騫翠綘閮戒細鐧界櫧嫻垂錛屾洿鏈夊彲鑳藉洜姝よ屾瘉浜嗕綘鐨勪竴鐢燂紒

璁頒綇錛氭湁浜嗚鍒掞紝涓嶄竴瀹氳兘澶熸垚鍔燂紱浣嗘病鏈夎鍒掞紝涓瀹氫笉浼氭垚鍔燂紒



浜屻佽兘鍔涘浐鐒墮噸瑕侊紝浣嗗茍涓嶈兘浠h〃鍏ㄩ儴


榪?閲屾墍璇寸殑鑳藉姏錛屾槸鎸囦笓涓氭妧鑳姐傛鍏ヨ亴鍦轟綘浼氬彂鐜幫紝鑳藉姏鍏跺疄騫舵病鏈変綘鎯沖儚鐨勯偅涔堥噸瑕侊紝瀹冨茍涓嶆槸鏄姝ラ珮鍗囩殑鍏ㄩ儴璧勬湰銆備綘浼氬彂鐜頒竴涓兘鍔涗笉澶己鐨勪漢鍋氫簡浣犵殑涓?鍙革紝鍙洜涓轟粬鍦ㄨ繖涓叕鍙稿共浜?0騫?#8212;—榪欒鏄?#8220;璧勫巻”鏄綘楂樺崌鐨勬湰閽憋紙榪欑鐜拌薄錛屽湪鍥芥湁浼佷笟鍜屾斂搴滄満鏋勯噷鐗瑰埆鏄庢樉錛屽洜姝わ紝鍦ㄥ浗浼佸伐浣滅殑鏈嬪弸鍜屽叕鍔″憳鍚屽織瑕?娉ㄦ剰浜嗭級錛涙湁鏃跺欎綘浼氬彂鐜拌兘鍔涘茍涓嶆庝箞寮猴紝浣嗘槸涓庤佹澘鍏崇郴闈炲父濂界殑浜洪氬父鑳藉寰楀埌鎻愭嫈——榪欒鏄?#8220;鍏崇郴”涔熸槸鏈挶銆傚湪鎴戝師鍏堝伐浣滅殑鍏徃錛屾湁涓や釜鐗瑰埆鏄庢樉鐨?渚嬪瓙銆備竴涓湁鐫涓板瘜宸ヤ綔緇忛獙鐨勭敺澹紝璺蟲Ы鏉ュ埌鍏徃錛岃兘鍔涗篃鐗瑰埆寮猴紝浣嗗氨鏄笌鍚屼簨澶勭悊涓嶅ソ鍏崇郴錛岃嚜璁や負鑷繁闈炲父鐗涳紝鍠滄涓誨姩褰撳埆浜虹殑“瀵煎笀”錛屽姩涓嶅姩灝卞鍒?浜虹殑宸ヤ綔鎸囨墜鐢昏剼錛岄《澶翠笂鍙擱潪甯歌鍘屼粬錛涜屽悓鏃惰繘鍏ュ叕鍙哥殑鍙﹀涓浣嶅コ澹紝鑳藉姏涓嶆槸鐗瑰埆寮猴紝浣嗘槸闈炲父韙忓疄銆佸嫟濂嬨佷笌鍏朵粬鍚屼簨鐩稿寰椾篃寰堝ソ錛岃兘澶熼【鍏ㄥぇ灞銆傛渶 鍚庤瘯鐢ㄦ湡緇撴潫鏃訛紝閭d綅濂沖+寰楀埌浜嗗叕鍙哥殑璁ゅ彲錛岃岄偅浣嶇敺澹垯鏀跺埌浜嗗叕鍙哥殑杈為閫氱煡銆?/span>

鍦?鑱屽満涓婏紝涓瀹氳瀵硅亴鍦烘湁娓呴啋鐨勮璇嗭紝涓嶈鐢熸椿鍦ㄦⅵ騫誨綋涓紝涓嶈澶悊鎯沖寲錛屼笉瑕佹爣鏂扮珛寮傦紝涓嶈鎭冩墠鍌茬墿錛屼笉瑕佽涓烘湁鑳藉姏灝卞彲浠ヨ蛋閬嶅ぉ涓嬨備笓涓氭妧鑳藉浐鐒墮噸瑕侊紝 浣嗘槸鑱屽満鍙戝睍鐪嬬殑鏄竴涓漢鐨勭患鍚堢礌璐ㄣ傜患鍚堢礌璐ㄩ珮鐨勪漢錛屾墠鏄亴鍦哄彂灞曠殑“娼滃姏鑲?#8221;銆傝繖浜涚患鍚堢礌璐紝鍖呮嫭娌熼氳兘鍔涖佷漢闄呭叧緋昏兘鍔涖佸洟闃熷悎浣滆兘鍔涖佺鐞嗚兘鍔涖?宸ヤ綔鎬佸害鍙婃暚涓氱簿紲炵瓑鍚勭“杞疄鍔?#8221;銆傚浜庢湁浜涙湅鍙嬭岃█錛屽彲鑳戒細瀵硅繖浜?#8220;杞疄鍔?#8221;涓嶅睉涓欏俱傚緢澶氫漢浼氳錛屽鏋滆佹澘鍠滄鐖辨媿椹眮鐨勪漢錛岄毦閬撴垜灝辮濮斿眻鑷繁錛?瀛︾潃鍘繪媿椹眮錛熷緢涓嶅垢錛屾垜浼氬憡璇変綘錛岀瓟妗堟槸鑲畾鐨勶紝浣犱竴瀹氳瀛︿細鎷嶉┈灞侊紝鍚﹀垯鍚冧簭鐨勬槸鑷繁銆備絾瑕佸0鏄庣殑鏄紝鎴戜笉鏄暀浣犺瘓銆備腑鍥芥湁鍙ユ垚璇紝鍙鍦嗗唴鏂癸紝鐢ㄥ湪 浜洪檯浜ゅ線涓婏紝灝辨槸璇翠綘涓庝漢鐩稿瑕佸浼氬Ε鍠勫鐞嗗悇縐嶅叧緋伙紝浣嗕笉鍙洜姝よ屽け鍘諱簡鍐呭績鐨勫噯鍒欙紝鍚﹀垯灝卞彉璐ㄤ簡銆傚挨鍏跺湪涓浗榪欑娉ㄩ噸浜烘儏鐨勭ぞ浼氾紝榪欑浜洪檯浜ゅ線鐨勮兘鍔?涓瀹氳濂藉ソ緇冪粌銆傚鏋滄湁鏃墮棿錛岀湅涓涓嬨婂帤榛戝銆嬶紝浜嗚В涓涓嬬ぞ浼氱幇瀹烇紝鍒囧繉涓嶅彲鍥犳鑰岃糠澶變簡鑷繁銆?/span>



涓夈佽鏈夎凍澶熺殑“浜墤”璧勬湰


鏈?鐨勫ぇ瀛︾敓緇忓父浼氳窡鎴戣錛屾垜姣曚笟涔嬪悗涓瀹氳鎵懼埌涓浠芥湀钖灝戝灝戠殑宸ヤ綔錛屼簤鍙栧仛鍒頒粈涔堜粈涔堣亴浣嶃傝繖鏃跺欐垜鎬繪槸浼氳愬績鍚畬浠栦滑鐨?#8220;榪滃ぇ钃濆浘”錛岀劧鍚庨棶涓鍙ワ細 “浣犲嚟浠涔堣揪鍒頒綘鐨勭洰鏍囷紵浣犵殑璧勬湰鏄粈涔堬紵”鐒跺悗浠栧氨浼氬搼鍙f棤璦銆傛垜鐩鎬俊璇昏繃榪欑瘒鏂囩珷鐨勪漢涔熶細鍜岃繖浣嶅ぇ瀛︾敓涓鏍鳳紝鏈夌潃鑷繁鐨勪紵澶ф姳璐燂紝浣嗘槸澶у鍥涘勾涓嬫潵錛?浣犳湁娌℃湁鎯沖埌錛岃瀹炵幇榪欎簺鐩爣錛屼綘鐨勮祫鏈槸浠涔堬紵瀵逛簬寰堝宸茬粡韜湪鑱屽満鐨勬湅鍙嬭岃█錛屼綘鏅嬪崌鐨勮祫鏈張鏄粈涔堬紵

浜?鐢熷湪鍙戝睍榪囩▼涓紝寰堝鏃跺欓兘闇瑕佹涓嶇姽璞湴鍚戝埆浜哄睍紺鴻嚜宸辯殑瀹炲姏錛岃鏁簬灞曠ず錛屽杽浜庡睍紺猴紝榪欏氨鏄?#8220;浜墤”銆傚洜涓鴻繖騫村ご錛岄厭棣欎篃鎬曞販瀛愭繁錛屾槸閲戝瓙鏈繀浼氬彂 鍏夈傜浉鍙嶏紝鍙戝厜鐨勫掓槸閭d簺紕庣幓鐠冦佺儌鐡跺瓙銆備腑鍥戒粈涔堥兘緙猴紝灝辨槸涓嶇己浜恒傝尗鑼漢嫻鳳紝濡傛灉浣犱竴鐩撮兘璋﹁櫄鍦伴粯榛樻棤闂伙紝閭d箞錛屼綘灝卞ぇ閿欑壒閿欎簡銆?/span>

鏃?鐒跺叿澶囦簡“浜墤”鐨勬剰璇嗭紝閭d箞錛屼笅涓姝ヤ綘灝辮鑰冭檻鍒頒寒浠涔堝墤錛氭垜鍒板簳鎷夸粈涔堣祫鏈粰浜哄鐪嬶紵瀵逛簬鑱屽満涓婄殑鏈嬪弸鑰岃█錛屼綘“浜墤”鐨勮祫鏈張鍦ㄥ摢閲岋紵浣犵殑涓氱嘩鎻愬崌 浜嗗悧錛熶綘鐨勮兘鍔涙彁鍗囦簡鍚楋紵浣犲湪涓騫村唴鐪嬭繃澶氬皯鏈鑷繁鐨勮亴涓氭湁鐩婄殑涔︾睄錛熶綘鍙傚姞榪囧嚑嬈″煿璁彮鏉ヤ負鑷繁鍏呯數錛熷鏋滄病鏈夛紝浣犲張鍑粈涔堣鑰佹澘涓轟綘鍔犲伐璧勶紵闈犳姳 鎬紵浣犺偗瀹氫細鎻愬墠琚亴鍦烘窐姹板嚭灞錛?/span>



鍥涖佹厧閲嶅寰呯涓浠藉伐浣?/strong>


榪欎竴瑙傜偣錛屽浜庡ぇ瀛︾敓鏉ヨ錛屾洿鏈夋剰涔夈?/span>

鐜板湪鏁翠釜紺句細銆佸獟浣撱佷笓瀹剁瓑絳夊悇縐嶅崟浣嶉兘涓鐩村湪榧撳惞“鍏堝氨涓氾紝鍐嶆嫨涓?#8221;銆傝繖縐嶈璋冧笉鏄粖騫村氨鏈夛紝鑰屾槸澶氬ソ澶氬勾鍓嶅氨鍑虹幇浜嗭紝騫朵笖灞″薄鍑虹幇錛屼笉緇濅簬鑰熾傜浉淇″綋騫存垜浠ぇ瀛︽瘯涓氭椂鍊欙紝涔熶細鏈夊緢澶氫漢鐩鎬俊浜嗚繖涓鐐瑰惂錛熺瀹冨憿錛岄獞椹存壘椹紝鍏堟壘浠藉伐浣滄專閽卞~楗辮倸瀛愬啀璇達紒

浣?鏄牴鎹湰浜鴻嚜韜殑緇忛獙鍙婅亴鍦哄彂灞曠殑鐜板疄鎯呭喌鏉ョ湅錛屾湰浜虹粷瀵逛笉璧炲悓榪欑璇存硶銆傜浉淇$幇鍦ㄥ湪鑱屽満涓婂彂灞曚笉欏虹殑鏈嬪弸錛屽鍗婁篃鍜岀涓浠藉伐浣滄湁鍏崇郴鍚э紵淇楄瘽璇達紝“鐢鋒?鍏ラ敊琛岋紝濂蟲曞珌閿欓儙銆?#8221;絎竴姝ラ敊浜嗭紝浠ュ悗灝變細緇忓父鐘敊銆傛鎵璋撲竴姝ラ敊錛屾姝ラ敊銆備負浠涔堢涓鍒嗗伐浣滆繖涔堥噸瑕佸憿錛熷師鍥犳湁涓夛細


1銆?鍏堝叆涓轟富鐨勮蹇靛獎鍝嶃傚叿浣撴槸鎸囷紝鍏堝惉榪涘幓鐨勮瘽鎴栧厛鑾峰緱鐨勫嵃璞″線寰鍦ㄥご鑴戜腑鍗犳湁涓誨鍦頒綅錛屼互鍚庡啀閬囧埌涓嶅悓鐨勬剰瑙佹椂錛屽氨涓嶅鏄撴帴鍙椼備婦涓渶綆鍗曠殑渚嬪瓙錛氬湪浣犵殑 澶磋剳鍗拌薄涓紝璇哄熀浜氬凡緇忔槸鎵嬫満鐨勪唬鍚嶈瘝銆傚鏋滄湁涓澶╄鍩轟簹鐢熶駭鍑轟簡涓縐?#8220;璇哄熀浜氱墝鐢佃剳”錛屼綘鐨勫績閲屾槸浠涔堟劅瑙夛紵闈炲父涓嶅鍔插涓嶅錛熻繖涓繪槸鍏堝叆涓轟富鐜拌薄銆傛垜 鍘熷厛鏈変竴涓悓浜嬶紝鏇劇粡鍦ㄦ搗灝斿伐浣滆繃錛屽ス鐢ㄧ殑鏄搗灝旂殑鎵嬫満錛屽姛鑳戒篃闈炲父涓嶉敊錛屼絾濂規繪槸璇磋鎹竴閮ㄦ墜鏈猴紝鎴戦棶濂瑰師鍥狅紝濂硅錛屽厹閲岃鐫嫻峰皵鐨勬墜鏈猴紝鎬繪劅瑙夊儚瑁呬簡 涓涓ぇ鍐扮錛岄潪甯鎬笉鑸掓湇銆備負浠涔堬紵鍏堝叆涓轟富鍛楋紒涓嶈灝忕湅榪欎竴鐜拌薄錛屽叾瀹炲浜虹殑娼滄剰璇嗗獎鍝嶉潪甯稿ぇ銆傛搗灝旂殑鎵嬫満鍜岀數鑴戠瓑IT浜у搧鍗栧緱涓嶅ソ錛岀浉褰撲竴閮ㄥ垎鏄洜涓哄厛 鍏ヤ負涓伙細澶у鏅亶璁や負嫻峰皵鏄鐢電殑浠e悕璇嶏紝鑰屼笉鏄疘T鐨勪唬鍚嶈瘝銆?/span>

瀵?浜庢眰鑱岀殑澶у鐢熸潵璇達紝榪欎竴瑙傚康鍚屾牱浼氬獎鍝嶄綘浠ュ悗鐨勫彂灞曘備綘鐨勭涓浠藉伐浣滀細瀵逛綘浠ュ悗鐨勫伐浣滀駭鐢熷獎鍝嶏紝浣犺煩妲芥椂錛屼綘鐨勬柊闆囦富涔熶細閫氳繃浣犵殑絎竴浠藉伐浣滅粡楠屾潵鍒ゆ柇 浣犳槸鍚﹁兘澶熻儨浠昏繖浠藉伐浣溿傛浘緇忔湁涓涓ぇ瀛︾敓錛屾瘯涓氫箣鍚庢兂鍋氱瓥鍒掞紝灝辨壘浜嗕竴瀹跺箍鍛婂叕鍙搞傚垰榪涘叕鍙告椂錛屽洜涓烘枃絎斾笉閿欙紝琚畨鎺掑埌浜嗘枃妗堢殑浣嶅瓙涓娿傝屼笌浠栧悓鏃惰繘鍘?鐨勫彟澶栦竴涓漢錛屾伆鎭板洜涓烘枃絎斾笉濂借岃瀹夋帓鍒頒簡絳栧垝鐨勪綅瀛愪笂銆傚悗鏉ュス灞℃鎯寵漿琛屽仛絳栧垝錛屼絾閮芥槸鍥犱負鍓嶄竴浠藉伐浣滅粡楠岀殑褰卞搷錛岃屽緇堟病鏈夊緱鍒拌漿琛岀殑鏈轟細銆?/span>


2銆?鑱屽満涓笉鍏佽浠庡ご鍐嶆潵銆傚鏋滃叕鍙告嫑鑱樼殑鏄湁鍑犲勾宸ヤ綔緇忛獙鐨勮佸憳宸ワ紝涓瀹氳姹傛槸“鐩稿叧緇忛獙”錛佽繖涓鐐硅嚦鍏抽噸瑕侊紒鍥犱負榪欐牱鐨勫憳宸ヤ竴鑸笉闇瑕佸煿璁紝鍙互鐩存帴涓?宀楋紝浼氬緢蹇負鍏徃甯︽潵鏈澶х殑鏁堢泭銆傚鏋滄槸宸ヤ綔鍑犲勾浠ュ悗鍐嶆墦綆楄漿琛岀殑搴旇仒浜哄憳錛屼竴鑸笉浼氬彈鍒伴噸瑙嗭紝涓鏄笉浼氱粰鍏徃鐩存帴甯︽潵鏁堢泭錛屼簩鏄煿璁搗鏉ヤ篃姣旇緝鍥伴毦錛屾?緇村凡緇忓浐鍖栥備笌鍏惰繖鏍鳳紝鍊掍笉濡傛嫑涓鍚嶅簲灞婄敓錛岀櫧綰鎬竴寮狅紝鍙鎬у己錛屽彂灞曡搗鏉ユ綔鍔涙洿澶с傛墍浠ワ紝涓鏃︽湁浜嗗伐浣滅粡楠屼箣鍚庯紝鍐嶆兂杞浠庡ご鍐嶆潵錛岄毦搴︾浉褰撳ぇ銆傞櫎闈炰綘 璁よ瘑鍏徃鐨勯珮灞傞瀵鹼紝鍙互寰楀埌涓涓満浼氾紝鍚﹀垯錛屽緢闅俱?/span>


3銆佹椂闂存垚鏈笉鍏佽銆傛鍏ヨ亴鍦虹殑鍓嶄笁騫達紝鏄竴涓漢鑱屼笟鎴愰暱鐨勬渶閲嶈銆佹渶鍏抽敭鐨勬椂鏈熴傚鏋滀綘榪欐椂鍊欒繕鎶婂伐浣滅殑閲嶇偣鏀懼湪楠戦┐鎵鵑┈寮忕殑杞涓婏紝鍒欎細嫻垂浣犳渶瀹濊吹鐨勯潚鏄ワ紝浣犵殑鎴愰暱涔熷洜姝ゆ瘮鍏朵粬浜烘參涓姝ワ紝鑰屽緢澶氭檵鍗囩殑鏈轟細灝嗗洜姝よ屽け鍘匯?/span>

鎵浠ワ紝瀵瑰緟絎竴浠藉伐浣滐紝涓瀹氳鎱庨噸銆傛壘宸ヤ綔灝卞儚緇撳錛屾儏鎰夸笉緇擄紝緇濅笉鑳戒貢緇撱?/span>

濡傛灉鐜板湪浣犲垰鍒氭鍏ヨ亴鍦鴻繕涓嶅埌3騫達紝鍔濅綘瓚佹棭鍋氫竴涓亴涓氳鍒掞紝浜$緤琛ョ墷錛屽挨鏈負鏅氥備竴鏃︿綘緇撳浜嗕拱鎴垮瓙浜嗭紝浣犲啀鎯沖譏琛ラ兘宸茬粡鏅氫簡錛?/span>


 

浜斻佽淇濇寔涓縐?#8220;絀烘澂蹇冩?#8221;


緇欏ぇ瀹惰涓涓晠浜嬨?/span>


鍙?鏃跺欐湁涓涓經瀛﹂犺寰堟繁鐨勪漢錛屽惉璇存煇涓搴欓噷鏈変綅寰烽珮鏈涢噸鐨勮佺甯堬紝渚垮幓鎷滆銆傝佺甯堢殑寰掑紵鎺ュ緟浠栨椂錛屼粬鎬佸害鍌叉參錛屽績鎯籌細鎴戞槸浣涘閫犺寰堟繁鐨勪漢錛屼綘綆楄?鍑狅紵鍚庢潵鑰佺甯堝張鍗佸垎鎭暚鍦版帴寰呬簡浠栵紝騫朵負浠栨矎鑼躲傚彲鍦ㄥ掓按鏃訛紝鏄庢槑鏉瓙宸茬粡婊′簡錛岃佺甯堣繕涓嶅仠鍦板掋備粬涓嶈В鍦伴棶錛?#8220;澶у笀錛屼負浠涔堟澂瀛愬凡緇忔弧浜嗭紝榪樿寰閲?鍊掞紵”澶у笀璇達細“鏄晩錛屾棦鐒跺凡婊′簡錛屽共鍢涜繕瑕佸掑憿錛?#8221;

紱?甯堢殑鎰忔濇槸錛屾棦鐒朵綘宸茬粡寰堟湁瀛﹂棶浜嗭紝騫插槢榪樿鍒版垜榪欓噷姹傛暀錛熻繖灝辨槸“絀烘澂蹇冩?#8221;鐨勬晠浜嬪摬鐞嗐傚畠鏈鐩存帴鐨勫惈涔夊氨鏄竴涓婊℃按鐨勬澂瀛愬緢闅炬帴綰蟲柊涓滆タ錛岃灝嗗績閲?鐨?#8220;鏉瓙”鍊掔┖錛屽皢鑷繁鎵閲嶈銆佸湪涔庣殑寰堝涓滆タ浠ュ強鏇劇粡杈夌厡鐨勮繃鍘諱粠蹇冩佷笂褰誨簳浜嗙粨娓呯┖錛屽彧鏈夊皢蹇冨掔┖浜嗭紝鎵嶄細鏈夊鍦ㄧ殑鏉炬墜錛屾墠鑳芥嫢鏈夋洿澶х殑鎴愬姛銆傝繖鏄瘡 涓涓兂鍦ㄨ亴鍦哄彂灞曠殑浜烘墍蹇呴』鎷ユ湁鐨勬渶閲嶈鐨勫績鎬併傚畠鍛婅瘔鎴戜滑涓涓亾鐞嗭細鍋氫簨鐨勫墠鎻愭槸鍏堣鏈夊ソ蹇冩併傚鏋滄兂瀛﹀埌鏇村鐨勫闂紝鍏堣鎶婅嚜宸辨兂璞℃垚“涓涓┖鐫鐨勬澂 瀛?#8221;錛岃屼笉鏄獎鍌茶嚜婊°?/span>

鎴?瑙佽繃寰堝鐨勫ぇ瀛︽瘯涓氱敓錛屽垰榪涘叆鍏徃鏃跺父甯稿澶勫惞鐗涳紝璇磋嚜宸卞湪瀛︽牎濡備綍濡備綍錛屾湰鏉ュ彲浠ユ壘鍒版洿濂界殑宸ヤ綔錛岃揩涓嶅緱宸叉墠鏉ュ埌浜嗚繖閲岀瓑絳変箣綾葷殑璇濓紝濂藉儚榪欏鍏徃濮斿眻 浜嗚嚜宸便傚湪榪欓噷鎻愰啋涓涓嬮偅浜涘嵆灝嗘鍏ヨ亴鍦虹殑澶у鐢燂細榪欑蹇冩佸崈涓囪涓嶅緱錛佷笉瑕佽涓鴻嚜宸卞緢鐗涖傝繕鏄偅鍙ヤ綘涓嶇埍鍚殑璇濓細涓浗浠涔堥兘緙猴紝灝辨槸涓嶇己浜猴紒璇濆張璇村洖 鏉ワ紝浣犺鏄繖涔堢墰錛屼負浠涔堜笉鍍忔瘮灝?鐩栬尐銆佹埓灝斻佷箶甯冩柉閭f牱錛屽ぇ瀛︽病姣曚笟灝遍瀛﹀幓鍒涘姙涓瀹朵笘鐣岀駭鐨勫ぇ浼佷笟錛熺伀杞︿笉鏄帹鐨勶紝鐗涚毊涓嶆槸鍚圭殑銆備綘瑕佹槸鏈夋湰浜嬶紝灝?鐢ㄤ簨瀹炶瘉鏄庣粰浜哄鐪嬶紝鑰屼笉鏄垚澶╂姳鎬紒

瀵?浜庤韓鍦ㄨ亴鍦虹殑鏈嬪弸鑰岃█錛岃繖涓蹇冩佸悓鏍烽噸瑕併備腑鍥芥湁涓涓瘝錛屽彨“铏氭鑻ヨ胺”銆傛垜浠兘鐭ラ亾錛屼紭縐鐨勪漢鏈夋瀬楂樼殑绱犲吇錛岀敋鑷蟲槸铏氭鑻ヨ胺錛屼粬浠兘鏈変竴涓兘鍖呭涓鍒囩殑 鑳告錛屾湁浜嗚繖鏍風殑鑳告錛屼綘鍦ㄨ亴鍦轟笂灝變細鑾峰緱鍒漢鐨勫皧閲嶏紝灝變細鑾峰緱鏇村鐨勫彂灞曟満浼氥傜被浼肩殑璇嶈繕鏈?#8220;澶ф櫤鑻ユ剼”“澶у閥鑻ユ嫏”絳夌瓑錛屼笉澶氳錛岃嚜宸卞幓浣撲細銆?/span>


 

鍏佽鎳備竴鐐瑰仛浜虹殑甯歌瘑


鑱屽満灝卞儚涓涓ぇ鐔旂倝銆傚湪鑱屽満涓紝涓嶄粎浠呮槸瑕佹專涓紕楅キ鍚冿紝鏇撮噸瑕佺殑鏄浼氬仛浜虹殑閬撶悊銆傚鏋滆繛鏈璧風爜鐨勯亾鐞嗛兘涓嶆噦錛屼綘涓嶄粎寰椾笉鍒板埆浜虹殑灝婇噸錛屾洿浼氬け鍘繪洿澶氱殑鍙戝睍鏈轟細銆傚洜涓猴紝鍦ㄤ腑鍥斤紝浜洪檯鍏崇郴涔熸槸鐢熶駭鍔涖備腑鍥芥湁鍙ュ彜璇濓細寰楅亾澶氬姪錛屽け閬撳鍔┿?/span>

鎴戣榪囧緢澶氫漢錛岃櫧鐒跺凡緇忓伐浣滃騫達紝浣嗗浜庡仛浜猴紝鍗磋繛涓鐐規渶鍩烘湰鐨勫父璇嗛兘涓嶆噦銆傚仛浜虹殑閬撶悊涓囦竾鍗冿紝浣嗗叾涓渶閲嶈鐨勶紝鑾繃浜庝互涓嬩笁鏉★細


1銆?涓ヤ簬寰嬪繁錛屽浠ュ緟浜恒備綘鍜屽悓浜嬩箣闂撮椆榪囦笉鎰夊揩鍚楋紵鍦ㄦ壒鍒ゅ埆浜虹殑鍚屾椂錛屼綘鏄惁娣卞埢鍦板弽鐪佽繃鑷繁錛熷伐浣滃嚭鐜伴棶棰樼殑鏃跺欙紝浣犳槸鍚︽妸璐d換寰鍒漢韜笂鎺ㄨ繃錛熸湁浜哄悜浣?鎻愬嚭涓嶅悓鎰忚鏃訛紝浣犳槸鍚﹁兘澶熷潶鐒舵帴鍙楋紵闈㈠鍒漢鐨勬寚璐o紝浣犳槸鍚︽浘緇忓井絎戠潃浜堜互鍥炲簲錛熶漢浜洪兘鏈夎嚜鎴戦槻澶囩殑鏈兘錛岃繖涓鐐規棤鍙帤闈炪備絾鍦ㄩ槻澶囩殑鍚屾椂錛屼綘鏄惁鏁炲紑 鑳告鎺ョ撼榪囧埆浜猴紵“蹇嶄竴鍒嗛騫蟲氮闈欙紝閫涓姝ユ搗闃斿ぉ絀恒?#8221;鍑虹幇闂鏃訛紝濡傛灉澶у閮借兘澶熸鐫涓縐嶅瀹圭殑蹇冩侊紝鍙堟湁浠涔堥棶棰樹細鍑虹幇鍛紵寰堝浜轟笉鐭ラ亾“涓ヤ簬寰嬪繁錛?瀹戒互寰呬漢”鐨勯亾鐞嗐傛鏄洜涓哄緢澶氫漢涓嶇煡閬擄紝浜庢槸鎳傚緱榪欎釜閬撶悊鐨勪漢灝卞緢瀹規槗璧板悜鎴愬姛銆傚澶х殑鑳告浼氳浣犵Н绱緢澶氱殑浜鴻剦錛屽緱鍒板ぇ瀹剁殑灝婇噸錛涘綋浣犻渶瑕佸府鍔╂椂錛屽ぇ 瀹朵篃涔愭剰浼告墜銆傛劅嬋浼ゅ浣犵殑浜猴紝鍥犱負浠栫(緇冧簡浣犵殑蹇冩侊紱鎰熸縺緇婂掍綘鐨勪漢錛屽洜涓轟粬寮哄寲浜嗕綘鐨勬剰蹇楋紱鎰熸縺嬈洪獥浣犵殑浜猴紝鍥犱負浠栧榪涗簡浣犵殑鏅烘収錛涙劅嬋钄戣浣犵殑浜猴紝 鍥犱負浠栬閱掍簡浣犵殑鑷皧錛涙劅嬋閬楀純浣犵殑浜猴紝鍥犱負浠栨暀浼氫簡浣犲浣曠嫭绔嬨傚寰呮瘡涓涓漢錛岄兘瑕佹鐫瀹藉鍜屾劅鎭╃殑蹇冦傛濡傛潕鍢夎瘹鍏堢敓鎵璦錛?#8220;鍑′簨閮界暀涓綑鍦幫紝鍥犱負浜?鏄漢錛屼漢涓嶆槸紲烇紝涓嶅厤鏈夐敊澶勶紝鍙互鍘熻皡浜虹殑鍦版柟錛屽氨鍘熻皡浜恒?#8221;


2銆?瀛︿細鍊懼惉銆傜敓媧諱腑鎴戜滑寰寰浼氫富鍔ㄥ鎵懼捐瘔瀵硅薄錛屽仛涓涓捐瘔鑰咃紝鑰屽洖閬垮仛涓涓懼惉鑰呫傚湪浜轟笌浜虹殑浜ゅ線涓紝鍊懼惉鏄竴涓笉鍙己灝戠殑鏂歸潰錛屾湁鏃跺畠鐢氳嚦姣斾氦嫻佽繕瑕侀噸 瑕併傚浼氬懼惉錛岃兘淇韓鍏繪э紝闄跺喍鎬ф儏錛涘浼氬懼惉錛岃兘鍗氶噰浼楅暱錛屽譏琛ヨ嚜宸辮冭檻闂鐨勪笉瓚籌紱瀛︿細鍊懼惉錛岃兘浣夸漢钀屽彂鐏墊劅錛岃Е綾繪梺閫氾紱瀛︿細鍊懼惉錛岃兘鍏繪垚灝婇噸浠栦漢鐨?鑹ソ鍝佽川錛屽垱閫犱竴涓壇濂界殑浜烘枃鐜錛涘浼氬懼惉錛岃兘浣撲細涓縐嶉粯榛樻棤璇殑鍏沖績鍜屼綋璐達紝璧㈠緱浜叉儏銆佺埍鎯呭拰鍙嬫儏錛涘浼氬懼惉錛岃繕鑳藉湪鐭涚浘嬋鍖栨椂錛岃瀵規柟浠庡彟涓涓搴?閲嶆柊璁よ瘑鑷繁錛屾墦寮鍍墊寔鐨勫眬闈?#8230;…

瀛︿細鍊懼惉灝辨槸瀛︿細涓縐嶇編寰鳳紝涓縐嶄慨鍏伙紝涓縐嶆皵搴︺傚垏蹇屼腑閫旀彃璇濇垨鎵撴柇浠栦漢錛屽惁鍒欎細琚涓轟笉紺艱矊鍜岀己涔忎慨鍏匯備竴涓唉铏氬ソ瀛︾殑浜猴紝涓涓噦寰楀杽寰呬粬浜虹殑浜猴紝涓涓細鍙嶆濈殑浜猴紝姘歌繙鎳傚緱鍊懼惉錛佹棤璁轟粈涔堟椂鍊欙紝鍊懼惉閮芥樉紺哄嚭涓涓漢鐨勮亴涓氱礌鍏匯?/span>


3銆?璇氬疄瀹堜俊銆傝瘹瀹炴槸鍔涢噺鐨勪竴縐嶈薄寰侊紝瀹冩樉紺虹潃涓涓漢鐨勯珮搴﹁嚜閲嶅拰鍐呭績鐨勫畨鍏ㄦ劅涓庡皧涓ユ劅銆傜ぞ浼氫腑鍥虹劧澶勫鍏呮弧浜嗙浉浜掑埄鐢ㄣ佸埄鐩婅嚦涓婄殑鐜拌薄錛屽湪榪欑鎯呭喌涓嬶紝璇氬疄 瀹堜俊灝卞彉鎴愪竴縐嶆棤浠風殑璧勪駭銆傝瘹瀹炲畧淇★紝鎵嶈兘寤虹珛鑹ソ鐨勪漢闄呭叧緋伙紝鎵撲笅鐗㈤潬鐨勪簨涓氬熀紜錛屽彇寰楀潥瀹炵殑浜虹敓涓氱嘩銆傝岄偅縐嶄袱闈笁鍒銆佸綋闈竴濂楄儗鍚庝竴濂楃殑浜猴紝鍥虹劧鍙?浠ュ崰涓鐐瑰皬渚垮疁錛屼絾閭g鐭鐨勮涓猴紝浼氳浣犳參鎱㈠け鍘誨緢澶氫笢瑗褲傚浼氬皧閲嶅埆浜猴紝淇″畧鎵胯錛屽敖閲忓幓甯姪鍒漢錛屽寰呬粬浜猴紝閮藉彲浠ユ彁鍗囦綘鐨勮瘹淇°傝鎯蟲垚灝卞ぇ浜嬶紝璇?瀹炲畧淇$殑浼犵粺緹庡痙姘歌繙涓嶄細榪囨椂銆?/span>

鎬諱箣涓鍙ヨ瘽錛氳璁ょ湡鐪熷仛浜嬶紝韙忚笍瀹炲疄鍋氫漢錛?/span>


 

涓冦佽瀛︿細閬靛畧娓告垙瑙勫垯


鎴?涓轟粈涔堝湪鏂囩珷涓寮澶村氨鎻愰啋“鎰ら潚”鎴栬?#8220;綾繪劋闈?#8221;浠笉瑕佺湅榪欑瘒鏂囩珷錛熷洜涓轟粬浠鍗婃槸鏀捐崱涓嶇緛銆佷笉浼氶伒瀹堟父鎴忚鍒欑殑涓誨効錛佸緢澶氫漢閮戒細鎰熻鍒幫紝鍦ㄨ亴鍦轟笂鍙戝睍錛?涓嶄粎浼氬彈鍒板悇縐嶇害鏉燂紝鑰屼笖澶勫閮藉厖婊′簡涓嶅叕騫崇幇璞°傛瘮濡傦細涓婄彮榪熷埌鑰佹澘浼氭墸浣犲伐璧勶紝浣嗕綘鍔犵彮鐨勬椂鍊欏嵈浠庢潵娌℃湁鎷胯繃鍔犵彮宸ヨ祫錛涗綘绔嬪姛鐨勬椂鍊欐病鏈夊彈鍒拌繃琛ㄥ槳錛?涓鏃︾姱閿欙紝鑰佹澘鍗存寚鐫榧誨瓙楠備釜涓嶅仠銆?/span>

鍦?榪欎釜涓栫晫涓婏紝涓嶈濂㈡眰鍏鉤銆傞偅鍙槸涓縐嶄箤鎵橀偊寮忕殑鐞嗘兂錛屼粠鏉ラ兘涓嶅瓨鍦ㄤ簬鐜板疄紺句細涓傚憳宸ュ拰鑰佹澘涔嬮棿鐨勫叧緋伙紝灝卞ソ鍍忔槸涓鍦烘父鎴忋傛槸娓告垙灝變細鏈夋父鎴忚鍒掞紝鍚?鍒欙紝娓告垙灝辯帺涓嶄笅鍘匯備絾鏄紝娓告垙瑙勫垯鏄皝鍒跺畾鐨勫憿錛熷綋鐒舵槸鑰佹澘錛屽悇縐嶅埄鐩婁篃鍋忓悜鑰佹澘錛佽韓鍦ㄨ亴鍦虹殑浣狅紝涓寮濮嬭偗瀹氱湅涓嶆儻榪欑鐜拌薄錛屼絾浣犱竴瀹氳瀛︿細鎱㈡參鎺ュ彈榪?縐嶆父鎴忚鍒欍備笉瑕佽瘯鍥炬敼鍙樿繖縐嶈鍒欙紝鍥犱負鍦ㄨ佹澘闈㈠墠錛屼綘娌℃湁澶鐨勮瘽璇潈錛堟洿鏈夎澶氬騫翠互鏉ヨ嚜鐒跺艦鎴愮殑娼滆鍒欙紝浣犳洿鏄棤娉曟敼鍙橈級銆傝寰楀啀闅懼惉浜涳紝浣犲彧鏄竴 涓墦宸ョ殑錛屾販鍙iキ鍚冿紝緇欎綘鍚冨氨涓嶉敊浜嗭紝榪樺珜楗噳錛熷鏋滀笉鎯沖仛錛屽彲浠ョ寮銆傝繕鏄偅鍙ヨ瘽錛氫腑鍥戒粈涔堥兘緙猴紝灝辨槸涓嶇己浜恒?/span>

璁頒綇榪欏彞璇濓細“濡傛灉浣犱笉鏄父鎴忚鍒欑殑鍒跺畾鑰咃紝浣犵殑閫夋嫨鍙湁涓ゆ潯錛氳涔堝眻浠庯紝瑕佷箞紱誨紑錛?#8221;

 


鍏佽鍔ㄨ繙姣旇璇濇洿閲嶈錛岀┖璋堝緇濅笉鏄ソ鐨勫疄騫插


鐪嬪埌榪欓噷錛屽ぇ瀹跺浠ヤ笂鐨勫唴瀹瑰ぇ姒傛湁涓夌鍙嶅簲錛?/span>

1錛夈佹劅瑙夐潪甯告湁閬撶悊錛屼細璁ょ湡鍙嶆濓紝縐瀬琛屽姩錛?/span>

2錛夈佽繖浜涢亾鐞嗕笉鐢ㄤ綘璇存垜涔熸噦錛岀函綺規槸“搴熻瘽”錛?/span>

3錛夈佹劅瑙夐亾鐞嗛兘鎳傦紝浣嗗績鐢熺枒闂細鐪熸鍋氬埌鐨勫張鏈夊嚑涓紵

濡?鏋滀綘鏄涓縐嶅弽搴旓紝鎴戣》蹇冨湴紲濇効浣犻氳繃鍔姏鑾峰緱鎴愬姛錛涘鏋滀綘鏄浜岀鍙嶅簲錛屾垜甯屾湜鏈夋満浼氳兘澶熻亞鍚綘鐨勯珮瑙侊紝鍥犱負浣犳妸閬撶悊閮界湅“鐮?#8221;浜嗭紱濡傛灉浣犳槸絎笁縐嶅弽 搴旓紝鎴戝笇鏈涗綘鑳藉縐瀬琛屽姩璧鋒潵銆傛湁鏃跺欎箣鎵浠ョ粨鏋滄湭濡傛垜浠鏂欑殑閭f牱錛屼笉鏄洜涓烘垜浠笉鎳傦紝鑰屾槸鍥犱負鎴戜滑璇村緱澶錛岃岃鍔ㄥ緱澶皯銆?#8220;鎵ц鍔?#8221;涓嶄粎鏄紒涓氱敓瀛?闈復鐨勯棶棰橈紝鍚屾牱涔熸槸涓漢鍙戝睍蹇呴』瑙e喅鐨勯棶棰樸傝鎯蟲垚鍔燂紝蹇呴』浠庣幇鍦ㄥ氨寮濮嬭鍔ㄣ傛濡侷BM鐨勫箍鍛婃墍璦錛?#8220;鍋滄絀鴻皥錛屽紑濮嬭鍔紒”

 


涔濄佹満浼氬彧鍨傞潚鏈夊噯澶囩殑浜?/strong>


鏃犺浣犲啀鎬庝箞鎶辨紝鍐嶆庝箞涓嶅紑蹇冿紝楗繕鏄鍚冪殑錛岃榪樻槸瑕佺潯鐨勶紝宸ヤ綔榪樻槸瑕佸仛鐨勶紝鏈潵鐨勪簨鎯呮案榪滃彧灞炰簬鑷繁鐨勩備拱鎴垮瓙涔熷ソ錛屽ǘ鑰佸﹩涔熺艦錛屽帇鍔涘彧鏈夎嚜宸辨墰錛岃?鏉夸笉浼氫負浣犳搷浠諱綍蹇冦備笌鍏舵湁鏃墮棿鍘繪姳鎬紝浣嗕笉濡傝笍韙忓疄瀹為潤涓嬪績鏉ワ紝濂藉ソ鎻愬崌鑷繁鐨勫熀鏈姛錛岀敤浜嬪疄璇佹槑鑷繁鐨勬湰浜嬶紝璁╁埆浜哄浣犲埉鐩浉鐪嬶紝涓囦笉鍙洜涓鴻嚜宸辯殑涔?鐢熸剰姘旇岃嚜鍋氫竴涓嚜姣佸墠紼嬬殑“鎰ら潚”銆?/span>

褰撶劧錛屼綘鐨勫噯澶囨槸澶氭柟闈㈢殑錛岄櫎浜嗕笓涓氭妧鑳藉錛屽叾浠栫殑杈呭姪鎶鑳戒篃鏄潪甯稿繀瑕佺殑錛屾瘮濡傛矡閫氳兘鍔涖佷漢闄呭叧緋誨鐞嗚兘鍔涖佺鐞嗚兘鍔涚瓑絳夈傚綋鐒訛紝鏇撮噸瑕佺殑鏄涓鴻嚜宸辯殑鏈?鏉ュ仛涓涓鍒掞紝娓呮鍦扮煡閬撹嚜宸辯殑鐩爣鏄粈涔堬紝搴旇鎬庝箞鍔姏鎵嶈兘瀹炵幇銆傞傚綋鐨勬椂鍊欎篃瑕佸厖鍏呯數錛屼笉瑕佽垗涓嶅緱閭e崐涓湀鐨勫伐璧勶紝榪欎篃綆楁槸涓鴻嚜宸辯殑鏈潵榪涜鎶曡祫錛屾湁 浠涔堣垗涓嶅緱鐨勫憿錛熷鏋滀綘鐜板湪涓嶅浼?#8220;鑸?#8221;錛屼互鍚庡皢姘歌繙涔?#8220;寰?#8221;涓嶅埌銆?/span>

鏈?鏃跺欙紝浣犱箣鎵浠ュ彂灞曞緱涓嶅ソ錛屼笉鏄洜涓烘病鏈夋満閬囷紝鑰屾槸鍥犱負浣犳病鏈夊噯澶囧ソ錛屽鑷存満閬囦笌浣犳摝鑲╄岃繃銆傝繖涓ぞ浼氬氨鏄繖鏍鳳紝鍐嶆庝箞涓嶅悎鐞嗭紝鍐嶆庝箞涓嶅叕騫籌紝浣嗘槸鍙戝睍鏈?閬囨槸鏃舵椂閮戒細闈復鐨勶紝鍙湅浣犳湁娌℃湁鍑嗗濂姐備綘瑕佹槸鐪熺殑緇冨氨浜嗕竴韜護浜哄埉鐩浉鐪嬬殑鐪熸湰浜嬶紝璇翠笉瀹氭槑澶╁氨鏈変漢璇蜂綘鍋氭煇涓栫晫500寮虹殑鎬昏涔熶笉涓瀹氬憿銆?/span>
 

鏉庡槈璇氬厛鐢熸浘緇忓啓浜嗕竴棣栬瘲嬋鍔變粬鐨勫憳宸ワ紝鍙戜漢娣辨濓紝璇諱簡涔嬪悗錛屾劅鎱ㄩ澶氥傛垜鎶婂畠鏀懼湪榪欓噷錛屽笇鏈涗笌澶у鍏卞媺錛?/span>

 

褰撲綘浠ⅵ鎯充紵澶ф垚鍔熺殑鏃跺欙紝

浣犳湁娌℃湁鍒昏嫤鐨勫噯澶囷紵

褰撲綘浠湁閲庡績鍋氶琚栫殑鏃跺欙紝

浣犳湁娌℃湁鏈嶅姟浜庝漢鐨勮唉鎭紵

鎴戜滑甯稿父閮芥兂鏈夋墍鑾峰緱錛?/span>

浣嗘垜浠湁娌℃湁浠樺嚭鐨勬儏鎿嶏紵

 

鎴戜滑閮藉笇鏈涘埆浜哄惉鍒拌嚜宸辯殑璇磋瘽錛?/span>

鎴戜滑鏈夋病鏈夎愭ц亞鍚埆浜猴紵

姣忎竴涓漢閮藉笇鏈涜嚜宸卞揩涔愶紝

鎴戜滑瀵瑰け钀姐佹偛浼ょ殑浜烘湁娌℃湁鎬滄偗椴滆姳錛?/span>

姣忎竴涓漢閮藉笇鏈涚珯鍦ㄤ漢鍓嶏紝

浣嗘垜浠槸鍚︾煡閬撲粈涔堟椂鍊欑敇涓轟漢鍚庯紵

 

浣犱滑閮界煡閬撹嚜宸辮拷姹備粈涔堬紝

浣犱滑鐭ラ亾鑷繁闇瑕佷粈涔堝悧錛?/span>

鎴戜滑甯稿父鍙笇鏈涙敼鍙樺埆浜猴紝

鎴戜滑鐭ラ亾浠涔堟椂鍊欐敼鍙樿嚜宸卞悧錛?/span>

姣忎竴涓漢閮芥噦寰楁壒鍒ゅ埆浜猴紝

浣嗕笉鏄瘡涓涓漢閮界煡閬撴庢牱鑷垜鍙嶇渷銆?/span>

 

澶у閮界湅閲嶉潰瀛愶紝

澶у閮藉笇鏈涙嫢鏈夎儲瀵岋紝

浣嗕綘鐭ラ亾璐㈠瘜鐨勬剰涔夊悧錛?/span>

鍚勪綅鍚屽錛岀浉淇′綘浠兘鏈夊悇縐嶆縺鎯咃紝

浣嗕綘鐭ヤ笉鐭ラ亾浠涔堟槸鐖憋紵



Bluesea 2012-04-28 14:50 鍙戣〃璇勮
]]>
銆愯漿銆戣皚鐚粰宓屽叆寮忓垵瀛﹁?/title><link>http://m.shnenglu.com/finehai/archive/2012/04/24/172595.html</link><dc:creator>Bluesea</dc:creator><author>Bluesea</author><pubDate>Tue, 24 Apr 2012 06:09:00 GMT</pubDate><guid>http://m.shnenglu.com/finehai/archive/2012/04/24/172595.html</guid><wfw:comment>http://m.shnenglu.com/finehai/comments/172595.html</wfw:comment><comments>http://m.shnenglu.com/finehai/archive/2012/04/24/172595.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/finehai/comments/commentRss/172595.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/finehai/services/trackbacks/172595.html</trackback:ping><description><![CDATA[<span style="font-size: 12pt;"> </span><div><p><span style="font-size: 12pt;">璋ㄧ尞緇欎負浜嗙煡璇嗘墽鐫鐨勫祵鍏ュ紡鍒濆鑰咃紝嬈㈣繋楂樻墜琛ュ厖璁ㄨ </span></p> <p><span style="font-size: 12pt;">瀹炶返褰撶劧鏄渶閿葷偧浜虹殑鏂瑰紡錛屼絾鏄垜鎯沖湪鏍$敓寰堝皯鏈夎繖鏍風殑鏈轟細錛屽埆璇存湰縐戠敓錛岀澹敓涔熸湭蹇呮湁鏉′歡銆傛墍浠ユ垜鎯沖涔犲祵鍏ュ紡瑕佷粠涓漢鐨勭煡璇嗚儗鏅拰鐜板疄鏉′歡鍑哄彂銆傝绔嬪悎閫傜殑闃舵鐩爣錛屽湪鍏佽鐨勬潯浠朵笅澶氬姩鎵嬪鎬濊冦?/span></p> <p><span style="font-size: 12pt;">涓鑸儏鍐典笅瀵逛簬紜歡璁懼鏄瘮杈冪煭緙虹殑銆備絾鏄彲浠ヤ粠杞歡鏂歸潰鍜屽祵鍏ュ紡緋葷粺寮鍙戞ā寮忎笂涓嬪姛澶紝鎻愰啋澶у涓 鐐癸紝宓屽叆寮忕郴緇熷紑鍙戣璁$殑鍐呭鐭ヨ瘑寰堝錛屾墍浠ュぇ瀹朵笉瑕佷貢錛屽湪浜嗚В宓屽叆寮忕郴緇熷紑鍙戠殑浣撶郴緇撴瀯鍚庯紝涓姝ヤ竴姝ョ殑涓嬫墜錛屾渶瀹規槗涓婃墜鐨勬槸linux涓嬬殑C錛屾瘮濡?ucos錛堟湁寮鏀炬簮浠g爜錛夛紝铏界劧鍙兘鏃犳硶鍦ㄧ‖浠朵笂浠跨湡錛屼絾涔熶笉蹇呯潃鎬ャ倃ince錛宲almos涓婃墜閮藉緢瀹規槗銆傛棤璁哄浜庡垵瀛﹁呰繕鏄嚜浠ヤ負鏄珮鎵嬬殑浜烘潵璇達紝 緙栫▼姘村鉤錛堣繖鍙笉鍙楃‖浠舵潯浠墮檺鍒訛級緇濆鏄病鏈夋澧冪殑錛屾湁浜嗚緝楂樼殑緙栫▼姘村鉤錛堝祵鍏ュ紡涓昏鏄疌,褰撶劧OO鐨勫嚑縐嶈璦c++,java鏄彂灞曡秼鍔匡級錛岀瓑鍒版湁鏈轟細 鐨勬椂鍊欏強鏃剁殑琛ュ厖紜歡鐭ヨ瘑錛屼細寰堝揩鐨勬垚涓洪珮鎵嬨?/span></p> <p><span style="font-size: 12pt;">榪樻湁錛屼竴瀹氳浣忥紝瀛︿範宓屽叆寮忥紝”瑕佹兂鍔炴硶錛屼笉瑕佹壘鐞嗙敱“銆傚綋騫村湪dos涓嬬敤tc緙栫▼鏃剁殑鏉′歡錛岀幇鍦ㄥ洖鎯寵搗鏉ュ緩絳戝氨鏄榪廣?/span></p> <p><span style="font-size: 12pt;">鎴戞帹鑽愪竴鏉″彂灞曢亾璺惂錛屼粎渚涘弬鑰冿紝</span></p> <p><span style="font-size: 12pt;">1銆丆寮鍙戠粡楠?/span><br /><span style="font-size: 12pt;">鏉′歡錛歭inux錛堣繖閮芥湁鍚э級</span><br /><span style="font-size: 12pt;">鏂規硶錛氶殢渚匡紝涓昏鏄帉鎻nsiC緙栫▼錛堜笉鍖呮嫭gtk,qt絳夊浘褰㈠彲瑙嗗寲寮鍙戯級</span></p> <p><span style="font-size: 12pt;">2銆佺綉緇溿佹搷浣滅郴緇熴佷綋緋葷粨鏋?/span><br /><span style="font-size: 12pt;">鏉′歡錛歭inux錛屽悇縐嶄功錛岀畻娉曘佷緥紼嬨?/span><br /><span style="font-size: 12pt;">鏂規硶錛氶氳繃C緙栫▼瀹炵幇綆鍗曠殑緗戠粶絳夌煡璇嗙殑綆楁硶鍜岃繃紼嬨?/span></p> <p><span style="font-size: 12pt;">3銆佸祵鍏ュ紡緋葷粺姒傚康</span><br /><span style="font-size: 12pt;">鏉′歡錛氬悇涓祵鍏ュ紡緗戠珯錛岃璁虹粍錛屼功綾?/span><br /><span style="font-size: 12pt;">鏂規硶錛氬皯鎻愰棶錛堝挨鍏舵槸絳夌潃澶╀笂鎺夐楗鹼紝榪欎富瑕佹槸闃叉澧為暱鎯版э紝涔熻В鍐充笉浜嗗疄闄呴棶棰橈級錛屽鎬濊冦?/span></p> <p><span style="font-size: 12pt;">4銆佸祵鍏ュ紡寮鍙戝疄璺?/span><br /><span style="font-size: 12pt;">鏉′歡錛氬悇縐嶅祵鍏ュ紡緋葷粺寮鍙戝伐鍏風殑demo鐗堬紙鎴栬匘鐗堬紝濡傛灉鏈夌殑璇濓級錛屽寘鎷紪璇戝櫒錛屼豢鐪熷櫒銆傚彲浠ユ壘楂樻墜浠錛屼篃鍙互涓嬭澆銆?/span><br /><span style="font-size: 12pt;">鏂?娉曪細榪欓噷鏈変袱涓垎鏀紝涓涓槸鍩轟簬mcu/dsp鐨勫祵鍏ュ紡緋葷粺寮鍙戯紝涓涓槸璞almos,wince,ucos絳塺tos涓嬬殑搴旂敤杞歡寮鍙戙傚紜歡鎰熷叴 瓚o紝鎯蟲垚涓虹湡姝i珮鎵嬬殑鐢辯涓涓垎鏀叆鎵嬶紝浠ュ悗榪涘叆絎簩涓垎鏀紱濡傛灉鍗佸垎鍘岀儲紜歡錛屽彧鎯沖仠鐣欏湪杞歡寮鍙戜笂鐨勶紝鍙互鍙敱絎簩涓垎鏀叆鎵嬶紝浠ュ悗灝卞拰pc涓婄殑寮鍙?娌℃湁浠涔堟湰璐ㄤ笂鐨勫尯鍒簡錛屾壘浠戒笉閿欑殑宸ヤ綔搴旇娌¢棶棰橈紝鍙互涓嶇敤榪涜涓嬮潰鐨勬楠や簡錛屾劅鍏磋叮鍙互鍙傝冪6鏉°?/span></p> <p><span style="font-size: 12pt;">5銆佺‖浠跺紑鍙?/span><br /><span style="font-size: 12pt;">鏉′歡錛氬悇縐嶅祵鍏ュ紡鑺墖銆佸瓨鍌ㄥ櫒絳夌數璺櫒浠訛紝protel99絳夌數璺璁¤蔣浠訛紝鐢佃礬鏉垮埗浣溿?/span></p> <p><span style="font-size: 12pt;">鏂規硶錛氳繖鏃跺欒鏈夊紑鍙戞潯浠朵簡錛屾渶璧風爜鏄?1緋誨垪錛岃繖涓瘮杈冩柟渚褲傜數璺殑璁捐鍐呭杈冨錛屼笉榪囩湅璧鋒潵鍚撲漢錛屽疄闄呬笂姣旇蔣浠惰綆鍗曠殑澶氥傚彧瑕佷笅鍔熷か錛屽疄璺典細鍛婅瘔浣犱竴鍒囥?/span><br /><span style="font-size: 12pt;">6銆佺‖浠跺伐紼?杞歡宸ョ▼/欏圭洰綆$悊</span><br /><span style="font-size: 12pt;">鏉′歡錛?鍚勪釜鑺墖璇︾粏璧勬枡鍜屼嬌鐢ㄧ粡楠岋紝杞歡宸ョ▼鐭ヨ瘑錛岄」鐩鐞嗙煡璇嗭紝鍩硅錛屽ぇ鍨嬮」鐩弬涓庣粡楠?/span><br /><span style="font-size: 12pt;">鏂規硶錛氬凡緇忔槸楂樻墜浜嗭紝浣嗘槸瀛︽棤姝㈠錛屾簿娌捐嚜鍠滀簬宸叉湁鐨勭煡璇嗘槸鑷村懡鐨勩傞偅涓笅涓姝ャ傘傘傦紝浣犺鏄鐞嗚呬簡銆?/span></p> <p> </p><p><span style="font-size: 12pt;">琛ュ厖鍑犵偣. </span></p> <p><span style="font-size: 12pt;">瑕佹兂鎴愪負楂樻墜涓殑楂樻墜,鏈濂戒粠閽葷爺濡備笅棰嗗煙淇偧:</span><br /><span style="font-size: 12pt;">1,鍒嗘瀽涓縐峈TOS鐨勬簮浠g爜--UCOS鏈瀹規槗;</span><br /><span style="font-size: 12pt;">2,鍒嗘瀽涓縐嶉氳鍗忚鏍堢殑瀹炵幇鏂瑰紡--TCP/IP鏈瀹炵敤;</span><br /><span style="font-size: 12pt;">3,綺鵑氫竴縐岲SP鐨勫紑鍙戦泦鎴愮幆澧?-TI CCS2.1鏈浼樼,綺懼崕鍦ㄥ叾鍐呭甫鐨凴TOS;</span><br /><span style="font-size: 12pt;">4,綺鵑氫竴縐嶅崟鐗囨満鐨勫紑鍙戦泦鎴愮幆澧?-keil C鏈緇忓吀;</span><br /><span style="font-size: 12pt;">5,綺鵑氫竴縐峂CU鐨勫紑鍙戦泦鎴愮幆澧?-ADS 1.2鏈嫻佽;</span></p><p><br /><span style="font-size: 12pt;">瑕佹兂鎴愪負澶у笀綰т漢鐗╁啀浠庡涓嬮鍩熷紑濮嬩慨鐐?</span><br /><span style="font-size: 12pt;">1,綺鵑氫竴縐嶇郴緇熷緩妯¤璦鍜屽伐鍏?-Telelogic tau SDL/UML suit鏈緇忓吀;</span><br /><span style="font-size: 12pt;">2,綺鵑氫竴縐嶇畻娉曚豢鐪熷伐鍏?-Matlab simulink 鏈渚垮疁;</span><br /><span style="font-size: 12pt;">瑕佹兂媯楠屼竴涓嬭嚜宸辨槸鍚﹀埌杈句簡鑷沖皧綰т漢鐗╋紝鍙互鍋氬涓嬬殑浜嬶細</span><br /><span style="font-size: 12pt;">鍔ㄦ墜鎼緩涓濂楃孩澶栨垨鑰呰摑鐗欓氳鍘熷瀷緋葷粺錛屾ā鎷熷墠绔彲浠ョ敤鐜版垚鐨勶紝鍩哄甫鐢―SP錛屼富鎺х敤涓?2BMCU錛孌SP鍜屽崗璁蔣浠惰嚜宸卞啓銆傚綋鐒朵笉鍙兘鍋氬叏錛屽仛涓瓙闆嗗氨鍙互浜嗐?/span><br /><span style="font-size: 12pt;">濡傛灉鑳藉埌榪欎釜鍦版錛屾墦浣忓惂錛岃鏀硅鍘誨仛甯傚満浜嗐傚仛涓竴銆佷簩騫村競鍦猴紝浣犱笉鑷繁鍘誨垱涓笟灝卞お嫻垂浜嗐?/span></p></div><img src ="http://m.shnenglu.com/finehai/aggbug/172595.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/finehai/" target="_blank">Bluesea</a> 2012-04-24 14:09 <a href="http://m.shnenglu.com/finehai/archive/2012/04/24/172595.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>FTP宸ヤ綔鍘熺悊 http://m.shnenglu.com/finehai/archive/2012/04/24/172593.htmlBlueseaBlueseaTue, 24 Apr 2012 06:05:00 GMThttp://m.shnenglu.com/finehai/archive/2012/04/24/172593.htmlhttp://m.shnenglu.com/finehai/comments/172593.htmlhttp://m.shnenglu.com/finehai/archive/2012/04/24/172593.html#Feedback0http://m.shnenglu.com/finehai/comments/commentRss/172593.htmlhttp://m.shnenglu.com/finehai/services/trackbacks/172593.html


FTP Transfer Protocol 浠朵紶杈撳崗璁殑緙╁啓,鍦≧FC 959涓叿浣撹鏄庛?/span>

FTP浼氳瘽鏃跺寘鍚簡涓や釜閫氶亾錛屼竴涓彨鎺у埗閫氶亾錛屼竴涓彨鏁版嵁閫氶亾銆?/span>


鎺у埗閫氶亾錛?span style="font-size: 12pt;">鎺у埗閫氶亾鏄拰FTP鏈嶅姟鍣ㄨ繘琛屾矡閫氱殑閫氶亾錛岃繛鎺TP錛屽彂閫丗TP鎸囦護閮芥槸閫氳繃鎺у埗閫氶亾鏉ュ畬鎴愮殑銆?/span>

鏁版嵁閫氶亾錛?span style="font-size: 12pt;">鏁版嵁閫氶亾鏄拰FTP鏈嶅姟鍣ㄨ繘琛屾枃浠朵紶杈撴垨鑰呭垪琛ㄧ殑閫氶亾銆?/span>


FTP鍗忚涓紝鎺у埗榪炴帴鍧囨湁瀹㈡埛绔彂璧鳳紝鑰屾暟鎹繛鎺ユ湁涓ょ宸ヤ綔鏂瑰紡錛歅ORT鏂瑰紡鍜孭ASV鏂瑰紡

PORT妯″紡(涓誨姩鏂瑰紡)

FTP 瀹㈡埛绔鍏堝拰FTP Server鐨凾CP 21绔彛寤虹珛榪炴帴錛岄氳繃榪欎釜閫氶亾鍙戦佸懡浠わ紝瀹㈡埛绔渶瑕佹帴鏀舵暟鎹殑鏃跺欏湪榪欎釜閫氶亾涓婂彂閫丳ORT鍛戒護銆? PORT鍛戒護鍖呭惈浜嗗鎴風鐢ㄤ粈涔堢鍙?涓涓ぇ浜?024鐨勭鍙?鎺ユ敹鏁版嵁銆傚湪浼犻佹暟鎹殑鏃跺欙紝鏈嶅姟鍣ㄧ閫氳繃鑷繁鐨凾CP 20绔彛鍙戦佹暟鎹?FTP server蹇呴』鍜屽鎴風寤虹珛涓涓柊鐨勮繛鎺ョ敤鏉ヤ紶閫佹暟鎹?/span>


PASV妯″紡(琚姩鏂瑰紡)

鍦ㄥ緩绔嬫帶鍒墮氶亾鐨勬椂鍊欏拰PORT妯″紡綾諱技錛屽綋瀹㈡埛绔氳繃榪欎釜閫氶亾鍙戦丳ASV 鍛戒護鐨勬椂鍊欙紝FTP server鎵撳紑涓涓綅浜?024鍜?000涔嬮棿鐨勯殢鏈虹鍙e茍涓旈氱煡瀹㈡埛绔湪榪欎釜绔彛涓婁紶閫佹暟鎹殑璇鋒眰錛岀劧鍚嶧TP server 灝嗛氳繃榪欎釜绔彛榪涜鏁版嵁鐨勪紶閫侊紝榪欎釜鏃跺橣TP server涓嶅啀闇瑕佸緩绔嬩竴涓柊鐨勫拰瀹㈡埛绔箣闂寸殑榪炴帴浼犻佹暟鎹?/span>


濡傛灉浠嶤/S妯″瀷榪欎釜瑙掑害鏉ヨ錛孭ORT瀵逛簬鏈嶅姟鍣ㄦ潵璇存槸OUTBOUND錛岃孭ASV妯″紡瀵逛簬鏈嶅姟鍣ㄦ槸INBOUND錛岃繖涓鐐硅鐗瑰埆娉ㄦ剰錛屽挨鍏舵槸鍦ㄤ嬌鐢ㄩ槻鐏鐨勪紒涓氶噷錛岃繖涓鐐歸潪甯稿叧閿紝濡傛灉璁劇疆閿欎簡錛岄偅涔堝鎴峰皢鏃犳硶榪炴帴銆?/span>



Bluesea 2012-04-24 14:05 鍙戣〃璇勮
]]>
瀛︿範宓屽叆寮廘inux鐨勭瑪璁板拰浣撲細http://m.shnenglu.com/finehai/archive/2012/04/24/172592.htmlBlueseaBlueseaTue, 24 Apr 2012 06:01:00 GMThttp://m.shnenglu.com/finehai/archive/2012/04/24/172592.htmlhttp://m.shnenglu.com/finehai/comments/172592.htmlhttp://m.shnenglu.com/finehai/archive/2012/04/24/172592.html#Feedback0http://m.shnenglu.com/finehai/comments/commentRss/172592.htmlhttp://m.shnenglu.com/finehai/services/trackbacks/172592.html
涓涓吀鍨嬬殑妗岄潰Linux緋葷粺鍖呮嫭3涓富瑕佺殑杞歡灞?--linux鍐呮牳銆丆搴撳拰搴旂敤紼嬪簭浠g爜銆?/span>鍐呮牳鏄敮涓鍙互瀹屽叏鎺у埗紜歡鐨勫眰錛屽唴鏍擱┍鍔ㄧ▼搴忎唬琛ㄥ簲鐢ㄧ▼搴忎笌紜歡涔嬮棿榪涜浼氳瘽銆傚唴鏍鎬箣涓婃槸C搴擄紝璐熻矗鎶奝OSIX API杞崲涓哄唴鏍稿彲浠ヨ瘑鍒殑褰㈠紡錛岀劧鍚庤皟鐢ㄥ唴鏍革紝浠庡簲鐢ㄧ▼搴忓悜鍐呮牳浼犻掑弬鏁般傚簲鐢ㄧ▼搴忎緷闈犻┍鍔ㄥ唴鏍告潵瀹屾垚鐗瑰畾鐨勪換鍔°?

鍦ㄨ璁″祵鍏ュ紡搴旂敤鐨勬椂鍊欙紝鍙互涓嶆寜鐓ц繖縐嶅眰嬈★紝搴旂敤紼嬪簭瓚婅繃C搴撶洿鎺ュ拰鍐呮牳浼氳瘽錛屾垨鑰呮妸搴旂敤鍜屽唴鏍告崋緇戝湪涓璧鳳紝鐢氳嚦鍙互鎶婂簲鐢ㄥ啓涓哄唴鏍哥殑涓涓嚎紼嬶紝鍦ㄥ唴鏍鎬腑榪愯錛岃櫧鐒惰繖鏍峰湪縐繪涓婂甫鏉ヤ簡鍥伴毦錛屼絾鑰冭檻宓屽叆寮忕郴緇熷灝哄瑕佹眰灝忕殑鐗圭偣錛屾槸瀹屽叏鍙鐨勩備笉榪囨垜浠嬌鐢ㄤ笁灞傝蔣浠剁粨鏋勭殑妯″紡鏉ュ涔犲祵鍏ュ紡linux灝嗕細鏄垜浠璇嗘洿娓呮櫚錛岀畝鍗曞彲琛屽茍浣垮簲鐢ㄥ叿鏈夊脊鎬с?

蹇熷叆闂?/strong>

鏈綆鍗曠殑寤虹珛宓屽叆寮廘inux搴旂敤鐨勬柟娉曞氨鏄粠鎴戜滑浣跨敤鐨勬闈inux鍏ユ墜錛屽畨瑁呬竴涓枩鐖辯殑鐗堟湰錛屾妸鎴戜滑鐨勬煇涓簲鐢ㄤ綔涓哄垵濮嬪寲鐨勪竴閮ㄥ垎錛屾鏋跺氨綆楀畬鎴愪簡銆?/span>

褰撶劧錛屽祵鍏ュ紡linux搴旂敤榪滄瘮鎴戜滑鐨勬闈㈢増鏈姛鑳界畝鍗曚笓涓錛屽畠涔熻灝辨槸涓涓敤浜庤凍褰╃殑緇堢鏈猴紝鎴栨槸涓涓暟鐮侀煶棰戞挱鏀懼櫒錛岃繖浜涚郴緇熼櫎浜嗕嬌鐢ㄥ祵鍏ュ紡CPU澶栵紝浠呬粎鍐嶉渶瑕佷竴涓覆鍙o紝緗戝彛絳夊皯閲忕殑杈撳叆杈撳嚭鎺ュ彛灝卞彲浠ュ畬鎴愬畠浠壒瀹氱殑搴旂敤浜嗐?

鍦ㄨ蔣浠朵笂錛屽畠鍙互鎸夌収涓夊眰鐨勬蹇電敱鍐呮牳瑁呰澆鍣紝瀹氬埗鐨勫唴鏍稿拰杈冨皯鐨勪負鐗瑰畾浠誨姟璁捐鐨勯潤鎬佽繛鎺ョ殑搴旂敤紼嬪簭緇勬垚銆備箣鎵浠ヤ嬌鐢ㄩ潤鎬佽繛鎺ョ殑搴旂敤紼嬪簭錛屾槸鍥犱負灝戦噺鐨勯潤鎬佽繛鎺ョ▼搴忔墍瑕佺殑瀛樺偍絀洪棿錛屾瘮鍚屾牱鏁伴噺鐨勫姩鎬佽繛鎺ョ殑紼嬪簭鎵鍗犵殑絀洪棿灝忥紝榪欎釜騫寵 鐐歸渶瑕佹垜浠湪瀹為檯寮鍙戜腑鍘昏幏鍙栥備篃璁鎬綘姝e湪璁捐鐨勬槸涓狿DA錛屽畠鐨勫簲鐢ㄧ▼搴忚緝澶氾紝閭d箞浣犲緢鍙兘灝辮浣跨敤鍔ㄦ佽繛鎺ョ▼搴忔潵鍑忓皯瀛樺偍絀洪棿銆傚湪浣犵殑/bin鎴栬?sbin鐩綍涓嬶紝鐢ㄥ巶鍒楄〃鐪嬬湅bash,ifconfig,vi...錛屼篃璁稿彧鐢ㄥ嚑鍗並錛屽綋浣犺繍琛?ldd /bin/bash 鏃訛紝浣犱細鐪嬪埌瀹冧滑閮藉拰濂藉嚑涓簱鏂囦歡鐩歌繛銆傚ソ浜嗭紝榪欐牱鐪嬫潵錛屾垜浠緱鎶奝C鎯沖儚鎴愪竴涓祵鍏ュ紡紜歡騫沖彴錛屽啀閲嶆柊鍒朵綔涓涓壒瀹氬姛鑳界殑宓屽叆寮弆inux銆?

鍩虹鐭ヨ瘑

鍐嶈繘琛屽疄闄呮搷浣滀箣鍓嶏紝鍏堟潵鎼炴竻妤氬嚑涓熀紜鐭ヨ瘑銆?


鍐呮牳瑁呰澆鍣↙oader錛屽畠鐨勪綔鐢ㄦ槸鎶婂唴鏍鎬粠澶栭儴瀛樺偍鍣紝縐誨姩鍒板唴瀛樹腑銆傚畠鍙綔榪欎釜浜嬫儏錛屼竴鏃﹀畬鎴愪簡璋冨叆鍐呮牳鐨勫伐浣滐紝Loader灝辮煩杞埌鍐呮牳浣嶇疆寮濮嬫墽琛屻備笉鍚屾灦鏋勬湁涓嶅悓鐨?Loader錛屽湪x86緇撴瀯鐨凱C涓婏紝閫氬父浣跨敤鐨刲oader鏈塋ILO,GRUB,syslinux,syslinux鍦ㄥ祵鍏ュ紡linux涓篃鍚屾牱宸?浣溿傚叾浠栭潪x86鏋舵瀯鐨勫簲鐢ㄤ腑錛屼綘蹇呴』浣跨敤涓撻棬鐨刲oader錛屾垨鑰呰嚜宸辯紪鍐檒oader鏉ヨ鍏ュ唴鏍搞備篃鏈変笉浣跨敤loader鐨勬儏鍐碉紝緋葷粺鍔犵數浠ュ悗錛屽唴鏍?鐩存帴浠庣儳褰曟湁鏄犺薄鐨凢lash涓婂紑濮嬫墽琛屻?


鍐呮牳錛屼竴鏃﹀唴鏍稿紑濮嬫墽琛岋紝瀹冨皢閫氳繃椹卞姩紼嬪簭鍒濆鍖栨墍鏈夌‖浠訛紝榪欏彲浠ヤ粠鎴戜滑鐨刾c鏈虹洃瑙嗗櫒鐨勮緭鍑虹湅鍑?鏉ワ紝姣忎釜椹卞姩紼嬪簭閮芥墦鍗頒竴浜涙湁鍏沖畠鐨勪俊鎭傚垵濮嬪寲瀹屾垚鍚庯紝璁$畻鏈哄氨鍑嗗榪愯宓屽叆寮忓簲鐢ㄣ備篃璁鎬竴涓紝涔熻鏄涓簲鐢ㄧ▼搴忕粍鎴愪簡宓屽叆寮忓簲鐢紝浣嗛氬父棣栧厛璋冪敤鐨?鏄痠nit(閫氳繃loader 鍚戞牳蹇冧紶鍏nit=/program 鍙互瀹氬埗棣栧厛榪愯鐨勭▼搴?銆傛闈inux涓紝init浼氳鍙?etc/inittab鏂囦歡錛屾潵鍐沖畾鎵ц綰у埆鍜屽摢浜涜剼鏈拰鍛戒護銆傚祵鍏ュ紡搴旂敤涓紝鍙互鏍規嵁瀹?闄呯殑鎯呭喌鍐沖畾鏄惁浣跨敤鏍囧噯鐨刬nit鎵ц鏂瑰紡錛屼篃璁歌繖涓猧nit鏄釜闈欐佺▼搴忥紝瀹冭兘澶熷畬鎴愭垜浠殑宓屽叆搴旂敤鐨勭壒瀹氫換鍔★紝閭e畬鍏ㄤ笉鐢ㄨ冭檻inittab浜嗐?


initrd 鏂囦歡緋葷粺錛宨nitrd浠ヤ竴縐嶆妸鍐呮牳浠庡瓨鍌ㄤ粙璐ㄨ鍏ュ埌鍐呭瓨鐨勭浉鍚岀殑鏈哄埗鏉ヨ鍏ヤ竴涓皬鍨嬫枃浠剁郴緇熴傝繖涓枃浠剁郴緇熸渶濂芥槸浠ュ帇緙╃殑鏂瑰紡瀛樺偍鍦ㄤ粙璐ㄤ笂鐨勶紝瑙e帇緙╁埌 RAM鐩樹笂銆傞氳繃浣跨敤initrd,鍖呭惈鏈夋牳蹇冮┍鍔ㄥ拰鍚姩鑴氭湰鐨勫皬鏂囦歡緋葷粺錛屽氨鍙互鐩存帴浠庝粙璐ㄤ笂鍜屽唴鏍鎬竴璧峰惎鍔ㄨ搗鏉ワ紝鍐呮牳灞婂帇緙╄繖涓枃浠剁郴緇燂紝騫舵墽琛岃繖涓?鏂囦歡緋葷粺涓婂彨鍋?linuxrc鐨勮剼鏈枃浠訛紝榪欎釜鑴氭湰閫氬父浼氭妸鍚姩榪囩▼涓墍闇瑕佺殑椹卞姩紼嬪簭瑁呭叆銆傝剼鏈鍑轟互鍚庯紝initrd鏂囦歡緋葷粺涔熷嵏涓嬩簡錛屽惎鍔ㄨ繃紼嬭繘 鍏ョ湡姝e垵濮嬪寲榪囩▼銆傚浜庡祵鍏ュ紡鏉ヨ錛屽彲浠ュ皢闇瑕佺殑搴旂敤杞歡閮借繍琛屽湪榪欎釜initrd鏂囦歡緋葷粺涓婏紝鍙/linxrc鏂囦歡涓嶇粨鏉燂紝鍐呮牳鍚姩榪囩▼鐨勫叾浠栭儴鍒嗗氨涓嶄細緇х畫銆?nbsp;


鍋氫釜璇曢獙錛?
cp /boot/initrd-2.4.20.img /tmp
cd /tmp
mv initrd-2.4.2-.img initrd.img.gz
gunzip initrd.img.gz
mount -o loop initrd.img /mnt
cd /mnt
ls
cat linuxrc 鍙互鐪嬪埌閲岄潰鎵ц浜嗗姞杞戒簡涓や釜妯″潡鐨勬搷浣滐紝浣犲湪鍚姩linxu鐨勬椂鍊欎細鐪嬭灞忓箷鎵撳嵃淇℃伅銆?



鍏ラ棬璇曢獙錛屽埗浣滀竴涓畝鍗曠殑搴旂敤

鎴戜滑浣跨敤涓寮犺蔣鐩樺惎鍔ㄤ竴鍙板亣璞$殑鍙湁涓涓覆鍙o紝閿洏杈撳叆錛屾樉紺鴻緭鍑虹殑x86鏋舵瀯鐨刲inux緋葷粺錛屾墽琛岀殑鐗瑰畾搴旂敤灝辨槸榪愯minicom錛岄氳繃涓插彛鎷ㄥ彿銆傞渶 瑕佽蔣浠? minicom-xx.src.tar.gz 鍜?syslinux-xx.tar.gz錛寈x浠h〃鐗堟湰鍙? 錛屽紑濮嬩箣鍓嶏紝鍦ㄤ富鐩綍寤虹珛涓涓洰褰曪紝鏉ラ噴鏀捐繖涓や釜杞歡鍖咃細 


cd
mkdir -p project/minilinux
cd project/minilinux
tar zxvf minicom-xx.src.tar.gz
tar zxvf syslinux-xx.tar.gz

1銆佽鍑弆inux鍐呮牳(闇瑕佺郴緇熷畨瑁呭唴鏍告枃浠跺寘)

閰嶇疆鍐呮牳鐨勬椂鍊欙紝鎴戜滑闇瑕侀夋嫨榪欎簺錛氭懜鍧楃紪鍏ュ唴鏍革紝386澶勭悊鍣ㄣ佺墿鐞嗗唴瀛榦ff銆佹敮鎸丒LF銆佹爣鍑哖C杞洏銆佹敮鎸丷AM鐩?4096)銆佹敮鎸?initial RAM disk (initrd)銆佽櫄浣犵粓绔佽櫄鎷熺粓绔帶鍒跺彴銆佹爣鍑嗕覆鍙c乪xt2鏂囦歡緋葷粺銆佹帶鍒跺彴椹卞姩錛孷GA text console銆丏OS FAT銆丮SDOS鏂囦歡緋葷粺錛屽叾浠栫殑閮藉彲浠ヤ笉瑕侊紝榪欐牱鍐呮牳緙栧嚭鏉ヨ緝灝忋?nbsp;


姝ラ:
cd /usr/src/linux
make mrproper
make xconfig
make dep && make bzImage
寰楀埌 /usr/src/linux/arch/i386/boot/鐩綍鐨勫唴鏍告枃浠禸zIamge銆?

2銆佺紪璇戜竴涓潤鎬佺殑minicom錛屾妸瀹冧綔涓哄皢鏉ョ殑linuxrc 


cd minicom-xx/src
vi Makefile
淇敼涓嬮潰榪欒
minicom: $(minicom_OBJECTS) $(minicom_DEPENDENCIES)
rm -f minicom 涓嬮潰鐨勮鍔犱笂 -static錛岃繛鎺ヤ負闈欐佺▼搴?
(LINK) -static $(minicom_LDFLAGS) $(minicom_OBJECTS) $(minicom_LDADD) $(LIBS)

vi minicom.c
鎵懼埌 if (real_uid==0 && dosetup==0 ) 鍒犻櫎榪欎釜鍒ゆ柇鏉′歡璇彞錛屼富瑕佹槸鐢ㄤ簬鏉冮檺鍒ゆ柇鐨勶紝鍥犱負榪欎釜宓屽叆搴旂敤涓嶅叧娉ㄦ潈闄愰棶棰橈紝鍚﹀垯浼氬嚭閿欍?
make
寰楀埌鍙墽琛岀▼搴忥紝鐢╨dd 媯鏌ヤ竴涓嬫槸涓嶆槸闈欐佺▼搴忋?

3銆佸噯澶噄nitrd鍘嬬緝鏂囦歡image.gz 


dd if=/dev/zero of=image bs=1k count=4096
losetup /dev/loop0 image
mke2fs -m 0 /dev/loop0
mounmt -t ext2 /dev/loop0 /mnt/
mkdir -p /mnt/dev
mkdir -p /mnt/usr/share/terminfo/l/
cd /dev
cp -a consle null tty tty0 zero mem /mnt/dev
cp -P /usr/share/terminfo/l/linux /mnt/usr/share/terminfo/l/linux
cp ~/project/minilinux/mincom/src/minicom /mnt/linuxrc
umount /mnt
losetup -d /dev/loop0
sync
gzip -9 image



4銆佸埗浣滆蔣鐩樺紩瀵鹼紝騫舵嫹璐濇枃浠?bzimage image.gz 鍒拌蔣鐩?

A.浣跨敤grub
fdformat /dev/fd0
mke2fs /dev/fd0
mount /mnt/fd0 /mnt/floppy
mkdir -p /mnt/floppy/boot/grub
cp /boot/grub/stage1 /boot/grub/stage2 /mnt/floppy/boot/grub
鎵ц grub錛屽湪杞洏涓婂垱寤哄紩瀵?
grub > root (fd0)
grub > setup (fd0)
grub > quit

cp /usr/src/linux/arch/i386/boot/bzImge /mnt/floppy
cp ~/porject/minilinux/image.gz /mnt/floppy

緙栬緫 /mnt/floppy/boot/grub/grub.conf
default =0
timeout-=10
title minilinux
root (fd0)
kernel /bzImage
initrd /image.gz

鍗鎬笅杞洏
umount /mnt/floppy


B. 浣跨敤syslinux
fdformat /dev/fd0
mkfs.msdos /dev/fd0
mount -t msdos /dev/fd0 /mnt/floppy

cp /usr/src/linux/arch/i386/boot/bzImge /mnt/floppy
cp ~/porject/minilinux/image.gz /mnt/floppy

cp syslinux-xx/ldlinxu.sys /mnt/floppy
cat > /mnt/floppy/syslinux.cfg
LABEL linux
KERNEL bzimage
APPEND initrd=image.gz

umont /mnt/floppy
syslinux-xx/syslinux /dev/fd0
sync

5銆佺敤杞洏鍚姩璁$畻鏈猴紝濡傛灉騫歌繍錛宮inicom鐨勮繍琛岀敾闈㈠嚭鐜板湪灞忓箷涓娿?

鍒版錛屾垜浠殑鍗曞簲鐢ㄥ祵鍏ュ紡linux鍋氬ソ浜嗭紝浣嗗畠榪樺緢綆闄嬶紝娌℃湁浠涔堝疄闄呯敤閫旓紝浣嗛氳繃榪欎釜瀹為獙錛屽彲浠ヤ簡瑙e祵鍏ュ紡緋葷粺鐨勫ぇ鑷寸粨鏋勫拰寮鍙戣繃紼嬨傚湪榪涜瀹為檯鐨勫祵鍏?寮忓紑鍙戞椂錛岄氬父瑕佸湪PC鏈轟笂鍊熷姪宓屽叆寮弆inux寮鍙戝伐鍏峰寘錛屽錛歶clinux,bluecat絳夛紝瀵圭浉搴旂殑紜歡騫沖彴(鐩爣鏈?榪涜杞歡緙栧啓緙栬瘧錛岃皟璇曟垚鍔熷悗錛屽皢鍐呮牳鍙婂簲鐢ㄧ▼搴忓啓鍏ュ埌鐩爣鏈虹殑瀛樺偍鍣ㄤ腑錛屼粠鑰屽畬鎴愭暣涓簲鐢ㄣ?/p>



Bluesea 2012-04-24 14:01 鍙戣〃璇勮
]]>
linux鍐呮牳緗戠粶鏍?/title><link>http://m.shnenglu.com/finehai/archive/2012/04/24/172589.html</link><dc:creator>Bluesea</dc:creator><author>Bluesea</author><pubDate>Tue, 24 Apr 2012 05:50:00 GMT</pubDate><guid>http://m.shnenglu.com/finehai/archive/2012/04/24/172589.html</guid><wfw:comment>http://m.shnenglu.com/finehai/comments/172589.html</wfw:comment><comments>http://m.shnenglu.com/finehai/archive/2012/04/24/172589.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/finehai/comments/commentRss/172589.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/finehai/services/trackbacks/172589.html</trackback:ping><description><![CDATA[<span style="font-size: 12pt;"> </span><div><div> <div><strong style="font-size: 14pt;"><br /><div><span style="font-size: 14pt;"><br />涓銆乴inux鍐呮牳緗戠粶鏍堜唬鐮佺殑鍑嗗鐭ヨ瘑<br /><br /></span></div><br /></strong><strong style="font-size: 12pt;">1.</strong><span style="font-size: 12pt;"> </span><strong style="font-size: 12pt;">linux鍐呮牳ipv4緗戠粶閮ㄥ垎鍒嗗眰緇撴瀯</strong><span style="font-size: 12pt;">錛?/span></div> <div> </div> <div><br /><strong style="font-size: 12pt;">BSD socket灞傦細 </strong>榪欎竴閮ㄥ垎澶勭悊BSD socket鐩稿叧鎿嶄綔錛屾瘡涓猻ocket鍦ㄥ唴鏍鎬腑浠truct socket緇撴瀯浣撶幇銆傝繖涓閮ㄥ垎鐨勬枃浠?/div> <div> </div> <div><span style="font-size: 12pt;">涓昏鏈夛細/net/socket.c /net/protocols.c etc</span><br /><br /><strong style="font-size: 12pt;">INET socket灞傦細</strong>BSD socket鏄釜鍙互鐢ㄤ簬鍚勭緗戠粶鍗忚鐨勬帴鍙o紝鑰屽綋鐢ㄤ簬tcp/ip錛屽嵆寤虹珛浜咥F_INET褰㈠紡鐨剆ocket鏃訛紝</div> <div> </div> <div><span style="font-size: 12pt;">榪橀渶瑕佷繚鐣欎簺棰濆鐨勫弬鏁幫紝浜庢槸灝辨湁浜唖truct sock緇撴瀯銆傛枃浠朵富瑕?/span></div> <div> </div> <div><span style="font-size: 12pt;">鏈夛細/net/ipv4/protocol.c /net/ipv4/af_inet.c /net/core/sock.c etc</span><br /><br /><strong style="font-size: 12pt;">TCP/UDP灞傦細</strong>澶勭悊浼犺緭灞傜殑鎿嶄綔錛屼紶杈撳眰鐢╯truct inet_protocol鍜宻truct proto涓や釜緇撴瀯琛ㄧず銆傛枃浠朵富瑕?/div> <div> </div> <div><span style="font-size: 12pt;">鏈夛細/net/ipv4/udp.c /net/ipv4/datagram.c /net/ipv4/tcp.c /net/ipv4/tcp_input.c /net/ipv4//tcp_output.c /net/ipv4/tcp_minisocks.c /net/ipv4/tcp_output.c /net/ipv4/tcp_timer.c </span></div> <div> </div> <div><span style="font-size: 12pt;">etc  </span><br />     <br /><strong style="font-size: 12pt;">IP灞傦細</strong>澶勭悊緗戠粶灞傜殑鎿嶄綔錛岀綉緇滃眰鐢╯truct packet_type緇撴瀯琛ㄧず銆傛枃浠朵富瑕佹湁錛?net/ipv4/ip_forward.c </div> <div><span style="font-size: 12pt;">ip_fragment.c ip_input.c ip_output.c etc.</span><br /><br /><strong style="font-size: 12pt;">鏁版嵁閾捐礬灞傚拰椹卞姩紼嬪簭錛?/strong>姣忎釜緗戠粶璁懼浠truct net_device琛ㄧず錛岄氱敤鐨勫鐞嗗湪dev.c涓紝椹卞姩紼嬪簭閮藉湪/driver/net鐩?/div> <div> </div> <div><span style="font-size: 12pt;">褰曚笅銆?/span></div> <div> </div> <div><strong style="font-size: 12pt;">2.</strong><span style="font-size: 12pt;"> </span><strong style="font-size: 12pt;">涓ゅ彴涓繪満寤虹珛udp閫氫俊鎵璧拌繃鐨勫嚱鏁板垪琛?/strong></div> <div><strong></strong> </div> <div><span style="font-size: 12pt;">^</span><br /><span style="font-size: 12pt;">|       sys_read                fs/read_write.c</span><br /><span style="font-size: 12pt;">|       sock_read               net/socket.c</span><br /><span style="font-size: 12pt;">|       sock_recvmsg            net/socket.c</span><br /><span style="font-size: 12pt;">|       inet_recvmsg            net/ipv4/af_inet.c</span><br /><span style="font-size: 12pt;">|       udp_recvmsg             net/ipv4/udp.c</span><br /><span style="font-size: 12pt;">|       skb_recv_datagram       net/core/datagram.c</span><br /><span style="font-size: 12pt;">|       -------------------------------------------</span><br /><span style="font-size: 12pt;">|       sock_queue_rcv_skb      include/net/sock.h</span><br /><span style="font-size: 12pt;">|       udp_queue_rcv_skb       net/ipv4/udp.c</span><br /><span style="font-size: 12pt;">|       udp_rcv                 net/ipv4/udp.c</span><br /><span style="font-size: 12pt;">|       ip_local_deliver_finish net/ipv4/ip_input.c</span><br /><span style="font-size: 12pt;">|       ip_local_deliver        net/ipv4/ip_input.c</span><br /><span style="font-size: 12pt;">|       ip_recv                 net/ipv4/ip_input.c</span><br /><span style="font-size: 12pt;">|       net_rx_action           net/dev.c</span><br /><span style="font-size: 12pt;">|       -------------------------------------------</span><br /><span style="font-size: 12pt;">|       netif_rx                net/dev.c</span><br /><span style="font-size: 12pt;">|       el3_rx                  driver/net/3c309.c</span><br /><span style="font-size: 12pt;">|       el3_interrupt           driver/net/3c309.c</span><br /><br /><span style="font-size: 12pt;">錛濓紳錛濓紳錛濓紳錛濓紳錛濓紳錛濓紳錛濓紳錛濓紳錛濓紳錛濓紳錛濓紳錛濓紳錛濓紳</span><br /><br /><span style="font-size: 12pt;">|       sys_write               fs/read_write.c</span><br /><span style="font-size: 12pt;">|       sock_writev             net/socket.c                    </span><br /><span style="font-size: 12pt;">|       sock_sendmsg            net/socket.c</span><br /><span style="font-size: 12pt;">|       inet_sendmsg            net/ipv4/af_inet.c</span><br /><span style="font-size: 12pt;">|       udp_sendmsg             net/ipv4/udp.c</span><br /><span style="font-size: 12pt;">|       ip_build_xmit           net/ipv4/ip_output.c</span><br /><span style="font-size: 12pt;">|       output_maybe_reroute    net/ipv4/ip_output.c</span><br /><span style="font-size: 12pt;">|       ip_output               net/ipv4/ip_output.c</span><br /><span style="font-size: 12pt;">|       ip_finish_output        net/ipv4/ip_output.c</span><br /><span style="font-size: 12pt;">|       dev_queue_xmit          net/dev.c</span><br /><span style="font-size: 12pt;">|       --------------------------------------------</span><br /><span style="font-size: 12pt;">|       el3_start_xmit          driver/net/3c309.c</span><br /><span style="font-size: 12pt;">V</span></div> <div> </div> <div> </div> <div><strong style="font-size: 12pt;">3.</strong> <strong>緗戠粶璺緞鍥俱侀噸瑕佹暟鎹粨鏋剆k_buffer鍙婅礬鐢變粙緇?/strong></div> <div><strong></strong> </div> <div><strong>    </strong><span style="font-size: 12pt;">linux-net.pdf 絎?.1绔?絎?.3绔?絎?.4绔?/span></div> <div>    </div> <div><strong style="font-size: 12pt;">4.</strong> <strong>浠庤繛鎺ャ佸彂閫併佸埌鎺ユ敹鏁版嵁鍖呯殑榪囩▼</strong></div> <div><strong></strong> </div> <div><span style="font-size: 12pt;">    linux-net.pdf 絎?銆?銆?绔犺緇嗛槓榪?/span></div> <div> </div> <div> </div> <div><strong style="font-size: 14pt;">浜?linux鐨則cp-ip鏍堜唬鐮佺殑璇︾粏鍒嗘瀽<br /><br /></strong></div> <div><strong></strong> </div> <div><strong style="font-size: 12pt;">1.鏁版嵁緇撴瀯(msghdr,sk_buff,socket,sock,proto_ops,proto)</strong></div> <div><strong></strong> </div> <div><span style="font-size: 12pt;">bsd濂楁帴瀛楀眰,鎿嶄綔鐨勫璞℃槸socket,鏁版嵁瀛樻斁鍦╩sghdr榪欐牱鐨勬暟鎹粨鏋勶細</span></div> <div> </div> <div><span style="font-size: 12pt;">鍒涘緩socket闇瑕佷紶閫抐amily,type,protocol涓変釜鍙傛暟錛屽垱寤簊ocket鍏跺疄灝辨槸鍒涘緩涓涓猻ocket瀹炰緥錛岀劧鍚庡垱寤轟竴 涓枃浠舵弿榪扮緇撴瀯錛屽茍涓斾簰鐩稿緩绔嬩竴浜涘叧鑱旓紝鍗沖緩绔嬩簰鐩歌繛鎺ョ殑鎸囬拡錛屽茍涓斿垵濮嬪寲榪欎簺瀵規枃浠剁殑鍐欒鎿嶄綔鏄犲皠鍒皊ocket鐨剅ead錛寃rite鍑芥暟涓婃潵銆?/span></div> <div> </div> <div><span style="font-size: 12pt;">鍚屾椂鍒濆鍖杝ocket鐨勬搷浣滃嚱鏁幫紙proto_ops緇撴瀯),濡傛灉浼犲叆鐨則ype鍙傛暟鏄疭TREAM綾誨瀷錛岄偅涔堝氨鍒濆鍖栦負 SOCKET->ops涓篿net_stream_ops錛屽鏋滄槸DGRAM綾誨瀷錛屽垯SOCKET-ops涓篿net_dgram_ops銆傚浜?inet_stream_ops鍏跺疄鏄竴涓粨鏋勪綋錛屽寘鍚簡stream綾誨瀷鐨剆ocket鎿嶄綔鐨勪竴浜涘叆鍙e嚱鏁幫紝鍦ㄨ繖浜涘嚱鏁伴噷涓昏鍋氱殑鏄socket榪涜 鐩稿叧鐨勬搷浣滐紝鍚屾椂閫氳繃璋冪敤涓嬮潰鎻愬埌鐨剆ock涓殑鐩稿叧鎿嶄綔瀹屾垚socket鍒皊ock灞傜殑浼犻掋傛瘮濡傚湪inet_stream_ops閲屾湁涓?inet_release鐨勬搷浣滐紝榪欎釜鎿嶄綔闄や簡閲婃斁socket鐨勭被鍨嬬┖闂存搷浣滃錛岃繕閫氳繃璋冪敤socket榪炴帴鐨剆ock鐨刢lose鎿嶄綔錛屽浜?stream綾誨瀷鏉ヨ錛屽嵆tcp_close鏉ュ叧闂璼ock</span></div> <div><span style="font-size: 12pt;">閲婃斁sock銆?/span></div> <div> </div> <div><span style="font-size: 12pt;">鍒涘緩socket鍚屾椂榪樺垱寤簊ock鏁版嵁絀洪棿錛屽垵濮嬪寲sock,鍒濆鍖栬繃紼嬩富瑕佸仛鐨勪簨鎯呮槸鍒濆鍖栦笁涓槦鍒楋紝receive_queue錛堟帴鏀跺埌 鐨勬暟鎹寘sk_buff閾捐〃闃熷垪),send_queue(闇瑕佸彂閫佹暟鎹寘鐨剆k_buff閾捐〃闃熷垪),backlog_queue(涓昏鐢ㄤ簬tcp涓笁 嬈℃彙鎵嬫垚鍔熺殑閭d簺鏁版嵁鍖?鑷繁鐚滅殑),鏍規嵁family銆乼ype鍙傛暟錛屽垵濮嬪寲sock鐨勬搷浣滐紝姣斿瀵逛簬family涓篿net綾誨瀷鐨勶紝type涓?stream綾誨瀷鐨勶紝sock->proto鍒濆鍖栦負tcp_prot.鍏朵腑鍖呮嫭stream綾誨瀷鐨勫崗璁畇ock鎿嶄綔瀵瑰簲鐨勫叆鍙e嚱鏁般?/span></div> <div> </div> <div><span style="font-size: 12pt;">鍦ㄤ竴绔socket榪涜write鐨勮繃紼嬩腑錛岄鍏堜細鎶婅write鐨勫瓧絎︿覆緙撳啿鍖烘暣鐞嗘垚msghdr鐨勬暟鎹粨鏋勫艦寮?鍙傝linux鍐呮牳 2.4鐗堟簮浠g爜鍒嗘瀽澶у叏),鐒跺悗璋冪敤sock_sendmsg鎶妋sghdr鐨勬暟鎹紶閫佽嚦inet灞傦紝瀵逛簬msghdr緇撴瀯涓暟鎹尯涓殑姣忎釜鏁版嵁鍖咃紝鍒涘緩 sk_buff緇撴瀯錛屽~鍏呮暟鎹紝鎸傝嚦鍙戦侀槦鍒椼備竴灞傚眰寰涓嬪眰鍗忚浼犻掋備竴涓嬫瘡灞傚崗璁笉鍐嶅鏁版嵁榪涜鎷瘋礉銆傝屾槸瀵箂k_buff緇撴瀯榪涜鎿嶄綔銆?/span></div> <div> </div> <div><span style="font-size: 12pt;">inet濂楁帴瀛楀強浠ヤ笅灞?鏁版嵁瀛樻斁鍦╯k_buff榪欐牱鐨勬暟鎹粨鏋勯噷錛?/span></div> <div> </div> <div><span style="font-size: 12pt;">璺敱錛?/span></div> <div>    </div> <div><span style="font-size: 12pt;">    鍦╨inux鐨勮礬鐢辯郴緇熶富瑕佷繚瀛樹簡涓夌涓庤礬鐢辯浉鍏崇殑鏁版嵁錛岀涓縐嶆槸鍦ㄧ墿鐞嗕笂鍜屾湰鏈虹浉榪炴帴鐨勪富鏈哄湴鍧淇℃伅琛紝絎簩縐嶆槸淇濆瓨浜嗗湪緗戠粶璁塊棶涓垽鏂竴涓綉緇滃湴鍧搴旇璧頒粈涔堣礬鐢辯殑鏁版嵁琛紱絎笁縐嶆槸鏈鏂頒嬌鐢ㄨ繃鐨勬煡璇㈣礬鐢卞湴鍧鐨勭紦瀛樺湴鍧鏁版嵁琛ㄣ?/span></div> <div><span style="font-size: 12pt;">    1.neighbour緇撴瀯  neighbour_table{ }鏄竴涓寘鍚拰鏈満鎵榪炴帴鐨勬墍鏈夐偦鍏冪礌鐨勪俊鎭殑鏁版嵁緇撴瀯銆傝緇撴瀯涓湁涓厓绱犳槸neighbour緇撴瀯鐨勬暟緇勶紝鏁扮粍鐨勬瘡涓涓厓绱犻兘鏄竴涓搴斾簬閭繪満鐨?neighbour緇撴瀯錛岀郴緇熶腑鐢變簬鍗忚鐨勪笉鍚岋紝浼氭湁涓嶅悓鐨勫垽鏂偦灞呯殑鏂瑰紡錛屾瘡縐嶉兘鏈塶eighbour_table{}綾誨瀷鐨勫疄渚嬶紝榪欎簺瀹炰緥鏄氳繃 neighbour_table{}涓殑鎸囬拡next涓茶仈璧鋒潵鐨勩傚湪neighbour緇撴瀯涓紝鍖呭惈鏈変笌璇ラ偦灞呯浉榪炵殑緗戠粶鎺ュ彛璁懼net_device鐨?鎸囬拡錛岀綉緇滄帴鍙g殑紜歡鍦板潃錛岄偦灞呯殑紜歡鍦板潃錛屽寘鍚湁neigh_ops{}鎸囬拡錛岃繖浜涘嚱鏁版寚閽堟槸鐩存帴鐢ㄦ潵榪炴帴浼犺緭鏁版嵁鐨勶紝鍖呭惈鏈?queue_xmit(struct * sk_buff)鍑芥暟鍏ュ彛鍦板潃錛岃繖涓嚱鏁板彲鑳戒細璋冪敤紜歡椹卞姩紼嬪簭鐨勫彂閫佸嚱鏁般?/span></div> <div> </div> <div><span style="font-size: 12pt;">    2.FIB緇撴瀯 鍦‵IB涓繚瀛樼殑鏄渶閲嶈鐨勮礬鐢辮鍒?閫氳繃瀵笷IB鏁版嵁鐨勬煡鎵懼拰鎹㈢畻錛屼竴瀹氳兘澶熻幏寰楄礬鐢變竴涓湴鍧鐨勬柟娉曘傜郴緇熶腑璺敱涓鑸噰鍙栫殑鎵嬫鏄細鍏堝埌璺敱緙撳瓨涓煡鎵?琛ㄩ」錛屽鏋滆兘澶熸壘鍒幫紝鐩存帴瀵瑰簲鐨勪竴欏逛綔涓鴻礬鐢辯殑瑙勫垯錛涘鏋滀笉鑳芥壘鍒幫紝閭d箞灝卞埌FIB涓牴鎹鍒欐崲綆椾紶綆楀嚭鏉ワ紝騫朵笖澧炲姞涓欏規柊鐨勶紝鍦ㄨ礬鐢辯紦瀛樹腑灝嗛」鐩坊鍔犺繘 鍘匯?/span></div> <div><span style="font-size: 12pt;">    3.route緇撴瀯錛堝嵆璺敱緙撳瓨涓殑緇撴瀯)</span></div> <div> </div> <div> </div> <div> </div> <div><span style="font-size: 12pt;">鏁版嵁閾捐礬灞傦細</span></div> <div>   </div> <div><span style="font-size: 12pt;">   net_device{}緇撴瀯錛屽搴斾簬姣忎竴涓綉緇滄帴鍙h澶囥傝繖涓粨鏋勪腑鍖呭惈寰堝鍙互鐩存帴鑾峰彇緗戝崱淇℃伅鐨勫嚱鏁板拰鍙橀噺錛屽悓鏃跺寘鍚緢澶氬浜庣綉鍗℃搷浣滅殑鍑芥暟錛岃繖浜?鐩存帴鎸囧悜璇ョ綉鍗¢┍鍔ㄧ▼搴忕殑璁稿鍑芥暟鍏ュ彛錛屽寘鎷彂閫佹帴鏀舵暟鎹撫鍒扮紦鍐插尯絳夈傚綋榪欎簺瀹屾垚鍚庯紝姣斿鏁版嵁鎺ユ敹鍒扮紦鍐插尯鍚庝究鐢眓etif_rx(鍦╪et/core /dev.c鍚勭璁懼椹卞姩紼嬪簭鐨勪笂灞傛鏋剁▼搴?鎶婂畠浠粍鎴恠k_buff褰㈠紡鎸傚埌緋葷粺鎺ユ敹鐨刡acklog闃熷垪鐒跺悗浜ょ敱涓婂眰緗戠粶鍗忚澶勭悊銆傚悓鏍鳳紝瀵逛簬涓婂眰 鍗忚澶勭悊涓嬫潵鐨勯偅浜泂k_buff銆備究鐢眃ev_queue_xmit鍑芥暟鏀懼叆緗戠粶緙撳啿鍖猴紝浜ょ粰緗戝崱椹卞姩紼嬪簭鐨勫彂閫佺▼搴忓鐞嗐?/span></div> <div> </div> <div><span style="font-size: 12pt;">   鍦ㄧ郴緇熶腑瀛樺湪涓寮犻摼琛╠ev_base灝嗙郴緇熶腑鎵鏈夌殑net_device{}緇撴瀯榪炲湪涓璧楓傚搴斾簬鍐呮牳鍒濆鍖栬岃█錛岀郴緇熷惎鍔ㄦ椂渚夸負姣忎釜鎵鏈夊彲鑳芥敮鎸佺殑緗?緇滄帴鍙h澶囩敵璇蜂簡涓涓猲et_device{}絀洪棿騫朵覆榪炶搗鏉ワ紝鐒跺悗瀵規瘡涓帴鐐硅繍琛屾嫻嬭繃紼嬶紝濡傛灉媯嫻嬫垚鍔燂紝鍒欏湪dev_base閾捐〃涓繚鐣欒繖涓帴鐐癸紝鍚?鍒欏垹闄ゃ傚搴斾簬妯″潡鍔犺澆鏉ヨ錛屽垯鏄皟鐢╮egister_netdev()娉ㄥ唽net_device,鍦ㄨ繖涓嚱鏁頒腑榪愯媯嫻嬭繃紼嬶紝濡傛灉鎴愬姛錛屽垯鍔犲埌 dev_base閾捐〃銆傚惁鍒欏氨榪斿洖媯嫻嬩笉鍒頒俊鎭傚垹闄ゅ悓鐞嗭紝璋冪敤</span></div> <div><span style="font-size: 12pt;">unregister_netdev銆?/span></div> <div> </div> <div> </div> <div><strong style="font-size: 12pt;">2.鍚姩鍒嗘瀽</strong></div> <div><strong></strong> </div> <div><strong style="font-size: 12pt;">    2.1 鍒濆鍖栬繘紼?/strong> 錛歴tart-kernel(main.c)---->do_basic_setup(main.c)---->sock_init(/net/socket.c)---->do_initcalls(main.c)</div> <div> </div> <div><strong style="font-size: 12pt;">void __init sock_init(void)<br /></strong>{<br /> int i;</div> <div> </div> <div><span style="font-size: 12pt;"> printk(KERN_INFO "Linux NET4.0 for Linux 2.4\n");</span><br /><span style="font-size: 12pt;"> printk(KERN_INFO "Based upon Swansea University Computer Society NET3.039\n");</span></div> <div> </div> <div><span style="font-size: 12pt;"> /*</span><br /><span style="font-size: 12pt;">  * Initialize all address (protocol) families. 姣忎竴欏硅〃紺虹殑鏄拡瀵逛竴涓湴鍧鏃忕殑鎿嶄綔闆嗗悎錛屼緥濡傚浜巌pv4鏉ヨ錛屽湪net/ipv4/af_inet.c鏂囦歡涓殑鍑芥暟 inet_proto_init()灝辮皟鐢╯ock_register()鍑芥暟灝唅net_families_ops鍒濆鍖栧埌灞炰簬IPV4鐨?net_families鏁扮粍涓殑涓欏廣?/span><br /><span style="font-size: 12pt;">  */</span><br />  <br /><span style="font-size: 12pt;"> for (i = 0; i < NPROTO; i++) </span><br /><span style="font-size: 12pt;">  net_families[i] = NULL;  </span></div> <div> </div> <div><span style="font-size: 12pt;"> /*</span><br /><span style="font-size: 12pt;">  * Initialize sock SLAB cache.鍒濆鍖栧浜巗ock緇撴瀯棰勭暀鐨勫唴瀛樼殑slab緙撳瓨銆?/span><br /><span style="font-size: 12pt;">  */</span><br />  <br /><span style="font-size: 12pt;"> sk_init();</span></div> <div> </div> <div><span style="font-size: 12pt;">#ifdef SLAB_SKB</span><br /><span style="font-size: 12pt;"> /*</span><br /><span style="font-size: 12pt;">  * Initialize skbuff SLAB cache 鍒濆鍖栧浜巗kbuff緇撴瀯鐨剆lab緙撳瓨銆備互鍚庡浜巗kbuff鐨勭敵璇峰彲浠ラ氳繃鍑芥暟kmem_cache_alloc()鍦ㄨ繖涓紦瀛樹腑鐢寵絀洪棿銆?/span><br /><span style="font-size: 12pt;">  */</span><br /><span style="font-size: 12pt;"> skb_init();</span><br /><span style="font-size: 12pt;">#endif</span></div> <div> </div> <div><span style="font-size: 12pt;"> /*</span><br /><span style="font-size: 12pt;">  * Wan router layer. </span><br /><span style="font-size: 12pt;">  */</span></div> <div> </div> <div><span style="font-size: 12pt;">#ifdef CONFIG_WAN_ROUTER  </span><br /><span style="font-size: 12pt;"> wanrouter_init();</span><br /><span style="font-size: 12pt;">#endif</span></div> <div> </div> <div><span style="font-size: 12pt;"> /*</span><br /><span style="font-size: 12pt;">  * Initialize the protocols module. 鍚戠郴緇熺櫥璁皊ock鏂囦歡緋葷粺錛屽茍涓斿皢鍏跺畨瑁呭埌緋葷粺涓婃潵銆?/span><br /><span style="font-size: 12pt;">  */</span></div> <div> </div> <div><span style="font-size: 12pt;"> register_filesystem(&sock_fs_type);</span><br /><span style="font-size: 12pt;"> sock_mnt = kern_mount(&sock_fs_type);</span><br /><span style="font-size: 12pt;"> /* The real protocol initialization is performed when</span><br /><span style="font-size: 12pt;">  *  do_initcalls is run.  </span><br /><span style="font-size: 12pt;">  */</span></div> <div><br /><span style="font-size: 12pt;"> /*</span><br /><span style="font-size: 12pt;">  * The netlink device handler may be needed early.</span><br /><span style="font-size: 12pt;">  */</span></div> <div> </div> <div><span style="font-size: 12pt;">#ifdef CONFIG_NET</span><br /><span style="font-size: 12pt;"> rtnetlink_init();</span><br /><span style="font-size: 12pt;">#endif</span><br /><span style="font-size: 12pt;">#ifdef CONFIG_NETLINK_DEV</span><br /><span style="font-size: 12pt;"> init_netlink();</span><br /><span style="font-size: 12pt;">#endif</span><br /><span style="font-size: 12pt;">#ifdef CONFIG_NETFILTER</span><br /><span style="font-size: 12pt;"> netfilter_init();</span><br /><span style="font-size: 12pt;">#endif</span></div> <div> </div> <div><span style="font-size: 12pt;">#ifdef CONFIG_BLUEZ</span><br /><span style="font-size: 12pt;"> bluez_init();</span><br /><span style="font-size: 12pt;">#endif</span></div> <div> </div> <div><span style="font-size: 12pt;">/*yfhuang ipsec*/</span><br /><span style="font-size: 12pt;">#ifdef CONFIG_IPSEC            </span><br /><span style="font-size: 12pt;"> pfkey_init();</span><br /><span style="font-size: 12pt;">#endif</span><br /><span style="font-size: 12pt;">/*yfhuang ipsec*/</span><br /><span style="font-size: 12pt;">}</span></div> <div><strong></strong> </div> <div><strong></strong> </div> <div><strong style="font-size: 12pt;">    2.2 do_initcalls()</strong> 涓仛浜嗗叾瀹冪殑鍒濆鍖栵紝鍏朵腑鍖呮嫭</div> <div> </div> <div><span style="font-size: 12pt;">                鍗忚鍒濆鍖栵紝璺敱鍒濆鍖栵紝緗戠粶鎺ュ彛璁懼鍒濆鍖?/span></div> <div> </div> <div><strong style="font-size: 12pt;">(渚嬪inet_init鍑芥暟浠init寮澶磋〃紺烘槸緋葷粺鍒濆鍖栨椂鍋氾紝鍑芥暟緇撴潫鍚庤窡 module_init(inet_init),榪欐槸涓涓畯錛屽湪include/linux/init.c涓畾涔夛紝灞曞紑涓?_initcall(inet_init),琛ㄧず榪欎釜鍑芥暟鍦╠o_initcalls琚皟鐢ㄤ簡)</strong></div> <div> </div> <div><strong style="font-size: 12pt;">    2.3 鍗忚鍒濆鍖?/strong></div> <div><strong style="font-size: 12pt;">姝ゅ涓昏鍒椾婦inet鍗忚鐨勫垵濮嬪寲榪囩▼銆?/strong></div> <div><strong></strong> </div> <div><span style="font-size: 12pt;">static int __init inet_init(void)</span><br /><span style="font-size: 12pt;">{</span><br /><span style="font-size: 12pt;"> struct sk_buff *dummy_skb;</span><br /><span style="font-size: 12pt;"> struct inet_protocol *p;</span><br /><span style="font-size: 12pt;"> struct inet_protosw *q;</span><br /><span style="font-size: 12pt;"> struct list_head *r;</span></div> <div> </div> <div><span style="font-size: 12pt;"> printk(KERN_INFO "NET4: Linux TCP/IP 1.0 for NET4.0\n");</span></div> <div> </div> <div><span style="font-size: 12pt;"> if (sizeof(struct inet_skb_parm) > sizeof(dummy_skb->cb)) {</span><br /><span style="font-size: 12pt;">  printk(KERN_CRIT "inet_proto_init: panic\n");</span><br /><span style="font-size: 12pt;">  return -EINVAL;</span><br /><span style="font-size: 12pt;"> }</span></div> <div> </div> <div><span style="font-size: 12pt;"> /*</span><br /><span style="font-size: 12pt;">  * Tell SOCKET that we are alive... 娉ㄥ唽socket錛屽憡璇塻ocket inet綾誨瀷鐨勫湴鍧鏃忓凡緇忓噯澶囧ソ浜?/span><br /><span style="font-size: 12pt;">  */</span><br />   <br /><span style="font-size: 12pt;">   (void) sock_register(&inet_family_ops);</span></div> <div> </div> <div><span style="font-size: 12pt;"> /*</span><br /><span style="font-size: 12pt;">  * Add all the protocols. 鍖呮嫭arp,ip銆両CMP銆乁PD銆乼cp_v4銆乼cp銆乮gmp鐨勫垵濮嬪寲錛屼富瑕佸垵濮嬪寲鍚勭鍗忚瀵瑰簲鐨刬node鍜宻ocket鍙橀噺銆?/span></div> <div> </div> <div><span style="font-size: 12pt;">鍏朵腑arp_init瀹屾垚緋葷粺涓礬鐢遍儴鍒唍eighbour琛ㄧ殑鍒濆鍖?/span></div> <div> </div> <div><span style="font-size: 12pt;">ip_init瀹屾垚ip鍗忚鐨勫垵濮嬪寲銆傚湪榪欎袱涓嚱鏁頒腑錛岄兘閫氳繃瀹氫箟涓涓猵acket_type緇撴瀯鐨勫彉閲忓皢榪欑鏁版嵁鍖呭搴旂殑鍗忚鍙戦佹暟鎹佸厑璁稿彂閫佽澶囬兘鍋氬垵濮嬪寲銆?/span></div> <div><br /><span style="font-size: 12pt;">  */</span></div> <div> </div> <div><span style="font-size: 12pt;"> printk(KERN_INFO "IP Protocols: ");</span><br /><span style="font-size: 12pt;"> for (p = inet_protocol_base; p != NULL;) {</span><br /><span style="font-size: 12pt;">  struct inet_protocol *tmp = (struct inet_protocol *) p->next;</span><br /><span style="font-size: 12pt;">  inet_add_protocol(p);</span><br /><span style="font-size: 12pt;">  printk("%s%s",p->name,tmp?", ":"\n");</span><br /><span style="font-size: 12pt;">  p = tmp;</span><br /><span style="font-size: 12pt;"> }</span></div> <div> </div> <div><span style="font-size: 12pt;"> /* Register the socket-side information for inet_create. */</span><br /><span style="font-size: 12pt;"> for(r = &inetsw[0]; r < &inetsw[SOCK_MAX]; ++r)</span><br /><span style="font-size: 12pt;">  INIT_LIST_HEAD(r);</span></div> <div> </div> <div><span style="font-size: 12pt;"> for(q = inetsw_array; q < &inetsw_array[INETSW_ARRAY_LEN]; ++q)</span><br /><span style="font-size: 12pt;">  inet_register_protosw(q);</span></div> <div> </div> <div><span style="font-size: 12pt;"> /*</span><br /><span style="font-size: 12pt;">  * Set the ARP module up  </span><br /><span style="font-size: 12pt;">  */</span></div> <div> </div> <div><span style="font-size: 12pt;"> arp_init();</span></div> <div> </div> <div><span style="font-size: 12pt;">   /*</span><br /><span style="font-size: 12pt;">    * Set the IP module up</span><br /><span style="font-size: 12pt;">    */</span></div> <div> </div> <div><span style="font-size: 12pt;"> ip_init();</span></div> <div> </div> <div><span style="font-size: 12pt;"> tcp_v4_init(&inet_family_ops);</span></div> <div> </div> <div><span style="font-size: 12pt;"> /* Setup TCP slab cache for open requests. */</span><br /><span style="font-size: 12pt;"> tcp_init();</span></div> <div><br /><span style="font-size: 12pt;"> /*</span><br /><span style="font-size: 12pt;">  * Set the ICMP layer up</span><br /><span style="font-size: 12pt;">  */</span></div> <div> </div> <div><span style="font-size: 12pt;"> icmp_init(&inet_family_ops);</span></div> <div> </div> <div><span style="font-size: 12pt;"> /* I wish inet_add_protocol had no constructor hook...</span><br /><span style="font-size: 12pt;">    I had to move IPIP from net/ipv4/protocol.c :-( --ANK</span><br /><span style="font-size: 12pt;">  */</span><br /><span style="font-size: 12pt;">#ifdef CONFIG_NET_IPIP</span><br /><span style="font-size: 12pt;"> ipip_init();</span><br /><span style="font-size: 12pt;">#endif</span><br /><span style="font-size: 12pt;">#ifdef CONFIG_NET_IPGRE</span><br /><span style="font-size: 12pt;"> ipgre_init();</span><br /><span style="font-size: 12pt;">#endif</span></div> <div> </div> <div><span style="font-size: 12pt;"> /*</span><br /><span style="font-size: 12pt;">  * Initialise the multicast router</span><br /><span style="font-size: 12pt;">  */</span><br /><span style="font-size: 12pt;">#if defined(CONFIG_IP_MROUTE)</span><br /><span style="font-size: 12pt;"> ip_mr_init();</span><br /><span style="font-size: 12pt;">#endif</span></div> <div> </div> <div><span style="font-size: 12pt;"> /*</span><br /><span style="font-size: 12pt;">  * Create all the /proc entries.</span><br /><span style="font-size: 12pt;">  */</span><br /><span style="font-size: 12pt;">#ifdef CONFIG_PROC_FS</span><br /><span style="font-size: 12pt;"> proc_net_create ("raw", 0, raw_get_info);</span><br /><span style="font-size: 12pt;"> proc_net_create ("netstat", 0, netstat_get_info);</span><br /><span style="font-size: 12pt;"> proc_net_create ("snmp", 0, snmp_get_info);</span><br /><span style="font-size: 12pt;"> proc_net_create ("sockstat", 0, afinet_get_info);</span><br /><span style="font-size: 12pt;"> proc_net_create ("tcp", 0, tcp_get_info);</span><br /><span style="font-size: 12pt;"> proc_net_create ("udp", 0, udp_get_info);</span><br /><span style="font-size: 12pt;">#endif  /* CONFIG_PROC_FS */</span></div> <div> </div> <div><span style="font-size: 12pt;"> ipfrag_init();</span></div> <div> </div> <div><span style="font-size: 12pt;"> return 0;</span><br /><span style="font-size: 12pt;">}   </span></div> <div><span style="font-size: 12pt;">module_init(inet_init);</span></div> <div>                                                 </div> <div> </div> <div>    <strong style="font-size: 12pt;"> 2.4 璺敱鍒濆鍖?鍖呮嫭neighbour琛ㄣ丗IB琛ㄣ佸拰璺敱緙撳瓨琛ㄧ殑鍒濆鍖栧伐浣?</strong></div> <div><strong></strong> </div> <div>            <strong style="font-size: 12pt;">2.4.1 rtcache琛?ip_rt_init()鍑芥暟 鍦╪et/ipv4/ip_output涓皟鐢紝net/ipv4/route.c涓畾涔?/strong></div> <div><strong></strong> </div> <div>            <strong style="font-size: 12pt;">2.4.2 FIB鍒濆鍖?鍦╥p_rt_init()涓皟鐢?鍦╪et/ipv4/fib_front.c涓畾涔?/strong></div> <div><strong></strong> </div> <div><strong style="font-size: 12pt;">           2.4.3 neigbour琛ㄥ垵濮嬪寲  arp_init錛堬級鍑芥暟涓畾涔?nbsp;</strong></div> <div><strong></strong> </div> <div><strong style="font-size: 12pt;">     2.5 緗戠粶鎺ュ彛璁懼鍒濆鍖?/strong></div> <div>             </div> <div><span style="font-size: 12pt;">             鍦ㄧ郴緇熶腑緗戠粶鎺ュ彛閮芥槸鐢變竴涓猟ev_base閾捐〃榪涜綆$悊鐨勩傞氳繃鍐呮牳鐨勫惎鍔ㄦ柟寮忎篃鏄氳繃榪欎釜閾捐〃榪涜鎿嶄綔鐨勩傚湪緋?緇熷惎鍔ㄤ箣鍒濓紝灝嗘墍鏈夊唴鏍歌兘澶熸敮鎸佺殑緗戠粶鎺ュ彛閮藉垵濮嬪寲鎴愯繖涓摼琛ㄤ腑鐨勪竴涓妭鐐癸紝騫朵笖姣忎釜鑺傜偣閮介渶瑕佸垵濮嬪寲鍑篿nit鍑芥暟鎸囬拡錛岀敤鏉ユ嫻嬬綉緇滄帴鍙h澶囥傜劧鍚庯紝 緋葷粺閬嶅巻鏁翠釜dev_base閾捐〃錛屽姣忎釜鑺傜偣鍒嗗埆璋冪敤init鍑芥暟鎸囬拡錛屽鏋滄垚鍔燂紝璇佹槑緗戠粶鎺ュ彛璁懼鍙敤錛岄偅涔堣繖涓妭鐐瑰氨鍙互榪涗竴姝ュ垵濮嬪寲錛屽鏋滆繑鍥炲け 璐ワ紝閭d箞璇佹槑璇ョ綉緇滆澶囦笉瀛樺湪鎴栨槸涓嶅彲鐢紝鍙兘灝嗚鑺傜偣鍒犻櫎銆傚惎鍔ㄧ粨鏉熶箣鍚庯紝鍦╠ev_base涓墿涓嬬殑閮芥槸鍙互鐢ㄧ殑緗戠粶鎺ュ彛璁懼銆?/span></div> <div> </div> <div><span style="font-size: 12pt;">            2.5.1 do_initcalls---->net_dev_init()(net/core /dev.c)------>ethif_probe()(drivers/net/Space.c,鍦╪etdevice{}緇撴瀯鐨刬nit涓皟 鐢紝榪欒竟ethif_probe鏄互澶綉鍗¢拡瀵圭殑璋冪敤)</span></div> <div> </div> <div><strong></strong> </div> <div><strong></strong> </div> <div><strong style="font-size: 12pt;">3.緗戠粶璁懼椹卞姩紼嬪簭錛堢暐)</strong></div> <div><strong>        </strong></div> <div><strong></strong> </div> <div><strong style="font-size: 12pt;">4.緗戠粶榪炴帴</strong></div> <div><strong></strong> </div> <div><strong style="font-size: 12pt;">     4.1 榪炴帴鐨勫緩绔嬪拰鍏抽棴</strong></div> <div><strong></strong> </div> <div><span style="font-size: 12pt;">            tcp榪炴帴寤虹珛鐨勪唬鐮佸涓?</span></div> <div><span style="font-size: 12pt;">                    server=gethostbyname(SERVER_NAME);</span></div> <div><span style="font-size: 12pt;">                    sockfd=socket(AF_INET,SOCK_STREAM,0);</span></div> <div><span style="font-size: 12pt;">                    address.sin_family=AF_INET錛?/span></div> <div><span style="font-size: 12pt;">                    address.sin_port=htons(PORT_NUM);</span></div> <div><span style="font-size: 12pt;">                    memcpy(&address.sin_addr,server->h_addr,server->h_length);</span></div> <div><span style="font-size: 12pt;">                    connect(sockfd,&address,sizeof(address));</span></div> <div> </div> <div><span style="font-size: 12pt;">       榪炴帴鐨勫垵濮嬪寲涓庡緩绔嬫湡闂翠富瑕佸彂鐢熺殑浜嬫儏濡備笅錛?/span></div> <div>                      </div> <div><span style="font-size: 12pt;">       1錛塻ys_socket璋冪敤錛氳皟鐢╯ocket_creat(),鍒涘緩鍑轟竴涓弧瓚充紶鍏ュ弬鏁癴amily銆乼ype銆佸拰 protocol鐨剆ocket,璋冪敤sock_map_fd()鑾峰彇涓涓湭琚嬌鐢ㄧ殑鏂囦歡鎻忚堪絎︼紝騫朵笖鐢寵騫跺垵濮嬪寲瀵瑰簲鐨刦ile{}緇撴瀯銆?/span></div> <div>        </div> <div><span style="font-size: 12pt;">       2錛塻ock_creat()錛氬垱寤簊ocket緇撴瀯錛岄拡瀵規瘡縐嶄笉鍚岀殑family鐨剆ocket緇撴瀯鐨勫垵濮嬪寲錛屽氨闇瑕佽皟鐢ㄤ笉鍚?鐨刢reate鍑芥暟鏉ュ畬鎴愩傚搴斾簬inet綾誨瀷鐨勫湴鍧鏉ヨ錛屽湪緗戠粶鍗忚鍒濆鍖栨椂璋冪敤sock_register()鍑芥暟涓畬鎴愭敞鍐岀殑瀹氫箟濡備笅錛?/span></div> <div><span style="font-size: 12pt;">        struct net_proto_family inet_family_ops={</span></div> <div><span style="font-size: 12pt;">                PF_INET;</span></div> <div><span style="font-size: 12pt;">                inet_create</span></div> <div><span style="font-size: 12pt;">        };鎵浠net鍗忚鏈鍚庝細璋冪敤inet_create鍑芥暟銆?/span></div> <div>        </div> <div><span style="font-size: 12pt;">       3錛塱net_create: 鍒濆鍖杝ock鐨勭姸鎬佽緗負SS_UNCONNECTED,鐢寵涓涓柊鐨剆ock緇撴瀯錛屽茍涓斿垵濮嬪寲socket鐨勬垚鍛榦ps鍒濆鍖栦負 inet_stream_ops,鑰宻ock鐨勬垚鍛榩rot鍒濆鍖栦負tcp_prot銆傜劧鍚庤皟鐢╯ock_init_data,灝嗚socket緇撴瀯鐨勫彉 閲弒ock鍜宻ock綾誨瀷鐨勫彉閲忓叧鑱旇搗鏉ャ?/span></div> <div> </div> <div><span style="font-size: 12pt;">       4錛夊湪緋葷粺鍒濆鍖栧畬姣曞悗渚挎槸榪涜connect鐨勫伐浣滐紝緋葷粺璋冪敤connect灝嗕竴涓拰socket緇撴瀯鍏寵仈鐨勬枃浠舵弿榪扮鍜屼竴涓?sockaddr{}緇撴瀯鐨勫湴鍧瀵瑰簲鐨勮繙紼嬫満鍣ㄧ浉鍏寵仈錛屽茍涓旇皟鐢ㄥ悇涓崗璁嚜宸卞搴旂殑connect榪炴帴鍑芥暟銆傚搴斾簬tcp綾誨瀷錛屽垯 sock->ops->connect渚夸負inet_stream_connect銆?/span></div> <div> </div> <div> </div> <div><span style="font-size: 12pt;">       5錛塱net_stream_connect: 寰楀埌sk,sk=sock->sk,閿佸畾sk錛屽鑷姩鑾峰彇sk鐨勭鍙e彿瀛樻斁鍦╯k->num涓紝騫朵笖鐢╤tons()鍑芥暟杞崲瀛樻斁鍦╯k-& gt;sport涓傜劧鍚庤皟鐢╯k->prot->connect()鍑芥暟鎸囬拡錛屽tcp鍗忚鏉ヨ灝辨槸tcp_v4_connect()鍑?鏁般傜劧鍚庡皢sock->state鐘舵佸瓧璁劇疆涓篠S_CONNECTING,絳夊緟鍚庨潰涓緋誨垪鐨勫鐞嗗畬鎴愪箣鍚庯紝灝卞皢鐘舵佹敼鎴?SS_CONNECTTED銆?/span></div> <div> </div> <div><span style="font-size: 12pt;">       6) tcp_v4_connect()錛氳皟鐢ㄥ嚱鏁癷p_route_connect()錛屽鎵懼悎閫傜殑璺敱瀛樻斁鍦╮t涓俰p_route_connect鎵句袱 嬈★紝絎竴嬈℃壘鍒頒笅涓璺崇殑ip鍦板潃錛屽湪璺敱緙撳瓨鎴杅ib涓壘鍒幫紝鐒跺悗絎簩嬈℃壘鍒頒笅涓璺崇殑鍏蜂綋閭誨眳錛屽埌neigh_table涓壘鍒般傜劧鍚庣敵璇峰嚭tcp澶寸殑絀?闂村瓨鏀懼湪buff涓傚皢sk涓浉鍏沖湴鍧鏁版嵁鍋氫竴浜涢拡瀵硅礬鐢辯殑鍙樺姩錛屽茍涓斿垵濮嬪寲涓涓猼cp榪炴帴鐨勫簭鍒楀彿錛岃皟鐢ㄥ嚱鏁皌cp_connect錛堬級錛屽垵濮嬪寲tcp 澶達紝騫惰緗畉cp澶勭悊闇瑕佺殑瀹氭椂鍣ㄣ備竴嬈onnect錛堬級寤虹珛鐨勮繃紼嬪氨緇撴潫浜嗐?/span></div> <div> </div> <div><span style="font-size: 12pt;">       榪炴帴鐨勫叧闂富瑕佸涓嬶細</span></div> <div> </div> <div><span style="font-size: 12pt;">        1錛塩lose: 涓涓猻ocket鏂囦歡鎻忚堪絎﹀搴旂殑file{}緇撴瀯涓紝鏈変竴涓猣ile_operations{}緇撴瀯鐨勬垚鍛榝_ops錛屽畠鐨勫垵濮嬪寲鍏抽棴鍑芥暟涓簊ock_close鍑芥暟銆?/span></div> <div> </div> <div><span style="font-size: 12pt;">        2錛塻ock_close錛氳皟鐢ㄥ嚱鏁皊ock_release(),鍙傛暟涓轟竴涓猻ocket{}緇撴瀯鐨勬寚閽堛?/span></div> <div> </div> <div><span style="font-size: 12pt;">        3錛塻ock_release錛氳皟鐢╥net_release錛屽茍閲婃斁socket鐨勬寚閽堝拰鏂囦歡絀洪棿</span></div> <div> </div> <div><span style="font-size: 12pt;">        4錛塱net_release: 璋冪敤鍜岃socket瀵瑰簲鍗忚鐨勫叧闂嚱鏁癷net_release,濡傛灉鏄痶cp鍗忚錛岄偅涔堣皟鐢ㄧ殑鏄痶cp_close錛涙渶鍚庨噴鏀緎k銆?/span></div> <div> </div> <div><span style="font-size: 12pt;">        4.2 </span><strong style="font-size: 12pt;">鏁版嵁鍙戦佹祦紼嬪浘</strong></div> <div><strong></strong> </div> <div> <img alt="" src="http://blog.csdn.net/images/blog_csdn_net/cz_hyf/send.gif" usemap="#mymap" border="0" /></div> <div><strong></strong> </div> <div><span style="font-size: 12pt;">鍚勫眰涓昏鍑芥暟浠ュ強浣嶇疆鍔熻兘璇存槑錛?/span></div> <div><span style="font-size: 12pt;">        1)sock_write錛氬垵濮嬪寲msghdr{}緇撴瀯 net/socket.c</span></div> <div><span style="font-size: 12pt;">        2)sock_sendmsg:net/socket.c</span></div> <div><span style="font-size: 12pt;">        3)inet_sendmsg:net/ipv4/af_net.c</span></div> <div><span style="font-size: 12pt;">        4)tcp_sendmsg錛氱敵璇穝k_buff{}緇撴瀯鐨勭┖闂達紝鎶妋sghdr{}緇撴瀯涓殑鏁版嵁濉叆sk_buff絀洪棿銆俷et/ipv4/tcp.c</span></div> <div><span style="font-size: 12pt;">        5)tcp_send_skb:net/ipv4/tcp_output.c</span></div> <div><span style="font-size: 12pt;">        6)tcp_transmit_skb:net/ipv4/tcp_output.c</span></div> <div><span style="font-size: 12pt;">        7)ip_queue_xmit:net/ipv4/ip_output.c</span></div> <div><span style="font-size: 12pt;">        8)ip_queue_xmit2:net/ipv4/ip_output.c</span></div> <div><span style="font-size: 12pt;">        9)ip_output:net/ipv4/ip_output.c</span></div> <div><span style="font-size: 12pt;">        10)ip_finish_output:net/ipv4/ip_output.c</span></div> <div><span style="font-size: 12pt;">        11)ip_finish_output2:net/ipv4/ip_output.c</span></div> <div><span style="font-size: 12pt;">        12)neigh_resolve_output:net/core/neighbour.c</span></div> <div><span style="font-size: 12pt;">        13)dev_queue_xmit:net/core/dev.c</span></div> <div> </div> <div> </div> <div><strong style="font-size: 12pt;">        4.3 鏁版嵁鎺ユ敹嫻佺▼鍥?/strong></div> <div><img alt="" src="http://blog.csdn.net/images/blog_csdn_net/cz_hyf/receive.gif" usemap="#mymap" border="0" /></div> <div><strong></strong> </div> <div><span style="font-size: 12pt;">鍚勫眰涓昏鍑芥暟浠ュ強浣嶇疆鍔熻兘璇存槑錛?/span></div> <div> </div> <div><span style="font-size: 12pt;">        1)sock_read:鍒濆鍖杕sghdr{}鐨勭粨鏋勭被鍨嬪彉閲弇sg錛屽茍涓斿皢闇瑕佹帴鏀剁殑鏁版嵁瀛?/span><span style="font-size: 12pt;">鏀劇殑鍦板潃浼犵粰msg.msg_iov->iov_base.      net/socket.c</span></div> <div><span style="font-size: 12pt;">        2)sock_recvmsg: 璋冪敤鍑芥暟鎸囬拡sock->ops->recvmsg()瀹屾垚鍦↖NET Socket灞傜殑鏁版嵁鎺ユ敹榪囩▼.鍏朵腑sock->ops琚垵濮嬪寲涓篿net_stream_ops,鍏舵垚鍛榬ecvmsg瀵瑰簲鐨勫嚱鏁板疄鐜頒負 inet_recvmsg()鍑芥暟. net/socket.c</span></div> <div><span style="font-size: 12pt;">        3)sys_recv()/sys_recvfrom():鍒嗗埆瀵瑰簲鐫闈㈠悜榪炴帴鍜岄潰鍚戞棤榪炴帴鐨勫崗璁袱縐嶆儏鍐? net/socket.c</span></div> <div><span style="font-size: 12pt;">        4)inet_recvmsg:璋冪敤sk->prot->recvmsg鍑芥暟瀹屾垚鏁版嵁鎺ユ敹,榪欎釜鍑芥暟瀵逛簬tcp鍗忚渚挎槸tcp_recvmsg net/ipv4/af_net.c</span></div> <div><span style="font-size: 12pt;">        5)tcp_recvmsg:浠庣綉緇滃崗璁爤鎺ユ敹鏁版嵁鐨勫姩浣?鑷笂鑰屼笅鐨勮Е鍙戝姩浣滀竴鐩村埌榪欎釜鍑芥暟涓烘,鍑虹幇浜嗕竴嬈$瓑寰呯殑榪囩▼.鍑?鏁皌cp_recvmsg鍙兘浼氳鍔ㄥ湴絳夊緟鍦╯k鐨勬帴鏀舵暟鎹槦鍒椾笂,涔熷氨鏄,緋葷粺涓偗瀹氭湁鍏朵粬鍦版柟浼氬幓淇敼榪欎釜闃熷垪浣垮緱tcp_recvmsg鍙互榪涜 涓嬪幓.鍏ュ彛鍙傛暟sk鏄繖涓綉緇滆繛鎺ュ搴旂殑sock{}鎸囬拡,msg鐢ㄤ簬瀛樻斁鎺ユ敹鍒扮殑鏁版嵁.鎺ユ敹鏁版嵁鐨勬椂鍊欎細鍘婚亶鍘嗘帴鏀墮槦鍒椾腑鐨勬暟鎹?鎵懼埌搴忓垪鍙峰悎閫傜殑.</span></div> <div><span style="font-size: 12pt;">        浣嗚鍙栭槦鍒椾負絀烘椂tcp_recvmsg灝變細璋冪敤tcp_v4_do_rcv浣跨敤backlog闃熷垪濉厖鎺ユ敹闃熷垪.</span></div> <div><span style="font-size: 12pt;">        6)tcp_v4_rcv:tcp_v4_rcv琚玦p_local_deliver鍑芥暟璋冪敤,鏄粠IP灞傚崗璁悜INET Socket灞傛彁浜ょ殑"鏁版嵁鍒?璇鋒眰,鍏ュ彛鍙傛暟skb瀛樻斁鎺ユ敹鍒扮殑鏁版嵁,len鏄帴鏀剁殑鏁版嵁鐨勯暱搴?榪欎釜鍑芥暟棣栧厛縐誨姩skb->data鎸囬拡,璁╁畠 鎸囧悜tcp澶?鐒跺悗鏇存柊tcp灞傜殑涓浜涙暟鎹粺璁?鐒跺悗榪涜tcp鐨勪竴浜涘肩殑鏍¢獙.鍐嶄粠INET Socket灞備腑宸茬粡寤虹珛鐨剆ock{}緇撴瀯鍙橀噺涓煡鎵炬鍦ㄧ瓑寰呭綋鍓嶅埌杈炬暟鎹殑鍝竴欏?鍙兘榪欎釜sock{}緇撴瀯宸茬粡寤虹珛,鎴栬呰繕澶勪簬鐩戝惉绔彛銆佺瓑寰呮暟鎹?榪炴帴鐨勭姸鎬併傝繑鍥炵殑sock緇撴瀯鎸囬拡瀛樻斁鍦╯k涓傜劧鍚庢牴鎹叾浠栬繘紼嬪sk鐨勬搷浣滄儏鍐?灝唖kb鍙戦佸埌鍚堥傜殑浣嶇疆.璋冪敤濡備笅:</span></div> <div> </div> <div><span style="font-size: 12pt;">        TCP鍖呮帴鏀跺櫒(tcp_v4_rcv)灝員CP鍖呮姇閫掑埌鐩殑濂楁帴瀛楄繘琛屾帴鏀跺鐞? 褰撳鎺ュ瓧姝h鐢ㄦ埛閿佸畾,TCP鍖呭皢鏆傛椂鎺掑叆璇ュ鎺ュ瓧鐨勫悗澶囬槦鍒?sk_add_backlog).榪欐椂濡傛灉鏌愪竴鐢ㄦ埛綰跨▼浼佸浘閿佸畾璇ュ鎺ュ瓧 (lock_sock),璇ョ嚎紼嬭鎺掑叆濂楁帴瀛楃殑鍚庡澶勭悊絳夊緟闃熷垪(sk->lock.wq).褰撶敤鎴烽噴鏀句笂閿佺殑濂楁帴瀛楁椂 (release_sock,鍦╰cp_recvmsg涓皟鐢?,鍚庡闃熷垪涓殑TCP鍖呰绔嬪嵆娉ㄥ叆TCP鍖呭鐞嗗櫒(tcp_v4_do_rcv)榪涜澶?鐞?鐒跺悗鍞ら啋絳夊緟闃熷垪涓渶鍏堢殑涓涓敤鎴鋒潵鑾峰緱鍏墮攣瀹氭潈. 濡傛灉濂楁帴瀛楁湭琚笂閿?褰撶敤鎴鋒鍦ㄨ鍙栬濂楁帴瀛楁椂, TCP鍖呭皢琚帓鍏ュ鎺ュ瓧鐨勯澶囬槦鍒?tcp_prequeue),灝嗗叾浼犻掑埌璇ョ敤鎴風嚎紼嬩笂涓嬫枃涓繘琛屽鐞?濡傛灉娣誨姞鍒皊k->prequeue涓嶆垚 鍔?渚垮彲浠ユ坊鍔犲埌 sk->receive_queue闃熷垪涓?鐢ㄦ埛綰跨▼鍙互鐧昏鍒伴澶囬槦鍒?褰撻澶囬槦鍒椾腑鍑虹幇絎竴涓寘鏃跺氨鍞ら啋絳夊緟綰跨▼.)   /net/tcp_ipv4.c</span></div> <div> </div> <div><span style="font-size: 12pt;">        7)ip_rcv銆乮p_rcv_finish:浠庝互澶綉鎺ユ敹鏁版嵁錛屾斁鍒皊kb閲岋紝浣渋p灞傜殑涓浜涙暟鎹強閫夐」媯鏌ワ紝璋冪敤 ip_route_input()鍋氳礬鐢卞鐞?鍒ゆ柇鏄繘琛宨p杞彂榪樻槸灝嗘暟鎹紶閫掑埌楂樹竴灞傜殑鍗忚.璋冪敤skb->dst->input鍑芥暟鎸?閽?榪欎釜鎸囬拡鐨勫疄鐜板彲鑳芥湁澶氱鎯呭喌,濡傛灉璺敱寰楀埌鐨勭粨鏋滆鏄庤繖涓暟鎹寘搴旇杞彂鍒板叾浠栦富鏈?榪欓噷鐨刬nput渚挎槸ip_forward;濡傛灉鏁版嵁鍖呮槸緇欐湰 鏈虹殑,閭d箞input鎸囬拡鍒濆鍖栦負ip_local_deliver鍑芥暟./net/ipv4/ip_input.c</span></div> <div> </div> <div><span style="font-size: 12pt;">        8)ip_local_deliver銆乮p_local_deliver_finish:鍏ュ彛鍙傛暟skb瀛樻斁闇瑕佷紶閫佸埌涓婂眰 鍗忚鐨勬暟鎹?浠巌p澶翠腑鑾峰彇鏄惁宸茬粡鍒嗘媶鐨勪俊鎭?濡傛灉宸茬粡鍒嗘媶,鍒欒皟鐢ㄥ嚱鏁癷p_defrag灝嗘暟鎹寘閲嶇粍銆傜劧鍚庨氳繃璋冪敤 ip_prot->handler鎸囬拡璋冪敤tcp_v4_rcv(tcp)銆俰p_prot鏄痠net_protocol緇撴瀯鎸囬拡,鏄敤鏉p灞傜櫥 璁板崗璁殑錛屾瘮濡傜敱udp,tcp,icmp絳夊崗璁?/net/ipv4/ip_input.c</span></div></div></div><img src ="http://m.shnenglu.com/finehai/aggbug/172589.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/finehai/" target="_blank">Bluesea</a> 2012-04-24 13:50 <a href="http://m.shnenglu.com/finehai/archive/2012/04/24/172589.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>銆愯漿銆慍++ 铏氬嚱鏁拌〃瑙f瀽 http://m.shnenglu.com/finehai/archive/2012/04/24/172574.htmlBlueseaBlueseaTue, 24 Apr 2012 03:44:00 GMThttp://m.shnenglu.com/finehai/archive/2012/04/24/172574.htmlhttp://m.shnenglu.com/finehai/comments/172574.htmlhttp://m.shnenglu.com/finehai/archive/2012/04/24/172574.html#Feedback0http://m.shnenglu.com/finehai/comments/commentRss/172574.htmlhttp://m.shnenglu.com/finehai/services/trackbacks/172574.html闃呰鍏ㄦ枃

Bluesea 2012-04-24 11:44 鍙戣〃璇勮
]]>
gnu binutils(addr2line ar gprof nm objcopy ...)http://m.shnenglu.com/finehai/archive/2012/04/24/172557.htmlBlueseaBlueseaTue, 24 Apr 2012 02:28:00 GMThttp://m.shnenglu.com/finehai/archive/2012/04/24/172557.htmlhttp://m.shnenglu.com/finehai/comments/172557.htmlhttp://m.shnenglu.com/finehai/archive/2012/04/24/172557.html#Feedback0http://m.shnenglu.com/finehai/comments/commentRss/172557.htmlhttp://m.shnenglu.com/finehai/services/trackbacks/172557.html闃呰鍏ㄦ枃

Bluesea 2012-04-24 10:28 鍙戣〃璇勮
]]>
Android涓璏essage鏈哄埗鐨勭伒媧誨簲鐢?/title><link>http://m.shnenglu.com/finehai/archive/2012/04/23/172481.html</link><dc:creator>Bluesea</dc:creator><author>Bluesea</author><pubDate>Mon, 23 Apr 2012 10:23:00 GMT</pubDate><guid>http://m.shnenglu.com/finehai/archive/2012/04/23/172481.html</guid><wfw:comment>http://m.shnenglu.com/finehai/comments/172481.html</wfw:comment><comments>http://m.shnenglu.com/finehai/archive/2012/04/23/172481.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/finehai/comments/commentRss/172481.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/finehai/services/trackbacks/172481.html</trackback:ping><description><![CDATA[     鎽樿: 1.媧葷敤Android綰跨▼闂撮氫俊鐨凪essage鏈哄埗 1.1.Message 浠g爜鍦╢rameworks\base\core\java\android\Os\Message.java涓? Message.obtain鍑芥暟錛氭湁澶氫釜obtain鍑芥暟錛屼富瑕佸姛鑳戒竴鏍鳳紝鍙槸鍙傛暟涓嶄竴鏍楓備綔鐢ㄦ槸浠嶮essage Pool涓彇鍑轟竴涓狹essage錛屽鏋淢essage Pool涓凡緇忔病鏈塎essage鍙彇鍒?..  <a href='http://m.shnenglu.com/finehai/archive/2012/04/23/172481.html'>闃呰鍏ㄦ枃</a><img src ="http://m.shnenglu.com/finehai/aggbug/172481.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/finehai/" target="_blank">Bluesea</a> 2012-04-23 18:23 <a href="http://m.shnenglu.com/finehai/archive/2012/04/23/172481.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>WebKit涔嬪竷灞(layout)http://m.shnenglu.com/finehai/archive/2012/04/23/172479.htmlBlueseaBlueseaMon, 23 Apr 2012 09:35:00 GMThttp://m.shnenglu.com/finehai/archive/2012/04/23/172479.htmlhttp://m.shnenglu.com/finehai/comments/172479.htmlhttp://m.shnenglu.com/finehai/archive/2012/04/23/172479.html#Feedback0http://m.shnenglu.com/finehai/comments/commentRss/172479.htmlhttp://m.shnenglu.com/finehai/services/trackbacks/172479.html
WebKit 鍦ㄦ覆鏌撻〉闈箣鍓嶏紝闇瑕佺‘瀹氬悇涓厓绱犵殑浣嶇疆銆佸ぇ灝忥紝鑰岃繖涓繃紼嬪氨鏄痩ayout(甯冨眬)銆備笅闈紝鎴戜滑瀵筶ayout鐨勪富瑕佽繃紼嬭繘琛屼竴鐣鏄庛?

涓銆丗rameView::layout鏂規硶

FrameView浣滀負涓嶸iew鐩稿叧鐨勭被錛屽叾涓昏娑夊強涓庢樉紺虹浉鍏崇殑鍐呭錛岃屽叾涓欏甸潰鍏冪礌鐨勫竷灞鑷沖叧閲嶈錛岃繖涔熸槸嫻忚鍣ㄧ殑鏍稿績澶勭悊閮ㄥ垎銆?

鎴戜滑閮界煡閬撴祻瑙堝櫒浠嶹eb鏈嶅姟鍣ㄨ幏寰楁暟鎹悗錛岀粡瑙f瀽浼氭瀯寤篋OM鏍戙丷ender鏍戯紝鐒跺悗榪涜甯冨眬澶勭悊錛岃繘鑰屼負娓叉煋欏甸潰浣滃ソ鍑嗗錛屽叾涓殑甯冨眬澶勭悊寰寰鐢盕rameView::layout鏂規硶鍙戣搗錛岃鎴戜滑鏉ュ叿浣撶湅鐪嬪叾瀹炵幇錛屼竴紿ュ叾涓昏瀹炵幇榪囩▼銆?

void FrameView::layout(bool allowSubtree)
{
    if (m_midLayout)
      return;

    // Always ensure our style info is up-to-date. This can happen in situations where the layout beats any sort of style recalc update that needs to occur.

    // 榪涜CSSStyleSelector鐨勬洿鏂板鐞嗭紝鍥犱負涓鏃SS鍙戠敓鍙樺寲錛屽竷灞鐨勭粨鏋滀篃鍙兘 鍙戠敓鐩稿叧鍙樺寲錛屾墍浠ュ湪寮濮嬪竷灞涔嬪墠錛岄渶瑕佹鏌SS鏄惁鍙戠敓鍙樺寲錛屽鏋滄湁鍒欓渶瑕佷綔鐩稿簲璋冩暣錛岃繘鑰屽彲鑳藉獎鍝峈ender鏍戠瓑銆?

    if (m_frame->needsReapplyStyles())
       m_frame->reapplyStyles();
    else if (document->childNeedsStyleRecalc())
       document->recalcStyle();

    bool subtree = m_layoutRoot;
    RenderObject* root = subtree ? m_layoutRoot : document->renderer();
    if (!root) {
        // FIXME: Do we need to set m_size here?
        m_layoutSchedulingEnabled = true;
        return;
    }

    //甯冨眬鐨勫鐞嗗彲鑳界浉浜掑祵濂楋紝榪欎笌鍙戣搗甯冨眬澶勭悊鐨勬椂鏈虹浉鍏熾?
    //璁劇疆婊氬姩鏉$浉鍏?
    if (m_canHaveScrollbars) {
        hMode = ScrollbarAuto;
        vMode = ScrollbarAuto;
    } else {
        hMode = ScrollbarAlwaysOff;
        vMode = ScrollbarAlwaysOff;
    }

    if (!subtree) {
        // Now set our scrollbar state for the layout.

        if (body->hasTagName(framesetTag) && !m_frame->settings()->frameFlatteningEnabled()) {
            // frameset 鑰屼笖璁劇疆浜唂rameFlatteningEnabled錛屽垯鍏抽棴婊氬姩鏉?
                body->renderer()->setChildNeedsLayout(true);
                vMode = ScrollbarAlwaysOff;
                hMode = ScrollbarAlwaysOff;
            } else if (body->hasTagName(bodyTag)) {
                // 璁劇疆婊氬姩鏉?
                applyOverflowToViewport(o, hMode, vMode);
            }
    }

    //root寰寰涓篟enderView瀵硅薄
    RenderLayer* layer = root->enclosingLayer();

    m_midLayout = true;
    beginDeferredRepaints();
    root->layout();
    endDeferredRepaints();
    m_midLayout = false;

    m_layoutSchedulingEnabled = true;

    if (!subtree && !static_cast(root)->printing())
        adjustViewSize();

    // Now update the positions of all layers.
    //瀵瑰綋鍓峈ender鏍戝竷灞瀹屽悗錛岃緗甊enderLayer鏍戠殑甯冨眬淇℃伅錛屽叾涓璵_doFullRepaint鎻忚堪鏄惁闇瑕佸彂璧鋒覆鏌撳鐞嗐?

   beginDeferredRepaints();
   layer->updateLayerPositions(...);
   endDeferredRepaints();

    // 璁劇疆蹇焍lit
    setCanBlitOnScroll(!useSlowRepaints());

    //鍥犱負鍦ㄥ竷灞鐨勮繃紼嬩腑錛屽彲鑳借繘涓姝ヨ幏寰楃綉欏墊暟鎹紝鍒欓渶瑕佺戶緇竷灞澶勭悊銆?
    if (!m_postLayoutTasksTimer.isActive()) {
        // Calls resumeScheduledEvents()
        performPostLayoutTasks();

        if (!m_postLayoutTasksTimer.isActive() && needsLayout()) {
            // Post-layout widget updates or an event handler made us need layout again. Lay out again, but this time defer widget updates and event dispatch until after we return.
            m_postLayoutTasksTimer.startOneShot(0);
            pauseScheduledEvents();
            layout();
        }
    } else {
        resumeScheduledEvents();
    }
}


FrameView::layout鏂規硶錛岀畝鍗曠殑璇存潵灝辨槸鍙戣搗瀵筊ender鏍戜腑鐨勬瘡涓涓妭鐐規寜鐓т粠鐖惰妭鐐瑰埌瀛愯妭鐐圭殑鏂瑰紡榪涜x銆亂銆亀idth銆乭eight璁$畻錛屽綋姣忎竴涓爲鑺傜偣鐨勪綅緗強澶у皬紜畾涔嬪悗灝卞彲浠ヨ繘琛屽悗闈㈢殑娓叉煋銆?

FrameView::layout寰寰浼氳皟鐢≧ender鏍戞牴鐨刲ayout鏂規硶鍗砇enderView::layout銆?


浜屻丷enderView::layout鏂規硶

void RenderView::layout()
{
     if (printing())
         m_minPrefWidth = m_maxPrefWidth = m_width;

     // Use calcWidth/Height to get the new width/height, since this will take the full page zoom factor into account.
     bool relayoutChildren = !printing() && (!m_frameView || m_width != viewWidth() || m_height != viewHeight());
     if (relayoutChildren) {

        setChildNeedsLayout(true, false);
        for (RenderObject* child = firstChild(); child; child = child->nextSibling()) {
            if (child->style()->height().isPercent() || child->style()->minHeight().isPercent() || child->style()->maxHeight().isPercent())
                child->setChildNeedsLayout(true, false);
        }


     }

     ASSERT(!m_layoutState);
     LayoutState state;
     // FIXME: May be better to push a clip and avoid issuing offscreen repaints.
     state.m_clipped = false;
     m_layoutState = &state;

     if (needsLayout())
         RenderBlock::layout();//綾葷戶鎵跨殑濂藉錛岀洿鎺ヨ皟鐢ㄧ埗綾葷殑layout

    // Reset overflow and then replace it with docWidth and docHeight.
    m_overflow.clear();
    addLayoutOverflow(IntRect(0, 0, docWidth(), docHeight()));

     ASSERT(m_layoutStateDisableCount == 0);
     ASSERT(m_layoutState == &state);
     m_layoutState = 0;
     setNeedsLayout(false);
}

void RenderBlock::layout()
{
     // Update our first letter info now.
     updateFirstLetter();
     // Table cells call layoutBlock directly, so don't add any logic here. Put code into layoutBlock().
     layoutBlock(false);

     // It's safe to check for control clip here, since controls can never be table cells. If we have a lightweight clip, there can never be any overflow from children.
    if (hasControlClip() && m_overflow)
        clearLayoutOverflow();
}



涓夈丷enderBlock::layoutBlock鏂規硶

layoutBlock 浼氬垎鎴愪袱涓垎鏀細layoutInlineChildren 鍜?layoutBlockChildren

void RenderBlock::layoutBlock(bool relayoutChildren)
{
    ...
    calcWidth();//鍏堣綆楀搴?
    calcColumnWidth();
   


    m_overflow.clear();   


    if (oldWidth != width() || oldColumnWidth != desiredColumnWidth())
        relayoutChildren = true;
    clearFloats();

    int previousHeight = height();
    setHeight(0);

     //榪欏氨鏄湪甯冨眬鍩烘湰姒傚康涓彁鍒扮殑Block-level鍏冪礌鐨勫瓙鑺傜偣瑕佷箞鏄疊lock-level鍏冪礌瑕佷箞涓篒nline-level鍏冪礌銆?
     if (childrenInline())
         layoutInlineChildren(relayoutChildren, repaintTop, repaintBottom);
     else
         layoutBlockChildren(relayoutChildren, maxFloatBottom);

     // Expand our intrinsic height to encompass floats.
     int toAdd = borderBottom() + paddingBottom() + horizontalScrollbarHeight();
     if (floatBottom() > (m_height - toAdd) && (isInlineBlockOrInlineTable() || isFloatingOrPositioned() || hasOverflowClip() ||
(parent() && parent()->isFlexibleBox() || m_hasColumns)))
     setHeight(floatBottom() + toAdd);

     // Now lay out our columns within this intrinsic height, since they can slightly affect the intrinsic height as we adjust for clean column breaks.
     int singleColumnBottom = layoutColumns();

     // Calculate our new height.//甯冨眬瀹屽瓙鑺傜偣鍚庣‘瀹氱埗鑺傜偣楂樺害
     int oldHeight = height();
     calcHeight();

     if (previousHeight != height())
         relayoutChildren = true;




     //鍙﹀甯冨眬灞炴т負Fixed鍜宎bsolute鐨勫厓绱?
     layoutPositionedObjects(relayoutChildren || isRoot());


     // Update our scroll information if we're overflow:auto/scroll/hidden now that we know if we overflow or not.
    updateScrollInfoAfterLayout();


    // Repaint with our new bounds if they are different from our old bounds.
    bool didFullRepaint = repainter.repaintAfterLayout();
    if (!didFullRepaint && repaintTop != repaintBottom && (style()->visibility() == VISIBLE || enclosingLayer()->hasVisibleContent())) {
        // 璁劇疆repaintRect


       // Make sure the rect is still non-empty after intersecting for overflow above
        if (!repaintRect.isEmpty()) {
            repaintRectangle(repaintRect); // We need to do a partial repaint of our content.
            if (hasReflection())
                repaintRectangle(reflectedRect(repaintRect));
        }
    }
    setNeedsLayout(false);
}


鍥涖丷enderBlock::layoutBlockChildren鏂規硶


void RenderBlock::layoutBlockChildren(bool relayoutChildren, int& maxFloatBottom)
{
int top = borderTop() + paddingTop();
int bottom = borderBottom() + paddingBottom() + horizontalScrollbarHeight();





    // Fieldsets need to find their legend and position it inside the border of the object.
    // The legend then gets skipped during normal layout.
    RenderObject* legend = layoutLegend(relayoutChildren);



//閬嶅巻瀛愯妭鐐?

RenderBox* next = firstChildBox();
    while (next) {
        RenderBox* child = next;
        next = child->nextSiblingBox();

        if (legend == child)
            continue; // Skip the legend, since it has already been positioned up in the fieldset's border.
       // Make sure we layout children if they need it.
        // FIXME: Technically percentage height objects only need a relayout if their percentage isn't going to be turned into
        // an auto value.  Add a method to determine this, so that we can avoid the relayout.
        if (relayoutChildren || ((child->style()->height().isPercent() || child->style()->minHeight().isPercent() || child->style()->maxHeight().isPercent()) && !isRenderView()))
            child->setChildNeedsLayout(true, false);

        // If relayoutChildren is set and we have percentage padding, we also need to invalidate the child's pref widths.
        if (relayoutChildren && (child->style()->paddingLeft().isPercent() || child->style()->paddingRight().isPercent()))
            child->setPrefWidthsDirty(true, false);

        // Handle the four types of special elements first.  These include positioned content, floating content, compacts and
        // run-ins.  When we encounter these four types of objects, we don't actually lay them out as normal flow blocks.
        if (handleSpecialChild(child, marginInfo))
            continue;

        // Lay out the child.
        layoutBlockChild(child, marginInfo, previousFloatBottom, maxFloatBottom);
    }

    // Now do the handling of the bottom of the block, adding in our bottom border/padding and
    // determining the correct collapsed bottom margin information.
    handleBottomOfBlock(top, bottom, marginInfo);
}

layoutBlockChild 鏂規硶灝辨瘮杈冨鏉備簡錛屽叿浣撳彲浠ヨ嚜宸辯湅浠g爜銆?


浜斻丷enderBlock::layoutInlineChildren鏂規硶

榪欎釜鏂規硶鐩稿綋澶嶆潅錛屽叾浣滅敤灝辨槸甯冨眬鏂囧瓧銆佸浘鍍忕瓑錛屽鏂囧瓧琛岄珮紜畾銆佹柇琛岀瓑澶勭悊錛屽悓鏃惰繕鍖呮嫭 鏂囧瓧浠庡乏鍒板彸鎴栦粠鍙沖埌宸︾殑甯冨眬澶勭悊銆傚叿浣撳彲浠ュ弬鑰僢idi.cpp涓殑婧愮爜瀹炵幇銆?


鍏佽皟鐢‵rameView::layout鏂規硶鐨勬椂鏈?

鐢變簬浠嶹eb鏈嶅姟鍣ㄨ幏鍙栫殑緗戦〉鏁版嵁涓嶅彲鑳戒竴嬈℃у畬鎴愶紝寰寰闇瑕佽竟鑾峰彇鏁版嵁錛岃竟甯冨眬錛岀劧鍚庢覆鏌擄紝榪欐牱鎵嶅彲鑳借幏寰楄壇濂界殑鐢ㄦ埛鎰熷彈銆?

鎵浠ヤ竴鏃﹁幏寰椾富瑕佹暟鎹css鏁版嵁鍙奲ody絳夋爣絳懼悗錛屽氨鍙互寮濮嬪竷灞錛屽竷灞瀹屽悗浼氭牴鎹綋鍓嶆潯浠跺喅瀹氭槸鍚﹀皢甯冨眬鐨勬暟鎹覆鏌撳嚭鏉ワ紝鎴栬呯戶緇竷灞澶勭悊鍚庢潵鑾峰彇鐨勬暟鎹紝榪欐牱涔熷鍔犱簡甯冨眬澶勭悊榪囩▼鐨勫鏉傚害銆?

鑰岃皟鐢╨ayout鏂規硶鐨勬椂鏈轟篃鑷沖叧閲嶈錛屽洜涓簂ayout鏈韓灝卞彲鑳介渶瑕佽姳璐瑰ぇ閲忕殑鏃墮棿濡俵ayoutBlockChildren銆?layoutInlineChildren絳夊鐞嗭紝鍏跺線寰涓庣綉欏電殑鍐呭鏈夊叧錛岃岀綉欏電殑鍐呭鍗寸敱緗戦〉寮鍙戣呮潵紜畾錛屽嫻忚鍣ㄦ潵璁叉槸鍗冨彉涓囧寲鐨勶紝榪欏氨瀵?layout鏂規硶鐨勫疄鐜板強璋冪敤鏃舵満鎻愬嚭鏇撮珮鐨勮姹傦紝鍚屾椂紜畾浜嗗叾澶嶆潅鎬с?

璋冪敤layout鐨勬椂鏈轟富瑕佹湁鑾峰緱涓瀹欴OM鏂囨。鏁版嵁鍚庤皟鐢―ocument::updateLayout()銆侀渶瑕侀噸鏂頒嬌鐢–SS鏁版嵁鏃惰皟鐢―ocument::recalcStyle()銆佹敼鍙樼獥鍙eぇ灝忓悗璋冪敤Frame::forceLayout()絳夋潵瀹炵幇銆傘傘?


涓冦佹葷粨

鍏跺疄WebKit娑夊強緗戦〉甯冨眬鏂歸潰鐨刲ayout鏂規硶铔鏉傜殑錛屽鍏朵粬RenderObject瀛愮被涔熶細鏍規嵁鑷韓鎯呭喌閲嶈澆瀹炵幇layout錛岃繕鏈夊float銆乫ixed銆乤bsolute銆乮nline鍏冪礌絳夌殑澶勭悊錛屼絾鍏朵富瑕侀昏緫灝辮薄涓婇潰鎵鎻愶紝榪欓噷鍙槸姹囨諱竴涓嬩富瑕佹祦紼嬪強姒傚康錛岄拡瀵規瘡涓涓叿浣撴爣絳炬垨RenderObject鐨勫竷灞瀹炵幇鍒欓渶瑕佹洿娣變竴姝ョ殑浜嗚В錛屽笇鏈涘ぇ瀹惰兘瀵逛簡瑙ebKit鐨勭綉欏靛竷灞榪囩▼鏈変竴涓竻鏅拌屽噯紜殑璁よ瘑銆傘?


Bluesea 2012-04-23 17:35 鍙戣〃璇勮
]]>
Android SDK銆丯DK銆丣NI鐨勭畝鍗曚粙緇?/title><link>http://m.shnenglu.com/finehai/archive/2012/04/23/172476.html</link><dc:creator>Bluesea</dc:creator><author>Bluesea</author><pubDate>Mon, 23 Apr 2012 09:25:00 GMT</pubDate><guid>http://m.shnenglu.com/finehai/archive/2012/04/23/172476.html</guid><wfw:comment>http://m.shnenglu.com/finehai/comments/172476.html</wfw:comment><comments>http://m.shnenglu.com/finehai/archive/2012/04/23/172476.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/finehai/comments/commentRss/172476.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/finehai/services/trackbacks/172476.html</trackback:ping><description><![CDATA[<span style="font-size: 12pt;"> </span><span style="font-size: 14pt; color: red;"><strong>1銆丼DK</strong></span><div><span style="font-size: 12pt; color: red;"></span></div><span style="font-size: 12pt; color: red;"><strong><br /></strong></span><span style="font-size: 12pt;">錛坰oftware development kit錛夎蔣浠跺紑鍙戝伐鍏峰寘銆傝杞歡寮鍙戝伐紼嬪笀鐢ㄤ簬涓虹壒瀹氱殑杞歡鍖呫佽蔣浠舵鏋躲佺‖浠跺鉤鍙般佹搷浣滅郴緇熺瓑寤虹珛搴旂敤杞歡鐨勫紑鍙戝伐鍏風殑闆嗗悎銆傚洜姝わ紒Android SDk 鎸囩殑鏃㈡槸Android涓撳睘鐨勮蔣浠跺紑鍙戝伐鍏峰寘</span><span style="font-size: 12pt;"> <br /></span><br /><span style="font-size: 12pt;"><br /></span><span style="font-size: 14pt; color: #ff0000;"><strong>2銆丣NI</strong></span><br /><br /><span style="font-size: 12pt;">Java Native Interface (JNI)鏍囧噯鏄痡ava騫沖彴鐨勪竴閮ㄥ垎錛屽畠鍏佽Java浠g爜鍜屽叾浠栬璦鍐欑殑浠g爜榪涜浜や簰銆侸NI 鏄湰鍦扮紪紼嬫帴鍙o紝瀹冧嬌寰楀湪 Java 铏氭嫙鏈?(VM) 鍐呴儴榪愯鐨?Java 浠g爜鑳藉涓庣敤鍏跺畠緙栫▼璇█(濡?C銆丆++ 鍜屾眹緙栬璦)緙栧啓鐨勫簲鐢ㄧ▼搴忓拰搴撹繘琛屼氦浜掓搷浣?/span><br /><span style="font-size: 12pt;">褰撶劧涓鑸渶瑕佽繘琛屽涓嬫搷浣滄祦紼嬶細</span><br /><span style="font-size: 12pt;">1) 緙栧啓java紼嬪簭錛氳繖閲屼互HelloWorld涓轟緥銆備負浜嗗疄鐜板湪 java浠g爜涓皟鐢╟鍑芥暟printf銆?/span><br /><span style="font-size: 12pt;">銆銆浠g爜1錛?/span><br /><pre java;=""><span style="font-size: 12pt;">class HelloWorld {</span><br /><span style="font-size: 12pt;">銆銆public native void testHelloWorld();</span><br /><span style="font-size: 12pt;">銆銆static {</span><br /><span style="font-size: 12pt;">銆銆System.loadLibrary("hello");</span><br /><span style="font-size: 12pt;">銆銆}</span><br /><span style="font-size: 12pt;">銆銆public static void main(String[] args) {</span><br /><span style="font-size: 12pt;">銆銆new HelloWorld().testHelloWorld();</span><br /><span style="font-size: 12pt;">銆銆}</span><br /><span style="font-size: 12pt;">銆銆}</span></pre><br /><span style="font-size: 12pt;">澹版槑native鏂規硶錛氬鏋滀綘鎯沖皢涓涓柟娉曞仛涓轟竴涓湰鍦版柟娉曠殑璇濓紝閭d箞浣犲氨蹇呴』澹版槑鏀規柟娉曚負native鐨勶紝騫朵笖涓嶈兘瀹炵幇銆?/span><br /><span style="font-size: 12pt;">Load鍔ㄦ佸簱錛歋ystem.loadLibrary("hello");</span><br /><span style="font-size: 12pt;">榪欓噷涓鑸槸浠tatic鍧楄繘琛屽姞杞界殑銆傚悓鏃墮渶瑕佹敞鎰忕殑鏄疭ystem.loadLibrary()鐨勫弬鏁?#8220;hello”鏄姩鎬佸簱鐨勫悕瀛椼?/span><br /><span style="font-size: 12pt;">2) 緙栬瘧</span><br /><span style="font-size: 12pt;">javac HelloWorld.java</span><br /><span style="font-size: 12pt;">3) 鐢熸垚鎵╁睍鍚嶄負h鐨勫ご鏂囦歡 javah ?</span><br /><span style="font-size: 12pt;">JNIEXPORT void JNICALL Java_HelloWorld_testHelloWorld (JNIEnv *, jobject);</span><br /><span style="font-size: 12pt;">榪?涓猦鏂囦歡鐩稿綋浜庢垜浠湪java閲岄潰鐨勬帴鍙o紝榪欓噷澹版槑浜嗕竴涓?Java_HelloWorld_testHelloWorld (JNIEnv *, jobject)鏂規硶錛岀劧鍚庡湪鎴戜滑 鐨勬湰鍦版柟娉曢噷闈㈠疄鐜拌繖涓柟娉曪紝涔熷氨鏄鎴戜滑鍦ㄧ紪鍐機/C++紼嬪簭鐨勬椂鍊欐墍浣跨敤鐨勬柟娉曞悕蹇呴』鍜岃繖閲岀殑涓鑷達級銆?/span><br /><span style="font-size: 12pt;">4) 緙栧啓鏈湴鏂規硶瀹炵幇鍜岀敱javah鍛戒護鐢熸垚鐨勫ご鏂囦歡閲岄潰澹版槑鐨勬柟娉曞悕鐩稿悓鐨勬柟娉?/span><br /><span style="font-size: 12pt;">      浠g爜2錛?/span><br /><pre java;=""><span style="font-size: 12pt;">#include "jni.h"</span><br /><span style="font-size: 12pt;">銆銆#include "HelloWorld.h"</span><br /><span style="font-size: 12pt;">      #include other headers</span><br /><span style="font-size: 12pt;">JNIEXPORT void JNICALL Java_HelloWorld_testHelloWorld(JNIEnv *env, jobject obj)</span><br /><span style="font-size: 12pt;">{</span><br /><span style="font-size: 12pt;">    printf("Hello world!\n");</span><br /><span style="font-size: 12pt;">銆 return;</span><br /><span style="font-size: 12pt;">}</span></pre><br /><span style="font-size: 12pt;">娉?鎰忎唬鐮?涓殑絎?琛岋紝闇瑕佸皢jni.h錛堣鏂囦歡鍙互鍦?JAVA_HOME%/include鏂囦歡澶逛笅闈㈡壘鍒幫級鏂囦歡寮曞叆錛屽洜涓哄湪紼嬪簭涓殑JNIEnv銆? jobject絳夌被鍨嬮兘鏄湪璇ュご鏂囦歡涓畾涔夌殑錛涘彟澶栧湪絎?琛岄渶瑕佸皢HelloWorld.h澶存枃浠跺紩鍏ャ傜劧鍚庝繚瀛樹負 HelloWorldImpl.c灝眔k浜嗐?/span><br /><span style="font-size: 12pt;">5) 鐢熸垚鍔ㄦ佸簱</span><br /><span style="font-size: 12pt;">銆銆榪欓噷浠ュ湪Windows涓負渚嬶紝闇瑕佺敓鎴恉ll鏂囦歡銆傚湪淇濆瓨 HelloWorldImpl.c鏂囦歡澶逛笅闈紝浣跨敤VC鐨勭紪璇戝櫒cl鎴愩?cl -I%java_home%\include -I%java_home%\include\win32 -LD HelloWorldImp.c -Fehello.dll 娉ㄦ剰錛氱敓鎴愮殑dll鏂囦歡鍚嶅湪閫夐」-Fe鍚庨潰閰嶇疆錛岃繖閲屾槸hello錛屽洜涓哄湪HelloWorld.java鏂囦歡涓垜浠琹oadLibary鐨勬椂鍊欎嬌鐢ㄧ殑鍚?瀛楁槸hello銆?/span><br /><span style="font-size: 12pt;">鍙﹀闇瑕佸皢-I%java_home%\include -I%java_home%\include\win32鍙傛暟鍔犱笂錛屽洜涓哄湪絎洓姝ラ噷闈㈢紪鍐欐湰鍦版柟娉曠殑鏃跺欏紩鍏ヤ簡jni.h鏂囦歡銆?/span><br /><br /><strong><span style="font-size: 14pt; color: #ff0000;">3銆丯DK</span></strong><br /><br /><span style="font-size: 12pt;">NDK鍏ㄧО錛歂ative Development Kit銆?/span><br /><span style="font-size: 12pt;">NDK鏄竴緋誨垪宸ュ叿鐨勯泦鍚堛?/span><br /><span style="font-size: 12pt;">* NDK鎻愪緵浜嗕竴緋誨垪鐨勫伐鍏鳳紝甯姪寮鍙戣呭揩閫熷紑鍙慍錛堟垨C++錛夌殑鍔ㄦ佸簱錛屽茍鑳借嚜鍔ㄥ皢so鍜宩ava搴旂敤涓璧鋒墦鍖呮垚apk銆傝繖浜涘伐鍏峰寮鍙戣呯殑甯姪鏄法澶х殑銆?/span><br /><span style="font-size: 12pt;">* NDK闆嗘垚浜嗕氦鍙夌紪璇戝櫒錛屽茍鎻愪緵浜嗙浉搴旂殑mk鏂囦歡闅旂CPU銆佸鉤鍙般丄BI絳夊樊寮傦紝寮鍙戜漢鍛樺彧闇瑕佺畝鍗曚慨鏀筸k鏂囦歡錛堟寚鍑?#8220;鍝簺鏂囦歡闇瑕佺紪璇?#8221;銆?#8220;緙栬瘧鐗規ц姹?#8221;絳夛級錛屽氨鍙互鍒涘緩鍑簊o銆?/span><br /><span style="font-size: 12pt;">* NDK鍙互鑷姩鍦板皢so鍜孞ava搴旂敤涓璧鋒墦鍖咃紝鏋佸ぇ鍦板噺杞諱簡寮鍙戜漢鍛樼殑鎵撳寘宸ヤ綔銆?/span><br /><span style="font-size: 12pt;">鍏跺疄錛?/span><br /><span style="font-size: 12pt;">NDK灝辨槸鑳藉鏂逛究蹇嵎寮鍙?so鏂囦歡鐨勫伐鍏楓侸NI鐨勮繃紼嬫瘮杈冨鏉傦紝鐢熸垚.so闇瑕佸ぇ閲忔搷浣滐紝鑰孨DK灝辨槸綆鍖栦簡榪欎釜榪囩▼銆?/span><br /><span style="font-size: 12pt;">鎵撲釜涓嶆伆褰撴瘮鏂癸細JNI 闇瑕佽嚜宸變拱鑿溿佹礂鑿溿佺倰鑿溿佺叜楗紝寰堥夯鐑︼紱NDK灝辨槸瀹呮ラ侊紝涓涓數璇濄?/span><br /><br /><span style="font-size: 12pt;">鏈枃杞嚜</span><a target="_blank"><span style="font-size: 12pt;">http://dev.10086.cn/cmdn/bbs/thread-38855-1-11.html</span></a><img src ="http://m.shnenglu.com/finehai/aggbug/172476.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/finehai/" target="_blank">Bluesea</a> 2012-04-23 17:25 <a href="http://m.shnenglu.com/finehai/archive/2012/04/23/172476.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鍩轟簬 Android NDK 鐨勫涔犱箣鏃?----鐜鎼緩http://m.shnenglu.com/finehai/archive/2012/04/23/172469.htmlBlueseaBlueseaMon, 23 Apr 2012 09:05:00 GMThttp://m.shnenglu.com/finehai/archive/2012/04/23/172469.htmlhttp://m.shnenglu.com/finehai/comments/172469.htmlhttp://m.shnenglu.com/finehai/archive/2012/04/23/172469.html#Feedback0http://m.shnenglu.com/finehai/comments/commentRss/172469.htmlhttp://m.shnenglu.com/finehai/services/trackbacks/172469.html

宸ユ鍠勫叾浜?/span> 蹇呭厛鍒╁叾鍣?/span> , 涓嬮潰浠嬬粛涓?/span> Eclipse SDK NDK Cygwin CDT 闆嗘垚寮鍙戠幆澧冪殑鎼緩銆?/span>


1銆丄ndroid寮鍙戠幆澧冩惌寤?/span>

Android寮鍙戠幆澧冩惌寤轟笉鏄噸鐐?/span>,鐩鎬俊鐪嬫鏂囩珷鐨勫緢澶氫漢閮藉凡緇忔惌寤烘垚鍔?/span>,榪欓噷闅忎究姒傝堪鎬х殑璇磋銆?/span>

1)      涓嬭澆 JDK

2)      涓嬭澆 Eclipse

3)      涓嬭澆 Android SDK

4)      鍚姩Eclipse , 瀹夎 ADT


2銆佷笅杞藉畨瑁匒ndroid NDK

鎴戜嬌鐢ㄧ殑NDK鐗堟湰涓?/span>r5

Google 鍑虹殑鏈鏂?/span>NDK 涓?/span> r6 涓嬭澆鍦板潃涓?/span>

http://developer.android.com/sdk/ndk/index.html

 

3銆佷笅杞藉畨瑁卌ygwin

     鐢變簬NDK緙栬瘧浠g爜鏃跺繀欏昏鐢ㄥ埌make鍜?/span>gcc錛屾墍浠ヤ綘蹇呴』鍏堟惌寤轟竴涓?/span>linux鐜錛?/span> cygwin鏄竴涓湪windows騫沖彴涓婅繍琛岀殑unix妯℃嫙鐜,瀹冨浜庡涔?/span>unix/linux鎿嶄綔鐜錛屾垨鑰呬粠unix鍒?/span>windows鐨勫簲鐢ㄧ▼搴忕Щ妞嶏紝闈炲父鏈夌敤銆傞氳繃瀹冿紝浣犲氨鍙互鍦ㄤ笉瀹夎linux鐨勬儏鍐典笅浣跨敤NDK鏉ョ紪璇?/span>C銆?/span>C++浠g爜浜嗐備笅闈㈡垜浠竴姝ヤ竴姝ョ殑瀹夎cygwin鍚с?/span>

 錛堝畨瑁呯殑鏃跺欏繕璁版埅鍥句簡錛?/span>

棣栧厛錛屼綘寰楀厛璺戝埌http://www.cygwin.com涓嬭澆setup.exe

1銆?/span> 鐒跺悗鍙屽嚮榪愯鍚э紝榪愯鍚庝綘灝嗙湅鍒板畨瑁呭悜瀵肩晫闈細

2銆?/span> 鐐瑰嚮涓嬩竴姝?/span>

     姝ゆ椂璁╀綘閫夋嫨瀹夎鏂瑰紡錛?/span>

           1錛?/span>Install from Internet錛氱洿鎺ヤ粠Internet涓婁笅杞藉茍绔嬪嵆瀹夎錛堝畨瑁呭畬鎴愬悗錛屼笅杞藉ソ鐨勫畨瑁呮枃浠跺茍涓嶄細琚?/span>鍒犻櫎錛岃屾槸浠嶇劧琚繚鐣欙紝浠ヤ究涓嬫鍐嶅畨瑁咃級銆?/span>

           2錛?/span>Download Without Installing錛氬彧鏄皢瀹夎鏂囦歡涓嬭澆鍒版湰鍦幫紝浣嗘殏鏃朵笉瀹夎銆?/span>

           3錛?/span>Install from Local Directory錛氫笉涓嬭澆瀹夎鏂囦歡錛岀洿鎺ヤ粠鏈湴鏌愪釜鍚湁瀹夎鏂囦歡鐨勭洰褰曡繘琛屽畨瑁呫?/span>

3銆侀夋嫨絎竴欏癸紝鐒跺悗鐐瑰嚮涓嬩竴姝ワ細

4銆侀夋嫨瑕佸畨瑁呯殑鐩綍錛屾敞鎰忥紝鏈濂戒笉瑕佹斁鍒版湁涓枃鍜岀┖鏍肩殑鐩綍閲岋紝浼間箮浼氶犳垚瀹夎鍑洪棶棰橈紝鍏跺畠閫夐」涓嶇敤鍙橈紝 涔嬪悗鐐逛笅涓姝ワ細

5銆佷笂涓姝ユ槸閫夋嫨瀹夎cygwin鐨勭洰褰曪紝榪欎釜鏄夋嫨浣犱笅杞界殑瀹夎鍖呮墍鍦ㄧ殑鐩綍錛岄粯璁ゆ槸浣犺繍琛?/span>setup.exe鐨勭洰褰曪紝鐩存帴鐐逛笅涓姝ュ氨鍙互錛?/span>

6銆佹鏃朵綘鍏辨湁涓夌榪炴帴鏂瑰紡閫夋嫨錛?/span>

     1) Direct Connection錛氱洿鎺ヨ繛鎺ャ?/span>

     2) Use IE5 Settings錛氫嬌鐢?/span>IE鐨勮繛鎺ュ弬鏁拌緗繘琛岃繛鎺ャ?/span>

     3) Use HTTP/FTP Proxy錛氫嬌鐢?/span>HTTP鎴?/span>FTP浠g悊鏈嶅姟鍣ㄨ繘琛岃繛鎺ワ紙闇瑕佽緭鍏ユ湇鍔″櫒鍦板潃銆佺鍙e彿錛夈?/span>

          鐢ㄦ埛鍙牴鎹嚜宸辯殑緗戠粶榪炴帴鐨勫疄鎯呮儏鍐佃繘琛岄夋嫨錛屼竴鑸甯告儏鍐典笅錛屽潎閫夋嫨絎竴縐嶏紝涔熷氨鏄洿鎺ヨ繛鎺ユ柟寮忋傜劧鍚?/span>鍐嶇偣鍑?/span>涓嬩竴姝?/span>錛?/span>

7銆?/span> 榪欐槸閫夋嫨瑕佷笅杞界殑绔欑偣錛屾垜鐢ㄧ殑鏄?/span>http://mirrors.kernel.org錛岄熷害鎰熻榪樻尯蹇紝閫夋嫨鍚庣偣涓嬩竴姝?/span>

8銆?/span> 姝ゆ椂浼氫笅杞藉姞杞藉畨瑁呭寘鍒楄〃

9銆?/span>Search鏄彲浠ヨ緭鍏ヤ綘瑕佷笅杞界殑鍖呯殑鍚嶇О錛岃兘澶熷揩閫熺瓫閫夊嚭浣犺涓嬭澆鐨勫寘銆傞偅鍥涗釜鍗曢夋寜閽槸閫夋嫨涓嬭竟鏍戠殑鏍峰紡錛岄粯璁ゅ氨琛岋紝涓嶇敤鍔ㄣ?/span>View榛樿鏄?/span>Category錛屽緩璁敼鎴?/span>full鏄劇ず鍏ㄩ儴鍖呭啀鏌ワ紝鐪佺殑涓浜涘寘琚殣钘忔帀銆傚乏涓嬭閭d釜澶嶉夋鏄槸鍚﹂殣钘忚繃鏈熷寘錛岄粯璁ゆ墦閽╋紝涓嶇敤綆″畠灝辮錛屼笅杈瑰紑濮嬩笅杞芥垜浠瀹夎鐨勫寘鍚э紝涓轟簡閬垮厤鍏ㄩ儴涓嬭澆錛岃繖閲屽垪鍑轟簡鍚庨潰寮鍙?/span>NDK鐢ㄥ緱鐫鐨勫寘錛?/span>autoconf2.1銆?/span>automake1.10銆?/span>binutils銆?/span>gcc-core銆?/span>gcc- g++銆?/span>gcc4-core銆?/span>gcc4-g++銆?/span>gdb銆?/span>pcre銆?/span>pcre-devel銆?/span>gawk銆?/span>make鍏?/span>12涓寘

10銆?/span> 鐒跺悗寮濮嬮夋嫨瀹夎榪欎簺鍖呭惂錛岀偣skip錛屾妸瀹冨彉鎴愭暟瀛楃増鏈牸寮忥紝瑕佺‘淇?/span>Bin欏瑰彉鎴愬弶鍙鳳紝鑰?/span>Src欏規槸婧愮爜錛岃繖涓氨娌″繀瑕侀変簡銆?/span>

11銆?/span> 涓嬮潰嫻嬭瘯涓涓?/span>cygwin鏄笉鏄凡緇忓畨瑁呭ソ浜嗐?/span>

      榪愯cygwin錛屽湪寮瑰嚭鐨勫懡浠よ紿楀彛杈撳叆錛?/span>cygcheck -c cygwin鍛戒護錛屼細鎵撳嵃鍑哄綋鍓?/span>cygwin鐨勭増鏈拰榪愯鐘?/span>       鎬侊紝濡傛灉status鏄?/span>ok鐨勮瘽錛屽垯cygwin榪愯姝e父銆?/span>

      鐒跺悗渚濇杈撳叆gcc –version錛?/span>g++ --version錛?/span>make –version錛?/span>gdb –version榪涜嫻嬭瘯錛屽鏋滈兘鎵撳嵃鍑虹増鏈俊鎭拰涓浜涙弿榪頒俊鎭紝闈炲父楂樺叴鐨勫憡璇変綘錛屼綘鐨?/span>cygwin瀹夎瀹屾垚浜嗭紒


4銆侀厤緗甆DK鐜鍙橀噺

1銆?/span> 棣栧厛鎵懼埌cygwin鐨勫畨瑁呯洰褰曪紝鎵懼埌涓涓?/span>home\<浣犵殑鐢ㄦ埛鍚?/span>>\.bash_profile鏂囦歡錛屾垜鐨勬槸錛?/span>E:\cygwin\home\Administrator\.bash_profile錛?/span>(娉ㄦ剰錛氭垜瀹夎鐨勬椂鍊欐垜鐨?/span>home鏂囦歡澶逛笅闈㈢椹兘娌℃湁錛岃В鍐?/span> 鐨勫姙娉曪細棣栧厛鎵撳紑鐜鍙橀噺錛屾妸閲岄潰鐨勭敤鎴峰彉閲忎腑鐨?/span>HOME鍙橀噺鍒犳帀錛屽湪E:\cygwin\home鏂囦歡澶逛笅寤虹珛鍚嶄負Administrator鐨勬枃浠跺す錛堟槸鐢ㄦ埛鍚嶏級錛岀劧鍚庢妸E:\cygwin\etc\skel\.bash_profile鎷瘋礉鍒拌鏂囦歡澶逛笅)銆?/span>

2銆?/span> 鎵撳紑bash_profile鏂囦歡錛屾坊鍔?/span>NDK=/cygdrive/<浣犵殑鐩樼>/<android ndk 鐩綍> 渚嬪錛?/span>NDK=/cygdrive/e/android-ndk-r5

export NDK

NDK榪欎釜鍚嶅瓧鏄殢渚垮彇鐨勶紝涓轟簡鏂歸潰浠ュ悗浣跨敤鏂逛究錛岄変釜綆鐭殑鍚嶅瓧錛岀劧鍚庝繚瀛?/span>

3銆佹墦寮cygwin錛岃緭鍏?/span>cd $NDK錛屽鏋滆緭鍑轟笂闈㈤厤緗殑/cygdrive/e/android-ndk-r5淇℃伅錛屽垯琛ㄦ槑鐜鍙橀噺璁劇疆鎴愬姛浜嗐?/span>


5銆佺敤NDK鏉ョ紪璇戠▼搴?/span>

1銆?/span> 鐜板湪鎴戜滑鐢ㄥ畨瑁呭ソ鐨?/span>NDK鏉ョ紪璇戜竴涓畝鍗曠殑紼嬪簭鍚э紝鎴戜滑閫夋嫨ndk鑷甫鐨勪緥瀛?/span>hello-jni錛屾垜鐨勪綅浜?/span>E:\android-ndk-r5\samples\hello-jni(鏍規嵁浣犲叿浣撶殑瀹夎浣嶇疆鑰屽畾)錛?/span>

2銆?/span> 榪愯cygwin錛岃緭鍏ュ懡浠?/span>cd /cygdrive/e/android-ndk-r5/samples/hello-jni錛岃繘鍏ュ埌E:\android-ndk-r5\samples\hello-jni鐩綍銆?/span>

3銆?/span> 杈撳叆$NDK/ndk-build錛屾墽琛屾垚鍔熷悗錛屽畠浼氳嚜鍔ㄧ敓鎴愪竴涓?/span>libs鐩綍錛屾妸緙栬瘧鐢熸垚鐨?/span>.so鏂囦歡鏀懼湪閲岄潰銆?/span>($NDK鏄皟鐢ㄦ垜浠箣鍓嶉厤緗ソ鐨勭幆澧冨彉閲忥紝ndk-build鏄皟鐢?/span>ndk鐨勭紪璇戠▼搴?/span>)

4銆?/span> 姝ゆ椂鍘?/span>hello-jni鐨?/span>libs鐩綍涓嬬湅鏈夋病鏈夌敓鎴愮殑.so鏂囦歡錛屽鏋滄湁錛屼綘鐨?/span>ndk灝辮繍琛屾甯稿暒錛?/span>


6銆佸湪Eclipse涓泦鎴怌/C++寮鍙戠幆澧?/span>

  1銆?/span> 瑁?/span>Eclipse鐨?/span>C/C++鐜鎻掍歡錛?/span>CDT錛岃繖閲岄夋嫨鍦ㄧ嚎瀹夎銆?/span>

         棣栧厛鐧誨綍http://www.eclipse.org/cdt/downloads.php錛屾壘鍒板搴斾綘Eclipse鐗堟湰鐨?/span>CDT鎻掍歡鐨勫湪綰垮畨瑁呭湴鍧銆?/span>

  2銆?/span> 鐒跺悗鐐?/span>Help鑿滃崟錛屾壘鍒?/span>Install New Software鑿滃崟

  3銆?/span> 鐐瑰嚮Add鎸夐挳錛屾妸鍙栫殑鍦板潃濉繘鍘伙紝鍑烘潵鎻掍歡鍒楄〃鍚庯紝閫?/span>Select All錛岀劧鍚庨夋嫨涓嬩竴姝ュ嵆鍙畬鎴愬畨瑁?/span>

  4銆?/span>  瀹夎瀹屾垚鍚庯紝鍦?/span>eclispe涓彸鍑繪柊寤轟竴涓」鐩紝濡傛灉鍑虹幇浜?/span>c/c++欏圭洰錛屽垯琛ㄦ槑浣犵殑CDT鎻掍歡瀹夎鎴愬姛鍟︼紒


7銆侀厤緗瓹/C++鐨勭紪璇戝櫒

  1銆?/span> 鎵撳紑eclipse錛屽鍏?/span>ndk鑷甫鐨?/span>hello-jni渚嬪瓙錛屽彸閿崟鍑婚」鐩悕縐幫紝鐐瑰嚮Properties錛屽脊鍑洪厤緗晫闈紝涔嬪悗鍐嶇偣鍑?/span>Builders錛屽脊鍑洪」鐩殑緙栬瘧宸ュ叿鍒楄〃錛屼箣鍚庣偣鍑?/span>New錛屾柊娣誨姞涓涓紪璇戝櫒錛岀偣鍑誨悗鍑虹幇娣誨姞鐣岄潰錛岄夋嫨Program錛岀偣 鍑?/span>OK

  2銆佸嚭鐜頒簡娣誨姞鐣岄潰錛岄鍏堢粰緙栬瘧閰嶇疆璧蜂釜鍚嶅瓧錛屽錛?/span>C_Builder

  璁劇疆Location涓?/span><浣?/span>cygwin瀹夎璺緞>\bin\bash.exe紼嬪簭錛屼緥濡傦細E:\cygwin\bin\bash.exe錛岃緗?/span>Working Directory涓?/span><浣?/span>cygwin瀹夎璺緞>\bin鐩綍錛屼緥濡傦細E:\cygwin\bin

  璁劇疆Arguments涓?/span>

  --login -c "cd /cygdrive/I/JavaWorkSpace/Blog/NDK_02 && $NDK/ndk-build"

 涓婇潰鐨勯厤緗腑 /cygdrive/I/JavaWorkSpace/Blog/NDK_02鏄綘褰撳墠瑕佺紪璇戠殑紼嬪簭鐨勭洰褰曪紝$NDK鏄箣鍓嶉厤緗?/span> 鐨?/span>ndk鐨勭幆澧冨彉閲忥紝榪欎袱涓牴鎹綘鍏蜂綋鐨勫畨瑁呯洰褰曡繘琛岄厤緗紝鍏朵粬鐨勪笉鐢ㄥ彉錛?/span>Arguments榪欎覆鍙傛暟瀹為檯鏄?/span> 緇?/span>bash.exe鍛戒護琛岀▼搴忎紶鍙傛暟錛岃繘鍏ヨ緙栬瘧鐨勭▼搴忕洰褰曪紝鐒跺悗榪愯ndk-build緙栬瘧紼嬪簭

3銆佹帴鐫鍒囨崲鍒?/span>Refresh閫夐」鍗★紝緇?/span>Refresh resources upon completion鎵撲笂閽?/span>

4銆佺劧鍚庡垏鎹㈠埌Build Options閫夐」鍗★紝鍕鵑変笂鏈鍚庝笁欏?/span>

5銆佷箣鍚庣偣鍑?/span>Specify Resources鎸夐挳錛岄夋嫨璧勬簮鐩綍錛屽嬀閫変綘鐨勯」鐩洰褰曞嵆鍙?/span>

 6銆?/span> 鏈鍚庣偣鍑?/span>Finish錛岀偣鍑?/span>OK涓璺妸鍒氭墠鐨勯厤緗兘淇濆瓨涓嬫潵錛屾敞鎰忥細濡傛灉浣犻厤緗殑緙栬瘧鍣ㄥ湪鍏跺畠緙栬瘧鍣ㄤ笅杈癸紝璁板緱涓瀹氳鐐?/span>Up鎸夐挳錛屾妸瀹冩帓鍒扮涓浣嶏紝鍚﹀垯C浠g爜鐨勭紪璇戞櫄浜?/span>Java浠g爜鐨勭紪璇戯紝浼氶犳垚浣犵殑C浠g爜瑕佺紪璇戜袱嬈℃墠鑳界湅鍒版渶鏂扮殑淇敼

 7銆?/span> 榪欎竴璺笅鏉ヨ偗瀹氬緢绱簡鍚э紝鐜板湪鍐嶆鎭枩浣狅紝緙栬瘧閰嶇疆涔熼厤緗畬鎴愬暒錛岀幇鍦ㄦ潵嫻嬭瘯涓涓嬫槸鍚﹀彲浠ヨ嚜鍔ㄧ紪璇戝憿錛屾墦寮欏圭洰jni鐩綍閲岀殑hello-jni.c鏂囦歡鎶婃彁紺?/span>Hello from JNI!鏀規垚鍏朵粬鐨勬枃瀛楋細濡傦細Hello錛?/span>My name is alex.錛岀劧鍚庡啀妯℃嫙鍣ㄤ腑榪愯浣犵殑紼嬪簭錛屽鏋滄ā鎷熷櫒涓樉紺轟簡浣犳渶鏂頒慨鏀圭殑鏂囧瓧錛岄偅涔?/span>Congratulations錛佷綘宸茬粡鍏ㄩ儴閰嶇疆鎴愬姛鍟︼紒

 

銆銆鏂囩珷鍙傝?/span> http://yueguc.iteye.com/blog/946724


鏈枃杞嚜http://www.cnblogs.com/luxiaofeng54/archive/2011/08/13/2136982.html



Bluesea 2012-04-23 17:05 鍙戣〃璇勮
]]>
Ubuntu涓?JDK鐨勫畨瑁呭拰鍗歌澆http://m.shnenglu.com/finehai/archive/2012/04/17/171759.htmlBlueseaBlueseaTue, 17 Apr 2012 08:01:00 GMThttp://m.shnenglu.com/finehai/archive/2012/04/17/171759.htmlhttp://m.shnenglu.com/finehai/comments/171759.htmlhttp://m.shnenglu.com/finehai/archive/2012/04/17/171759.html#Feedback0http://m.shnenglu.com/finehai/comments/commentRss/171759.htmlhttp://m.shnenglu.com/finehai/services/trackbacks/171759.html

1錛夊畨瑁匤ava JDK

緋葷粺錛歎buntu 10.04

JDK錛歫dk-6u21-linux-i586.bin

涓嬭澆濂藉繀瑕佺殑jdk錛?/strong>

涓.瀹夎JDK

1.瀹夎JDK

1. sudo chmod u+x jdk-6u16-linux-i586.bin

2. sudo cp -a jdk-6u21-linux-i586.bin /opt

3. sudo /opt/jdk-6u21-linux-i586.bin

4. sudo rm -f /opt/jdk-6u21-linux-i586.bin

2.璁劇疆JDK鐜鍙橀噺

sudo gedit /etc/profile

娣誨姞浠g爜:

#set java environment

export JAVA_HOME=/opt/jdk1.6.0_21

export JRE_HOME=$JAVA_HOME/jreexport

CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME/lib

export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

淇濆瓨閫鍑恒?/strong>


3.閲嶅惎緋葷粺


4.嫻嬭瘯鏄惁瀹夎鎴愬姛

java -version

濡傛灉鏄劇ず

java version “1.6.0_21″

Java(TM) SE Runtime Environment (build 1.6.0_21-b06)

Java HotSpot(TM) Server VM (build 17.0-b16, mixed mode)

鍒欏畨瑁呮垚鍔熴?/strong>


浜?鍗歌澆JDK


1.鍒犻櫎JDK鐩綍

sudo rm -rf /opt/jdk1.6.0_21

2.鍒犻櫎JDK鐜鍙橀噺

sudo gedit /etc/profile

鍒犻櫎浠g爜:

#set java environment

export JAVA_HOME=/opt/jdk1.6.0_21

export JRE_HOME=$JAVA_HOME/jre

export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME/lib

export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin淇?/strong>

瀛橀鍑恒?/strong>



Bluesea 2012-04-17 16:01 鍙戣〃璇勮
]]>
Android涔媤ebkit鍐呮牳JNI灞備笌Java灞?鍑芥暟浜掔浉璋冪敤鏂規硶 http://m.shnenglu.com/finehai/archive/2012/04/17/171757.htmlBlueseaBlueseaTue, 17 Apr 2012 07:58:00 GMThttp://m.shnenglu.com/finehai/archive/2012/04/17/171757.htmlhttp://m.shnenglu.com/finehai/comments/171757.htmlhttp://m.shnenglu.com/finehai/archive/2012/04/17/171757.html#Feedback0http://m.shnenglu.com/finehai/comments/commentRss/171757.htmlhttp://m.shnenglu.com/finehai/services/trackbacks/171757.html

Java灞傝皟鐢?/span>JNI灞傚嚱鏁幫細

渚嬪瓙錛?/span>

Java灞?/span>: BrowserFrame::loadurl( ) 

       - 璋冪敤JNI鍒悕: Nativeloadurl() ;

JNI 灞傦細WebFrame::loadurl( ) ;

 

1銆佸皢java灞備腑鐨勫嚱鏁板搴?/span>JNI灞備腑鐨勫嚱鏁幫紝浠ユ柟渚胯皟鐢ㄤ箣銆?/span>


鍦↗NI灞傚畾涔夐渶瑕佺敤鐨勫嚱鏁?/span>WebFrame::loadurl( )


      static void LoadUrl(JNIEnv *env, jobject obj, jstring url)


-----------------------------------------------------------------------------------------

  jniRegisterNativeMethods(JNIEnv* env, const char* className,

const JNINativeMethodgMethods, int numMethods)

// className 錛?span style="font-family: Times New Roman;">java灞傜殑綾誨悕銆?/span>

// gMethods 錛氬搴?/span>JNINativeMethod鐨勬暟緇勩?/span>

------------------------------------------------------------------------------------------

typedef struct { 

    const char* name; //鍑芥暟鍚?/span>(java灞備腑澹版槑)

    const char* signature; // 鍑芥暟鍙傛暟

          void* fnPtr; // 鍑芥暟鎸囬拡錛堟寚鍚?/span>JNI灞?nbsp;-> WebFrame::loadurl( ) )

JNINativeMethod;

------------------------------------------------------------------------------------------

Eg.  灝嗗涓?span style="font-family: Times New Roman;">JNI鍑芥暟浣跨敤鍒悕錛?/span>Nativeloadurl( ) (java灞備腑澹版槑)錛屽瓨浜庢敞鍐屾暟緇勪腑銆?/span>

JNINativeMethod gMethods[]={

{ "nativeLoadUrl", "(Ljava/lang/String;)V", (void*) LoadUrl }

...

}

------------------------------------------------------------------------------------------


2. 鍦?span style="font-family: Times New Roman; color: #ff0000;">Java灞備腑澹版槑騫惰皟鐢ㄥ嚱鏁幫細nativeLoadUrl(String url)


    澹版槑錛?/span>

private native void nativeLoadUrl(String url);

    璋冪敤錛?/span>

      nativeLoadUrl(url);

JNI灞傝皟鐢?/span>Java鍑芥暟錛?/span>

    void Download::transportUrl(WebCore::FrameView* view, WebCore::String url)

    {

        WebViewCore* viewcore = WebViewCore::getWebViewCore(view);

        JNIEnv* env = JSC::Bindings::getJNIEnv();

        jstring jUrl =  env->NewString(url.characters(), url.length());

// 1. 鑾峰緱Java璇ョ被鐨?nbsp;jclass瀵硅薄

        jclass mODP = env->FindClass("archermind/webkit/Observor/ODP");

// 2. 閫氳繃璇ュ璞★紝鍙栧緱鐩稿簲java鍑芥暟鍙婂弬鏁板埌 -> jmethodID涓?/span>

        jmethodID msendDownloadRequest = env->GetStaticMethodID(

mODP, "sendDownloadRequest",                                          "(Larchermind/webkit/core/WebView;Ljava/lang/String;)V");

// 3. 鍦↗NI灞備腑錛岄氳繃鍑芥暟璋冪敤CallStaticVoidMethod鏉ヨ皟鐢╦ava鍑芥暟銆?/span>

        env->CallStaticVoidMethod(mODP, msendDownloadRequestviewcore->getWebViewJavaObject(),jUrl);

// viewcore->getWebViewJavaObject() 涓?nbsp;arg1 .

// jURL 涓篴rg2 .

        env->DeleteLocalRef(jUrl);

    }
杞嚜錛歨ttp://blog.csdn.net/weiyouyin/article/details/5739659

Bluesea 2012-04-17 15:58 鍙戣〃璇勮
]]>
Android鐨勭郴緇熸灦鏋?/title><link>http://m.shnenglu.com/finehai/archive/2012/04/17/171724.html</link><dc:creator>Bluesea</dc:creator><author>Bluesea</author><pubDate>Tue, 17 Apr 2012 02:59:00 GMT</pubDate><guid>http://m.shnenglu.com/finehai/archive/2012/04/17/171724.html</guid><wfw:comment>http://m.shnenglu.com/finehai/comments/171724.html</wfw:comment><comments>http://m.shnenglu.com/finehai/archive/2012/04/17/171724.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/finehai/comments/commentRss/171724.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/finehai/services/trackbacks/171724.html</trackback:ping><description><![CDATA[<span style="font-size: 12pt;"> </span><div>      <span style="font-size: 12pt;">Android鐨勭郴緇熸灦鏋勫拰鍏舵搷浣滅郴緇熶竴鏍鳳紝閲囩敤浜嗗垎灞傜殑鏋舵瀯銆備粠鏋舵瀯鍥劇湅錛宎ndroid鍒嗕負鍥涗釜灞傦紝浠庨珮灞傚埌浣庡眰鍒嗗埆鏄簲鐢ㄧ▼搴忓眰銆佸簲鐢ㄧ▼搴忔鏋跺眰銆佺郴緇熻繍琛屽簱灞傚拰linux鏍稿績灞傘?/span><br /><br /> <span style="color: #3333ff; font-size: 12pt;">1.搴旂敤紼嬪簭<br /><br /> </span><span style="font-size: 12pt;">      Android浼氬悓涓緋誨垪鏍稿績搴旂敤紼嬪簭鍖呬竴璧峰彂甯冿紝璇ュ簲鐢ㄧ▼搴忓寘鍖呮嫭email瀹㈡埛绔紝SMS鐭秷鎭▼搴忥紝鏃ュ巻錛屽湴鍥撅紝嫻忚鍣紝鑱旂郴浜虹鐞嗙▼搴忕瓑銆傛墍鏈夌殑搴旂敤紼嬪簭閮芥槸浣跨敤JAVA璇█緙栧啓鐨勩?/span><br /><br /> <span style="color: #3333ff; font-size: 12pt;">2.搴旂敤紼嬪簭妗嗘灦<br /><br />      </span><span style="font-size: 12pt;"> 寮鍙戜漢鍛樹篃鍙互瀹屽叏璁塊棶鏍稿績搴旂敤紼嬪簭鎵浣跨敤鐨凙PI妗嗘灦銆傝搴旂敤紼嬪簭鐨勬灦鏋勮璁$畝鍖栦簡緇勪歡鐨勯噸鐢?浠諱綍涓涓簲鐢ㄧ▼搴忛兘鍙互鍙戝竷瀹冪殑鍔熻兘鍧楀茍涓斾換浣曞叾瀹冪殑 搴旂敤紼嬪簭閮藉彲浠ヤ嬌鐢ㄥ叾鎵鍙戝竷鐨勫姛鑳藉潡(涓嶈繃寰楅伒寰鏋剁殑瀹夊叏鎬ч檺鍒?銆傚悓鏍鳳紝璇ュ簲鐢ㄧ▼搴忛噸鐢ㄦ満鍒朵篃浣跨敤鎴峰彲浠ユ柟渚跨殑鏇挎崲紼嬪簭緇勪歡銆?/span><br /><span style="font-size: 12pt;"> 闅愯棌鍦ㄦ瘡涓簲鐢ㄥ悗闈㈢殑鏄竴緋誨垪鐨勬湇鍔″拰緋葷粺, 鍏朵腑鍖呮嫭;</span><br /><span style="font-size: 12pt;">      * 涓板瘜鑰屽張鍙墿灞曠殑瑙嗗浘(Views)錛屽彲浠ョ敤鏉ユ瀯寤哄簲鐢ㄧ▼搴忥紝 瀹冨寘鎷垪琛?lists)錛岀綉鏍?grids)錛屾枃鏈(text boxes)錛屾寜閽?buttons)錛?鐢氳嚦鍙祵鍏ョ殑web嫻忚鍣ㄣ?/span><br /><span style="font-size: 12pt;">      * 鍐呭鎻愪緵鍣?Content Providers)浣垮緱搴旂敤紼嬪簭鍙互璁塊棶鍙︿竴涓簲鐢ㄧ▼搴忕殑鏁版嵁(濡傝仈緋諱漢鏁版嵁搴?錛?鎴栬呭叡浜畠浠嚜宸辯殑鏁版嵁</span><br /><span style="font-size: 12pt;">      * 璧勬簮綆$悊鍣?Resource Manager)鎻愪緵 闈炰唬鐮佽祫婧愮殑璁塊棶錛屽鏈湴瀛楃涓詫紝鍥懼艦錛屽拰甯冨眬鏂囦歡( layout files )銆?/span><br /><span style="font-size: 12pt;">      * 閫氱煡綆$悊鍣?(Notification Manager) 浣垮緱搴旂敤紼嬪簭鍙互鍦ㄧ姸鎬佹爮涓樉紺鴻嚜瀹氫箟鐨勬彁紺轟俊鎭?/span><br /><span style="font-size: 12pt;">      * 媧誨姩綆$悊鍣? Activity Manager) 鐢ㄦ潵綆$悊搴旂敤紼嬪簭鐢熷懡鍛ㄦ湡騫舵彁渚涘父鐢ㄧ殑瀵艱埅鍥為鍔熻兘銆?/span><br /><span style="font-size: 12pt;"> 鏈夊叧鏇村鐨勭粏鑺傚拰鎬庢牱浠庡ご鍐欎竴涓簲鐢ㄧ▼搴忥紝璇峰弬鑰?濡備綍緙栧啓涓涓?Android 搴旂敤紼嬪簭.</span><br /><br /> <span style="color: #3333ff; font-size: 12pt;">3.緋葷粺榪愯搴?br /><br /> </span><span style="font-size: 12pt;"> 1)紼嬪簭搴?/span><br /><span style="font-size: 12pt;">      Android 鍖呭惈涓浜汣/C 搴擄紝榪欎簺搴撹兘琚獳ndroid緋葷粺涓笉鍚岀殑緇勪歡浣跨敤銆傚畠浠氳繃 Android 搴旂敤紼嬪簭妗嗘灦涓哄紑鍙戣呮彁渚涙湇鍔°備互涓嬫槸涓浜涙牳蹇冨簱錛?/span><br /><span style="font-size: 12pt;">      * 緋葷粺 C 搴?- 涓涓粠 BSD 緇ф壙鏉ョ殑鏍囧噯 C 緋葷粺鍑芥暟搴? libc )錛?瀹冩槸涓撻棬涓哄熀浜?embedded linux 鐨勮澶囧畾鍒剁殑銆?/span><br /><span style="font-size: 12pt;">      * 濯掍綋搴?- 鍩轟簬 PacketVideo OpenCORE;璇ュ簱鏀寔澶氱甯哥敤鐨勯煶棰戙佽棰戞牸寮忓洖鏀懼拰褰曞埗錛屽悓鏃舵敮鎸侀潤鎬佸浘鍍忔枃浠躲傜紪鐮佹牸寮忓寘鎷琈PEG4, H.264, MP3, AAC, AMR, JPG, PNG 銆?/span><br /><span style="font-size: 12pt;">      * Surface Manager - 瀵規樉紺哄瓙緋葷粺鐨勭鐞嗭紝騫朵笖涓哄涓簲鐢ㄧ▼搴忔彁 渚涗簡2D鍜?D鍥懼眰鐨勬棤緙濊瀺鍚堛?/span><br /><span style="font-size: 12pt;">      * LibWebCore - 涓涓渶鏂扮殑web嫻忚鍣ㄥ紩鎿庣敤錛屾敮鎸丄ndroid嫻忚鍣ㄥ拰涓涓彲宓屽叆鐨剋eb瑙嗗浘銆?/span><br /><span style="font-size: 12pt;">      * SGL - 搴曞眰鐨?D鍥懼艦寮曟搸</span><br /><span style="font-size: 12pt;">      * 3D libraries - 鍩轟簬OpenGL ES 1.0 APIs瀹炵幇;璇ュ簱鍙互浣跨敤紜歡 3D鍔犻?濡傛灉鍙敤)鎴栬呬嬌鐢ㄩ珮搴︿紭鍖栫殑3D杞姞閫熴?/span><br /><span style="font-size: 12pt;">      * FreeType -浣嶅浘(bitmap)鍜岀煝閲?vector)瀛椾綋鏄劇ず銆? </span><p><span style="font-size: 12pt;">     * SQLite - 涓涓浜庢墍鏈夊簲鐢ㄧ▼搴忓彲鐢紝鍔熻兘寮哄姴鐨勮交鍨嬪叧緋誨瀷鏁版嵁搴撳紩鎿庛?/span><br /><span style="font-size: 12pt;"> 2)Android 榪愯搴?/span><br /><span style="font-size: 12pt;">      Android 鍖呮嫭浜嗕竴涓牳蹇冨簱錛岃鏍稿績搴撴彁渚涗簡JAVA緙栫▼璇█鏍稿績搴撶殑澶у鏁板姛鑳姐?/span><br /><span style="font-size: 12pt;"> 姣忎竴涓狝ndroid搴旂敤紼嬪簭閮藉湪瀹冭嚜宸辯殑榪涚▼涓繍琛岋紝閮芥嫢鏈変竴涓嫭绔嬬殑Dalvik铏氭嫙鏈哄疄渚嬨侱alvik琚璁℃垚涓涓澶囧彲浠ュ悓鏃墮珮鏁堝湴榪愯澶氫釜 铏氭嫙緋葷粺銆? Dalvik铏氭嫙鏈烘墽琛?.dex)鐨凞alvik鍙墽琛屾枃浠訛紝璇ユ牸寮忔枃浠墮拡瀵瑰皬鍐呭瓨浣跨敤鍋氫簡浼樺寲銆傚悓鏃惰櫄鎷熸満鏄熀浜庡瘎瀛樺櫒鐨勶紝鎵鏈夌殑綾婚兘緇忕敱JAVA緙? 璇戝櫒緙栬瘧錛岀劧鍚庨氳繃SDK涓?鐨?“dx” 宸ュ叿杞寲鎴?dex鏍煎紡鐢辮櫄鎷熸満鎵ц銆?/span><br /><span style="font-size: 12pt;">      Dalvik铏氭嫙鏈轟緷璧栦簬linux鍐呮牳鐨勪竴浜涘姛鑳斤紝姣斿綰跨▼鏈哄埗鍜屽簳灞傚唴瀛樼鐞嗘満鍒躲?/span></p><p><br /> <span style="color: #3333ff; font-size: 12pt;">4.Linux 鍐呮牳</span>      <span style="font-size: 12pt;"><br /></span></p><p>      <span style="font-size: 12pt;">Android 鐨勬牳蹇冪郴緇熸湇鍔′緷璧栦簬 Linux 2.6 鍐呮牳錛屽瀹夊叏鎬э紝鍐呭瓨綆$悊錛岃繘紼嬬鐞嗭紝 緗戠粶鍗忚鏍堝拰椹卞姩妯″瀷銆?Linux 鍐呮牳涔熷悓鏃朵綔涓虹‖浠跺拰杞歡鏍堜箣闂寸殑鎶借薄灞傘?/span></p></div><img src ="http://m.shnenglu.com/finehai/aggbug/171724.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/finehai/" target="_blank">Bluesea</a> 2012-04-17 10:59 <a href="http://m.shnenglu.com/finehai/archive/2012/04/17/171724.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>銆愯漿銆慤buntu涓嬪畨瑁匒ndroid妯℃嫙鍣?/title><link>http://m.shnenglu.com/finehai/archive/2012/04/11/170876.html</link><dc:creator>Bluesea</dc:creator><author>Bluesea</author><pubDate>Wed, 11 Apr 2012 02:59:00 GMT</pubDate><guid>http://m.shnenglu.com/finehai/archive/2012/04/11/170876.html</guid><wfw:comment>http://m.shnenglu.com/finehai/comments/170876.html</wfw:comment><comments>http://m.shnenglu.com/finehai/archive/2012/04/11/170876.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/finehai/comments/commentRss/170876.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/finehai/services/trackbacks/170876.html</trackback:ping><description><![CDATA[     鎽樿: 濡傛灉浣犳兂鍦ㄨ嚜宸辯殑PC鏈轟笂鐜╃帺Adroid錛屼笉濡ㄦ寜涓嬪垪姝ラ璇曚竴璇曪細 <br> <br>鍓嶆彁錛氬凡瀹夎Java騫沖彴銆?nbsp; <a href='http://m.shnenglu.com/finehai/archive/2012/04/11/170876.html'>闃呰鍏ㄦ枃</a><img src ="http://m.shnenglu.com/finehai/aggbug/170876.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/finehai/" target="_blank">Bluesea</a> 2012-04-11 10:59 <a href="http://m.shnenglu.com/finehai/archive/2012/04/11/170876.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item></channel></rss> <a href="http://m.shnenglu.com/">青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品</a> <div style="position:fixed;left:-9000px;top:-9000px;"><font id="pjuwb"></font><button id="pjuwb"><pre id="pjuwb"></pre></button><sub id="pjuwb"></sub><tbody id="pjuwb"><var id="pjuwb"><address id="pjuwb"></address></var></tbody><listing id="pjuwb"><label id="pjuwb"><strong id="pjuwb"></strong></label></listing><wbr id="pjuwb"><small id="pjuwb"><tbody id="pjuwb"></tbody></small></wbr><ins id="pjuwb"><xmp id="pjuwb"></xmp></ins><style id="pjuwb"></style><label id="pjuwb"><em id="pjuwb"><li id="pjuwb"></li></em></label><samp id="pjuwb"></samp><menu id="pjuwb"><input id="pjuwb"></input></menu><pre id="pjuwb"><tbody id="pjuwb"><tfoot id="pjuwb"><button id="pjuwb"></button></tfoot></tbody></pre><form id="pjuwb"></form><i id="pjuwb"><style id="pjuwb"><label id="pjuwb"><sup id="pjuwb"></sup></label></style></i><li id="pjuwb"><table id="pjuwb"><abbr id="pjuwb"></abbr></table></li><video id="pjuwb"></video><dfn id="pjuwb"></dfn><progress id="pjuwb"></progress><strong id="pjuwb"></strong><mark id="pjuwb"></mark><em id="pjuwb"></em><tbody id="pjuwb"><p id="pjuwb"><strike id="pjuwb"><acronym id="pjuwb"></acronym></strike></p></tbody><option id="pjuwb"></option><strike id="pjuwb"></strike><u id="pjuwb"></u><td id="pjuwb"><center id="pjuwb"><tr id="pjuwb"></tr></center></td><em id="pjuwb"><mark id="pjuwb"><em id="pjuwb"><tt id="pjuwb"></tt></em></mark></em><strong id="pjuwb"></strong><wbr id="pjuwb"></wbr><s id="pjuwb"></s><strong id="pjuwb"></strong><legend id="pjuwb"></legend><nav id="pjuwb"></nav><dl id="pjuwb"><th id="pjuwb"><dl id="pjuwb"></dl></th></dl><noframes id="pjuwb"><ins id="pjuwb"></ins></noframes><font id="pjuwb"></font><strike id="pjuwb"><i id="pjuwb"><style id="pjuwb"><label id="pjuwb"></label></style></i></strike><output id="pjuwb"></output><thead id="pjuwb"><pre id="pjuwb"></pre></thead><source id="pjuwb"></source><menuitem id="pjuwb"><wbr id="pjuwb"></wbr></menuitem><pre id="pjuwb"><span id="pjuwb"><pre id="pjuwb"><big id="pjuwb"></big></pre></span></pre><cite id="pjuwb"><fieldset id="pjuwb"><s id="pjuwb"><rt id="pjuwb"></rt></s></fieldset></cite><big id="pjuwb"><progress id="pjuwb"><big id="pjuwb"></big></progress></big><samp id="pjuwb"><delect id="pjuwb"></delect></samp><dl id="pjuwb"></dl><strike id="pjuwb"><nav id="pjuwb"><dl id="pjuwb"><strong id="pjuwb"></strong></dl></nav></strike><tbody id="pjuwb"><b id="pjuwb"><optgroup id="pjuwb"><rp id="pjuwb"></rp></optgroup></b></tbody><em id="pjuwb"></em><xmp id="pjuwb"><blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote></xmp> <i id="pjuwb"><abbr id="pjuwb"><i id="pjuwb"><abbr id="pjuwb"></abbr></i></abbr></i><center id="pjuwb"><acronym id="pjuwb"><center id="pjuwb"></center></acronym></center><pre id="pjuwb"></pre><ul id="pjuwb"><thead id="pjuwb"></thead></ul><blockquote id="pjuwb"><pre id="pjuwb"><sup id="pjuwb"></sup></pre></blockquote><acronym id="pjuwb"></acronym><big id="pjuwb"><s id="pjuwb"></s></big><th id="pjuwb"></th><th id="pjuwb"></th><tbody id="pjuwb"></tbody><thead id="pjuwb"><strike id="pjuwb"></strike></thead><th id="pjuwb"><dl id="pjuwb"><wbr id="pjuwb"></wbr></dl></th><dl id="pjuwb"><strong id="pjuwb"></strong></dl><abbr id="pjuwb"><noframes id="pjuwb"><noscript id="pjuwb"></noscript></noframes></abbr><td id="pjuwb"><ol id="pjuwb"></ol></td><li id="pjuwb"><noscript id="pjuwb"><abbr id="pjuwb"></abbr></noscript></li><small id="pjuwb"><bdo id="pjuwb"><nav id="pjuwb"></nav></bdo></small><style id="pjuwb"></style><optgroup id="pjuwb"><table id="pjuwb"></table></optgroup><center id="pjuwb"><tr id="pjuwb"><dfn id="pjuwb"></dfn></tr></center><th id="pjuwb"></th><u id="pjuwb"></u><tfoot id="pjuwb"><legend id="pjuwb"><i id="pjuwb"></i></legend></tfoot><mark id="pjuwb"></mark><meter id="pjuwb"></meter><nav id="pjuwb"></nav><acronym id="pjuwb"><pre id="pjuwb"><acronym id="pjuwb"><ul id="pjuwb"></ul></acronym></pre></acronym><acronym id="pjuwb"><pre id="pjuwb"><acronym id="pjuwb"><ul id="pjuwb"></ul></acronym></pre></acronym><nobr id="pjuwb"></nobr><sub id="pjuwb"><th id="pjuwb"><menuitem id="pjuwb"><wbr id="pjuwb"></wbr></menuitem></th></sub><thead id="pjuwb"><sub id="pjuwb"></sub></thead><ul id="pjuwb"><address id="pjuwb"><menuitem id="pjuwb"><meter id="pjuwb"></meter></menuitem></address></ul><dfn id="pjuwb"></dfn><pre id="pjuwb"></pre><input id="pjuwb"><cite id="pjuwb"><fieldset id="pjuwb"></fieldset></cite></input><u id="pjuwb"><form id="pjuwb"><u id="pjuwb"></u></form></u><kbd id="pjuwb"><em id="pjuwb"><mark id="pjuwb"></mark></em></kbd><tr id="pjuwb"></tr><del id="pjuwb"><form id="pjuwb"><address id="pjuwb"></address></form></del><tfoot id="pjuwb"><legend id="pjuwb"><ol id="pjuwb"><dl id="pjuwb"></dl></ol></legend></tfoot><menu id="pjuwb"><nobr id="pjuwb"><th id="pjuwb"><nobr id="pjuwb"></nobr></th></nobr></menu><fieldset id="pjuwb"></fieldset><pre id="pjuwb"><blockquote id="pjuwb"><samp id="pjuwb"></samp></blockquote></pre><xmp id="pjuwb"><sup id="pjuwb"><pre id="pjuwb"></pre></sup></xmp><span id="pjuwb"><progress id="pjuwb"></progress></span><font id="pjuwb"></font><var id="pjuwb"><abbr id="pjuwb"></abbr></var><strong id="pjuwb"><label id="pjuwb"><i id="pjuwb"><legend id="pjuwb"></legend></i></label></strong><tr id="pjuwb"><em id="pjuwb"><em id="pjuwb"><output id="pjuwb"></output></em></em></tr><thead id="pjuwb"><strike id="pjuwb"></strike></thead> <acronym id="pjuwb"></acronym><i id="pjuwb"></i><tt id="pjuwb"></tt><rt id="pjuwb"><source id="pjuwb"><rt id="pjuwb"></rt></source></rt><strike id="pjuwb"><acronym id="pjuwb"></acronym></strike><del id="pjuwb"></del><font id="pjuwb"><output id="pjuwb"><ins id="pjuwb"><output id="pjuwb"></output></ins></output></font><kbd id="pjuwb"><tr id="pjuwb"><kbd id="pjuwb"></kbd></tr></kbd><pre id="pjuwb"><sup id="pjuwb"><delect id="pjuwb"><samp id="pjuwb"></samp></delect></sup></pre><samp id="pjuwb"></samp><track id="pjuwb"></track><tr id="pjuwb"></tr><center id="pjuwb"></center><fieldset id="pjuwb"></fieldset><i id="pjuwb"></i><td id="pjuwb"></td><rt id="pjuwb"></rt><object id="pjuwb"></object><pre id="pjuwb"><progress id="pjuwb"><sub id="pjuwb"><thead id="pjuwb"></thead></sub></progress></pre><kbd id="pjuwb"><tr id="pjuwb"><option id="pjuwb"></option></tr></kbd><output id="pjuwb"><ins id="pjuwb"></ins></output><ol id="pjuwb"></ol><source id="pjuwb"></source><strong id="pjuwb"></strong><ruby id="pjuwb"></ruby><sub id="pjuwb"><meter id="pjuwb"><menuitem id="pjuwb"><meter id="pjuwb"></meter></menuitem></meter></sub><pre id="pjuwb"></pre><center id="pjuwb"></center><tr id="pjuwb"><tbody id="pjuwb"><xmp id="pjuwb"><dd id="pjuwb"></dd></xmp></tbody></tr><video id="pjuwb"></video><pre id="pjuwb"></pre><form id="pjuwb"><optgroup id="pjuwb"></optgroup></form><samp id="pjuwb"></samp><kbd id="pjuwb"></kbd><strong id="pjuwb"><option id="pjuwb"></option></strong><object id="pjuwb"></object><abbr id="pjuwb"><noframes id="pjuwb"><abbr id="pjuwb"></abbr></noframes></abbr><ul id="pjuwb"><del id="pjuwb"><button id="pjuwb"><pre id="pjuwb"></pre></button></del></ul><abbr id="pjuwb"></abbr><strong id="pjuwb"><code id="pjuwb"><strong id="pjuwb"></strong></code></strong><option id="pjuwb"></option><optgroup id="pjuwb"><bdo id="pjuwb"><code id="pjuwb"></code></bdo></optgroup><mark id="pjuwb"><em id="pjuwb"><font id="pjuwb"></font></em></mark><acronym id="pjuwb"><code id="pjuwb"></code></acronym><dl id="pjuwb"></dl><em id="pjuwb"></em><object id="pjuwb"><input id="pjuwb"><object id="pjuwb"></object></input></object><output id="pjuwb"><dd id="pjuwb"></dd></output><option id="pjuwb"><button id="pjuwb"><option id="pjuwb"></option></button></option><small id="pjuwb"></small></div> <a href="http://www-45553.com" target="_blank">一区二区欧美日韩</a>| <a href="http://tjpzgs.com" target="_blank">欧美电影打屁股sp</a>| <a href="http://www48929.com" target="_blank">欧美福利视频在线</a>| <a href="http://cn1898.com" target="_blank">亚洲专区一区二区三区</a>| <a href="http://4449998.com" target="_blank">亚洲成人在线视频播放</a>| <a href="http://ww4477.com" target="_blank">亚洲在线观看视频</a>| <a href="http://66jj99.com" target="_blank">亚洲国产日韩欧美在线动漫 </a>| <a href="http://13501680.com" target="_blank">最新成人在线</a>| <a href="http://w3e8.com" target="_blank">在线日韩中文</a>| <a href="http://118017.com" target="_blank">亚洲性感美女99在线</a>| <a href="http://06le.com" target="_blank">日韩视频永久免费观看</a>| <a href="http://jxrisen.com" target="_blank">亚洲国产裸拍裸体视频在线观看乱了中文 </a>| <a href="http://8484vivo.com" target="_blank">韩国av一区二区三区四区</a>| <a href="http://06le.com" target="_blank">欧美午夜视频一区二区</a>| <a href="http://erodasy.com" target="_blank">国产精品每日更新在线播放网址</a>| <a href="http://cp50088.com" target="_blank">欧美日韩一区二区三区视频</a>| <a href="http://xzvaz.com" target="_blank">欧美午夜www高清视频</a>| <a href="http://194123.com" target="_blank">国产精品v欧美精品v日韩</a>| <a href="http://6168138.com" target="_blank">国产精品久久久久国产精品日日</a>| <a href="http://bjmrkj.com" target="_blank">欧美激情亚洲自拍</a>| <a href="http://xpj493.com" target="_blank">欧美日韩免费一区</a>| <a href="http://72966t.com" target="_blank">亚洲欧美日本日韩</a>| <a href="http://zgztby.com" target="_blank">国产原创一区二区</a>| <a href="http://szbeikai.com" target="_blank">伊人久久大香线蕉av超碰演员</a>| <a href="http://dzyhjx.com" target="_blank">国产精品一区在线观看你懂的</a>| <a href="http://tzhbsb.com" target="_blank">欧美日韩国产综合视频在线</a>| <a href="http://613by.com" target="_blank">亚洲激情在线观看视频免费</a>| <a href="http://www789yys.com" target="_blank">欧美成人高清</a>| <a href="http://6868681.com" target="_blank">亚洲午夜精品久久久久久浪潮 </a>| <a href="http://cm1-100.com" target="_blank">国产一区二区三区免费观看</a>| <a href="http://xaxkizlar.com" target="_blank">在线精品福利</a>| <a href="http://1369080.com" target="_blank">一本色道久久加勒比精品</a>| <a href="http://ww3838.com" target="_blank">亚洲欧美www</a>| <a href="http://www-77663.com" target="_blank">猛干欧美女孩</a>| <a href="http://wy172.com" target="_blank">亚洲男女自偷自拍</a>| <a href="http://91keshi.com" target="_blank">欧美高清影院</a>| <a href="http://hmm47.com" target="_blank">国产日韩欧美</a>| <a href="http://mfgun.com" target="_blank">夜夜狂射影院欧美极品</a>| <a href="http://diyiao.com" target="_blank">欧美一级一区</a>| <a href="http://apap77.com" target="_blank">亚洲精品1区</a>| <a href="http://91chaopron.com" target="_blank">亚洲男人的天堂在线观看</a>| <a href="http://yyds16.com" target="_blank">久久激情综合网</a>| <a href="http://6623555.com" target="_blank">欧美日韩一区二区视频在线</a>| <a href="http://327099.com" target="_blank">亚洲激情偷拍</a>| <a href="http://17kfe.com" target="_blank">欧美一区二区三区啪啪</a>| <a href="http://137177.com" target="_blank">久久一综合视频</a>| <a href="http://vipaiqiyi.com" target="_blank">新狼窝色av性久久久久久</a>| <a href="http://638179.com" target="_blank">国产精品v欧美精品∨日韩</a>| <a href="http://951738.com" target="_blank">99精品99久久久久久宅男</a>| <a href="http://kinghongs.com" target="_blank">最新国产拍偷乱拍精品 </a>| <a href="http://luluse882.com" target="_blank">久久久99精品免费观看不卡</a>| <a href="http://kk66mm.com" target="_blank">一本色道久久综合狠狠躁的推荐</a>| <a href="http://029902.com" target="_blank">欧美日韩亚洲一区三区</a>| <a href="http://1390555.com" target="_blank">一区二区三区高清在线</a>| <a href="http://ganmabook.com" target="_blank">亚洲人成77777在线观看网</a>| <a href="http://677cn.com" target="_blank">欧美日本三区</a>| <a href="http://173881.com" target="_blank">久久99伊人</a>| <a href="http://xsjgxx.com" target="_blank">免费久久99精品国产</a>| <a href="http://wwzz3.com" target="_blank">久久久一本精品99久久精品66</a>| <a href="http://fxsdcj.com" target="_blank">国产真实乱子伦精品视频</a>| <a href="http://432dm.com" target="_blank">久久精品欧美日韩</a>| <a href="http://jybiotek.com" target="_blank">久久久久久久成人</a>| <a href="http://chaoxibg.com" target="_blank">亚洲男人的天堂在线观看</a>| <a href="http://800716.com" target="_blank">亚洲一区二区高清</a>| <a href="http://chuangke168.com" target="_blank">国产亚洲一本大道中文在线</a>| <a href="http://788111c.com" target="_blank">销魂美女一区二区三区视频在线</a>| <a href="http://1392266.com" target="_blank">亚洲国内精品在线</a>| <a href="http://114mz.com" target="_blank">国产精品乱码一区二区三区</a>| <a href="http://hlyjh.com" target="_blank">在线精品观看</a>| <a href="http://zytxkj.com" target="_blank">亚洲自拍偷拍网址</a>| <a href="http://jgj230230.com" target="_blank">亚洲成色777777女色窝</a>| <a href="http://778km.com" target="_blank">在线视频欧美精品</a>| <a href="http://www249aaa.com" target="_blank">亚洲国产成人久久</a>| <a href="http://bjzgmember.com" target="_blank">亚洲视频一区二区在线观看</a>| <a href="http://nn99dd.com" target="_blank">国产亚洲成av人片在线观看桃</a>| <a href="http://winkwink333.com" target="_blank">米奇777超碰欧美日韩亚洲</a>| <a href="http://767296.com" target="_blank">欧美四级剧情无删版影片</a>| <a href="http://hjaa7.com" target="_blank">欧美激情小视频</a>| <a href="http://my8823.com" target="_blank">亚洲高清一区二</a>| <a href="http://caopormo.com" target="_blank">久久久久免费视频</a>| <a href="http://www901aaa.com" target="_blank">久久精品国产77777蜜臀</a>| <a href="http://aidou28.com" target="_blank">欧美日韩直播</a>| <a href="http://9238479.com" target="_blank">宅男精品视频</a>| <a href="http://huangsedy.com" target="_blank">亚洲欧美国产日韩中文字幕</a>| <a href="http://333666333.com" target="_blank">欧美精品麻豆</a>| <a href="http://htzhuanli.com" target="_blank">99re66热这里只有精品3直播 </a>| <a href="http://8xxjj.com" target="_blank">一区二区三区色</a>| <a href="http://qhzyxcd.com" target="_blank">蜜桃久久精品乱码一区二区</a>| <a href="http://ridenimbus.com" target="_blank">久久er99精品</a>| <a href="http://17vx.com" target="_blank">国产欧美日本一区视频</a>| <a href="http://118017.com" target="_blank">亚洲精品系列</a>| <a href="http://dmzjz.com" target="_blank">国产精品劲爆视频</a>| <a href="http://444398.com" target="_blank">久久婷婷av</a>| <a href="http://378682.com" target="_blank">午夜精品久久久久久久99水蜜桃 </a>| <a href="http://772ss.com" target="_blank">久久久久久久一区二区</a>| <a href="http://99cheats.com" target="_blank">亚洲高清在线观看一区</a>| <a href="http://15149cc.com" target="_blank">国产午夜精品全部视频在线播放 </a>| <a href="http://m-pisiwa.com" target="_blank">久久久久久久久久码影片</a>| <a href="http://26mmmm.com" target="_blank">亚洲欧美日韩成人高清在线一区</a>| <a href="http://56701sy.com" target="_blank">亚洲欧洲日产国码二区</a>| <a href="http://www-44469.com" target="_blank">国产一区二区三区精品欧美日韩一区二区三区 </a>| <a href="http://687989.com" target="_blank">国产欧美va欧美不卡在线</a>| <a href="http://wb2014.com" target="_blank">欧美日韩美女在线观看</a>| <a href="http://www473333.com" target="_blank">欧美日韩精品一区二区天天拍小说</a>| <a href="http://b871.com" target="_blank">欧美1级日本1级</a>| <a href="http://82b2.com" target="_blank">欧美三级黄美女</a>| <a href="http://hengbang50.com" target="_blank">国产女优一区</a>| <a href="http://689992.com" target="_blank">在线精品视频一区二区</a>| <a href="http://0061366.com" target="_blank">亚洲欧洲在线免费</a>| <a href="http://vipaqdx29.com" target="_blank">亚洲免费综合</a>| <a href="http://pgd857.com" target="_blank">老司机精品导航</a>| <a href="http://72nnnn.com" target="_blank">一本色道久久综合亚洲精品婷婷 </a>| <a href="http://www-4890.com" target="_blank">永久91嫩草亚洲精品人人</a>| <a href="http://www442222.com" target="_blank">国内外成人免费激情在线视频网站 </a>| <a href="http://zyjdxx.com" target="_blank">亚洲国产精品v</a>| <a href="http://59jf.com" target="_blank">91久久线看在观草草青青</a>| <a href="http://hkbsi.com" target="_blank">中文av一区特黄</a>| <a href="http://hbdxzx.com" target="_blank">久久男人资源视频</a>| <a href="http://439368.com" target="_blank">亚洲三级视频</a>| <a href="http://569658.com" target="_blank">久久精品观看</a>| <a href="http://8004006.com" target="_blank">欧美午夜在线一二页</a>| <a href="http://99chiji1.com" target="_blank">在线观看国产精品淫</a>| <a href="http://sdkingpin.com" target="_blank">亚洲一区二区在</a>| <a href="http://613by.com" target="_blank">久久成人在线</a>| <a href="http://292q.com" target="_blank">亚洲高清中文字幕</a>| <a href="http://22241com.com" target="_blank">亚洲一区精品在线</a>| <a href="http://y3u7.com" target="_blank">老司机一区二区</a>| <a href="http://www77711.com" target="_blank">国产精品久久久久久久电影</a>| <a href="http://liandezhi.com" target="_blank">国产综合欧美</a>| <a href="http://xajtyd.com" target="_blank">亚洲视频在线视频</a>| <a href="http://www492002.com" target="_blank">亚洲综合国产激情另类一区</a>| <a href="http://xjj733.com" target="_blank">久久精品国语</a>| <a href="http://f9494.com" target="_blank">亚洲视频免费</a>| <a href="http://dy25777.com" target="_blank">噜噜噜在线观看免费视频日韩</a>| <a href="http://wwww76.com" target="_blank">欧美日韩一区在线视频</a>| <a href="http://birhit.com" target="_blank">亚洲美女网站</a>| <a href="http://btbt7086.com" target="_blank">欧美体内she精视频</a>| <a href="http://bocai4488.com" target="_blank">激情一区二区</a>| <a href="http://tuokuba520.com" target="_blank">亚洲欧美日韩一区在线观看</a>| <a href="http://xianjiacf.com" target="_blank">毛片一区二区三区</a>| <a href="http://626tw.com" target="_blank">欧美呦呦网站</a>| <a href="http://339254.com" target="_blank">国产精品夜夜夜</a>| <a href="http://dsjgqc.com" target="_blank">亚洲视频电影图片偷拍一区</a>| <a href="http://123-sj.com" target="_blank">亚洲电影免费在线观看</a>| <a href="http://aydsrmyy.com" target="_blank">久久精品亚洲热</a>| <a href="http://lovehefei.com" target="_blank">国产伦精品一区二区</a>| <a href="http://jqnyc.com" target="_blank">亚洲欧美视频在线</a>| <a href="http://022291.com" target="_blank">香蕉视频成人在线观看</a>| <a href="http://www77577.com" target="_blank">国产精品青草久久久久福利99</a>| <a href="http://shiyoudiban.com" target="_blank">亚洲狼人精品一区二区三区</a>| <a href="http://my6557.com" target="_blank">老司机午夜精品视频</a>| <a href="http://3dprintingferuima.com" target="_blank">国模私拍一区二区三区</a>| <a href="http://4388x3.com" target="_blank">中文亚洲视频在线</a>| <a href="http://hjaa7.com" target="_blank">欧美伊人久久大香线蕉综合69</a>| <a href="http://107766a.com" target="_blank">国内外成人在线视频</a>| <a href="http://xiaofan123.com" target="_blank">欧美不卡视频一区</a>| <a href="http://9e67.com" target="_blank">亚洲精品一品区二品区三品区</a>| <a href="http://yiapk.com" target="_blank">国产精品扒开腿做爽爽爽软件</a>| <a href="http://khc83.com" target="_blank">99亚洲伊人久久精品影院红桃</a>| <a href="http://www-44899.com" target="_blank">亚洲激情不卡</a>| <a href="http://huabiseeds.com" target="_blank">欧美性猛交视频</a>| <a href="http://whdzjc.com" target="_blank">老司机精品视频网站</a>| <a href="http://kanzhelu31.com" target="_blank">欧美日韩高清在线播放</a>| <a href="http://www24822.com" target="_blank">亚洲一区亚洲</a>| <a href="http://yjizzdizhigmail.com" target="_blank">亚洲自拍偷拍福利</a>| <a href="http://kdy444.com" target="_blank">亚洲精品1234</a>| <a href="http://neudlac.com" target="_blank">亚洲一区二区在线免费观看视频 </a>| <a href="http://jav1111.com" target="_blank">欧美一区二区视频网站</a>| <a href="http://xingmaokeji.com" target="_blank">国产精品日韩电影</a>| <a href="http://www-33tt.com" target="_blank">久久九九免费视频</a>| <a href="http://www11111111.com" target="_blank">欧美成人情趣视频</a>| <a href="http://cnchtx.com" target="_blank">午夜久久影院</a>| <a href="http://hongmoyi.com" target="_blank">欧美jjzz</a>| <a href="http://jiujiuri8.com" target="_blank">久久精品国产一区二区三</a>| <a href="http://xian369.com" target="_blank">欧美大片免费观看</a>| <a href="http://maogo666.com" target="_blank">久久精品二区三区</a>| <a href="http://hu62.com" target="_blank">国产精品久久久久久久久免费 </a>| <a href="http://kanebocos.com" target="_blank">亚洲美女黄网</a>| <a href="http://www993997.com" target="_blank">久久综合色播五月</a>| <a href="http://340332.com" target="_blank">国产精品成人一区二区</a>| <a href="http://taominze.com" target="_blank">欧美高清视频在线播放</a>| <a href="http://25axxa.com" target="_blank">韩国福利一区</a>| <a href="http://511caifu.com" target="_blank">欧美在线一二三区</a>| <a href="http://dmzjz.com" target="_blank">美女被久久久</a>| <a href="http://huxiu123.com" target="_blank">欲香欲色天天天综合和网</a>| <a href="http://wwwxigua66.com" target="_blank">午夜亚洲精品</a>| <a href="http://yjdm296.com" target="_blank">欧美一区二区在线视频</a>| <a href="http://tubcup.com" target="_blank">国产精品vip</a>| <a href="http://4c7175.com" target="_blank">亚洲图片欧洲图片日韩av</a>| <a href="http://www-77663.com" target="_blank">99伊人成综合</a>| <a href="http://k37b.com" target="_blank">欧美国产日本</a>| <a href="http://av2027.com" target="_blank">国产精品久久久久国产a级</a>| <a href="http://75pppp.com" target="_blank">亚洲精品久久久蜜桃</a>| <a href="http://jyboke.com" target="_blank">亚洲欧美在线播放</a>| <a href="http://kk8c.com" target="_blank">精品1区2区3区4区</a>| <a href="http://www780yy.com" target="_blank">美女国产精品</a>| <a href="http://188267.com" target="_blank">亚洲小视频在线观看</a>| <a href="http://syruili.com" target="_blank">麻豆精品在线视频</a>| <a href="http://042225.com" target="_blank">欧美一级片久久久久久久</a>| <a href="http://wwwxigua66.com" target="_blank">亚洲欧洲视频在线</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>